1С. Ограничение выбора значений перечисления

У документа Рассылка электронной почты пользователю необходимо ограничить выбор статуса до Подготоваливается и Подготовлена. Статусы Выполняется и Завершена будут устанавливаться регламентным заданием в момент выполнения рассылки и ее завершения. Разбираемся с ограниченим выбора значений перечисления.

Задача

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

Решение

При указании типа реквизита перечисление пользователю будут доступны к выбору все значения этого перечисления.1С. Ограничение выбора значений перечисления

В интеренетах для ограничения доступных значений перечислений зачастую предлагают выполнять это непосредственно в форме. Но для этого в платформе предусмотрен целый механизм, потому не будем костытировать.

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

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
	
    СтандартнаяОбработка = Ложь;
	
    ДанныеВыбора = Новый СписокЗначений;
    ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.СтатусыРассылки.Подготавливается"));
    ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.СтатусыРассылки.Подготовлена"));
	
КонецПроцедуры

Так же не забываем переменной СтандартнаяОбработка присвоить значение Ложь, иначе в списке выбора будут доступны все элементы  + указанные в переменной ДанныеВыбора. Проверяем результат:

1С. Ограничение выбора значений перечисления

Теперь даже если будет указан не доступный для пользователя статус, он будет корректно отображаться:

1С. Ограничение выбора значений перечисления

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *