Почему не отображается добавленное поле на форме подбора в 1С:УТ 11 и как его вывести

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

При доработке типовых конфигураций 1С (в частности, «Управление торговлей 11», «ERP Управление предприятием» или «Комплексная автоматизация») разработчики часто сталкиваются с ситуацией: в форму подбора номенклатуры (например, ПодборТоваровВДокументыЗакупки или ПодборТоваровВДокументыПродажи) добавляется новое поле в запрос динамического списка и соответствующий элемент на форму, но в режиме «1С:Предприятие» новая колонка не отображается.

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

Причина 1. Программная перезапись запроса динамического списка

В формах подбора прикладных решений на базе УТ 11 текст запроса динамического списка редко остается статическим. При инициализации формы, переключении складов, видов цен, соглашений или режимов показа остатков конфигурация динамически пересобирает текст запроса списка номенклатуры в общих модулях подбора.

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

Выполним поиск места переопределения запроса с помощью отладчика:

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

Причина 2. Сохраненные пользовательские настройки формы

Платформа «1С:Предприятие 8.3» сохраняет персональные настройки интерфейса для каждого пользователя: видимость колонок, их ширину, порядок и взаимное расположение. Если пользователь хотя бы один раз открывал форму подбора до внесения изменений в конфигураторе, платформа применит ранее сохраненное состояние интерфейса, в котором нового элемента управления еще не существовало.

Для восстановления видимости выполним сброс пользовательских настроек:

  1. В режиме «1С:Предприятие» в форме подбора нажмем кнопку Еще в правом верхнем углу.
  2. Перейдем в пункт Изменить форму....
  3. В открывшемся окне настройки формы нажмем Еще → Установить стандартные настройки.
  4. Если колонка появилась в дереве элементов формы, проверим, установлена ли напротив нее галочка видимости, и нажмем кнопку ОК.

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

Причина 3. Программное управление видимостью колонок в механизмах подбора

В типовых формах подбора УТ 11 присутствует отдельный механизм управления составом колонок (видимость колонок цен, остатков по складам, упаковок, характеристик и серий). В процедурах обновления формы видимость элементов часто принудительно пересчитывается.

Проанализируем свойства созданного элемента формы:

  1. Убедимся, что свойство элемента формы ПутьКДанным строго совпадает с псевдонимом поля в запросе динамического списка (например, Список.АртикулПоставщика).
  2. Проверим свойство ПользовательскаяВидимость у созданного элемента формы: для роли текущего пользователя должен быть установлен флаг доступности.
  3. Проверим, не входит ли реквизит или реквизиты, к которым идет обращение в запросе, в состав отключенной Функциональной опции. Если функциональная опция выключена, платформа автоматически скрывает все связанные реквизиты и элементы формы.
  4. Проверим права доступа (RLS): если у пользователя нет роли с правом на чтение конкретного поля или реквизита объекта, колонка динамического списка будет скрыта платформой без вывода ошибок.

Причина 4. Настройка свойств поля в динамическом списке

Если поле используется не только для визуального отображения, но и для условного оформления или программных алгоритмов, необходимо убедиться в корректности настроек схемы компоновки данных динамического списка:

  1. В конфигураторе откроем свойства динамического списка Список.
  2. Откроем свойство Настройка списка (или закладку «Колонки/Настройки компоновки данных»).
  3. Для добавленного поля проверим флаг Использовать всегда, если значение этого поля должно считываться с сервера гарантированно независимо от видимости колонки.
  4. Убедимся, что в тексте запроса динамического списка для всех объединений (ОБЪЕДИНИТЬ ВСЕ) добавленное поле присутствует во всех ветках выборки с одинаковым типом данных и псевдонимом.
← На главную