Как тиражировать условное оформление списка на всех пользователей в 1С

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

Способ 1. Использование встроенного механизма копирования настроек (БСП)

В современных конфигурациях, таких как «Управление торговлей 11», «ERP Управление предприятием» или «Комплексная автоматизация», используется Библиотека стандартных подсистем (БСП). Она предоставляет администратору штатный инструмент для переноса настроек между пользователями. Рассмотрим этот процесс по шагам:

  1. Подготовка эталонной настройки: Сначала зайдем в систему под своим пользователем или специально созданным «шаблонным» аккаунтом. Откроем нужный список документов, перейдем в меню Еще — Настроить список и на вкладке Условное оформление добавим необходимые правила (например, цвет текста «Красный», если «Сумма» больше 100 000). Проверим, что оформление корректно отображается.
  2. Переход в раздел администрирования: Откроем раздел Администрирование — Настройки пользователей и прав.
  3. Копирование настроек: Выберем пункт Копирование настроек. В открывшемся окне в поле «Копировать от» выберем пользователя-эталона, у которого мы только что настроили список.
  4. Выбор получателей: В списке «Копировать кому» выберем конкретных сотрудников, группу пользователей или установим флаг «Всем пользователям».
  5. Выбор конкретных параметров: Это критически важный этап. В списке настроек необходимо развернуть узел, соответствующий нужной форме (например, «Форма списка документов продажи»), и выбрать пункт Настройки внешнего вида. Именно в них хранится УсловноеОформление динамического списка.
  6. Завершение: Нажмем «Скопировать и закрыть».

Проанализируем ситуацию: если у пользователей уже были свои индивидуальные настройки этой формы, новые настройки могут «наслоиться» или не примениться корректно. В таком случае рекомендуется предварительно выполнить операцию Очистка настроек для этих пользователей в том же разделе администрирования.

Способ 2. Техническая отладка работы динамического списка

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

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

  1. Откроем форму списка и выберем реквизит с типом ДинамическийСписок.
  2. В свойствах реквизита нажмем на ссылку Настройка списка.
  3. Перейдем на закладку Условное оформление.
  4. Обратим внимание на нижнюю часть окна. Чтобы настройки пользователя имели приоритет и корректно отображались на клиенте, рекомендуется снять галочку Включать в пользовательские настройки для предопределенных элементов, если они конфликтуют.
  5. Установим Режим редактирования в значение Быстрый доступ. Это гарантирует, что система будет активнее подтягивать изменения оформления в интерфейс пользователя.

Способ 3. Программное тиражирование через Хранилище настроек

Для продвинутых пользователей и программистов рассмотрим вариант автоматизации процесса. Все настройки форм, включая УсловноеОформление, сохраняются в системных таблицах базы данных. Мы можем программно управлять этим процессом, используя ХранилищеСистемныхНастроек.

Проанализируем пример логики, которую можно реализовать во внешней обработке:


// Пример получения настроек эталона
Настройки = ХранилищеСистемныхНастроек.Загрузить("Общее/НастройкиФорм/ИмяВашейФормы", "", , ИмяПользователяЭталона);

// Запись настроек целевому пользователю
Если Настройки <> Неопределено Тогда
    ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиФорм/ИмяВашейФормы", "", Настройки, , ИмяЦелевогоПользователя);
КонецЕсли;

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

Способ 4. Фиксация оформления через расширение конфигурации

Если мы хотим, чтобы условное оформление было «жестким» и не зависело от того, сбросит пользователь настройки или нет, лучше всего использовать расширение. Рассмотрим, как это сделать:

  1. Создадим новое Расширение и добавим в него форму списка нужного документа.
  2. В модуле формы расширения создадим обработчик события ПриСозданииНаСервере.
  3. Пропишем программное добавление правил оформления. Рассмотрим пример кода:

&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    
    // Создаем элемент условного оформления
    Элемент = Список.УсловноеОформление.Элементы.Добавить();
    
    // Настраиваем оформление: красный цвет текста
    Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ОсобыйТекст);
    
    // Устанавливаем условие: Сумма > 100 000
    Условие = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Условие.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СуммаДокумента");
    Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
    Условие.ПравоеЗначение = 100000;
    Условие.Использование = Истина;
    
    // Указываем, какие поля оформлять
    ПолеОформления = Элемент.Поля.Элементы.Добавить();
    ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("СуммаДокумента");
    ПолеОформления.Использование = Истина;
    
КонецПроцедуры

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

Способ 5. Управление приоритетами и очистка кэша настроек

Разберем ситуацию, когда настройки скопированы, но у части пользователей они не отображаются. Это часто связано с приоритетом настроек. В 1С 8.3 действует следующая иерархия:

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

Рекомендация: Для массового внедрения оформления всегда начинайте с очистки настроек пользователей для конкретной формы. В УТ 11 это делается через Администрирование — Настройки пользователей и прав — Очистка настроек. Выберите конкретную форму и нужных пользователей, после чего выполните копирование «эталона» заново.

Резюме

Для быстрой настройки «раскраски» списков в 1С:Управление торговлей 11 без программирования используйте механизм Копирования настроек в разделе администрирования. Если же вы сталкиваетесь с тем, что настройки не применяются, проверьте свойства ДинамическогоСписка в конфигураторе (особенно Режим редактирования и Быстрый доступ) или воспользуйтесь расширением для программной установки правил оформления. Это обеспечит порядок в интерфейсе и поможет избежать хаоса при работе большого количества сотрудников.

← На главную