При разработке в среде 1С:Предприятие 8.3, особенно в таких сложных конфигурациях, как «Управление торговлей 11», программисты часто сталкиваются с ситуацией: новый реквизит в объект добавлен, на форму выведен, конфигурация базы данных обновлена, но при запуске программы в режиме «1С:Предприятие» заветное поле (например, флажок) на форме отсутствует. Разберем по шагам, почему это происходит и как найти «пропавший» элемент.
Первое, на что стоит обратить внимание в конфигурациях на базе ERP-платформы (УТ, КА, ERP), — это использование функциональных опций. Рассмотрим ситуацию со справочником Партнеры. В программе существует настройка «Вести партнеров и контрагентов раздельно».
В зависимости от этой настройки система может открывать совершенно разные формы:
Партнеры.Проанализируем ситуацию: вы могли добавить реквизит в ФормаЭлемента, а система в данный момент использует ФормаЭлементаПрикладная или форму из расширения. Выясним причину через отладчик. Для этого в модуле объекта или в модуле менеджера справочника можно поставить точку останова в процедурах перед открытием формы и посмотреть, какой именно объект УправляемаяФорма инициализируется.
Конфигурации, построенные на Библиотеке Стандартных Подсистем (БСП), часто управляют видимостью и составом элементов программно. Разберем, что происходит в процедуре ПриСозданииНаСервере. Система может выполнять следующие действия:
Посмотрим на пример того, как это может выглядеть в коде:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Программное управление видимостью группы
Элементы.ГруппаДополнительнойИнформации.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьДопИнформацию");
// Если ваш реквизит внутри этой группы, он исчезнет вместе с ней
КонецПроцедуры
Если ваша группа или родительский элемент формы программно скрываются, ваш новый флажок также не будет отображен. Проанализируйте дерево элементов формы в конфигураторе и проверьте свойства Видимость у всех вышестоящих родителей (групп, страниц).
Современная разработка в 1С практически не обходится без расширений. Проанализируем вероятность того, что в базе установлено расширение, которое перехватывает управление формой. Если в расширении создана своя форма элемента справочника Партнеры и она установлена как основная, то любые изменения, внесенные вами в основной конфигурации, просто не будут задействованы.
Проверить это можно в дереве конфигурации, открыв список расширений и посмотрев состав заимствованных объектов. Если форма справочника присутствует в расширении с признаком «Основная форма», добавлять реквизит нужно именно в форму расширения.
Выясним, не ограничивают ли права доступа отображение реквизита. В 1С 8.3 права на новый реквизит не всегда проставляются автоматически даже для полных прав (зависит от настроек обновления и версии платформы).
Разберем алгоритм проверки:
Партнеры).Просмотр и Редактирование для вашего нового реквизита.Если у пользователя нет прав на просмотр реквизита, платформа 1С автоматически исключит соответствующее поле из состава формы при отрисовке интерфейса, не выдавая никаких ошибок.
Иногда причина кроется не в коде, а в локальных настройках конкретного пользователя. Платформа 1С запоминает состояние формы для каждого сотрудника. Если пользователь ранее заходил в меню «Изменить форму» и настраивал отображение элементов под себя, то новый элемент, добавленный разработчиком позже, может попасть в список скрытых по умолчанию для этого пользователя.
Как это исправить: В режиме «1С:Предприятие» откройте форму справочника, нажмите «Еще» — «Изменить форму». В открывшемся окне нажмите «Еще» — «Установить стандартные настройки». После этого форма сбросится к виду, заданному в конфигураторе, и ваш новый флажок должен появиться.
В «Управлении торговлей 11» для добавления новых свойств объектов часто рекомендуется использовать механизм «Дополнительных реквизитов и сведений» вместо изменения структуры метаданных. Это позволяет избежать проблем при обновлении конфигурации.
Если же вы все-таки решили добавить реквизит через конфигуратор, учтите, что форма в УТ 11 может быть жестко спроектирована для работы с динамическими группами. Проверьте, не попал ли ваш флажок в область, которая управляется кодом БСП (например, ГруппаДополнительныеРеквизиты). В таких случаях система может конфликтовать с элементами, добавленными вручную, и скрывать их.
Рассмотрим еще две редкие, но возможные причины:
Видимость = Ложь для элементов формы при определенных условиях.Подводя итог, можно сказать, что в 90% случаев в УТ 11 проблема заключается либо в неправильно выбранной форме (из-за функциональных опций), либо в отсутствии прав доступа на новый реквизит. Тщательно проанализируйте эти моменты, используя отладчик и проверку ролей, и ваш новый реквизит обязательно появится на форме.