В процессе разработки отчетов на базе Системы компоновки данных (СКД) программисты часто сталкиваются с ситуацией, когда нужный объект метаданных, например, Документ.ПередачаТоваров, отсутствует в списке доступных полей или типов. Это особенно характерно для работы с данными регистра бухгалтерии «Хозрасчетный» и его субконто. Разберем подробно причины этой проблемы и последовательность шагов для её решения.
Основная причина, по которой документ может отсутствовать в конструкторе при обращении к субконто, заключается в том, что поле Субконто имеет составной тип данных. Список типов, которые могут храниться в этом поле, определяется не в самом регистре, а в соответствующем Плане видов характеристик (обычно это ВидыСубконтоХозрасчетные).
Проанализируем ситуацию: если в настройках конкретного вида субконто (например, «Документы реализации» или «Номенклатура») не указан тип ДокументСсылка.ПередачаТоваров, то платформа 1С не позволит выбрать этот документ в запросе через данное поле. Рассмотрим, как это исправить:
Передача товаров не стоит галочка, её необходимо установить. После обновления конфигурации документ появится в конструкторе.Даже если тип документа включен в План видов характеристик, конструктор запроса или СКД может не отображать его реквизиты (например, дату, номер или склад), пока мы явно не укажем системе, с каким типом данных работаем. В 1С для этих целей используется оператор ВЫРАЗИТЬ.
Выясним, как правильно прописать это в тексте запроса. Вместо прямого обращения к полю субконто, мы «подсказываем» платформе конкретный тип:
ВЫБРАТЬ
ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто1 КАК Документ.ПередачаТоваров).Склад КАК СкладОтправитель,
ХозрасчетныйОстатки.СуммаОстаток КАК Сумма
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет, , ) КАК ХозрасчетныйОстатки
ГДЕ
ХозрасчетныйОстатки.Субконто1 ССЫЛКА Документ.ПередачаТоваров
Использование конструкции ССЫЛКА в условии ГДЕ позволяет ограничить выборку только нужным типом документа, что делает работу отчета более стабильной и производительной.
Если в Плане видов характеристик тип документа указан, но в конструкторе он всё равно не виден, проанализируем настройки Функциональных опций. В современных конфигурациях (таких как Бухгалтерия предприятия 3.0) многие документы «скрыты» за настройками функциональности. Если в интерфейсе программы отключен раздел, отвечающий за передачу товаров (например, учет комиссионной торговли или передачи сырья в переработку), документ может быть исключен из списков выбора метаданных.
Также не стоит забывать о правах доступа. Если у пользователя, под которым запущен конфигуратор, отсутствуют права на чтение или просмотр объекта Документ.ПередачаТоваров, он не будет отображаться в дереве доступных объектов. Проверьте роли пользователя и убедитесь, что на данный документ предоставлены необходимые права.
Иногда отсутствие объекта в конструкторе вызвано некорректным состоянием локального кэша конфигурации. Если вы точно уверены, что документ есть в метаданных и включен во все необходимые типы, попробуйте следующие действия:
Документ.ПередачаТоваров во временную таблицу, а затем соединить её с таблицей регистра по ссылке. Это гарантированно позволит работать с реквизитами документа.Подведем итог: чаще всего проблема решается в Плане видов характеристик. Убедитесь, что тип документа доступен для использования в качестве субконто, и при необходимости используйте явное приведение типов в запросе СКД.