|
Проверка заполнения по условию | ☑ | ||
|---|---|---|---|---|
|
0
kogotaz
17.05.26
✎
17:03
|
Управляемая форма констант. Константы: Поле1 (булево), Поле2 (строка).
Почему не работает код? В Поле1 ставлю "истина", Поле2 не заполняю. Дает записать форму. &НаСервере Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) Если НаборКонстант.Поле1 Тогда ПроверяемыеРеквизиты.Добавить("Поле2"); КонецЕсли; КонецПроцедуры |
|||
|
1
kogotaz
17.05.26
✎
19:11
|
Понимаю, что вопрос глупый, но что-то не могу разобраться
|
|||
|
2
evorle145
17.05.26
✎
20:13
|
Основная причина: неверное имя процедуры. В 1С имя обработчика должно точно совпадать с именем события платформы. Директива &НаСервере указывается отдельно, но добавлять НаСервере в само имя процедуры нельзя. Платформа просто не находит обработчик ОбработкаПроверкиЗаполнения и не вызывает ваш код.
✅ Правильный вариант: 1c 123456 🔍 Почему это происходит: Платформа 1С ищет обработчик по строгому имени: ОбработкаПроверкиЗаполнения. Суффикс НаСервере в имени процедуры (ОбработкаПроверкиЗаполненияНаСервере) нарушает привязку события. Код существует, но никогда не выполняется. 🛠 Если после исправления всё ещё не работает, проверьте: Подписка на событие Откройте свойства формы → раздел События → убедитесь, что в строке ОбработкаПроверкиЗаполнения выбран ваш обработчик (после переименования обычно подставляется автоматически). Ручная установка Отказ (fallback) В некоторых конфигурациях или старых релизах платформа может не отрабатывать ПроверяемыеРеквизиты для констант автоматически. Тогда добавьте явную проверку: 1c 12345678 Значения NULL у булевых констант По умолчанию булевы константы имеют значение NULL (неопределено), а не Ложь. Условие Если НаборКонстант.Поле1 Тогда сработает корректно, но явное сравнение = Истина надёжнее и читаемее. Имя реквизита Убедитесь, что "Поле2" точно совпадает с именем в дереве метаданных (регистр не важен, но пробелы или дополнительные символы могут нарушить проверку). |
|||
|
3
Amra
17.05.26
✎
20:18
|
(2) Садись, кол. Ты бы хоть СП бы открыл
|
|||
|
4
Fish
гуру
18.05.26
✎
08:57
|
(3) Это же явно ответ от ИИ.
|
|||
|
5
kogotaz
18.05.26
✎
09:46
|
У ИИ я и сам мог бы спросить, но он не знает.
Я просто не понимаю, если я добавляю реквизит в ПроверяемыеРеквизиты, почему форма пропускает незаполненное поле? |
|||
|
6
ass1c
18.05.26
✎
09:58
|
(0) Подзабыл че то немного, но возможно, стоит проверить у формы флаг:
Проверять заполнение автоматически и установить его в Истина. Вроде есть взаимосвязь если не путаю. |
|||
|
7
Garykom
гуру
18.05.26
✎
10:04
|
(6) Это если нет процедуры со своим кодом
|
|||
|
8
RomanYS
18.05.26
✎
10:24
|
(0) Судя по описанию добавлять надо не "Поле2", а "НаборКонстант.Поле2".
НО! Проверил - ни фига не работает, проверки вторичных свойств реквизитов формы не происходит. Поэтому просто проверяй кодом и давай отказ |
|||
|
9
Fish
гуру
18.05.26
✎
10:25
|
(7) Из СП:
"Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи в форме, а также при выполнении метода ПроверитьЗаполнение. Для вызова проверки заполнения системой необходимо, чтобы у формы (с которой происходит работа) было установлено свойство ПроверятьЗаполнениеАвтоматически. В этом случае вначале будет вызван данный обработчик, а затем, если в списке проверяемых реквизитов присутствует реквизит <Объект>, обработчик ОбработкаПроверкиЗаполнения() модуля объекта." |
|||
|
10
Garykom
гуру
18.05.26
✎
10:25
|
(8) В типовых давно все проверки только кодом, даже первичных
|
|||
|
11
Garykom
гуру
18.05.26
✎
10:28
|
(9) Ну я почти это и написал, в своем коде смотря что с реквизитами проверяемыми сделали
|
|||
|
12
RomanYS
18.05.26
✎
10:32
|
(10) Что в целом логично: если флажков в метаданных недостаточно и ты уже создал процедуру, то почему не выдать отказ и нормальное описание ошибки.
Ну и насчет "все" ты сильно не прав, см. счетчик на скрине
|
|||
|
13
Garykom
гуру
18.05.26
✎
10:54
|
(12) Согласен, много проверок системных осталось в типовых
Судя по корректировкам кодом массива проверяемых реквизитов |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |