Смена типа набора данных СКД с сохранением полей

30.05.14

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

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

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

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

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

Делаем следующее:

Сохраняем схему в файл

Открываем сохраненный файл xml текстовым редактором. Я использую Notepad++.

  1. Меняем значение атрибута "xsi:type" элемента "dataSet" с "DataSetQuery" на "DataSetObject"
  2. Удаляем элемент "query"
  3. Добавляем элемент "objectName"

 Должно получиться так:

Сохраняем изменения, загружаем схему из файла:

Набор данных успешно изменен с сохранением колонок с ролями и оформлением:

 

Осталось только написать в модуле объекта процедуру, в которой таблица значений предается в СКД:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	ТЗ = ПолучитьТаблицуДанных();
	
	Настройки = КомпоновщикНастроек.Настройки;
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);
	
	ВнешниеНаборыДанных = Новый Структура;
	ВнешниеНаборыДанных.Вставить("ТЗ",ТЗ);
	
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
	
КонецПроцедуры

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

СКД набор данных объект запрос поля

См. также

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

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

16500 руб.

02.09.2020    248396    1374    421    

1134

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

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

29.01.2026    5441    297    shapa_pro    25    

66

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

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

29.10.2025    16578    ovetgana    112    

106

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

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

01.07.2025    9561    krasnoshchekovpavel    5    

67

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

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

10.04.2025    8815    Neti    0    

41

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

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

27.02.2025    15788    ovetgana    50    

93

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

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

24.12.2024    13374    Akcium    17    

46

СКД Механизмы типовых конфигураций Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    9891    AlexeyPROSTO_1C    1    

32
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. headMade 144 30.05.14 21:36 Сейчас в теме
Спасибо. Думаю будет полезно.
2. karapuzzzz 63 04.06.14 10:51 Сейчас в теме
Спасибо. Вот если бы рассылка от инфостарта пришла на пару дней раньше и я эту статью увидел раньше чем переделал 2 отчета.
3. mikit 71 04.06.14 10:58 Сейчас в теме
Класс, спасибо огромное!
4. Tavalik 3454 04.06.14 11:24 Сейчас в теме
Полезная статья. Спасибо.
5. fomix 33 04.06.14 12:14 Сейчас в теме
Спасибо большое! Реально полезная статья. Просто бесит, что затейники из 1С-а про такую полезную "мелочь" ни где не пишут! А может и не знают....
12. webester 26 29.06.14 13:31 Сейчас в теме
(5)Вас не бесит, что некоторые "затейники" при необходимости даже не пытаются открыть файл блокнотом, просто ради праздного интереса?
6. Bagrick 04.06.14 12:19 Сейчас в теме
Большое спасибо! Полезная статья!
7. cassyan 04.06.14 14:53 Сейчас в теме
Спсибо. Очень любопытно. Надо подумать, как это метод творчески развить:)
8. Патриот 468 05.06.14 09:36 Сейчас в теме
Это реально круто! Всё гениальное просто. Была похожая идея, но я тогда недоразбирался с xml файлом, подумал, что это очень долго и сложно в итоге руками лопатил. Оформлю сиё решение в виде обработки, добавлю в свою коллекцию, спасибо)
А если бы ВК знал, можно было бы как кнопку повесить в форму СКД, раз разработчики 1С этого не сделали, хотя это, действительно уже "очень долго и сложно" =)
9. yura1960 24.06.14 18:12 Сейчас в теме
Да уж. Реально помогла. Вот где кладезь народной мудрости и опыта. Автор - спасибо!
10. powerpc 225 26.06.14 12:41 Сейчас в теме
Автору спасибо! Очень помогло в работе! Теперь ждём обработки автоматические конвертеры из одного в другое!
11. powerpc 225 27.06.14 10:59 Сейчас в теме
Вот кстати и обработка для автоматического преобразования http://infostart.ru/public/289484/
13. Manticor 66 30.06.14 17:01 Сейчас в теме
Все гениальное - просто.
14. hotey 42 02.07.14 05:15 Сейчас в теме
15. IgorS 43 02.07.14 11:40 Сейчас в теме
Спасибо, занятно.
16. echo77 1938 12.10.16 09:16 Сейчас в теме
Важно соблюдать регистр :-)
17. mp40 14 15.12.17 16:56 Сейчас в теме
А в обратную сторону кто нибудь осуществил?
18. milkers 3033 16.05.22 15:14 Сейчас в теме
Огромное спасибо. Масса сэкономленного времени.
19. echo77 1938 30.06.22 19:55 Сейчас в теме
Сделал обработку (УФ) которая может изменить тип набора данных, изменять порядок полей https://infostart.ru/public/1679241/
20. sony_net 08.07.25 11:36 Сейчас в теме
Огромное спасибо автору! Все получилось!
Для отправки сообщения требуется регистрация/авторизация