СКД. Отчеты с картинками

Публикация № 1125765

Разработка - Практика программирования

СКД изображения картинки вывод прайс УТ УТ11

178
Решение популярных кейсов с картинками в отчетах на СКД.

Опять баян

Тема с добавлением картинок в отчеты на СКД появляется периодически на просторах сообщества и вне его. Самыми популярными задачами являются добавление логотипа компании в шапку отчета и отображение картинок товаров.

Почти всегда эти требования появляются для прайс-листов, но бывают и исключения.

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

Кейс №1: Логотип в шапке отчета

Начнем с простой задачи - вывод логотипа в шапку отчета на СКД.

Хочу логотип

И так, у нас есть простой внешний отчет "Прайс-лист", в котором для номенклатуры выводятся цены в разрезе их типов. Отчет создан для типовой конфигурации "Управление торговлей" версии 11. На следующем скриншоте представлен вывод для стандартных настроек отчета.

 
 Пример вывода стандартного отчета

Наша задача заключается в добавлении в шапку табличного документа отчета логотипа компании. Для этого нам необходимо программно сформировать отчет и вставить изображение логотипа. Теперь подробнее.

Подготовка

Для начала нам необходимо подготовить изображение для логотипа. Во внешний отчет добавим макет табличного документа "Логотип", в который вставим объект "Картинка" с необходимым изображением.

 
 Настройка макета для логотипа

Не забудьте создать область табличного документа для ячеек, где находится изображение логотипа. В текущем примере область названа "Логотип". Также нужно создать область "СвернутьЛоготип", которая будет использоваться для сворачивания/разворачивания логотипа в сформированном отчете.

Теперь нам необходимо вмешаться в процесс компоновки отчета программным образом. Для этого в модуле объекта отчета в процедуре-обработчике "ПриКомпоновкеРезультата" напишем алгоритм формирования отчета. На первом этапе сформируем отчет таким, какой он был без логотипа. Алгоритм процедуры будет следующим:

 
 Вывод логотипа при компоновке результата

Алгоритм программного исполнения отчета не имеет ничего особенного, все стандартно. Перейдем непосредственно к решению поставленной задачи. Выводить логотип из дополнительного макета будем перед выполнением процессора вывода компоновки, но после очистки табличного документа. Итоговый программный код вывода логотипа в шапке отчета приведен на следующем листинге:

 
 Изменения для вывода логотипа

На этом процесс модификации отчета закончен. Посмотрим результат работы в режиме предприятия.

В режиме предприятия

Запустим созданный отчет в режиме предприятия. Мы увидим следующую картину:

Как мы видим, в шапке табличного документа появился логотип, изображение которого мы добавили в дополнительный макет отчета. Благодаря группировке строк имеется возможность свернуть логотип. 

Разумеется, предложенный способ не самый универсальный, так как при изменении логотипа компании будет необходимо изменять макет отчета в режиме конфигуратора. Более правильно было бы получить изображение из информационной базы, например из элемента справочника "Организации". К тому же в текущей реализации отчета пользователь не сможет отключить вывод логотипа, только свернуть его. Все эти недостатки решаются, но не в рамках данной статьи. Таким образом, мы получили отчет "Прайс-лист" с выводом логотипа компании.

Кейс №2: Вывод изображений номенклатуры

Теперь задача посложнее - нужно выводить изображения номенклатуры. Рассмотрим вариант решения по шагам.

Предисловие

Приходилось ли Вам решать задачу по выводу изображений в отчете, построенном на системе компоновки данных (СКД)? Если да, то наверняка возникали сложности с добавлением рисунка в результирующий табличный документ и стабильной работой отчета при изменении настроек вывода. В любом случае статья Вам будет полезна на будущее, потому что подобная задача может встретиться каждому разработчику. 

 
 Пример сформированного отчета с изображением

Сегодня в статье рассмотрим возникающие проблемы при решении подобной задачи, а также реализацию универсального способа отображения картинок в отчете на СКД, работающего стабильно при любых изменениях варианта отчета пользователем.

В чем проблема?

Проблема с выводом картинок в отчете на СКД заключается в том, что механизм не поддерживает данную возможность сам по себе. Не смотря на то, что в конструкторе системы компоновки мы можем создавать собственные макеты, использовать их для вывода изображений не получится. При добавлении в макет объекта "Рисунок", в дальнейшем это изменение игнорируется компоновщиком.

Например, добавим в поле макета рисунок, как показано на следующем изображении:

 
 Добавляем изображение в макет СКД

В теории, СКД должна вывести в данной ячейке добавленный рисунок, но этого не происходит:

 
 Нет изображения в отчете!

Как мы видим, создание собственного макета не является решением данной задачи. Использование собственного макета имеет весьма ограниченные возможности в сравнении с отчетами НЕ на СКД.

На просторах глобальной сети находил несколько вариантов решения по выводу изображений в подобных отчетах. В основном все они основывались на обработке табличного документа после вывода отчета, когда программным образом искалась колонка в табличном документе и обходилась в цикле для добавления в соответствующие ячейки рисунков. Однако после изменения настроек варианта отчета в пользовательском режиме подобные отчеты работали нестабильно. Представьте, что структура отчета вида "Список" была изменена на "Таблица". Тогда алгоритм сразу переставал работать, так как ориентироваться на колонку с изображениями уже было нельзя.

Рассмотрим универсальное решение данной задачи, работающее при любых настройках отчета и выполняемой достаточно оптимальным образом.

Универсальное решение

Так какое же решение использовать, чтобы сохранить все возможности СКД по настройке отчета и скорость его работы была на оптимальном уровне? Такое решение есть, давайте рассмотрим его подробно.

Начнем с того, что нам придется изменить макет СКД в конструкторе, но не для добавления туда картинки, а для изменения вывода ячейки, в которой будет отображаться картинка. Пример такого отчета будет делать для типовой конфигурации "Управление торговлей" версии 11. В соответствии с текущими настройками конфигурации, файлы картинок, как и все прикрепленные файлы, хранятся в регистре сведений "ДвоичныеДанныеФайлов" в ресурсе "ХранимыйФайл" (тип "ХранилищеЗначений"), при этом связь элемента справочника "Номенклатура" и значения в регистре сведений осуществляется через справочник "НоменклатураПрисоединенныеФайлы", в элементах которого хранится информация о загруженных файлах. В самой номенклатуре в реквизите "ФайлКартинки" выбирается основное изображение из справочника "НоменклатураПрисоединенныеФайлы".

 
 Изменяем запрос набора данных для получения изображений

Запрос отчета на СКД выбирает в запросе номенклатуру и ссылку на файл основного изображения. Если мы выведем отчет на такой стадии, то он будет выглядеть следующим образом:

 
 Отчет еще не готов!

Из рисунка выше мы видим, что в отчете ссылка на присоединенный файл (элемент справочника "НоменклатураПрисоединенныеФайлы") отображается в виде представления (реквизит "Наименование"). Чтобы вмешаться в процесс формирования отчета и отобразить изображение в табличном документе, нам необходимо изменить алгоритм компоновки отчета.

Для начала в обработчике "ПриКомпоновкеРезультата" модуля объекта отчета отключим стандартную обработку и сформируем отчет полностью программным образом.

 
 Подготовим программное формирование отчета

Действия в программном коде подробно описаны в комментариях. Отмечу лишь важные моменты:

  1. В начале процедуры "ПриКомпоновкеРезультата" проводим инициализацию настроек.
  2. Далее по обычному алгоритму формируем отчет.
  3. Обязательно необходимо заполнить данные расшифровки, чтобы мы могли получать ссылки на данные, хранящиеся в ячейках табличного документа.

В результате выполнения отчета с внесенными изменениями, он выполнится точно таким же образом, как если бы мы никаких изменений не вносили. 

Теперь самый важный момент: после вывода отчета в табличный документ (метод "Выполнить" процессора вывода) нам необходимо обойти ВСЕ ячейки табличного документа, и если в ячейке содержится поле расшифровки значения с типом "СправочникСсылка.НоменклатураПрисоединенныеФайлы", необходимо добавить в эту ячейку объект "Рисунок" и заполнить его изображением, хранящемся в регистре сведений (схему хранения изображений для справочника "Номенклатура" смотри выше). На следующем скриншоте приведен программный код для выполнения описанных действий:

 
 Обходим ячейки отчета для добавления изображений

