При разработке новых документов в конфигурации «1С:Бухгалтерия предприятия 3.0» разработчики часто сталкиваются с задачей отображения текущего статуса документа: проведен, не проведен, помечен на удаление или скорректирован вручную (со значком карандаша). Нередко возникает ситуация, когда запрос динамического списка настроен корректно и возвращает нужный числовой индекс состояния, однако в пользовательском интерфейсе отображаются только стандартные пиктограммы платформы, а значок ручной корректировки так и не появляется.
Разберем по шагам, почему возникает такое поведение платформы и как правильно связать динамический список с коллекцией картинок типовой конфигурации.
По умолчанию динамический список управляемой формы платформы 1С использует свойство Список.СтандартнаяКартинка. Это базовая системная коллекция, которая состоит всего из трех стандартных состояний:
Если в свойствах таблицы или ее колонок явно не переопределена коллекция картинок, платформа просто не сможет отобразить расширенные индексы (включая ручную корректировку), а сам значок будет выводиться стандартного системного размера, отличаясь от типовых списков конфигурации.
Проанализируем текст запроса динамического списка. Нам необходимо вычислить числовой индекс, соответствующий номеру нужной картинки в типовой коллекции БиблиотекаКартинок.СостоянияДокументов.
Посмотрим на пример конструкции ВЫБОР в тексте произвольного запроса динамического списка:
ВЫБОР
КОГДА ДокументАвансовыйОтчет.РучнаяКорректировка = ИСТИНА
ТОГДА ВЫБОР
КОГДА ДокументАвансовыйОтчет.ПометкаУдаления = ИСТИНА
ТОГДА 10
КОГДА ДокументАвансовыйОтчет.Проведен = ЛОЖЬ
ТОГДА 9
ИНАЧЕ 8
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА ДокументАвансовыйОтчет.ПометкаУдаления = ИСТИНА
ТОГДА 2
КОГДА ДокументАвансовыйОтчет.Проведен = ИСТИНА
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ
КОНЕЦ КАК СостояниеДокумента
Обратите внимание: если ваш документ делает проводки, но не содержит собственного реквизита РучнаяКорректировка, признак ручной правки необходимо получать левым соединением с соответствующим набором записей регистра бухгалтерии (РегистрБухгалтерии.Хозрасчетный.РучнаяКорректировка) по полю регистратора.
Рассмотрим, как связать полученное числовое поле СостояниеДокумента с визуальным отображением в таблице формы. Сделать это можно двумя способами в зависимости от требуемого размещения пиктограммы.
Вариант 1. Отображение пиктограммы в качестве картинки строк таблицы
Список).БиблиотекаКартинок.СостоянияДокументов (или СостоянияДокумента в зависимости от релиза).Список.СостояниеДокумента.Вариант 2. Отображение пиктограммы в конкретной колонке (например, «Дата»)
СписокДата).СостоянияДокументов.Список.СостояниеДокумента.Рассмотрим альтернативные методы решения задачи, если использование числового выражения в основном тексте запроса списка нежелательно:
РучнаяКорректировка Равно Истина и Проведен Равно Истина) устанавливается оформляемое поле и задается значение свойства оформления Картинка.