Как сохранить тип документа в реквизит табличной части 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Основные подходы к решению задачи

Для решения поставленной задачи мы можем использовать один из двух подходов: сохранение типа через программную обработку события выбора или использование механизмов платформы, таких как справочник ИдентификаторыОбъектовМетаданных. Рассмотрим оба варианта, чтобы вы могли выбрать наиболее подходящий для вашего случая.

Реализация через дополнительный реквизит

Самый быстрый и эффективный способ «на лету» определять тип выбранного элемента — добавить в табличную часть дополнительную колонку. Давайте разберем этот процесс по шагам.

  1. Создайте в табличной части дополнительный реквизит (например, ДокТип) с типом Произвольный или Строка (рекомендуется строка для повышения производительности).
  2. Для колонки, в которой пользователь выбирает сам документ (например, Документ), откройте палитру свойств и найдите событие ПриИзменении.
  3. В обработчике данного события на клиенте напишите код, который будет автоматически считывать тип выбранного объекта и записывать его в созданную колонку.

Посмотрим на пример кода, который необходимо разместить в модуле формы:


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

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

Использование справочника ИдентификаторыОбъектовМетаданных

Если вам необходимо более профессиональное и стандартизированное решение, рекомендуем использовать предопределенный справочник ИдентификаторыОбъектовМетаданных. Это стандартный механизм платформы 1С для работы с метаданными.

Преимущества этого подхода:

Чтобы преобразовать выбранный тип в ссылку на этот справочник, вы можете использовать метод Метаданные.НайтиПоТипу(). Получив объект метаданных, вы легко извлечете из него уникальный идентификатор.

Советы по улучшению интерфейса

При работе с типами документов важно помнить об удобстве пользователя. Если вы выводите пользователю информацию о типе, не показывайте системные названия вроде Документ.РеализацияТоваровУслуг. Вместо этого используйте свойство Синоним объекта метаданных. Это сделает интерфейс понятным и профессиональным.

Проанализируем ситуацию: если ваша цель — дать пользователю возможность выбрать вид документа до выбора самого документа, вы можете программно заполнить СписокЗначений в элементе управления формой, перебрав коллекцию Метаданные.Документы. В этом случае пользователь сначала выбирает «вид», а затем система ограничивает выбор конкретного документа только выбранным типом.

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

← На главную