Код имеет подробные комментарии. В общих чертах алгоритм проверяет все ячейки табличного документа на значение расшифровки "СправочникСсылка.НоменклатураПрисоединенныеФайлы". Если ячейка имеет поле расшифровки с соответствующим типом данных, то выполняется функция "ПолучитьИзображение", в качестве параметра которому передается значение расшифровки:

 
 Получение двоичных данных изображения

Может возникнуть логичный вопрос: "Почему не получить двоичные данные для изображений в одном запросе?". Ответ прост. Если мы будем получать изображения из регистра двоичных данных файлов в одном запросе, то очень велика вероятность получить ошибку "Недостаточно памяти", если размер выбираемых изображений будет очень большим.

Конечно, выполнять запрос в цикле тоже не правильно. Есть наиболее оптимальный способ получения изображений в нашем случае, но чтобы не усложнять пример оставим этот, относительно простой, способ получения картинок.

На этом реализация отчета закончена, посмотрим на его работу в режиме предприятия.

Что имеем

Сформируем отчет в виде простого списка номенклатуры. Результат будет следующим:

Теперь изменим настройки отчета. Вместо списка отчет будет иметь структуру таблицы, где строки - это ссылка на номенклатуру, а колонки - изображения.

Выше было упомянуто, что большинство решений по выводу картинок в отчетах на системе компоновки данных не работают стабильно для сложных вариантов настроек отчета пользователем.

Предложный подход позволяет вывести картинки для любой, даже самой сложной, структуры отчета и настроек отдельных полей. Давайте посмотрим на результат формирования отчета для новой настройки:

 
 Финальный вариант после перемещения картинок в заголовки колонок таблицы

Таким образом, мы сделали отчет, в котором выводятся настройки практически для любой структуры вывода в настройках. Производительность отчета на приемлемом уровне: время выполнения отчета с картинками и без для 500 позиций номенклатуры изменилась незначительно (тест проводился на файловой базе). Подобный отчет будет работать в любом режиме запуска приложения (тонкий, толстый или веб-клиент). Разумеется, есть способы совершенствования предложенного способа вывода картинок в отчеты на СКД, но они выходят за рамки статьи. Думаю, что после экспериментов Вы все сделайте самостоятельно.

Платформенный путь

Хорошие новости! Платформа 1С начиная с версии 8.3.14 (причем режим совместимости тоже должен быть 8.3.14 и выше) позволяет штатными средствами выводить картинки в отчетах на СКД. Вот официальная информация. Использовать новый функционал проще простого! Нужно сделать следующие шаги:

  1. Убедиться, что у вас режим совместимости 8.3.14 и выше, иначе функционал не будет доступен.
  2. В запросе получить двоичные данные картинок в отдельном поле.
  3. Добавить это поле в выбранные поля.
  4. Добавить условное оформление для этого поля, указав отображение картинки, положение и размер. Последние две настройки по необходимости.
 
 Инструкция с картинками

Конечно, есть и некоторые ограничения. Например, картинку в шапку Вы так не выведите, но для решения большинства задач работает отлично.

Спасибо за внимание

Благодарю за интерес к статье! Это не первая, и, я надеюсь, не последняя статья про вывод изображений в отчетах на СКД на Инфостарте. Ждем появления информации об опыте наших коллег. В будущем подходы к решению подобных задач могут измениться. Будем следить за событиями.

А пока всем удачи, здоровья, успехов! Подписывайтесь на канал, оставляйте комментарии. :)

Другие ссылки

178

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. rpgshnik 1692 26.09.19 05:35 Сейчас в теме
Дельная статья и собрано в одном месте. Подача материала как всегда хорошая, лови ⭐
VVi3ard; rovenko.n; jaroslav.h; wowik; user1227864; МимохожийОднако; VIA_1C; YPermitin; +8 Ответить
2. YPermitin 5199 26.09.19 06:22 Сейчас в теме
3. ZloyProger 6 26.09.19 08:54 Сейчас в теме
(0) Автор пеши есчо)) Как всегда отличная подача и материал интересный, лови заслуженный плюс.
VVi3ard; YPermitin; +2 Ответить
4. YPermitin 5199 26.09.19 08:56 Сейчас в теме
(3) хммм, и правда. Возможно забыл что-то, перепроверю сегодня :)

