В форме внешней обработки вводятся данные( реквизиты). Как можно проверить их на заполнение до создания документов, до вызова основных процедур?
Есть свойство АвтоОтметкаНезаполненного, она дает подчеркивание не заполненного реквизита, этого мало.
Если взять Значение = "Неопределено" то как выстроить код?
Есть свойство АвтоОтметкаНезаполненного, она дает подчеркивание не заполненного реквизита, этого мало.
Если взять Значение = "Неопределено" то как выстроить код?
По теме из базы знаний
- Проверка заполнения штрихкодов для УТ 11/КА 2 и Розница 2.2
- Автоматическое заполнение статистической формы учета перемещения товаров при ЭКСПОРТЕ (ФТС) в государства ЕАЭС (Беларусь, Казахстан, Армения и Кыргызская Республика)
- Программная проверка заполнения реквизитов номенклатуры перед записью. УТ 11.5, КА 2.5
- Проверка заполнения приходных накладных, денежных документов и заказов
- Контроль, проверка заполнения договора в заказе клиента для УТ 11, КА, ERP 2
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
можно на реквизитах поставить свойство Проверка заполнения - Выдавать ошибку и перед созданием документа вызвать метод обработки ПроверитьЗаполнение(). А можно свой аналог такой функции написать и ее вызывать перед созданием документа, где выполнить все необходимые проверки и вернуть флаг разрешающий или запрещающий дальнейшее выполнение
Есть пример использования?
Данный метод является методом формы, поэтому если использовать в контексте данной формы, то можно вызвать например так:
Функция РеквизитыЗаполнены()
Возврат ПроверитьЗаполнение();
КонецФункции
И в нужном месте функцию вызвать. Если же проверяется из другой формы, то сначала надо получить форму нужную, а потом вызывать метод:
Форма = ПолучитьФорму(Нужная форма);
ВсеЗаполнено = Форма.ПроверитьЗаполнение();
(6) Гугли по ключевым словам ОбработкаЗаполнения, Заполнить, ОбработкаПроверкиЗаполнения, ПроверитьЗаполнение. И вдумчиво читаем. Все уже давно разжевано. Потратишь время, зато раз и навсегда научишься делать правильно. Это гораздо эффективнее, чем получать на форуме обрывочные сведения.
(7)Совет хороший, когда время не жмет.
Нашел ...
Пойду разбираться.
Нашел ...
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
// Проверим заполненность реквизита "Покупатель"
Покупатель = ПроверяемыеРеквизиты.Найти("Покупатель");
Если Не ЗначениеЗаполнено(Покупатель) Тогда
// Если он не заполнен, сообщим об этом пользователю
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "Не указан Покупатель, на которого выписывается товарная накладная!";
Сообщение.Поле = "Покупатель";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
// Сообщим платформе, что мы сами обработали проверку заполнения реквизита "Покупатель"
ПроверяемыеРеквизиты.Удалить(Покупатель);
// Так как информация не консистентна, то продолжать работу дальше смысла нет
Отказ = Истина;
КонецЕсли;
// Сообщим платформе, что мы сами обрабатываем проверку реквизита товар в табличной части Товары
ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Товары.Товар"));
// Обходим строки и проверяем заполнение реквизита
Для Индекс = 0 по Товары.Количество()-1 Цикл
СтрокаТовар = Товары.Получить(Индекс);
Если Не ЗначениеЗаполнено(СтрокаТовар.Товар) Тогда
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "В строке " + Индекс + " не заполнено значение товара";
Сообщение.Поле = "Товары[" + Индекс + "].Товар";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
ПоказатьПойду разбираться.
Итог:
Спасибо всем., обработка завершена.
&НаКлиенте
Процедура Сформировать(Команда)
ПроверитьЗаполнение();
Если Не ПроверитьЗаполнение() Тогда
Возврат;
КонецЕсли;
СоздатьСчетАкт();
КонецПроцедуры
&НаСервере
Функция РеквизитыЗаполнены()
Возврат ПроверитьЗаполнение();
КонецФункции
ПоказатьСпасибо всем., обработка завершена.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот