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

06.08.19

Разработка - СКД

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

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

Имеется некий отчет, у него схема компоновки данных, наборы данных, ресурсы, Параметры, Настройки.

Основные настройки отчета:

1. Рассмотрим вкладку «Макеты» основной схемы компоновки данных.

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

Если поле не ссылочного типа:

- В параметре расшифровки указываем наименование параметра

- В параметрах макета в поле Выражение делаем выбор

- В Параметр расшифровки в поле Выражение указываем ссылку на документ, по которому будет производиться расшифровка.

Вступайте в нашу телеграмм-группу Инфостарт

СКД Расшифровка Программная расшифровка Отчет ОбработкаРасшифровкиКомпановкиДанных

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    274065    1523    422    

1186

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

16.06.2026    5003    sapervodichka    45    

51

Инструментарий разработчика СКД Программист 1С 8.3 Бесплатно (free)

В этой статье представлен СКДБилдер — общий модуль-обёртка над объектной моделью СКД, который сокращает код в 3-4 раза и делает его читаемым.

29.01.2026    8359    412    shapa_pro    27    

71

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Статья написана по результатам проведенного внутреннего обучающего вебинара для разработчиков ГК «СофтБаланс». Если осилить 25 000 знаков - задача для вас непосильная, где-то на бескрайних просторах интернета видео есть (или будет). Но здесь информация точнее. Разберем, чем запрос для СКД принципиально отличается от обычного запроса и как модифицируется в зависимости от настроек. Изучим «базовый рецепт» написания запроса для СКД, сформируем чек-лист. Полезно будет всем – от стажеров до тех. лидов. Всем, кто не снимает галку «автозаполнение» и пишет запросы для отчетов в консоли запросов – читать (вдумчиво) обязательно.

29.10.2025    24384    ovetgana    112    

117

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

01.07.2025    14118    krasnoshchekovpavel    7    

68

СКД Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Несколько способов управления формами выбора параметров и отборов СКД.

10.04.2025    13597    Neti    0    

43

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

27.02.2025    18691    ovetgana    50    

94

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

24.12.2024    16508    Akcium    17    

48
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. artms 50 04.09.19 09:12 Сейчас в теме
Получение данных из документов, не зачет на экзамене, нужно было сделать регистр сведений, событием. Возможно здесь приводится отчет встроенный но "СформироватьДинамическиЗапрос" это мягко говоря не верно. Новый запрос, нужно сделать либо как отчет № 2 либо как второй набор данных передав параметр "КлючТекущегоВарианта", настройки. Параметры отчета нужно было передать через параметр "ПользовательскиеНастройки,Отбор", а не кодом "ПриСозданииНаСервере". Тогда ваш код не нужен почти весь, достаточно правильно настроить отчет № 2 или вариант. И сделать заполнение пользовательских настроек, полученных на основании расшифровки отчета № 2. Конечно, возможно автор пытался минимально изменить конфигурацию и это частично его оправдывает, но не оправдывает вторую часть публикации.
FirePyres; +1 Ответить
2. Viktor_Ermakov 415 04.09.19 23:47 Сейчас в теме
(1)Спасибо Вам за отзыв.
1. "Получение данных из документов, не зачет на экзамене, нужно было сделать регистр сведений, событием" - тут Вы правы, но это уже тема архитектуры, в рамках которой я был ограничен.
2. "СформироватьДинамическиЗапрос" - чем это плохо, поясните, ведь я заведомо не знаю тип документа по которому мне нужно получить расшифровку, поэтому формирую динамический запрос. Это кстати стандартная практика типовых решений в настоящее время.
3. "Новый запрос, нужно сделать либо как отчет № 2 либо как второй набор данных передав параметр "КлючТекущегоВарианта"" - это уже тонкости, вариации решения. Я против отчета №2, а вот второй набор можно сделать, но не вижу ничего плохого во второй схеме компоновки.
4. "Параметры отчета нужно было передать через параметр "ПользовательскиеНастройки,Отбор", а не кодом "ПриСозданииНаСервере"" - то что использовать нужно пользовательские настройки это да. Но что значит передать, я не понял.

Резюмирую: да, скорее всего представленный алгоритм можно улучшить, оптимизировать, я могу чего то не знать еще, все приходит с опытом.
Цель статьи была показать как в дорабатываемой конфигурации на БСП сделать отчет с расшифровкой, минимизируя изменения объектов на поддержке.
Designer1C; +1 Ответить
3. artms 50 05.09.19 13:21 Сейчас в теме
(2)
что значит передать,

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

&НаКлиенте
Процедура ОткрытьЦелевойПрием()

	СтрПараметры = Новый Структура;
	СтрПараметры.Вставить("ПриемнаяКампания", Объект.Ссылка);
		
	ПользовательскиеНастройки = УстановитьПользовательскиеНастройкиОтчета("ПК_ЦелевойПрием",СтрПараметры);
		
	Отбор = Новый Структура;
	Отбор.Вставить("Специальность");
	Отбор.Вставить("УсловияОбучения");
	ЗначенияКлючейРегистра = ЗначенияКлючейРегистра(ВыбраннаяСтрока,Отбор);
		
	ПараметрыФормы = Новый Структура("Отбор,ПользовательскиеНастройки, СформироватьПриОткрытии", Отбор,ПользовательскиеНастройки, Истина);
		
	ОткрытьФорму("Отчет.ПК_ЦелевойПрием.ФормаОбъекта", ПараметрыФормы); 
	
КонецПроцедуры
Показать


(УстановитьПользовательскиеНастройкиОтчета - сделана не рекурсивно, т.к. группы условий это не стандартные наборы параметров и их даже если есть устанавливать не нужно, так было принято)
6. Viktor_Ermakov 415 05.09.19 15:59 Сейчас в теме
(3) Спасибо за пояснения, учтем.
4. bmk74 245 05.09.19 15:12 Сейчас в теме
Хм ну и заморочки, так то уже все решено за вас
Ссылка на статью .
Добавить в расширение, единственное они в стандартном варианте почему то не сделали ключ варианта нельзя передать в открываемый отчет, но и это можно добавить...
BarsukM; Spacer; +2 Ответить
5. Viktor_Ermakov 415 05.09.19 15:57 Сейчас в теме
(4) Во первых не совсем понял как Ваше решение покрывает задачу в данной статье?
У меня в расшифровке строится запрос к ТЧ документа, тип которого мне заранее не известен, поэтому запрос формируется динамически.

Во вторых о каком расширении может идти речь, если ты разрабатываешь свою конфигурацию на БСП.
7. пользователь 05.09.19 16:05
Сообщение было скрыто модератором.
...
8. пользователь 05.09.19 17:26
Сообщение было скрыто модератором.
...
9. HIVvich 02.07.20 16:05 Сейчас в теме
Спасибо большое! сегодня очень пригодилось)
10. Viktor_Ermakov 415 06.07.20 22:41 Сейчас в теме
(9) Я очень рад, что кому то помогло))
Я сам уже забыл как это делать, надеюсь и мне поможет когда то)
11. olbir 06.01.23 21:13 Сейчас в теме
Без изменения конфигурации можно сделать? Нужен внешний отчет с расшифровкой другим отчетом по полю, например ПриходКоличество расшифровать Отчетом КарточкаСчета как в Оборотной ведомости по счету
Для отправки сообщения требуется регистрация/авторизация