Спасибо )
5. ZloyProger 6 26.09.19 08:57 Сейчас в теме
(4) Да я отредактировал уже :-(, там же в процедуре получения изображения проверка и возврат пустой картинки если не тот тип) Поспешишь - людей насмешишь)
6. YPermitin 5199 26.09.19 08:59 Сейчас в теме
(5) очепятался по полной :)
7. glek 112 26.09.19 09:10 Сейчас в теме
Классная статья. Утаскиваю в закладки
8. makc2k 91 26.09.19 10:05 Сейчас в теме
Можно выводить картинки "при компоновке" анализируя значение элемента КД

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
		
	Компоновщик = новый КомпоновщикМакетаКомпоновкиДанных;
	Настройки = ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки();
	МакетКомпоновки = Компоновщик.Выполнить(СхемаКомпоновкиДанных,Настройки);
	
	ПроцессорКД = новый ПроцессорКомпоновкиДанных;
	ПроцессорКД.Инициализировать(МакетКомпоновки);
	
	ПроцессорВывода = новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	
	ПроцессорВывода.НачатьВывод();
	
	Пока Истина Цикл
		
		ЕлементРКД = ПроцессорКД.Следующий();
		
		Если ЕлементРКД = Неопределено Тогда
			Прервать;
		КонецЕсли;
		
		Рисунки = Новый Соответствие;
		
		// 1. Собираем рисунки
		
		Если ЕлементРКД.ЗначенияПараметров.Количество()>0 Тогда
			Для каждого Параметр Из ЕлементРКД.ЗначенияПараметров Цикл
				Если ТипЗнч(Параметр.Значение) = Тип("ХранилищеЗначения") Тогда
					КартинкаТД = ДокументРезультат.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
					КартинкаТД.Картинка = новый Картинка(Параметр.Значение.Получить());
					КартинкаТД.РазмерКартинки = РазмерКартинки.Пропорционально;
					
					Рисунки.Вставить(Параметр.Имя,КартинкаТД);
					
					Параметр.Значение = Параметр.Имя;
					
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
		
		ПроцессорВывода.ВывестиЭлемент(ЕлементРКД);
		
		// 2. Вывести рисунки в табличный документ
		
		Для каждого Рисунок Из Рисунки Цикл
			
			ШиринаСтроки = ДокументРезультат.ШиринаТаблицы;
			
			Для Колонка = 1 По  ШиринаСтроки Цикл
				ВысотаТаб = СтрЗаменить(ДокументРезультат.ВысотаТаблицы, Символы.НПП, "");
				ОбластьВывода = ДокументРезультат.Область("R" + ВысотаТаб + "C" + Колонка);
				Если ОбластьВывода.Текст = Рисунок.Ключ Тогда
					Прервать;
				КонецЕсли;
			КонецЦикла;
			
			Рисунок.Значение.Расположить(ОбластьВывода);
			ОбластьВывода.ВысотаСтроки = 100;
		КонецЦикла;
	КонецЦикла;
	
	ПроцессорВывода.ЗакончитьВывод();
КонецПроцедуры
Показать
alevnev; acanta; YPermitin; A_Max; +4 Ответить
9. YPermitin 5199 26.09.19 11:58 Сейчас в теме
(8) супер вариант!

Если не будете против, то через пару дней этот вариант добавлю в конце публикации с упоминанием Вашего авторства.
17. makc2k 91 26.09.19 17:13 Сейчас в теме
(9) Конечно нет, тем более сам его унес из УЦ №1 )))
10. ids79 4128 26.09.19 12:10 Сейчас в теме
Спасибо за статью!
Хорошие новости! Платформа 1С начиная с версии 8.3.14 (причем режим совместимости тоже должен быть 8.3.14 и выше) позволяет штатными средствами выводить картинки в отчетах на СКД

Здорово, не знал. Ну наконец-то сделали )).
acanta; Yashazz; YPermitin; +3 Ответить
11. YPermitin 5199 26.09.19 12:15 Сейчас в теме
(10) я сам сначала в шоке был :)
12. Den75Ch 26.09.19 12:37 Сейчас в теме
13. AlX0id 26.09.19 14:02 Сейчас в теме
В запросе получить двоичные данные картинок в отдельном поле.

