В процессе эксплуатации системы 1С:Управление торговлей 11.4 пользователи и администраторы часто сталкиваются с ситуацией, когда в форме списка документов Счет-фактура выданный колонка Партнер остается пустой для определенных записей. Это вызывает недоумение, так как документ создан на основании Реализации товаров и услуг, где партнер указан корректно. Давайте детально разберем, как устроена архитектура хранения данных в этом узле и выясним технические причины возникновения подобных «пустот».
Для начала проанализируем фундаментальное различие между двумя справочниками в современных конфигурациях на базе ERP-технологий (УТ 11, КА 2, ERP 2). Партнер — это управленческая сущность (холдинг, группа компаний, фактический клиент), а Контрагент — юридическое лицо, с которым заключаются договоры и оформляются финансовые документы.
Документ Счет-фактура выданный является исключительно фискальным (налоговым) документом. С точки зрения метаданных системы, ему жизненно необходим реквизит Контрагент (юридическое лицо), но совершенно не обязателен реквизит Партнер. Если мы откроем конфигуратор и изучим состав реквизитов документа СчетФактураВыданный, мы обнаружим, что поля Партнер там просто не существует.
Возникает логичный вопрос: откуда тогда берется эта колонка в списке? Разберем этот момент подробнее. В управляемых формах 1С списки документов работают на основе объекта ДинамическийСписок. Поле Партнер в списке счет-фактур является либо вычисляемым полем в запросе списка, либо добавлено через путь к данным через документ-основание.
Рассмотрим стандартный путь получения данных для этой колонки:
СчетФактураВыданный.ДокументОснование.Партнер
Проанализируем ситуацию: если в списке счет-фактура отображается без партнера, это означает, что запрос динамического списка не смог «дотянуться» до этого значения через связь с первичным документом. Это может происходить по нескольким причинам, которые мы разберем далее.
Реквизит ДокументОснование у счет-фактуры имеет составной тип. Туда могут входить:
Если счет-фактура создана на основании документа, в котором реквизит Партнер по какой-то причине отсутствует в метаданных (например, специфическая доработка или редкий вид операции), поле в списке будет пустым. Также выясним, не является ли данная счет-фактура сводной. Для сводных счетов-фактур механизм подтягивания партнера в одну строку списка может давать сбои, если оснований несколько и у них разные партнеры (хотя это редкий случай для типовой логики).
Иногда причина кроется в самом тексте запроса, который формирует список. Проанализируем типичный запрос, который может использоваться в системе. Если связь построена через ЛЕВОЕ СОЕДИНЕНИЕ с таблицами документов-оснований, и тип основания не приведен к конкретному типу через ВЫРАЗИТЬ, система может некорректно обрабатывать обращение к реквизитам через точку.
Пример кода, который помогает понять, как система «достает» партнера:
ВЫБРАТЬ
ДокументСФ.Ссылка КАК Ссылка,
ДокументСФ.Номер КАК Номер,
ДокументСФ.Дата КАК Дата,
ВЫБОР
КОГДА ДокументСФ.ДокументОснование ССЫЛКА Документ.РеализацияТоваровУслуг
ТОГДА ВЫРАЗИТЬ(ДокументСФ.ДокументОснование КАК Документ.РеализацияТоваровУслуг).Партнер
КОГДА ДокументСФ.ДокументОснование ССЫЛКА Документ.АктВыполненныхРабот
ТОГДА ВЫРАЗИТЬ(ДокументСФ.ДокументОснование КАК Документ.АктВыполненныхРабот).Партнер
ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка)
КОНЕЦ КАК Партнер
ИЗ
Документ.СчетФактураВыданный КАК ДокументСФ
Если в вашей конфигурации или через расширение этот запрос был изменен, или если документ-основание не попадает в условия ВЫБОР, колонка останется пустой.
Рассмотрим ситуацию с точки зрения безопасности. В 1С:УТ 11 активно используются механизмы RLS (Record Level Security). Настройка прав может быть выполнена таким образом, что пользователь имеет право просматривать документы Счет-фактура выданный (так как это финансовые документы), но у него ограничены права на просмотр конкретных Партнеров или их групп.
В этом случае система при выполнении запроса динамического списка просто «отсечет» данные, на которые у пользователя нет прав. В итоге счет-фактура в списке видна, а связанный с ней партнер — нет. Проверить это можно, зайдя в систему под пользователем с полными правами (Администратор). Если у него партнер отображается, значит, проблему нужно искать в настройках групп доступа и профилей.
В настройках системы (НСИ и администрирование — Настройка НСИ и разделов — Семья и партнеры) существует опция «Независимо вести партнеров и контрагентов». Если эта опция отключена, система скрывает справочник Партнеры от пользователя, создавая их в фоновом режиме в связке 1-к-1 с контрагентами.
Проанализируем ситуацию: при программном создании документов или при переносе данных из других систем связь между партнером и контрагентом может быть нарушена. Если в реализации заполнен контрагент, но не прописан партнер (что технически возможно при программной записи с отключенной проверкой заполнения), то и в счет-фактуре в списке поле будет пустым.
Для выяснения точной причины рекомендуем выполнить следующие действия:
Еще — Изменить форму в списке счет-фактур. Найдите поле Партнер и посмотрите его путь к данным. Если там указано что-то вроде Объект.Партнер (что невозможно для типовой), значит, форма кастомизирована. В типовой это обычно путь через документ-основание.СчетФактураВыданный, вытащив поле ДокументОснование.Партнер. Если в консоли под вашим пользователем поле заполнено, а в списке нет — дело в настройках формы или кэше.Подводя итог, отметим, что отсутствие партнера в списке счет-фактур в большинстве случаев не является критической ошибкой учета, так как этот реквизит не участвует в формировании проводок или регистров НДС. Это визуальная особенность реализации динамического списка. Понимая, что данные берутся транзитом через документ-основание, вы сможете быстро локализовать проблему — будь то отсутствие прав доступа, некорректно заполненная реализация или особенности настройки типового запроса в конфигурации.