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