Почему в конструкторе СКД не отображается документ Передача товаров и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

В процессе разработки отчетов на базе Системы компоновки данных (СКД) программисты часто сталкиваются с ситуацией, когда нужный объект метаданных, например, Документ.ПередачаТоваров, отсутствует в списке доступных полей или типов. Это особенно характерно для работы с данными регистра бухгалтерии «Хозрасчетный» и его субконто. Разберем подробно причины этой проблемы и последовательность шагов для её решения.

Анализ состава типов в Плане видов характеристик

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

Проанализируем ситуацию: если в настройках конкретного вида субконто (например, «Документы реализации» или «Номенклатура») не указан тип ДокументСсылка.ПередачаТоваров, то платформа 1С не позволит выбрать этот документ в запросе через данное поле. Рассмотрим, как это исправить:

  1. Откроем План счетов и найдем счет, данные которого мы пытаемся получить в отчете.
  2. Посмотрим, какой именно Вид субконто назначен этому счету на соответствующем уровне (Субконто1, Субконто2 или Субконто3).
  3. Перейдем в План видов характеристик (Виды субконто хозрасчетные).
  4. Найдем нужный вид субконто и откроем его настройки. Нам необходимо проверить свойство Тип значения.
  5. Если в списке доступных типов напротив документа Передача товаров не стоит галочка, её необходимо установить. После обновления конфигурации документ появится в конструкторе.

Использование оператора ВЫРАЗИТЬ для работы с составными типами

Даже если тип документа включен в План видов характеристик, конструктор запроса или СКД может не отображать его реквизиты (например, дату, номер или склад), пока мы явно не укажем системе, с каким типом данных работаем. В 1С для этих целей используется оператор ВЫРАЗИТЬ.

Выясним, как правильно прописать это в тексте запроса. Вместо прямого обращения к полю субконто, мы «подсказываем» платформе конкретный тип:


ВЫБРАТЬ
    ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто1 КАК Документ.ПередачаТоваров).Склад КАК СкладОтправитель,
    ХозрасчетныйОстатки.СуммаОстаток КАК Сумма
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет, , ) КАК ХозрасчетныйОстатки
ГДЕ
    ХозрасчетныйОстатки.Субконто1 ССЫЛКА Документ.ПередачаТоваров

Использование конструкции ССЫЛКА в условии ГДЕ позволяет ограничить выборку только нужным типом документа, что делает работу отчета более стабильной и производительной.

Проверка функциональных опций и прав доступа

Если в Плане видов характеристик тип документа указан, но в конструкторе он всё равно не виден, проанализируем настройки Функциональных опций. В современных конфигурациях (таких как Бухгалтерия предприятия 3.0) многие документы «скрыты» за настройками функциональности. Если в интерфейсе программы отключен раздел, отвечающий за передачу товаров (например, учет комиссионной торговли или передачи сырья в переработку), документ может быть исключен из списков выбора метаданных.

Также не стоит забывать о правах доступа. Если у пользователя, под которым запущен конфигуратор, отсутствуют права на чтение или просмотр объекта Документ.ПередачаТоваров, он не будет отображаться в дереве доступных объектов. Проверьте роли пользователя и убедитесь, что на данный документ предоставлены необходимые права.

Проблемы кэша метаданных и альтернативные способы

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

Подведем итог: чаще всего проблема решается в Плане видов характеристик. Убедитесь, что тип документа доступен для использования в качестве субконто, и при необходимости используйте явное приведение типов в запросе СКД.

← На главную