Каталог решений - Программная проверка заполнения реквизитов номенклатуры перед записью. УТ 11.5, КА 2.5

Программная проверка заполнения реквизитов номенклатуры перед записью. УТ 11.5, КА 2.5

Программная проверка заполнения реквизитов номенклатуры перед записью. УТ 11.5, КА 2.5

В наличии

В статье показано, как через расширение сделать программную проверку на заполнение реквизитов Номенклатуры перед записью.

Категория:

Описание

Всем привет!

Столкнулся с задачей. Необходимо в карточке номенклатуры перед записью проверять заполнение реквизитов (Необходимо проверять поле НаименованиеДляПечати)

p.s. Это могут быть и другие реквизиты, в том числе и нетиповые.

Проверка заполнения типовая сделана программно в процедуре модуля формы элемента — ПроверитьЗаполнениеОбязательныхРеквизитов(Отказ)

Я покажу пример, как это сделать через расширение.

Как видно в коде данные для проверки берутся из таблицы — ТаблицаНастроекРеквизитов

Находим поиском, где заполняется эта таблица. Это функция вызывается из модуля менеджера Номенклатуры.

Далее нам нужно эту функцию из модуля менеджера добавить в расширение с вызовом &Вместо("ТаблицаНастроекРеквизитов")

Эта функция возвращает таблицу значений.

Далее нам нужно найти строку с этим реквизитом и поменять значение ЗаполнятьОбязательно на Истина.

В результате у нас получится вот такой код в расширении.

В МассивРеквизитов можно добавить не только НаименованиеПолное, но и другие реквизиты, в том числе и нетиповые.

 
&Вместо("ТаблицаНастроекРеквизитов")
Функция ДМ_ТаблицаНастроекРеквизитов(ВидНоменклатуры, ТипНоменклатуры, ОсобенностьУчета, ИспользованиеХарактеристик, ИспользоватьСрокГодностиСерии, ВладелецРеквизитов)
// Вставить содержимое метода.
Результат = ПродолжитьВызов(ВидНоменклатуры, ТипНоменклатуры, ОсобенностьУчета, ИспользованиеХарактеристик, ИспользоватьСрокГодностиСерии, ВладелецРеквизитов);

//++ Андрей
//обязательная проверка реквизитов НаименованиеПолное и НоменклатураПоставщика
МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить("НаименованиеПолное");


Для Каждого Стр Из МассивРеквизитов Цикл
СтрокаПоиска = Результат.Найти(Стр, "ИмяРеквизита");

Если СтрокаПоиска <> Неопределено Тогда
СтрокаПоиска.ЗаполнятьОбязательно = Истина;
КонецЕсли;
КонецЦикла;
//-- Андрей

Возврат Результат;
КонецФункции

 

Спасибо, что дочитали до конца.

has been added to your cart:
Оформление заказа