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