С чего начать проверку условного оформления
Когда не работает условное оформление 1С, откройте форму в конфигураторе и определите, к какому элементу относится правило. Одинаково выглядящие на экране реквизит, поле, таблица и динамический список устроены по-разному. Правило, заданное для формы, не обязательно изменит строки списка, а настройка отчёта не влияет на обычную управляемую форму.
- Зафиксируйте ожидаемый результат: какое поле должно менять цвет, шрифт, видимость или доступность.
- Запишите конкретное условие и пример данных, при которых оно обязано выполниться.
- Проверьте поведение под тем же пользователем и в той же информационной базе, где замечена ошибка.
- Убедитесь, что открыта актуальная версия формы, а не сохранённый ранее вариант или другая команда открытия.
Для первичной диагностики сделайте условный тест максимально узким: одно заведомо истинное условие и одно оформляемое поле. Если он сработал, механизм исправен, а причину следует искать в исходном выражении, составе полей либо конфликте нескольких правил.
Правильно ли выбрано оформляемое поле
В редакторе правила отдельно задаются условие и список оформляемых полей. Частая ошибка — условие заполнено, но нужное поле не добавлено в оформление. Возможна и обратная ситуация: выбрано поле с похожим представлением, которое не является тем элементом, который пользователь видит на форме.
Сопоставьте имя реквизита формы, путь к данным элемента и колонку таблицы. Особенно внимательно проверьте формы, где данные выводятся через вложенные таблицы, реквизиты составного типа или вычисляемые значения. Заголовок колонки на экране может отличаться от внутреннего имени поля, поэтому ориентироваться только на подпись нельзя.
Если требуется оформить всю строку, проверьте, какие именно колонки включены в перечень оформляемых. Изменение одной колонки не распространяется автоматически на остальные. Для проверки временно оставьте одно заметное свойство оформления, например выделение шрифта, чтобы не спутать результат со стандартным выделением текущей строки.
Почему условие оказывается ложным
Следующий источник ошибки — сравнение значений разных типов. Строка, число, дата, булево значение, ссылка и пустое значение могут выглядеть похоже, но сравниваются по-разному. Например, текстовое представление ссылки не равно самой ссылке, а незаполненная дата отличается от пустой строки. Проверьте фактический тип реквизита и значение, поступающее в форму.
Сложное условие разбирайте по частям. Сначала оставьте одну проверку, затем последовательно возвращайте остальные. Учитывайте соединение через «И» и «ИЛИ», порядок группировки и отрицание. Если правило зависит от нескольких колонок, каждая из них должна быть доступна механизму оформления в момент вычисления.
Не проверяйте результат только на одной строке. Подготовьте несколько записей: одну, которая точно соответствует условию, одну пограничную и одну заведомо неподходящую. Такой набор показывает, не стало ли выражение истинным для всех записей или ложным для всего списка.
Что проверить в динамическом списке
Если условное оформление списка не работает, выясните, входит ли нужное поле в запрос динамического списка. Колонка может отображаться через представление или вычисляться отдельно, тогда правило не получает исходное значение в ожидаемом виде. После изменения запроса проверьте соответствие имён полей настройкам формы.
Обратите внимание на отборы, группировки и пользовательские настройки. Они способны изменить состав данных и доступных полей. Сохранённый вариант формы иногда переопределяет оформление, которое разработчик видит в конфигураторе. Для диагностики сравните результат с новым пользователем либо после возврата настроек конкретной формы к стандартным. Сбрасывать все пользовательские настройки базы без необходимости не следует.
Если список обновляется после записи документа или изменения отбора, убедитесь, что данные действительно перечитаны. Уже показанные строки могут сохранять прежнее состояние до обновления. Проверьте отдельно первое открытие формы и её поведение после изменения данных: это помогает отличить ошибку правила от несвоевременного обновления списка.
Конфликт правил и программного изменения формы
На один элемент могут одновременно влиять несколько правил. Более позднее или более подходящее условие способно задать тому же полю другой цвет, шрифт либо доступность. Просмотрите весь набор условного оформления, включая настройки самой формы, списка и отчёта. Временно отключайте правила по одному, сохраняя исходную конфигурацию для возврата.
Также проверьте обработчики формы. Код при создании на сервере, открытии, изменении реквизита или обновлении отображения может программно менять свойства элементов. Если оформление появляется на мгновение, исчезает после действия пользователя или работает только при первом открытии, вероятен именно такой конфликт.
Сравните обычное и программное открытие формы. Передаваемые параметры могут выбирать другой вариант, устанавливать отбор или менять видимость колонок. В расширениях конфигурации тоже могут находиться изменения этой формы. Проверку нужно проводить с учётом расширений, но отключать их в рабочей базе без согласованной процедуры не стоит.
Особенности отчётов и версии платформы 8.3
В отчётах оформление обычно связано со схемой компоновки данных и пользовательским вариантом. Поэтому правка основной схемы может не проявиться в ранее сохранённом варианте отчёта. Проверьте стандартный вариант, состав выбранных полей, отбор и настройки оформления. Условие должно опираться на поле, доступное в текущем наборе данных.
Если проблема появилась после обновления платформы 1С 8.3 или конфигурации, сначала воспроизведите её на копии базы с теми же версиями. Запишите номер версии платформы, режим приложения, название формы и последовательность действий. Не стоит сразу считать обновление причиной: одновременно могли измениться форма, расширение, права пользователя или сохранённые настройки.
Полезно сравнить тонкий и веб-клиент, если оба режима предусмотрены вашей системой. Различие результатов сужает область поиска, но исправление лучше проверять в штатном для сотрудников клиенте. После каждой правки очищайте тест: повторно откройте форму, обновите данные и убедитесь, что правило корректно работает не только на подготовленном примере, но и на обычных записях.
Последовательность безопасного исправления
Работайте на копии информационной базы или в отдельной тестовой среде. Перед изменением сохраните исходное правило и условия воспроизведения. Затем оставьте одно правило, одно поле и заведомо истинное выражение. После успешного теста возвращайте по одному исходному условию и свойству оформления.
Если минимальное правило не действует, перепроверьте путь к данным, состав колонок, запрос списка и код формы. Если действует, причина находится в удалённой части исходной настройки. Такой порядок быстрее случайной смены цветов и условий, потому что после каждого шага остаётся понятный результат.
В завершение проверьте форму под обычными правами пользователя. У разработчика могут быть доступны поля или данные, которых нет у сотрудника. Зафиксируйте найденную причину, изменённый объект и сценарий проверки: это позволит повторить тест после следующего обновления конфигурации.