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