В процессе разработки и кастомизации конфигурации 1С:Документооборот 3.0 (ДО 3.0) специалисты часто сталкиваются с ситуацией, когда визуальные изменения элементов формы в конфигураторе не отображаются в режиме «1С:Предприятие». Особенно это актуально для кнопок управления задачами, таких как «Согласовано», «Не согласовано» или «Согласовано с замечаниями». Разберем подробно, почему так происходит, и проанализируем все возможные способы решения данной задачи.
Первым делом проанализируем ситуацию, с которой столкнулся автор темы. При изменении свойства ЦветФона или ЦветТекста в палитре свойств элемента формы ДействиеЗадачи, платформа может игнорировать эти настройки. Рассмотрим основные факторы, влияющие на это поведение:
Важность. Если для кнопки установлено значение Очень важная, платформа автоматически применяет к ней жестко заданный стиль интерфейса (например, желтая кнопка в теме «Такси»). Этот стиль имеет приоритет над пользовательскими настройками цвета.Если визуальные настройки в конфигураторе «затираются» системой, наиболее надежным способом будет принудительное установление цвета через программный код. Рассмотрим, как это сделать правильно. Нам потребуется найти процедуру ПриСозданииНаСервере в модуле формы ДействиеЗадачи.
Разберем пример кода, который позволит нам гарантированно изменить цвет кнопки:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Укажем имя элемента кнопки, как оно задано в конфигураторе
ИмяКнопки = "СогласованоСЗамечаниями";
// Проверим наличие элемента на форме, чтобы избежать ошибок
Если Элементы.Найти(ИмяКнопки) <> Неопределено Тогда
// Устанавливаем произвольный цвет фона (например, оранжевый)
Элементы[ИмяКнопки].ЦветФона = Новый Цвет(255, 165, 0);
// Пытаемся установить цвет текста
Элементы[ИмяКнопки].ЦветТекста = Новый Цвет(0, 0, 0); // Черный
КонецЕсли;
КонецПроцедуры
Важно помнить, что если кнопка имеет статус Очень важная, то ЦветТекста может все равно игнорироваться платформой для обеспечения контрастности. В этом случае попробуйте установить свойство Важность в значение Обычная.
В конфигурациях на базе БСП (Библиотеки стандартных подсистем), к которым относится ДО 3.0, цвета элементов часто привязаны к общим Элементам стиля. Рассмотрим этот путь подробнее:
Общие -> Элементы стиля.ЦветВыполненнойЗадачи, ЦветПоложительногоРешения).Как справедливо заметил автор обсуждения, если навыки программирования ограничены, можно пойти по пути «наименьшего сопротивления». Платформа 1С более лояльно относится к добавлению картинок на кнопки, чем к изменению цвета текста внутри системных стилей.
Выполним следующие шаги:
Картинка.ПоложениеКартинки в значение Лево или Право.Рамка, выбрав тип Линия и задав ей контрастный цвет.Этот метод хорош тем, что он визуально выделяет кнопку среди других, не конфликтуя с логикой отрисовки текста в теме «Такси».
Проанализируем ситуацию, когда «один раз получилось, а потом перестало». Это явный признак проблем с кэшированием или перекрытием настроек. Рассмотрим алгоритм проверки:
1. Очистка кэша: Изменения в структуре управляемой формы (Layout) могут кэшироваться не только на клиенте, но и на сервере приложений. Если вы работаете в клиент-серверном варианте, может потребоваться перезагрузка службы 1C:Enterprise Server.
2. Поиск в расширениях: Проверьте список расширений в базе. Если вы меняете форму в основной конфигурации, а она добавлена в расширение с типом «Заимствование», ваши правки будут игнорироваться. Чтобы исправить это, внесите изменения непосредственно в форму внутри расширения.
Подводя итог, можно сказать, что наиболее «правильным» с точки зрения архитектуры 1С является программное управление оформлением в процедуре ПриСозданииНаСервере. Это гарантирует, что ваши настройки будут применены в самый последний момент перед отрисовкой формы пользователю. Однако, если задача стоит в быстром визуальном выделении, использование картинок (иконок) — это наиболее стабильный метод, не зависящий от обновлений платформы и изменений системных стилей.
Помните, что избыточное изменение цветов в интерфейсе может запутать пользователя, поэтому старайтесь придерживаться общей стилистики «1С:Документооборот 3.0», используя акцентные цвета только для действительно важных действий.