Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 09:16

Запретить проведение документа при незаполненном поле в расширении

Автор skillful, 16 фев 2020, 19:12

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

skillful

Добрый. Конфигурацию нельзя менять. Установлено расширение добавляющее поле Сотрудник на форму. Вот код:
&НаСервере
Процедура Расш_ПриВРем_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)

ДобавляемыеРеквизиты = Новый Массив;
    Реквизит = Новый РеквизитФормы("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
    ДобавляемыеРеквизиты.Добавить(Реквизит);
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);

// Сотрудник *** Сотрудник *** Сотрудник *** Сотрудник *** Сотрудник *** Сотрудник ***
Элемент = ЭтаФорма.Элементы.Добавить("ОтборСотрудник", Тип("ПолеФормы"),ЭтаФорма.Элементы.ГруппаДополнительно);
Элемент.Вид = ВидПоляФормы.ПолеВвода;
    Элемент.ПутьКДанным = "Сотрудник";
    ЭтаФорма.Элементы.ОтборСотрудник.КнопкаОчистки = Ложь;
    ЭтаФорма.Элементы.ОтборСотрудник.КнопкаВыбора  = Истина;
   

КонецПроцедуры


В расширении ни как не могу вызвать ошибку когда поле Сотрудник не заполнено, то документ не проводился. Документ все равно проводится и записывается. Можно как то победить это?

depb

Добавить в расширение процедуру модуля документа ОбработкаПроведения и в ней ваше условие и Отказ = Истина

bsn-chita

В зависимости от того реквизит формы или объекта нужно или в форме или в модуле объекта в расширении в ОбработкаПроверкиЗаполнения добавить свой реквизит к проверяемым:
ПроверяемыеРеквизиты.Добавить("Реквизит");

skillful

depb, bsn-chita, Спасибо. Сделал так:
&НаСервере
Процедура Расш_ПриЗаписиНаСервереПеред(Отказ, ТекущийОбъект, ПараметрыЗаписи)

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

Теги:

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

Рейтинг@Mail.ru

Поиск