Как настроить отображение статуса документа в виде пиктограммы в динамическом списке 1С?

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

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

Основные принципы работы картинок строк

Система отображения пиктограмм в списках основана на использовании коллекции картинок (strip image). Платформа берет один файл, содержащий набор иконок, и разрезает его на части равного размера. Важно понимать, что для корректной работы коллекции, все значки в ней должны иметь одинаковые размеры, а между ними не должно быть пустых отступов.

Когда вы используете Динамический список с установленной Основной таблицей, платформа автоматически определяет состояние объекта (проведен, не проведен, помечен на удаление). Однако, если используется Произвольный запрос, система «теряет» связь с объектом, и нам необходимо самостоятельно передать индекс картинки в специальное поле.

Реализация для динамического списка с произвольным запросом

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

  1. Подготовка запроса: В ваш запрос необходимо добавить вычисляемое поле, которое будет возвращать числовой индекс (например, НомерКартинки). Этот индекс определяет, какая именно иконка из коллекции будет показана пользователю.
  2. Логика определения индекса: С помощью конструкции ВЫБОР КОГДА ... ТОГДА ... ИНАЧЕ ... КОНЕЦ в тексте запроса определите числовые значения для каждого статуса.

Посмотрим на пример кода, который можно использовать в Динамическом списке:


ВЫБРАТЬ
    ПриходДенег.Ссылка КАК Документ,
    ВЫБОР 
        КОГДА ПриходДенег.Проведен ТОГДА 1 
        КОГДА ПриходДенег.ПометкаУдаления ТОГДА 3 
        ИНАЧЕ 0 
    КОНЕЦ КАК НомерКартинки
ИЗ
    Документ.ПриходДенег КАК ПриходДенег
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
    РасходДенег.Ссылка,
    ВЫБОР 
        КОГДА РасходДенег.Проведен ТОГДА 1 
        КОГДА РасходДенег.ПометкаУдаления ТОГДА 3 
        ИНАЧЕ 0 
    КОНЕЦ
ИЗ
    Документ.РасходДенег КАК РасходДенег

Настройка формы

После того как данные в запросе подготовлены, необходимо правильно настроить сам элемент формы:

Важные нюансы

При работе с индексами картинок помните, что отсчет всегда начинается с нуля. 0 — это первая картинка в коллекции, 1 — вторая и так далее. Если вы решите использовать собственную коллекцию картинок, внимательно проверьте соответствие индексов и изображений.

Почему автоматика не всегда работает? Если у вас нет Основной таблицы в настройках динамического списка, система не может самостоятельно связать ссылку на документ с его состоянием. Именно поэтому использование Произвольного запроса требует явного указания поля НомерКартинки. Этот подход является «обманным маневром», который позволяет системе отобразить визуальный ряд точно так же, как в типовых документах, но под нашим полным контролем.

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

← На главную