Имя: Пароль:
1C
1С v8
Проверка заполнения реквизитов в форме
0 John342
 
01.06.20
12:23
Добры день. Я новичок в 1с. Отрыл всякую инфу, как можно осуществлять проверку заполнения элементов. Остановился на варианте передачи реквизитов из модуля формы в модуль объекта.
Соответственно, функцию ПроверитьЗаполнение() указал в модуле формы и ОбработкаПроверкиЗаполнения() указал в модуле объекта. Всё работает. Вот только одно НО! ПроверяемыеРеквизиты.Количество() возвращает мне 0, однако в моей форме 2 реквизита, строка и период, и у обоих свойство Проверка заполнения выставлено, как Выдавать ошибку. Почему тогда в модуль объекта передаётся пустой массив? Что я упустил? Помогите советом юному падавану!
1 D_E_S_131
 
01.06.20
12:39
ПроверяемыеРеквизиты - это реквизиты объекта, у которых установлено свойство "обязательности заполнения". Реквизиты формы, если они не связаны с данными формы, не попадут в этот массив. даже не смотря на то, что для них прописано условие на заполненность.
2 John342
 
01.06.20
12:48
(1) А как связать реквизиты с данными? Это выполняется в свойствах реквизита? Или нужно как-то явно передавать это всё дело в качестве параметра?
3 patria0muerte
 
01.06.20
16:46
(0) Проверить заполнение ты можешь вызвать из 2х мест.
Из формы (в контексте формы вызвать ПроверитьЗаполнение()) - в этом случае будут проверяться и реквизиты объекта с признаком "Выдавать ошибку" и реквизиты формы с этим же признаком
Из объекта (в модуле объекта вызвать ПроверитьЗаполнение()) - в этом случае будут проверяться только реквизиты объекта с признаком "Выдавать ошибку"
4 John342
 
01.06.20
17:17
(3) Если я вызываю из формы, то как я и говорил ранее, в модуль объекта передаётся пустой массив для проверки. Правильно ли я понимаю, что если функцию я вызову из модуля объекта, то массив будет заполнен нужными мне реквизитами для проверки?
5 Мимохожий Однако
 
01.06.20
17:38
(4) Как создавал форму? Кто её Владелец?
6 John342
 
01.06.20
17:42
(5) Форму создавал через Файл->Новый->Внешняя обработка. Там сделал форму и в ней уже создавал реквизиты. А вот кто владелец - пока не разобрался, как это смотреть.
7 patria0muerte
 
01.06.20
17:46
(6) Так в том и суть, что ты создаешь Реквизиты ФОРМЫ и пытаешь проверить их в модуле ОБЪЕКТА. Объект не знает про реквизиты формы.
Проверяй в ОбработкаПроверкиЗаполнения у формы. Либо добавляй реквизиты непосредственно в сам объект и тогда ты увидишь их в модуле объекта
8 Мимохожий Однако
 
01.06.20
17:46
В данном случае владельцем обычно является внешняя обработка. У нее могут быть реквизиты, которые могут быть связаны с реквизитами формы, которые могут быть отображены на форме, в доме, который построил Джек.
9 Мимохожий Однако
 
01.06.20
17:48
Осталось почитать в справке про метод ПроверитьЗаполнение()  Где и в каком режиме живёт и процветает
10 John342
 
01.06.20
17:55
(7) Получается, если я просто добавлю реквизиты "снаружи" формы, то модуль объекта будет ссылаться на них и тогда проверка заполнения будет работать корректно?
11 John342
 
01.06.20
17:57
(8) Понял. Как patria0 и говорит, модуль объекта ничего не знает, что творится внутри формы. Нужно сколотить реквизиты за пределами формы.
12 Мимохожий Однако
 
01.06.20
17:58
(10) Это форма снаружи ) Сначала объект (в твоем случае обработка), а у нее уже форма. Форма может быть несколько
13 John342
 
01.06.20
18:05
(12) Ещё раз для себя уяснить. Объект - это внешняя обработка, в ней я делаю 2 реквизита, которые мне нужны, и форму. В форме я создаю реквизиты формы. Осталось понять, как реквизиты объекта связать с реквизитами формы.
14 Мимохожий Однако
 
01.06.20
20:07
(13) Открываешь пустую форму и перетягиваешь реквизиты Объекта в левое окно. Если уже добавил реквизиты, то открываешь свойства каждого реквизита и переопределяешь путь к реквизитам Объекта. Результат один и тот же. Реквизиты формы связаны с реквизитами объекта (в данном случае, обработки)
15 John342
 
01.06.20
21:18
(14) Не получается переместить реквизиты из объекта в форму и наоборот. Это наверно как-то включается?
16 John342
 
01.06.20
22:14
(14) А, не, всё получилось. Только теперь понять бы, как передать значения в реквизиты объекта из формы.
17 hhhh
 
02.06.20
03:33
(16) положить левую ногу на правую. И поудобнее устроиться в кресле. Главное не мешать.