Это, конечно, хорошо.. Но как тогда быть вот с этим?
Если мы будем получать изображения из регистра двоичных данных файлов в одном запросе, то очень велика вероятность получить ошибку "Недостаточно памяти", если размер выбираемых изображений будет очень большим.
YPermitin; +1 Ответить
14. YPermitin 5199 26.09.19 14:21 Сейчас в теме
(13) подходить разумно:)

То есть:
1. Не хранить картинки для отчетов по 2.5 МБ
2. Ее формировать отчеты с выводом 1000 картинок. Все таки это больше какой-то точечный отчет.
3. Смириться и докупить железа :)
15. AlX0id 26.09.19 14:49 Сейчас в теме
(14)
Ну то есть 1сники чот сделали, но как это будет работать - хз )

По поводу смириться и докупить железа - еще не факт, возможно, просто расширить файл подкачки - ведь, если я правильно понимаю - если не хватает памяти реальной - она свопается на диск. Уж такого чтобы вообще "Не хватает памяти" - это либо 32битная система должна быть или же сильно маленький своп-файл..
YPermitin; +1 Ответить
16. YPermitin 5199 26.09.19 15:05 Сейчас в теме
(15) на маленьких отчетах у меня нареканий нет. На больших не смотрел.

По нехватке памяти там сложнее. А на клиент-сервере еще вопросы с размером сеансовых данных будут и др. Вообщем надо тестить :)
21. RocKeR_13 690 27.09.19 11:45 Сейчас в теме
(13) Еще на прошлых платформах, когда не добавили эту фишку, делал отчет по методу, описанном в сообщении (8). Так вот, отчет выводился, в котором было картинок на 6 Гб))) При этом временные файлы раздувались примерно до 18-20 Гб, но отчет формировался. На криво настроенной виртуалке время формирования приближалось к 5 часам))) Но тем не менее. Не думаю, что использование нового функционала платформы будет хуже)
YPermitin; +1 Ответить
22. YPermitin 5199 27.09.19 11:47 Сейчас в теме
23. RocKeR_13 690 27.09.19 11:52 Сейчас в теме
(22) ну да, сеть магазинов одежды и обуви) Там картинки просто "жирные". На файловом варианте 1С пробовал этот же отчет на базе другого клиента - 800 строк с картинками выводились примерно минут 7-10
24. nsirotkin@mail.ru 72 30.09.19 08:33 Сейчас в теме
(23) Табличный документ получается сильно легче, а на экране или печати разницы не видно

Функция ВывестиИзображениеВОбластиТД(ДанныеКартинки, ТД, Область)
     Изображение = ТД.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
     Изображение.РазмерКартинки = РазмерКартинки.Пропорционально;
     Индекс = ТД.Рисунки.Индекс(Изображение);
     //ТД.Рисунки[Индекс].Картинка = Новый Картинка(ДанныеКартинки, Истина);
	 ////////////////////////////////////////////////////////////­////////////////////
	 Картинка = Новый Картинка(ДанныеКартинки, Истина);
	 Размер = ДанныеКартинки.Размер();
	 МаксимальныйРазмер = 40000;
	 Если Размер > МаксимальныйРазмер Тогда
	    ОбрабатываемаяКартинка = Новый ОбрабатываемаяКартинка(Картинка);
		Попытка
			Если Картинка.ПлотностьПоВертикали() >= 150 Тогда
				ОбрабатываемаяКартинка.УстановитьПлотность(72, 72);
			КонецЕсли; 
		Исключение
			
		КонецПопытки;
	    //ОбрабатываемаяКартинка.Масштабировать(Макс(10,Окр(100*МаксимальныйРазмер/Размер)));
	    Ширина = Картинка.Ширина();
	    МаксимальнаяШирина = 320;
	    Если Ширина > МаксимальнаяШирина Тогда
	    	ОбрабатываемаяКартинка.УстановитьРазмер(МаксимальнаяШирина,Окр(Картинка.Высота()/Ширина*МаксимальнаяШирина));
	    КонецЕсли; 
	    Картинка = ОбрабатываемаяКартинка.ПолучитьКартинку();
	 КонецЕсли; 
	 ТД.Рисунки[Индекс].Картинка = Картинка;
	 ////////////////////////////////////////////////////////////­////////////////////
	  
     ТД.Рисунки[Индекс].Расположить(Область);
     Возврат ТД.Рисунки[Индекс]; 
КонецФункции
Показать
18. Yashazz 2859 26.09.19 17:21 Сейчас в теме
Кстати в новых релизах хвалятся, что ещё более будут продвигать вопрос картинок в СКД. В условном оформлении там и прочая, даже на Зазеркалье кажись было.
YPermitin; +1 Ответить
19. YPermitin 5199 26.09.19 18:29 Сейчас в теме
(18) про Зазеркалье не знал. Как-то упустил из виду.
20. pan_alex 27.09.19 11:15 Сейчас в теме
Оставьте свое сообщение

См. также

Немного про СКД. Характеристики и проверка пустого отчета 70

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пример использования характеристик в СКД и программная работа с ними. А также описание проверки результата отчета на заполненность.

10.10.2019    2563    YPermitin    7       

Полезняшки по СКД и построителям. Просто код 40

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Универсальные функции

Полезные процедуры и функции для работы с построителями и СКД. Просто исходник.

10.10.2019    2743    Yashazz    43       

Две схемы СКД в одном отчете с пользовательскими параметрами 15

Статья Программист Нет файла v8::СКД Россия Бесплатно (free) Практика программирования

Простая реализация разных по типу отчетов в одном. Применение нескольких схем компоновки с корректной передачей пользовательских параметров.

10.10.2019    1518    evgeni-red    6       

Три способа создания одного отчета на СКД 77

Статья Программист Нет файла v8 v8::СКД ERP2 УТ11 КА2 Бесплатно (free) Практика программирования

СКД имеет столько возможностей, что часто приходится выбирать, каким образом строить отчет. Причем выбор не всегда очевидный. В статье рассмотрен пример построения отчета «Отрицательные остатки по товарам на момент проведения расходных документов» тремя разными способами. Приведены «За» и «Против» каждого варианта решения задачи.

08.10.2019    3864    ids79    23       

СКД не только для отчетов 139

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

СКД позволяет получать данные из информационной базы не только для вывода в отчеты, но и для других целей. Пример такого использования рассматривается в настоящей статье.

18.09.2019    7072    YPermitin    31       

Агрегатные функции СКД, о которых мало кто знает 321

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    10385    ids79    42       

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив 245

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    10813    ids79    24       

Форма отчета СКД 57

Статья Пользователь Нет файла v8::СКД 1cv8.cf Бесплатно (free) Работа с интерфейсом

Описание объекта ОбщиеФормы – ФормаОтчета.

01.08.2019    3396    vasilev2015    5       

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты 126

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    9687    ids79    6       

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ 136

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования Разработка

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    8950    ids79    24       

Пользовательские настройки системы компоновки данных 87

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Работа с интерфейсом

Работа с отчетами в пользовательском режиме, формы отчетов. Понятие пользовательских настроек в отчетах на СКД. Определение состава пользовательских настроек для разделов в целом и для отдельных элементов, для всего отчета и для отдельных группировок. Видимость функциональных опций в отчетах на СКД.

09.07.2019    6509    ids79    0       

"Меньше копипаста!", или как Вася универсальную процедуру писал 170

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    6309    SeiOkami    48       

Работа с настройками системы компоновки данных 98

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Варианты отчетов, работа с настройками вариантов: структура группировок, поля отчета, отборы, сортировка, условное оформление, другие настройки, настройки отображения диаграмм.

02.07.2019    9802    ids79    8       

Создание отчетов с помощью СКД - основные понятия и элементы 198

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    17860    ids79    17       

Не провоцируйте СКД, или пример "как не надо" 50

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Пример того, что не нужно использовать в запросах, чтобы не провоцировать СКД.

10.06.2019    7345    SeiOkami    90       

Еще один способ нестандартной расшифровки отчета. Без использования обработчиков формы. Для ленивых 90

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Лень+ СКД. Еще один нестандартный способ расшифровки отчета. Без использования обработчиков формы. Только макет компоновки и модуль отчета. Весь исходный текст в статье.

16.05.2019    5666    tusv    55       

Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП 91

Статья Программист Нет файла v8 v8::УФ v8::СКД 1cv8.cf Россия Бесплатно (free) Практика программирования Работа с интерфейсом Разработка

В данной статье рассмотрим механизм работы с расшифровкой отчета, созданного при помощи системы компоновки данных, в управляемом приложении. Показывать буду на примере реальной задачи. Условие: использовать имеющиеся в конфигурации механизмы БСП, с минимальными и "правильными" изменениями. Расшифровка должны быть двух видов на каждом поле: 1. Открывать ссылочный объект 2. Открывать новую форму с детализацией табличной части документа. Собственно ради второго пункта и писалась статья, в основном для себя, чтобы не забыть.

14.05.2019    7497    Viktor_Ermakov    6       

Разворачивание таблицы свойств и значений по колонкам через СКД 18

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

СКД! Юниоры 1С начинают паниковать, когда слышат эту аббревиатуру. Хороший пример, упрощающий жизнь начинающему разработчику, представлен ниже.

12.05.2019    3613    Eret1k    0       

Выгрузка документа по условию 5

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    4900    m-rv    2       

Свой макет оформления отчета 33

Статья Программист Нет файла v8 v8::СКД Россия Windows Бесплатно (free) Работа с интерфейсом

Пример создания и оформления и применения своего (пользовательского ) макета оформления для СКД.

24.04.2019    4591    olegpkc    5       

Как прикрутить ГУИД к регистру сведений 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

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

16.04.2019    7472    m-rv    16       

Как добавить типовую форму для СКД (для начинающих) (1С 8.3, управляемые формы) 9

Статья Программист Стажер Нет файла v8 v8::УФ v8::СКД Бесплатно (free) Инструментарий разработчика Работа с интерфейсом

Кастомизация СКД, нестандартная расшифровка, загрузка параметров и другие действия требуют наличия формы отчета. При создании СКД отчета по умолчанию форма не создается, в большинстве случаев это и не требуется. Однако при ситуациях, перечисленных выше, форму все же нужно создать. Это простая инструкция по созданию такой типовой формы.

25.03.2019    5407    ellavs    9       

"Склеивание" отчетов на СКД 23

Статья Программист Нет файла v8::СКД Бесплатно (free) Практика программирования Разработка

Методика программного объединения данных нескольких отчетов в итоговый сводный. По ссылке опубликован пример на реальных данных и код отчета: https://infostart.ru/public/1017891/

10.03.2019    4582    bivmail    2       

Добавление отчетов в типовые конфигурации 1С 201

Статья Программист Нет файла v8::УФ v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем)

Описание различных способов добавления общих и контекстных отчетов в конфигурации 1С, построенные на базе БСП. Основные моменты и нюансы.

07.03.2019    23548    ids79    32       

Программная обработка данных отчета, полученных с помощью запроса, с выводом измененных данных в СКД 29

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Разработка

В данной публикации рассмотрена возможность программной обработки данных, полученных запросом в отчете, с последующим выводом обработанных данных пользователю с помощью штатных средств СКД.

17.02.2019    4173    srub    10       

Вывод результата компоновки в таблицу и дерево значений 29

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Загрузка данных из ТабличногоДокумента в ТаблицуЗначений с использованием внешних наборов данных СКД, для последующей обработки в запросе.

14.02.2019    4056    kasper076    5       

Ещё раз о суммировании группировок в СКД 60

Статья Программист Нет файла v8 v8::СКД 1cv8.cf УУ Производство готовой продукции (работ, услуг) Бесплатно (free) Практика программирования Разработка

Начинающие специалисты, создающие отчеты в СКД, часто сталкиваются с вопросом о суммировании результатов группировок. Столкнувшись с такой задачей, я понял, что часто проблемы возникают от неправильного понимания самой задачи, а также недопонимания действия механизмов платформы. В приведенной ниже статье попробуем с этим разобраться.

11.02.2019    6745    Dioneo    17       

Еще раз о расшифровке для СКД 22

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования

Программное управление расшифровкой для отчета, сформированного с помощью Системы Компоновки Данных.

27.12.2018    5025    scientes    2       

