Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 окт 2021, 14:17

Обработка проверки заполнения

Автор tasya, 27 июл 2021, 22:42

0 Пользователей и 1 гость просматривают эту тему.

tasya

Добрый день! Подскажите как из модуля формы передать данные в модуль объекта именно в процедуру ОбработкаПроверкиЗаполнения()? Через дополнительные свойства не получается, так как они заполняются в процедуре ПередЗаписьюНаСервере(), а она вызывается после ОбрабткаПроверкиЗаполнения.

Ивашка

Цитата: tasya от 27 июл 2021, 22:42Добрый день! Подскажите как из модуля формы передать данные в модуль объекта именно в процедуру ОбработкаПроверкиЗаполнения()? Через дополнительные свойства не получается, так как они заполняются в процедуре ПередЗаписьюНаСервере(), а она вызывается после ОбрабткаПроверкиЗаполнения.
а какие данные хотите передавать? какая задача стоит?

Ивашка


LexaK

механизм примерно следующий
1.у реквизитов объекта (см. конфигуратор) есть свойство: Проверка Заполнения, режимы Выдавать ошибку или Не проверять
для важных реквизитов указано: Выдавать ошибку 

2.при выполнении операции Записи или Проведения из формы (см.настройки формы)
вызывается процедура проверки
ОбработкаПроверкиЗаполнения(<Отказ>, <ПроверяемыеРеквизиты>)
ПроверяемыеРеквизиты - "Массив путей к реквизитам..." см.СП
вот этом массиве как раз все Реквизиты из п.1 у которых выбрано Проверка Заполнения: Выдавать ошибку

3.в этой процедуре вы можете изменить этот массив, Добавить или Удалить из него элементы
либо сразу установить Отказ = Истина, тогда процедура Записи или Проведения будет прервана 
так как процедура ОбработкаПроверкиЗаполнения() расположена в модуле Объекта,
то вам сразу, просто по именам, доступны ВСЕ реквизиты, ничего дополнительно в процедуру передавать не надо.
 
ответ Понравился? (в смысле пригодился?)

tasya

Цитата: Ивашка от 27 июл 2021, 23:04
Цитата: tasya от 27 июл 2021, 22:42Добрый день! Подскажите как из модуля формы передать данные в модуль объекта именно в процедуру ОбработкаПроверкиЗаполнения()? Через дополнительные свойства не получается, так как они заполняются в процедуре ПередЗаписьюНаСервере(), а она вызывается после ОбрабткаПроверкиЗаполнения.
а какие данные хотите передавать? какая задача стоит?

Есть программно добавленная табличная часть, вот нужно в обработке проверки заполнения проверить поля на заполнение

tasya

Цитата: LexaK от 28 июл 2021, 10:52механизм примерно следующий
1.у реквизитов объекта (см. конфигуратор) есть свойство: Проверка Заполнения, режимы Выдавать ошибку или Не проверять
для важных реквизитов указано: Выдавать ошибку 

2.при выполнении операции Записи или Проведения из формы (см.настройки формы)
вызывается процедура проверки
ОбработкаПроверкиЗаполнения(<Отказ>, <ПроверяемыеРеквизиты>)
ПроверяемыеРеквизиты - "Массив путей к реквизитам..." см.СП
вот этом массиве как раз все Реквизиты из п.1 у которых выбрано Проверка Заполнения: Выдавать ошибку

3.в этой процедуре вы можете изменить этот массив, Добавить или Удалить из него элементы
либо сразу установить Отказ = Истина, тогда процедура Записи или Проведения будет прервана 
так как процедура ОбработкаПроверкиЗаполнения() расположена в модуле Объекта,
то вам сразу, просто по именам, доступны ВСЕ реквизиты, ничего дополнительно в процедуру передавать не надо.
 

На форме есть программно добавленная табличная часть. Вот ее и нужно проверить на заполнение в процедуре обработка проверки заполнения

LexaK

@tasya, это прямо на форме создать процедуру/функцию

ПроверитьДобавленнуюТабличнуюЧасть(Отказ);

вызвать ее в процедуре формы ПередЗаписью(...)

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)

ПроверитьДобавленнуюТабличнуюЧасть(Отказ);
   
КонецПроцедуры

&НаКлиенте
Процедура ПроверитьДобавленнуюТабличнуюЧасть(Отказ)
Для каждого лкСтр Из ВашаДобавленнаяТаблица Цикл
   Для каждого лкКол Из ВашаДобавленнаяТаблица.Колонки Цикл
      Если Не ЗначениеЗаполнено(лкСтр[лкКол.Имя]) Тогда //или свое условие проверки
         Сообщить("Незаполнено значение в колонке: " + лкКол.Имя); //добавить строку в какой
         Отказ = Истина;
      КонецЕсли;
   КонецЦикла;
КонецЦикла;    
КонецПроцедуры


если что-то не заполнено, будет сообщение, документ не запишется.
ответ Понравился? (в смысле пригодился?)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск