Недавно встала задача в конфигурации ERP в форме списка документов "Заказы клиентов", выводить дополнительную информацию в виде "скрепки" которая бы говорила о том что данный документ имеет прикрепленные скан копии документов подтверждающие его значимость.
В стандартной конфигурации за вывод списка документов отвечает динамический список, там нужная информация отсутствует рис 1-2.

Рис 1.

Рис 2.
Сама форма списка выглядит пока вот так рис 3. Кроме того что заказ проведен не видим ни каких других картинок

Рис 3.
Решение .
Оно заключается в двух вариантах назовем их так:
- Меняем жестко динамический список 
- Меняем мягко динамический список 
1. Меняем динамический список на уровне запросов
Поискал где и информация о том что к документу прикреплены скан копии файлы документов.
Они конечно же в регистре сведений "Наличие файлов", разработку ведем в расширении,
заимствуя туда необходимые объекты рис 4.

Заходи на "ФормуСпискаДокументов" ( а не на "Форму Списка" !) и меняем динамический список добавив регистр "Наличие файлов" и создав "Левое соединение" с регистром . рис 5-6.

Рис 5.

В динамическом списке появилось новое поле "ЕстьФайл" типа булево. Рис 7.

Рис 7.
В свойствах поля устанавливаем тип "картинка" и назначаем картинку "скрепку" в том числе и в шапке поля Рис 8.

Все готово осталось посмотреть на результат Рис 9.

2. Минимальное изменение запроса в динамическом списке, вывод дополнительной информации при обработке списка.
Исходный запрос динамического списка может быть достаточно сложный в плане соединений таблиц источников и другого, для того чтобы добавить свои изменения в виде соединений с регистрами.
Какой же вариант в этом случае? Он заключается в добавление в запрос лишь полей которые будут выводится на форме. Рис 2.1

По умолчанию это поле всегда имеет значение = Ложь, поле появилось у нас в динамическом списке, выносим его на форму установив вид "Поле Картинки" и установив значение поля "Картинка значений" в виде картинки скрепки Рис 2.2

Ну и теперь остается получить каким то образом доступ к дополнительным реквизитам чтобы присвоить им значения при выводе формы списка (Заказы клиента).
За это отвечает метод модуля формы - "СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)", в этом методе параметр "Строки" поможет реализовать заполнение при выводе списка. Заимствуем этот метод в расширение из основной конфигурации с директивой "&Изменение Контроль" и пропишем в нем необходимы код. Рис 2.3
&НаСервереБезКонтекста
&ИзменениеИКонтроль("СписокПриПолученииДанныхНаСервере")
Процедура sps_СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
	
	#Вставка 	
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	НаличиеФайлов.ЕстьФайлы КАК ЕстьФайлы,
	|	НаличиеФайлов.ОбъектСФайлами КАК ОбъектСФайлами
	|ИЗ
	|	РегистрСведений.НаличиеФайлов КАК НаличиеФайлов
	|ГДЕ
	|	 НаличиеФайлов.ОбъектСФайлами В(&ЗаказыКлиента)";
	
	Запрос.УстановитьПараметр("ЗаказыКлиента",Строки.ПолучитьКлючи()); 
	
	РезультатЗапроса = Запрос.Выполнить();
	Выборка = РезультатЗапроса.Выбрать();
	
	Если  Выборка <> неопределено Тогда
		Пока Выборка.Следующий() Цикл
			// Вставить обработку выборки ВыборкаДетальныеЗаписи
			СтрокаСписка = Строки[Выборка.ОбъектСФайлами];
			СтрокаСписка.Данные.ЕстьФайл = Выборка.ЕстьФайлы; 	
		КонецЦикла;
	КонецЕсли;
	#КонецВставки
	
	// ЭлектронноеВзаимодействие.СервисEDI
	ДокументыEDIИнтеграция.ПриПолученииДанныхНаСервереСписокДокументов(Перечисления.ТипыДокументовEDI.ЗаказКлиента, ИмяЭлемента, Настройки, Строки);
	// Конец ЭлектронноеВзаимодействие.СервисEDI
	
КонецПроцедуры
Рис 2.3
В этом коде очень важным является параметр - "Строки" у него есть ключи это ссылки на документы и значение этих ключей в виде данных. "Строки.ПолучитьКлючи()" функция позволяет получить все содержимое динамического списка, для его использования в дальнейшем для внесения информации и отображении уже с внесенной информацией.
Первоначально значения поля динамического списка "ЕстьФайл" имеет значение ложь Рис 2.4.

Подготовим запросом (который мы в первом варианте включали в текст запроса динамического списка) необходимые данные - документы в которых есть присоединенные файлы.
Используя виде ключа ссылки ("ОбъектСФайлами") на документы заказ клиента, подставим необходимые данные
СтрокаСписка = Строки[Выборка.ОбъектСФайлами];
СтрокаСписка.Данные.ЕстьФайл = Выборка.ЕстьФайлы; 	и результат это список документов с дополнительными реквизитами или обработкой списка, можно назначить цвет, шрифт, вычислить какое то значение и другое при выводе списка.

Заключение:
Динамические списки мощный элемент в разработке на 1С, буду рад если для кого то материал статьи будет интересным.
До новых встреч на HABR .
(SPS).
Комментарии (5)
 - Naf200020.06.2025 12:56- В первом варианте я бы сделал изменение запроса программно, например через схему запроса. Во 2-м тоже, но там изменения минимальны. - По поводу второго: - РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Если Выборка <> неопределено Тогда Пока Выборка.Следующий() Цикл- Зачем проверка на неравенство Неопределено? 
 - ulovka2220.06.2025 12:56- Второй способ не даёт возможности устанавливать отбор по добавляемым колонкам, надо это иметь в виду 
 
           
 
sevenlis
а что в ЕРП разве нет функционала БСП?