Заголовок с параметром в отчете СКД 30

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Россия Бесплатно (free) Практика программирования

Статья, как сделать заголовок с параметром в отчете СКД.

19.12.2018    5482    user913680    16       

Тот самый Рабочий стол. Возрождение легенды 77

Статья Программист Нет файла v8::УФ v8::СКД 1cv8.cf Бесплатно (free) Работа с интерфейсом

Невероятный инструмент построения адаптивных интерфейсов.

30.11.2018    10023    1c-intelligence    23       

Установка собственных значений полей при программном выводе отчета СКД по имени поля (по принципу "как в макете") 16

Статья Программист Нет файла v8::СКД Бесплатно (free) Практика программирования

При программном выводе отчета на СКД возникает задача заполнить поля своими значениями. Но при поэлементном выводе отчета параметры "обезличены" как П1, П2, П3, ... Как узнать в какое "П" содержит нужное поле и куда устанавливать значение? Статья поможет программистам начинающим освоение СКД и перешедшим на СКД с "макета" ответить на эти вопросы на примере готового решения.

23.11.2018    5009    lmnlmn    0       

Дополнительные реквизиты в типовом отчете и их отсутствие 18

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пара Лайфхаков, случайно найденных, когда было лень запускать конфигуратор. Отбор при отсутствии дополнительного реквизита.

18.11.2018    4797    dyuha    0       

Программное заполнение пользовательских параметров и отборов СКД 135

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

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

13.11.2018    19968    Unk92    18       

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С 126

Статья Программист Нет файла v8 v8::blocking 1cv8.cf Бесплатно (free) Математика и алгоритмы Практика программирования

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    20992    ids79    40       

Перевод конфигурации на 8.3.13 17

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Россия Бесплатно (free) Практика программирования

Опыт решения проблем. 1. Проблема с СКД преобразованием запроса при отключении режима совместимости:

06.11.2018    5557    serferian    26       

Вертикальные границы отчета в интерфейсе "Такси" 8

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Работа с интерфейсом

После перехода на интерфейс "такси" некоторых "старожилов" покоробило отсутствие вертикальных границ отчетов, кому то не понравиись цвета или размер текста. Как это изменить - в данной статье.

30.10.2018    3683    FesenkoA    9       

Вспомогательные инструкции в коде 1С 104

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    20584    tormozit    100       

Приемы работы с СКД: делаем за 5 минут то, на что у других уйдет час 376

Статья Программист Нет файла v8::СКД Бесплатно (free) Практика программирования

Сергей Наумов делится опытом нестандартного использования системы компоновки данных. Он рассказывает о построении сложных отчетов с помощью функций СКД, описывает преимущества использования компоновки в коде для значительного сокращения строк кода и времени на решение задач, а также рассказывает про отладку компоновки и возможности оптимизации ее работы.

03.09.2018    31206    SergeyN    26       

Как легко в СКД сделать переключатель: рубли, тыс. руб., млн. руб. 72

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Достаточно часто пользователи просят добавить в отчеты функцию округления показателей отчетов до тысяч или миллионов. Работая в франчайзи, я встречал различные варианты реализации, например, разные варианты отчетов или округление значения показателей сразу в запросе и т.д. и т.п. Хочу предложить вариант решения данной задачи в отчетах, построенных в СКД.

07.08.2018    8375    SayDimas    15       

[Шпаргалка] Свой заголовок отчету на СКД с параметрами (без программирования) 200

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Работа с интерфейсом

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

23.07.2018    24929    rpgshnik    38       

Повышаем эффективность разработки правил обмена 124

Статья Программист Нет файла v8 КД ОС Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    19391    olegtymko    47       

Как сделать запрос на изменение данных 75

Статья Программист Нет файла v8 v8::Запросы 1cv8.cf Бесплатно (free) Практика программирования

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    21289    m-rv    21       

О важности псевдонимов полей во временных таблицах и отборах на СКД для производительности 26

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования

Рассмотрена важность правильного указания псевдонимов полей временных таблиц запроса СКД, на которые могут накладываться отборы

29.05.2018    5858    tata_1211    17       

Строим графы средствами 1С (без GraphViz) 42

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали...

23.05.2018    17067    slozhenikin_com    19