При разработке конфигураций 1С часто возникает задача хранения информации о том, какой именно документ был выбран пользователем в табличной части, особенно если поле выбора имеет составной тип. Рассмотрим, как эффективно реализовать сохранение типа выбранного значения в отдельный реквизит для дальнейшего использования в аналитике или отчетах.
Для решения поставленной задачи мы можем использовать один из двух подходов: сохранение типа через программную обработку события выбора или использование механизмов платформы, таких как справочник ИдентификаторыОбъектовМетаданных. Рассмотрим оба варианта, чтобы вы могли выбрать наиболее подходящий для вашего случая.
Самый быстрый и эффективный способ «на лету» определять тип выбранного элемента — добавить в табличную часть дополнительную колонку. Давайте разберем этот процесс по шагам.
ДокТип) с типом Произвольный или Строка (рекомендуется строка для повышения производительности).Документ), откройте палитру свойств и найдите событие ПриИзменении.Посмотрим на пример кода, который необходимо разместить в модуле формы:
&НаКлиенте
Процедура ДокументПриИзменении(Элемент)
// Получаем текущие данные строки табличной части
ТекущаяСтрока = Элементы.ТабличнаяЧасть.ТекущиеДанные;
// Используем функцию ТипЗнч для определения типа выбранного документа
ТипВыбранногоДокумента = ТипЗнч(ТекущаяСтрока.Документ);
// Записываем результат в колонку ДокТип
ТекущаяСтрока.ДокТип = ТипВыбранногоДокумента;
КонецПроцедуры
Этот метод удобен тем, что тип будет определяться сразу после того, как пользователь выберет конкретный документ, без необходимости совершать дополнительные клики мышкой.
Если вам необходимо более профессиональное и стандартизированное решение, рекомендуем использовать предопределенный справочник ИдентификаторыОбъектовМетаданных. Это стандартный механизм платформы 1С для работы с метаданными.
Преимущества этого подхода:
Чтобы преобразовать выбранный тип в ссылку на этот справочник, вы можете использовать метод Метаданные.НайтиПоТипу(). Получив объект метаданных, вы легко извлечете из него уникальный идентификатор.
При работе с типами документов важно помнить об удобстве пользователя. Если вы выводите пользователю информацию о типе, не показывайте системные названия вроде Документ.РеализацияТоваровУслуг. Вместо этого используйте свойство Синоним объекта метаданных. Это сделает интерфейс понятным и профессиональным.
Проанализируем ситуацию: если ваша цель — дать пользователю возможность выбрать вид документа до выбора самого документа, вы можете программно заполнить СписокЗначений в элементе управления формой, перебрав коллекцию Метаданные.Документы. В этом случае пользователь сначала выбирает «вид», а затем система ограничивает выбор конкретного документа только выбранным типом.
Используя представленные методы, вы обеспечите гибкую и устойчивую работу вашей конфигурации, сэкономив время на поддержке и реструктуризации данных в будущем.