Почему пропало оранжевое выделение с кнопки «Провести и закрыть» в 1С и как его вернуть?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В управляемом интерфейсе «1С:Предприятие» (особенно в современном интерфейсе «Taxi») пользователи и разработчики привыкли к стандартному визуальному оформлению: кнопка основного действия (как правило, это «Провести и закрыть» или «Записать и закрыть») всегда выделяется ярким оранжевым или желтым цветом. Это помогает быстро ориентироваться на форме и совершать целевые действия интуитивно.

Однако в практике разработки и администрирования 1С часто возникает неприятная ситуация: в одном из документов это выделение внезапно пропадает, хотя во всех остальных формах и документах системы всё отображается корректно. Кнопка становится обычной серой, сливаясь с остальными элементами командной панели. Особенно часто этот сбой проявляется после обновления платформы или изменения метаданных формы.

В этой статье мы подробно разберем, почему ломается стандартное поведение платформы, изучим внутреннюю механику назначения кнопок по умолчанию и рассмотрим несколько практических способов решения этой проблемы — от простых манипуляций в конфигураторе до глубокой проверки свойств формы.

Почему пропадает выделение кнопок: разбираемся в механике платформы

Для начала проанализируем ситуацию и выясним, как именно платформа 1С определяет, какую кнопку нужно окрасить в фирменный оранжевый цвет. За это поведение отвечают несколько взаимосвязанных механизмов:

  1. Свойство «КнопкаПоУмолчанию» на управляемой форме. На любой управляемой форме в каждый конкретный момент времени только один элемент управления может обладать статусом кнопки по умолчанию. Когда командная панель генерируется автоматически (включено свойство Автозаполнение), платформа самостоятельно назначает этот статус главной системной команде (проведению или записи) и окрашивает её. Если на форме появляется другая кнопка, у которой жестко прописано это свойство, автозаполняемая кнопка теряет свой цвет.
  2. Свойство «Важность» в новых версиях платформы (8.5 и выше). В современных версиях платформы логика управления фокусом и цветом расширилась. Появилось свойство Важность (или ВажностьКнопки). Кнопка со значением «Главная» автоматически перетягивает на себя оранжевый цвет. Если это свойство случайно назначено другому элементу формы (даже скрытому), стандартная кнопка потеряет визуальный приоритет.
  3. Связь с основным реквизитом формы. Платформа «понимает», что форму нужно проводить и закрывать, только тогда, когда у формы корректно определен контекст. За это отвечает флаг «Основной реквизит» у реквизита Объект (тип ДокументОбъект). Если при обновлении или редактировании формы этот флаг слетел, платформа перестает считать документ основным объектом формы, и автозаполняемые команды теряют статус «главных».

Перейдем к практическим методам исправления этой проблемы.

Способ 1. Принудительный сброс триггера формы в Конфигураторе

Рассмотрим самый быстрый способ, который помогает «встряхнуть» платформу и заставить её заново инициализировать автозаполнение командной панели. Этот метод основан на временном переопределении свойства кнопки по умолчанию.

Разберем этот алгоритм по шагам:

  1. Откройте проблемную управляемую форму документа в Конфигураторе.
  2. Найдите в дереве элементов формы вашу командную панель (обычно она называется КоманднаяПанельФормы).
  3. В свойствах командной панели временно снимите флаг Автозаполнение.
  4. Выберите абсолютно любую другую кнопку на форме (или создайте временную, если других кнопок нет). В её свойствах найдите пункт КнопкаПоУмолчанию и установите для него значение Истина.
  5. Сразу же снимите этот флаг обратно (установите в значение Ложь или верните системное значение). Этот шаг необходим, чтобы платформа очистила глобальное назначение дефолтной кнопки для всей формы и сбросила внутренний кэш макета.
  6. Вернитесь к вашей командной панели и снова установите флаг Автозаполнение в значение Истина.
  7. Сохраните конфигурацию и обновите базу данных (клавиша F7).

После запуска сеанса «1С:Предприятие» автозаполняемая кнопка «Провести и закрыть» должна снова вернуть свой оранжевый цвет.

Способ 2. Проверка и очистка свойства самой Формы

Чтобы не искать проблемную кнопку, которая могла перехватить статус главной, по всему дереву элементов (где кнопок может быть не один десяток, включая скрытые и системные), мы можем проанализировать свойства самого верхнего уровня.

Выполните следующие действия:

  1. В редакторе формы выберите самый верхний элемент в дереве элементов — саму «Форму».
  2. Откройте её палитру свойств (клавиша F4).
  3. Найдите свойство Кнопка по умолчанию.
  4. Посмотрите, какое значение там установлено. Если там выбрана какая-то конкретная кнопка, отличная от стандартного действия проведения, это и есть причина проблемы.
  5. Очистите это поле (сделайте его пустым), либо принудительно укажите в нем ту команду, которая должна быть выделена.

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


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Принудительно назначаем кнопку по умолчанию при инициализации формы
    ЭтаФорма.КнопкаПоУмолчанию = ЭтаФорма.Элементы.ФормаПровестиИЗакрыть;
    
КонецПроцедуры

Способ 3. Проверка признака «Основной реквизит»

Если предыдущие методы не дали результата, велика вероятность, что платформа потеряла объектную привязку формы. Выясним, так ли это.

  1. В правой части окна редактора формы перейдите на вкладку «Реквизиты».
  2. Найдите реквизит Объект (он должен иметь тип, соответствующий вашему документу, например, ДокументОбъект.РеализацияТоваровУслуг).
  3. Обратите внимание на пиктограмму этого реквизита. Она должна быть выделена жирным шрифтом, а в свойствах реквизита флаг Основной реквизит должен быть установлен в значение Истина.
  4. Если флаг снят, установите его. Форма сразу перестроит логику работы со стандартными командами записи и проведения, вернув им корректное визуальное представление.

Способ 4. Проверка свойства «Важность» (для платформы 8.5 и выше)

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

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

Способ 5. Сброс пользовательских настроек и очистка кэша

Иногда визуальные баги интерфейса связаны не с кодом конфигурации, а с накопившимся кэшем метаданных или индивидуальными настройками пользователя, который ранее изменял состав и расположение элементов формы под себя.

Для диагностики этой причины рекомендуем выполнить следующие шаги в режиме «1С:Предприятие»:

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

Если стандартный сброс настроек формы не помог, а проблема появилась строго после обновления версии платформы, необходимо очистить локальный кэш компьютера. Для этого достаточно удалить базу из списка запуска и добавить её заново, либо запустить систему с параметром командной строки /ClearCache.

Мы подробно рассмотрели все возможные причины исчезновения оранжевого выделения кнопок в 1С. Системное применение описанных выше способов гарантированно вернет интерфейсу вашей конфигурации привычный и удобный для пользователей вид.

← На главную