Решение задач 1С:Предприятие 8 на примерах

Как установить нужный тип значения для поля ввода составного типа

Управляемые формыОпубликовано Обновлено

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

Пример кода: обработчик ПриИзменении

Задача.
Например, есть табличная часть с двумя колонками «ВидПоступленияДС» и «Аналитика». Поле «Аналитика» может содержать значения составного типа. Необходимо, в зависимости от введенного значения в поле «ВидПоступленияДС», установить нужный тип для поля «Аналитика».
Решение.
В событии «ПриИзменении» поля ввода «ВидПоступленияДС» пропишем следующий код:

&НаКлиенте
Процедура ОсновнаяВидПоступленияДСПриИзменении(Элемент)
    ТекСтрока = Элементы.Основная.ТекущиеДанные;
    Если ТекСтрока.ВидПоступленияДС = ПредопределенноеЗначение("Перечисление.ВидыПоступленияДС.ОплатаОтКлиента") Тогда
        ОписаниеТипов = Новый ОписаниеТипов("СправочникСсылка.Контрагенты");
    ИначеЕсли ТекСтрока.ВидПоступленияДС = ПредопределенноеЗначение("Перечисление.ВидыПоступленияДС.ПрочиеПоступленияДС") Тогда
        ОписаниеТипов = Новый ОписаниеТипов("СправочникСсылка.СтатьиПриходаДС");
    Иначе
        ТекСтрока.Аналитика = Неопределено;
        Возврат;
    КонецЕсли;
    ТекСтрока.Аналитика = ОписаниеТипов.ПривестиЗначение(ТекСтрока.Аналитика);
КонецПроцедуры

Актуальность для новых версий

Решение работает в управляемых формах платформы 8.3 без изменений: ПредопределенноеЗначение и ОписаниеТипов.ПривестиЗначение доступны на клиенте. Чтобы пользователь не мог выбрать значение другого типа вручную, дополнительно можно ограничить свойство ОграничениеТипа поля формы.

Частые вопросы

Что делает метод ПривестиЗначение?

Возвращает значение, приведённое к типу из описания типов. Если текущее значение другого типа, возвращается пустое значение нужного типа, и поле сразу предлагает выбор из правильного справочника.

Почему используется ПредопределенноеЗначение, а не Перечисления.ВидыПоступленияДС?

Код выполняется на клиенте, где менеджеры перечислений недоступны. ПредопределенноеЗначение позволяет получить ссылку на значение перечисления без серверного вызова.

Что происходит при пустом виде поступления?

Аналитика очищается установкой значения Неопределено, и обработчик завершается без смены типа.

Элементы формы 1С: программное добавление на управляемую форму

Управляемые формы

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

Как открыть форму в управляемом приложении 1С и обработать результат после закрытия

Управляемые формы

Шесть типовых сценариев открытия управляемой формы в 1С: новый объект, создание на основании, существующий документ, форма выбора и получение результата после закрытия через ОписаниеОповещения.

Условное оформление элементов формы программным способом

Управляемые формы

Шесть примеров программного условного оформления в управляемой форме 1С: цвет поля по значению, сравнение двух реквизитов, оформление строк динамического списка и условие по текущей дате.

Как программно установить параметры выбора для формы выбора объекта

Управляемые формы

Как программно задать параметры выбора поля, чтобы форма выбора открывалась с нужным отбором, например только проведённые документы нужного партнёра, без изменения самой формы выбора.