Имя: Пароль:
1C
 
Отмена запрета на незаполнение
0 iznvi
 
30.10.18
12:42
Ребят,есть документ "Производство без заказа" в нем есть форма и там заполняются ХарактеристикиНоменклатуры автоматически при выборе номенклатуры,но есть номенклатура без характеристики. Я прописал,что если Характеристика пустая,то добавить заместо пустой строчки "Не заполнено",а я вот думаю,а не проще в этой ситуации просто программно по условию,отменять запрет на незаполнение ?
не подскажите как это можно сделать ?
Тоесть нужно просто при выборе номенклатуры и если не заполнена у нее характеристики,то просто ничего не подставлять и не запрещать записывать документ ?
1 Fragster
 
гуру
30.10.18
12:46
ДокументОбъект.<Имя документа>.ОбработкаПроверкиЗаполнения (DocumentObject.<Имя документа>.FillCheckProcessing)
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ОбработкаПроверкиЗаполнения (FillCheckProcessing)
Синтаксис:

ОбработкаПроверкиЗаполнения(<Отказ>, <ПроверяемыеРеквизиты>)
Параметры:

<Отказ>

Тип: Булево.
Если в теле процедуры-обработчика установить данному параметру значение Истина, то будет выполнен отказ от продолжения работы после выполнения проверки заполнения.
Значение по умолчанию: Ложь.
<ПроверяемыеРеквизиты>

Тип: Массив.
Массив путей к реквизитам, для которых будет выполнена проверка заполнения. Массив может быть модифицирован удалением или добавлением путей к необходимым реквизитам.
Описание:

Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи или при проведении документа в форме, а также при выполнении метода ПроверитьЗаполнение.
Если для документа при конфигурировании свойство Проведение установлено в Разрешить, то вызывается только при проведении.
Если документ не проводится (установлено Запретить), то вызывается при записи.
Позволяет разработчику конфигурации самостоятельно реализовать проверку заполнения в обработчике события. При этом в обработчике можно полностью отказаться от системной обработки (очистив список проверяемых реквизитов), отказаться от проверки системой части реквизитов (выполнив проверку отдельных реквизитов особенным образом и исключив эти реквизиты из списка), а также добавить для проверки другие реквизиты, проверка которых не была указана.

Пример:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

// Проверим заполненность реквизита "Покупатель"

Покупатель = ПроверяемыеРеквизиты.Найти("Покупатель");
Если Не ЗначениеЗаполнено(Покупатель) Тогда
    
    // Если он не заполнен, сообщим об этом пользователю

    Сообщение = Новый СообщениеПользователю();
    Сообщение.Текст = "Не указан Покупатель, на которого выписывается товарная накладная!";
    Сообщение.Поле = "Покупатель";
    Сообщение.УстановитьДанные(ЭтотОбъект);
        
    Сообщение.Сообщить();
        
    // Сообщим платформе, что мы сами обработали проверку заполнения реквизита "Покупатель"

    ПроверяемыеРеквизиты.Удалить(Покупатель);
    // Так как информация не консистентна, то продолжать работу дальше смысла нет

    Отказ = Истина;
        
КонецЕсли;

// Сообщим платформе, что мы сами обрабатываем проверку реквизита товар в табличной части Товары

ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Товары.Товар"));

// Обходим строки и проверяем заполнение реквизита

Для Индекс = 0 по Товары.Количество()-1 Цикл
    СтрокаТовар = Товары.Получить(Индекс);
    Если Не ЗначениеЗаполнено(СтрокаТовар.Товар) Тогда
        Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = "В строке " + Индекс + " не заполнено значение товара";
        Сообщение.Поле = "Товары[" + Индекс + "].Товар";
        Сообщение.УстановитьДанные(ЭтотОбъект);
        Сообщение.Сообщить();
        Отказ = Истина;
    КонецЕсли;
КонецЦикла;
    
КонецПроцедуры



Замечание:

Безопасный режим на время исполнения данного обработчика будет отключен. Данное замечание не относится к обработчикам событий, расположенным в расширении конфигурации.
См. также:

ОбъектМетаданных: Документ, свойство Проведение

--------------------------------------------------------------------------------

     Методическая информация
2 Fragster
 
гуру
30.10.18
12:47
3 iznvi
 
30.10.18
12:48
(2) Спасибо большое,чет искал и не нашел )
4 Вафель
 
30.10.18
12:48
лучше так не делать, иначе можешь словить пересорт по характеристикам: "не заполнено" и "пустая"
5 iznvi
 
30.10.18
12:50
(4) Ситуация требует  )
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший