При доработке внешних обработок и отчетов на управляемых формах разработчики нередко сталкиваются с ситуацией: в конфигураторе изменены свойства элементов, переименованы команды, отредактированы синонимы, однако после запуска в режиме 1С:Предприятие форма по-прежнему отображает старые надписи кнопок и полей. При этом программный код модулей может успешно обновляться и выполняться без сбоев. Разберем основные причины такого поведения платформы и выясним, как гарантированно применить новые заголовки.
Платформа 1С автоматически сохраняет персональные настройки внешнего вида формы для каждого пользователя (видимость элементов, положение, ширину колонок и отредактированные вручную заголовки). Если пользователь когда-либо настраивал форму через меню Еще — Изменить форму или открывал предыдущую версию объекта, сохраненные настройки имеют наивысший приоритет и перекрывают значения по умолчанию, заданные в конфигураторе.
Для сброса сохраненного пользовательского интерфейса выполним следующие действия:
При открытии внешних файлов (обработок и отчетов) платформа кэширует описание их метаданных во временных каталогах операционной системы и в памяти процессов. При этом исполняемый программный код модулей при перезапуске может компилироваться заново, а визуальная структура формы и синонимы метаданных продолжают считываться из кэша.
Чтобы сбросить кэш внешнего файла и принудительно обновить форму, применим следующие шаги:
Имя в корне метаданных объекта (в окне свойств обработки).%TEMP% или AppData\Local\Temp), где платформа хранит временные распакованные копии форм.Отображаемый текст на форме формируется платформой по строгим правилам наследования. Если свойство элемента не заполнено явно, 1С подтягивает заголовок из связанных объектов метаданных. Проанализируем цепочку приоритетов:
Для кнопок командной панели и формы:
Заголовок непосредственно у элемента формы (Кнопки).Заголовок у команды, к которой привязана кнопка (команда формы или общая команда).Синоним команды в метаданных.Для полей ввода и реквизитов:
Заголовок у элемента формы (Поле ввода / Поле надписи).Заголовок у реквизита формы.Синоним реквизита объекта (если реквизит формы является основным реквизитом типа Объект).Если изменить имя или заголовок у реквизита формы, но на самой форме у элемента ввода поле Заголовок было заполнено фиксированной строкой вручную, на экране останется значение из свойства элемента формы. Проверим свойства каждого элемента дерева формы и убедимся, что очищены лишние переопределения.
Если в конфигурации включено использование нескольких языков интерфейса (ветка Общие — Языки), заголовки элементов и синонимы сохраняются отдельно для каждого языка. Рассмотрим, как это исправить:
Заголовок нажмем кнопку открытия диалога редактирования строк (кнопка с лупой или троеточием).Проверим модули формы на наличие программного изменения интерфейса при запуске. Часто в обработчиках событий ПриСозданииНаСервере или ПриОткрытии разработчики динамически меняют надписи в зависимости от условий или параметров сеанса:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Проверим, не переопределяется ли заголовок программно
Элементы.КнопкаВыполнить.Заголовок = "Сформировать данные";
КонецПроцедуры
Используем глобальный поиск (сочетание клавиш Ctrl + Shift + F) по имени элемента формы или команды во всех модулях обработки, чтобы исключить скрытую перезапись заголовков в коде.