[СКД] Программное создание схемы компоновки данных

Публикация № 1179039 15.01.20

Приемы и методы разработки - СКД

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

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

1. Добавляем Источник данных.

 

 

СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;

ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
ИсточникДанных.Имя = "ИсточникДанных1";
ИсточникДанных.ТипИсточникаДанных = "Local";

НаборДанныхОбъектСхемыКомпоновкиДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
НаборДанныхОбъектСхемыКомпоновкиДанных.Имя = "НаборДанных1";
НаборДанныхОбъектСхемыКомпоновкиДанных.ИмяОбъекта = "ТаблицаОстатков";
НаборДанныхОбъектСхемыКомпоновкиДанных.ИсточникДанных = "ИсточникДанных1";

2. Добавляем поля набора данных

 

 

ПолеНабораДанныхСхемыКомпоновкиДанных = НаборДанныхОбъектСхемыКомпоновкиДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
ПолеНабораДанныхСхемыКомпоновкиДанных.Поле = "Номенклатура";
ПолеНабораДанныхСхемыКомпоновкиДанных.ПутьКДанным = "Номенклатура";
ПолеНабораДанныхСхемыКомпоновкиДанных.Заголовок = "Номенклатура";

ПолеНабораДанныхСхемыКомпоновкиДанных = НаборДанныхОбъектСхемыКомпоновкиДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
ПолеНабораДанныхСхемыКомпоновкиДанных.Поле = "Склад";
ПолеНабораДанныхСхемыКомпоновкиДанных.ПутьКДанным = "Склад";
ПолеНабораДанныхСхемыКомпоновкиДанных.Заголовок = "Склад";

ПолеНабораДанныхСхемыКомпоновкиДанных = НаборДанныхОбъектСхемыКомпоновкиДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
ПолеНабораДанныхСхемыКомпоновкиДанных.Поле = "ВНаличииОстаток";
ПолеНабораДанныхСхемыКомпоновкиДанных.ПутьКДанным = "ВНаличииОстаток";
ПолеНабораДанныхСхемыКомпоновкиДанных.Заголовок = "ВНаличииОстаток";

3. Добавляем группировки данных

 

 

ГруппировкаКомпоновкиДанных1 = НастройкиКомпоновки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ГруппировкаКомпоновкиДанных1.Использование = Истина;
ПолеГруппировкиКомпоновкиДанных = ГруппировкаКомпоновкиДанных1.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировкиКомпоновкиДанных.Использование = Истина;
ПолеГруппировкиКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("Склад");

ГруппировкаКомпоновкиДанных2 = ГруппировкаКомпоновкиДанных1.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ГруппировкаКомпоновкиДанных2.Использование = Истина;
ПолеГруппировкиКомпоновкиДанных2 = ГруппировкаКомпоновкиДанных2.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировкиКомпоновкиДанных2.Использование = Истина;
ПолеГруппировкиКомпоновкиДанных2.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");

4. Добавляем авто поля в группировки.

 

 

АвтоВыбранноеПолеКомпоновкиДанных = ГруппировкаКомпоновкиДанных1.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
АвтоВыбранноеПолеКомпоновкиДанных.Использование = Истина;

АвтоВыбранноеПолеКомпоновкиДанных = ГруппировкаКомпоновкиДанных2.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
АвтоВыбранноеПолеКомпоновкиДанных.Использование = Истина;

5. Добавляем выбранные поля

 

 

ВыбранноеПолеКомпоновкиДанных = НастройкиКомпоновки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПолеКомпоновкиДанных.Использование = Истина;
ВыбранноеПолеКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("В наличии остаток");

6. Добавляем отбор (ВНаличииОстаток > 500)

 

 

ЭлементОтбораКомпоновкиДанных = НастройкиКомпоновки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораКомпоновкиДанных.Использование = Истина;
ЭлементОтбораКомпоновкиДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВНаличииОстаток");
ЭлементОтбораКомпоновкиДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ЭлементОтбораКомпоновкиДанных.ПравоеЗначение = 500;

7. Добавляем Сортировку

 

 

ЭлементПорядкаКомпоновкиДанных = НастройкиКомпоновки.Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядкаКомпоновкиДанных.Использование = Истина;
ЭлементПорядкаКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");
ЭлементПорядкаКомпоновкиДанных.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;

8. Добавляем оформление (Выделять желтым поля ВНаличииОстаток и Номенклатура, если ВНаличииОстаток > 1000).

 

 

УсловноеОформление = НастройкиКомпоновки.УсловноеОформление.Элементы.Добавить();
УсловноеОформление.Использование = Истина;
ВыбранноеПолеКомпоновкиДанных = УсловноеОформление.Поля.Элементы.Добавить();
ВыбранноеПолеКомпоновкиДанных.Использование = Истина;
ВыбранноеПолеКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("ВНаличииОстаток");

ВыбранноеПолеКомпоновкиДанных = УсловноеОформление.Поля.Элементы.Добавить();
ВыбранноеПолеКомпоновкиДанных.Использование = Истина;
ВыбранноеПолеКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");

УсловноеОформление.ИспользоватьВЗаголовке 		= ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать;
УсловноеОформление.ИспользоватьВЗаголовкеПолей  = ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать;
УсловноеОформление.ИспользоватьВОбщемИтоге 		= ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать;

ЭлементОтбораКомпоновкиДанных = УсловноеОформление.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораКомпоновкиДанных.Использование = Истина;
ЭлементОтбораКомпоновкиДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВНаличииОстаток");
ЭлементОтбораКомпоновкиДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ЭлементОтбораКомпоновкиДанных.ПравоеЗначение = 1000;
		
УсловноеОформление.Оформление.УстановитьЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ЦветФона"), WebЦвета.Желтый);

В результате получаем отчет.

 

 

Полный текст процедуры.

 

 


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;
	
	ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
	ИсточникДанных.Имя = "ИсточникДанных1";
	ИсточникДанных.ТипИсточникаДанных = "Local";
	
	НаборДанныхОбъектСхемыКомпоновкиДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
	НаборДанныхОбъектСхемыКомпоновкиДанных.Имя = "НаборДанных1";
	НаборДанныхОбъектСхемыКомпоновкиДанных.ИмяОбъекта = "ТаблицаОстатков";
	НаборДанныхОбъектСхемыКомпоновкиДанных.ИсточникДанных = "ИсточникДанных1";
	
	ПолеНабораДанныхСхемыКомпоновкиДанных = НаборДанныхОбъектСхемыКомпоновкиДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
	ПолеНабораДанныхСхемыКомпоновкиДанных.Поле = "Номенклатура";
	ПолеНабораДанныхСхемыКомпоновкиДанных.ПутьКДанным = "Номенклатура";
	ПолеНабораДанныхСхемыКомпоновкиДанных.Заголовок = "Номенклатура";
	
	ПолеНабораДанныхСхемыКомпоновкиДанных = НаборДанныхОбъектСхемыКомпоновкиДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
	ПолеНабораДанныхСхемыКомпоновкиДанных.Поле = "Склад";
	ПолеНабораДанныхСхемыКомпоновкиДанных.ПутьКДанным = "Склад";
	ПолеНабораДанныхСхемыКомпоновкиДанных.Заголовок = "Склад";
	
	ПолеНабораДанныхСхемыКомпоновкиДанных = НаборДанныхОбъектСхемыКомпоновкиДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
	ПолеНабораДанныхСхемыКомпоновкиДанных.Поле = "ВНаличииОстаток";
	ПолеНабораДанныхСхемыКомпоновкиДанных.ПутьКДанным = "ВНаличииОстаток";
	ПолеНабораДанныхСхемыКомпоновкиДанных.Заголовок = "В наличии остаток";
	
	Ресурс = СхемаКомпоновкиДанных.ПоляИтога.Добавить();
	Ресурс.ПутьКДанным = "ВНаличииОстаток";
	Ресурс.Выражение = "Сумма(ВНаличииОстаток)";
	
	НастройкиКомпоновки = КомпоновщикНастроек.Настройки;
	
	Если НастройкиКомпоновки.Структура.Количество() = 0 Тогда
		
		ГруппировкаКомпоновкиДанных1 = НастройкиКомпоновки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
		ГруппировкаКомпоновкиДанных1.Использование = Истина;
		ПолеГруппировкиКомпоновкиДанных = ГруппировкаКомпоновкиДанных1.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
		ПолеГруппировкиКомпоновкиДанных.Использование = Истина;
		ПолеГруппировкиКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("Склад");
		
		АвтоВыбранноеПолеКомпоновкиДанных = ГруппировкаКомпоновкиДанных1.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
		АвтоВыбранноеПолеКомпоновкиДанных.Использование = Истина;
		
		ГруппировкаКомпоновкиДанных2 = ГруппировкаКомпоновкиДанных1.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
		ГруппировкаКомпоновкиДанных2.Использование = Истина;
		ПолеГруппировкиКомпоновкиДанных2 = ГруппировкаКомпоновкиДанных2.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
		ПолеГруппировкиКомпоновкиДанных2.Использование = Истина;
		ПолеГруппировкиКомпоновкиДанных2.Поле = Новый ПолеКомпоновкиДанных("Номенклатура"); 
		
		АвтоВыбранноеПолеКомпоновкиДанных = ГруппировкаКомпоновкиДанных2.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
		АвтоВыбранноеПолеКомпоновкиДанных.Использование = Истина;
		
		ВыбранноеПолеКомпоновкиДанных = НастройкиКомпоновки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
		ВыбранноеПолеКомпоновкиДанных.Использование = Истина;
		ВыбранноеПолеКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("ВНаличииОстаток");
		
		ЭлементОтбораКомпоновкиДанных = НастройкиКомпоновки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ЭлементОтбораКомпоновкиДанных.Использование = Истина;
		ЭлементОтбораКомпоновкиДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВНаличииОстаток");
		ЭлементОтбораКомпоновкиДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
		ЭлементОтбораКомпоновкиДанных.ПравоеЗначение = 500;
		
		ЭлементПорядкаКомпоновкиДанных = НастройкиКомпоновки.Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
		ЭлементПорядкаКомпоновкиДанных.Использование = Истина;
		ЭлементПорядкаКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");
		ЭлементПорядкаКомпоновкиДанных.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
		
		УсловноеОформление = НастройкиКомпоновки.УсловноеОформление.Элементы.Добавить();
		УсловноеОформление.Использование = Истина;
		ВыбранноеПолеКомпоновкиДанных = УсловноеОформление.Поля.Элементы.Добавить();
		ВыбранноеПолеКомпоновкиДанных.Использование = Истина;
		ВыбранноеПолеКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("ВНаличииОстаток");
		
		ВыбранноеПолеКомпоновкиДанных = УсловноеОформление.Поля.Элементы.Добавить();
		ВыбранноеПолеКомпоновкиДанных.Использование = Истина;
		ВыбранноеПолеКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");
		
		УсловноеОформление.ИспользоватьВЗаголовке 		= ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать;
		УсловноеОформление.ИспользоватьВЗаголовкеПолей  = ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать;
		УсловноеОформление.ИспользоватьВОбщемИтоге 		= ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать;
		
		ЭлементОтбораКомпоновкиДанных = УсловноеОформление.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ЭлементОтбораКомпоновкиДанных.Использование = Истина;
		ЭлементОтбораКомпоновкиДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВНаличииОстаток");
		ЭлементОтбораКомпоновкиДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
		ЭлементОтбораКомпоновкиДанных.ПравоеЗначение = 1000;
		
		УсловноеОформление.Оформление.УстановитьЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ЦветФона"), WebЦвета.Желтый);
		
	КонецЕсли;	
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновки);
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ТоварыНаСкладах.Номенклатура КАК Номенклатура,
	|	ТоварыНаСкладах.Склад,
	|	ТоварыНаСкладах.ВНаличииОстаток КАК ВНаличииОстаток
	|ИЗ
	|	РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладах";
	
	ТаблицаОстатков = Запрос.Выполнить().Выгрузить();
	
	ВнешниеНаборы = Новый Структура("ТаблицаОстатков", ТаблицаОстатков);
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборы);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);
	
КонецПроцедуры

Тестировал на платформе 1С:Предприятие 8.3 (8.3.15.1747).

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. serg-lom89 70 15.01.20 10:26 Сейчас в теме
однозначно плюс!Спасибо
как шпаргалка по некоторым пунктам в закладки!
movled; Mi4man; zif74; Михаська; Drivingblind; user712426; lic_avenger; user1537184; jONES1979; Yan_Malyakov; aleks.public; ritd; rainspb; user1012671; alanto23; A_Max; sergey512; +17 Ответить
2. Dzenn 754 15.01.20 10:49 Сейчас в теме
Молодец, хорошо разобрался в этой теме :-) Хардкорно использую СКД — с несколькими источниками данных, внешними наборами, переносом настроек, скд в скд и так далее, поэтому такие статьи однозначно должны быть в шпаргалках :-)
zif74; Михаська; jONES1979; aleks.public; alanto23; A_Max; +6 Ответить
3. sansys 74 15.01.20 11:16 Сейчас в теме
Очень хорошая статья!!! Ещё-бы такую-же но с использованием БСП. Евгений, огромное спасибо за полезную статью, беру себе в базу знаний.
zif74; Михаська; aleks.public; ritd; alanto23; A_Max; +6 Ответить
4. Aleksey81 1148 15.01.20 11:18 Сейчас в теме
5. yalex9 94 15.01.20 11:46 Сейчас в теме
Лучшая статья из тех, что видел на эту тему. Спасибо!
Михаська; rpgshnik; alanto23; frkbvfnjh; +4 Ответить
6. uno-c 207 15.01.20 12:06 Сейчас в теме
Только хотел поискать что-то подобное, оно само в уведомлении пришло, спасибо.
7. vik070777 287 15.01.20 13:09 Сейчас в теме
Спасибо, познавательно.
8. Uvk_05 15.01.20 17:27 Сейчас в теме
Спасибо! Очень актуально.
9. VGHOST 166 16.01.20 10:40 Сейчас в теме
10. jko 17.01.20 08:17 Сейчас в теме
11. rwn_driver 8 17.01.20 09:40 Сейчас в теме
Спасибо БОЛЬШОЕ! Очень полезно для лентяя, код готовый...
12. paybaseme 14 17.01.20 09:47 Сейчас в теме
13. Jimbo 9 17.01.20 16:47 Сейчас в теме
Основы прописаны, но зачем делать объект вместо запроса ? А потом все таки делать запрос, но без отборов.
14. EvgeniuXP 17.01.20 20:18 Сейчас в теме
У хрусталевой это есть - просто надо открыть книжку :) за работу плюсую.
Yashazz; sapervodichka; +2 Ответить
15. alanto23 35 21.01.20 11:11 Сейчас в теме
Респект и уважуха! Спасибо!!!
16. Kuzmin_A 21.01.20 16:52 Сейчас в теме
Может пригодится кому
.Оформление выводимого заголовка:
Процедура ОформитьЗаголовок(МакетКомпоновки, СтрокиПоискаИсключаемыхИзЗаголовкаГруппировок = Неопределено, ЗаменяемыеЗначения = Неопределено)
	//	-->	исключение из заголовка группировки верхнего уровня строк,
	//		в ячейках которых присутствуют указанные значения. Исключается
	//		только одна строка, соответствующая значению. 
	
	Если СтрокиПоискаИсключаемыхИзЗаголовкаГруппировок = Неопределено Тогда
		Возврат;
	КонецЕсли; 
	
	КоличествоОбластей = МакетКомпоновки.Тело.Количество();
	
	Если КоличествоОбластей > 0 Тогда
		ПоследнийМакетОбласти = Неопределено;
		н = 0;
		
		Пока н < КоличествоОбластей Цикл
			Элемент = МакетКомпоновки.Тело[н];
			
			Если ТипЗнч(Элемент) = Тип("МакетОбластиМакетаКомпоновкиДанных") Тогда
				ПоследнийМакетОбласти = МакетКомпоновки.Макеты[Элемент.Макет];		
			ИначеЕсли ТипЗнч(Элемент) = Тип("ГруппировкаМакетаКомпоновкиДанных") Тогда
				Прервать;
			КонецЕсли;
			
			н = н + 1;
		КонецЦикла;
		
		Если ПоследнийМакетОбласти = Неопределено Тогда
			Возврат;
		КонецЕсли;	
		
		МакетЗаголовка = ПоследнийМакетОбласти.Макет;
		
		н = МакетЗаголовка.Количество() - 1;
		
		Пока н >= 0 Цикл
			СтрокаТаблицы = МакетЗаголовка[н];
			
			Если СтрокаТаблицыОбластиКомпоновкиДанныхСодержитОдноИзЗначений(СтрокаТаблицы, СтрокиПоискаИсключаемыхИзЗаголовкаГруппировок) Тогда
				МакетЗаголовка.Удалить(СтрокаТаблицы);		
			КонецЕсли;
			
			Если ТипЗнч(ЗаменяемыеЗначения) = Тип("Соответствие") Тогда
				ЗаменитьЗначениеВСтрокеТаблицыОбластиКомпоновкиДанных(СтрокаТаблицы, ЗаменяемыеЗначения);	
			КонецЕсли;	
			
			н = н - 1;
		КонецЦикла;
	КонецЕсли;
	
	//	<--	исключение из заголовка группировки верхнего уровня строк
	
КонецПроцедуры

Функция СтрокаТаблицыОбластиКомпоновкиДанныхСодержитОдноИзЗначений(СтрокаТаблицы, Значения)
	Для Каждого Ячейка Из СтрокаТаблицы.Ячейки Цикл
		Для Каждого Элемент Из Ячейка.Элементы Цикл
			н = Значения.Количество() - 1;
			
			Пока н >= 0 Цикл
				Если Элемент.Значение = Значения[н] Тогда
					Значения.Удалить(н);
					
					Возврат Истина;	
				КонецЕсли;
				
				н = н - 1;
			КонецЦикла;	
		КонецЦикла;	
	КонецЦикла;
	
	Возврат Ложь;
КонецФункции

Процедура ЗаменитьЗначениеВСтрокеТаблицыОбластиКомпоновкиДанных(СтрокаТаблицы, ЗаменяемыеЗначения)
	Для Каждого Ячейка Из СтрокаТаблицы.Ячейки Цикл
		Для Каждого Элемент Из Ячейка.Элементы Цикл
			Для Каждого ЗаменяемоеЗначение Из ЗаменяемыеЗначения Цикл
				Если Элемент.Значение = ЗаменяемоеЗначение.Ключ Тогда
					Элемент.Значение = ЗаменяемоеЗначение.Значение;
					Возврат;
				КонецЕсли;	
			КонецЦикла;	
		КонецЦикла;	
	КонецЦикла;
КонецПроцедуры	
Показать


Вызов после выполнения компоновщика макета и до инициализации процессора.

Пытался освоить коллекцию элементов параметров скд, пока не получается
17. John_d 4277 21.01.20 16:59 Сейчас в теме
18. Kuzmin_A 21.01.20 17:17 Сейчас в теме
(17) Допустим, вы про заголовок, тогда под заголовком я имею в виду шапку отчета с именами полей, возможно мы по-разному поняли.
Если про параметры, то с НайтиЗначениеПараметра() и УстановитьЗначениеПараметра() нет проблем,а вот с добавлением новых…
19. Prometeus2011 160 27.01.20 15:02 Сейчас в теме
А это код построения макета из произвольного запроса.

&НаСервере
Функция Команда1НаСервере()
	
	СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;
	
	// определим источник данных для схемы 
	Источник = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
	Источник.Имя = "ЛокальнаяБаза";
	Источник.СтрокаСоединения = "";
	Источник.ТипИсточникаДанных = "Local"; 
	
	НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
	НаборДанных.Имя = "НаборДанных1";
	НаборДанных.ИсточникДанных = "ЛокальнаяБаза";
	НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина;
	НаборДанных.Запрос = "ВЫБРАТЬ
	|	ОприходованиеИзлишковТоваров.Ссылка КАК Ссылка,
	|	ОприходованиеИзлишковТоваров.Дата КАК Дата,
	|	ОприходованиеИзлишковТоваров.Номер КАК Номер
	|ИЗ
	|	Документ.ОприходованиеИзлишковТоваров КАК ОприходованиеИзлишковТоваров";
	НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина;
	
	//Если так сделать, то на клиент настройки не приедут.
	//ИсточникДоступныхНастроек = 
	//Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных);
	
	
	ИсточникДоступныхНастроек = 
	Новый ИсточникДоступныхНастроекКомпоновкиДанных(ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, УникальныйИдентификатор));
	
	ЭтаФорма.КомпоновщикНастроек_Форма.Инициализировать(ИсточникДоступныхНастроек);		
	ЭтаФорма.КомпоновщикНастроек_Форма.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
	
	
	
	//Группировки
	ГруппировкаСсылки = ЭтаФорма.КомпоновщикНастроек_Форма.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
	
	Для каждого стрТЗПолей из КомпоновщикНастроек_Форма.Настройки.ДоступныеПоляГруппировок.Элементы цикл
		ПолеГруппировки1 = ГруппировкаСсылки.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
		ПолеГруппировки1.Использование = Истина;
		ПолеГруппировки1.Поле = стрТЗПолей.Поле;
	КонецЦикла;
	
	АвтоПоле = ГруппировкаСсылки.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
	АвтоПоле.Использование = Истина;
	
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек_Форма.ПолучитьНастройки());
	
	
	//====================== ВЫВОД В ТЗ
	//МакетКомпоновки = 
	//КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек_Форма.ПолучитьНастройки(),
	//ИнформацияРасшифровки,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
	//
	//ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	//ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,ИнформацияРасшифровки,Истина);
	//
	//ТЗ = Новый ТаблицаЗначений;
	//ПроцессорВыводаВКоллекцию = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
	//ПроцессорВыводаВКоллекцию.УстановитьОбъект(ТЗ);
	//ПроцессорВыводаВКоллекцию.Вывести(ПроцессорКомпоновки,Истина);
	
	
	//====================== ВЫВОД В ТД
	ДокументРезультат = новый ТабличныйДокумент;
	МакетКомпоновки = 
	КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек_Форма.ПолучитьНастройки());
	
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	
	
	//Обозначим начало вывода
	ПроцессорВывода.НачатьВывод();
	ТаблицаЗафиксирована = Ложь;
	
	ДокументРезультат.ФиксацияСверху = 0;
	//Основной цикл вывода отчета
	Пока Истина Цикл
		//Получим следующий элемент результата компоновки
		ЭлементРезультата = ПроцессорКомпоновки.Следующий();
		
		Если ЭлементРезультата = Неопределено Тогда
			//Следующий элемент не получен - заканчиваем цикл вывода
			Прервать;
		Иначе
			// Зафиксируем шапку
			Если  Не ТаблицаЗафиксирована 
				И ЭлементРезультата.ЗначенияПараметров.Количество() > 0 
				И ТипЗнч(КомпоновщикНастроек_Форма.Настройки.Структура[0]) <> Тип("ДиаграммаКомпоновкиДанных") Тогда
				
				ТаблицаЗафиксирована = Истина;
				ДокументРезультат.ФиксацияСверху = ДокументРезультат.ВысотаТаблицы;
				
			КонецЕсли;
			//Элемент получен - выведем его при помощи процессора вывода
			ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
		КонецЕсли;
	КонецЦикла;
	
	ПроцессорВывода.ЗакончитьВывод();
	
	Возврат ДокументРезультат;
	
КонецФункции
Показать
TimVG; Михаська; СаморезикРу; Yan_Malyakov; atl1884; Silver0030; Cyberhawk; Kuzmin_A; John_d; +9 Ответить
20. 2vadmaster 40 17.02.20 13:58 Сейчас в теме
21. Yashazz 4405 20.02.20 09:55 Сейчас в теме
"лучшая статья"... "уважуха"... "круто"...
я чего-то не понимаю.

Во-первых, таких статей килотонны, во-вторых, программная работа с СКД разжёвана в десятках примеров, и это далеко не лучший, в третьих, есть книги Хрусталёвой. Тем не менее восторги и плюсики прям кучно. И пример-то тут весьма кастомизированный, и даже самое основное не полно объяснено...

Я ещё могу понять, когда статьи Пермитина плюсят, там действительно грамотное изложение. Но этот набор кода...

Нет, я действительно не понимаю.
МихаилМ; CnupT; +2 1 Ответить
22. s22 19 02.04.20 11:43 Сейчас в теме
Добавьте обработку которая по схеме создает ее программное создание
Михаська; kote; eeeio; kuzyara; +4 Ответить
23. pstrig 18.04.22 09:45 Сейчас в теме
24. user1574479 23.08.22 22:32 Сейчас в теме
программно работать с скд - это какой то мазохизм мне кажется
Оставьте свое сообщение

См. также

Как просто запомнить алгоритм программного вывода в СКД Промо

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

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

01.09.2017    57836    unichkin    19    

Особенность задания периода в запросе в СКД

СКД Запросы Платформа 1С v8.3 Запросы Система компоновки данных 1С:Бухгалтерия 3.0 Россия Бесплатно (free)

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

11.11.2022    897    slicem    10    

Разрабатываем отчет на СКД, содержащий данные из расширения

СКД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

17.10.2022    1595    al_zzz    4    

Хитрости СКД. Часть 4

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

12.10.2022    3646    milkers    14    

Полезности применения СКД Промо

СКД Управляемые формы Система компоновки данных 1С:Управление торговлей 10 Россия Бесплатно (free)

Нюансы при работе из СКД на программном уровне.

11.04.2012    53627    logarifm    42    

В помощь начинающим 1С-программистам: СКД. Отчет с разбивкой по периодам (год, месяц) и детализацией по документам

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Россия Бесплатно (free)

В помощь начинающим программистам. Такой информативный отчет мы создадим с помощью Системы компоновки данных. Чтобы научиться создавать и более сложные отчеты, рекомендую к прочтению книгу Е.Ю. Хрусталевой "Разработка сложных отчетов в 1С: Предприятие. Система Компоновки Данных".

18.07.2022    2885    Pproksima    1    

Хитрости СКД. Часть 3

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

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

28.05.2022    5521    milkers    11    

КУ! или Нарезка графика продолжается

СКД Платформа 1С v8.3 Система компоновки данных Россия Бесплатно (free)

Продолжение публикации https://infostart.ru/public/1639182/. Как справиться с неудачным отображением концов графика. Проверено в версии 8.3.13.1644.

23.04.2022    605    AnatolPopov    0    

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

СКД Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

29.01.2014    98862    anig99    26    

Нарезка графика ломтями

СКД Система компоновки данных Россия Бесплатно (free)

Как в СКД простыми средствами улучшить отображение графика, которому слишком тесно на шкале. Проверено в версии 8.3.13.1644.

09.04.2022    789    AnatolPopov    0    

Убираем параметры из отбора СКД

Универсальные функции СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Заметка о некоторых технических нюансах параметров данных и отборов СКД.

17.02.2022    4039    Yashazz    28    

Отладка СКД

СКД Система компоновки данных Бесплатно (free)

На митапе «Практика применения СКД» выступил ведущий разработчик 1С аутсорсинговой компании Programming Store Павел Шемякин. Павел рассказал, как бороться с нежелательной «оптимизацией» запроса СКД, какие инструменты для отладки СКД можно использовать – в чем их отличия и преимущества, и показал, как работать с консолью компоновки данных – на какие элементы структуры XML-файла макета СКД обращать внимание при поиске причин неправильной работы отчета.

08.02.2022    7906    ProgrammingStore    5    

СКД. Вставка разрыва страницы Промо

СКД Система компоновки данных Конфигурации 1cv8 Россия Бесплатно (free)

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

29.10.2011    58943    stoptime    58    

Программная работа и компоненты СКД

СКД Система компоновки данных Бесплатно (free)

На митапе «Практика применения СКД» выступил архитектор Digital Business Петр Базелюк. Он рассказал о том, как работать с СКД программно, и как, используя общедоступную библиотеку FoxyLink, создать свой процессор вывода результата СКД напрямую в формат JSON или в CSV.

04.02.2022    3574    pbazeliuk    3    

Реализация отборов на форме с помощью СКД

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

28.12.2021    8947    quazare    6    

Как указать время в периоде типового отчета (СтандартныйПериод, СКД) в системах класса WMS, MES, SCADA, АСУ ТП на 1С, построить отчет за период с временем?

СКД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

13.12.2021    2876    SizovE    0    

Создаем отчет с заданной периодичностью на СКД Промо

СКД Система компоновки данных Конфигурации 1cv8 Россия Бесплатно (free)

Учимся создавать отчет с заданной периодичностью с использованием СКД.

16.04.2012    85019    Lyns_owner    39    

Отбор/фильтр в отчетах/СКД/обработках 1C: БП, УТ, ERP, Кронос: WMS по файлу Excel, текстовому файлу или списку текстовых строк (номер документа, артикул, ИНН, QR-код, штрих-код, наименование)

СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Как построить отчет Анализ продаж или Остатки товаров с отбором/фильтром по списку кодов товаров/артикулов или ИНН покупателей из Эксель файла? Покажем, какой код нужно добавить в конфигурацию 1С (в том числе нетиповую), чтобы в любом отчете/отборе СКД/обработке можно было заполнять отбор по excel файлу, текстовому файлу или просто по списку строк - удобно и быстро.

23.11.2021    3099    SizovE    3    

Варианты применения СКД вне отчетов в отраслевых конфигурациях

СКД Система компоновки данных Бесплатно (free)

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

18.11.2021    3262    drmaxart    0    

Кейсы решения задач на СКД

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

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

08.11.2021    5493    echo77    7    

Грабли на СКД

СКД Платформа 1С v8.3 Система компоновки данных Россия Бесплатно (free)

Наиболее частые проблемы, с которыми сталкиваются программисты 1С при разработке отчетов на СКД.

02.11.2021    10028    echo77    17    

СКД: 5 советов, как сделать лучше

СКД Платформа 1С v8.3 Система компоновки данных 8.3.14 Бесплатно (free)

Несколько примеров решения задач с использованием разных подходов

27.10.2021    10133    Neti    19    

Программное создание отчета на СКД с расшифровкой (обычные формы)

СКД Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

04.10.2021    2360    Neti    4    

Программное открытие отчета СКД с параметрами и отбором

СКД Платформа 1С v8.3 Управляемые формы Система компоновки данных Бесплатно (free)

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

07.08.2021    19335    Eugen-S    23    

Объект "Схема запроса" и расширения языка запросов СКД

СКД Платформа 1С v8.3 Запросы Россия Бесплатно (free)

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

18.07.2021    3127    mysm    14    

СКД: скрываем нужные группы (блоки) по требованию пользователя

СКД Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

14.07.2021    6003    olja-ljaaa    9    

Изменение расшифровки макета СКД до компоновки

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Это не про работу с данными расшифровки. Это про изменение расшифровок полей ДО того, как СКД выполнилась. Быстрый способ сделать нужные расшифровки.

12.07.2021    3598    Yashazz    6    

Чтоб в СКД по таблице значений был порядок!

СКД Система компоновки данных Бесплатно (free)

Сортировка СКД и источник - таблица значений. Заметка.

28.06.2021    2366    Yashazz    0    

Учебный пример программного формирования схемы компоновки данных: Универсальный отчет по регистрам накопления

СКД Платформа 1С v8.3 Бесплатно (free)

Разберём учебную задачу создания Универсального отчета по оборотным регистрам накопления конфигурации.

14.06.2021    4982    maraton1185    4    

Формирование отчета СКД с расшифровкой из обработки

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Формирование отчета СКД из обработки немного отличается от формирования из отчета.

27.04.2021    5801    John_d    14    

Нестандартное использование СКД

СКД Система компоновки данных Бесплатно (free)

Программист 1С в компании «БКС-технологии» Алексей Шиянов в ходе Infostart Meetup Novosibirsk продемонстрировал необычный способ использования СКД и сравнил результаты заполнения движений документа через СКД с классическим подходом к заполнению движений через запросы и циклы.

14.04.2021    5163    user1127305    12    

Эффективные приемы разработки

Математика и алгоритмы Рефакторинг и качество кода СКД Платформа 1С v8.3 Бесплатно (free)

На Infostart Meetup Ekaterinburg.Online выступил Сергей Наумов – руководитель центра аналитики и консалтинга WiseAdvice. Сергей поделился с коллегами приемами разработки, которые помогут избежать потенциальных проблем при реализации сложных проектов.

07.04.2021    4634    SergeyN    13    

Полезные примеры СКД, ч.2

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Еще несколько примеров решения задач в СКД.

06.04.2021    16129    Neti    9    

Пример платежного календаря. СКД. Работает на любой платформе, без привязки к данным. Подробное описание действий

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

02.04.2021    2138    parshachello    2    

Полезные примеры СКД, ч.1

СКД Система компоновки данных Бесплатно (free)

Подборка видео по решению различных задач в отчетах на СКД.

30.03.2021    20405    Neti    21    

Перенос/копирование и установка отбора/фильтра/периода при интерактивном переключении или смене варианта отчета/СКД в БСП 3.1 (1C ERP, УТ, БП, ...)

СКД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

18.01.2021    2910    SizovE    4    

Установка нескольких фильтров/отбора СКД в табличной форме, хранение в табличной части для отправки push/email уведомлений (ОтборКомпоновкиДанных, КомпоновщикНастроек, ДинамическийСписок)

СКД Платформа 1С v8.3 Управляемые формы Система компоновки данных Бесплатно (free)

Рассмотрим, как организовать установку фильтров/отбора СКД (динамического списка) на push/email уведомления в подсистеме EDIbot (WebApp) для 1С в табличной части "События уведомлений".

02.11.2020    2100    SizovE    0    

Пользовательское поле СКД одной процедурой

СКД Платформа 1С v8.3 Бесплатно (free)

Быстрое создание пользовательского поля "выражение" одной процедурой

05.08.2020    2886    Yashazz    0    

Роль "Остатки" поля набора данных СКД в отчете и в расшифровке

СКД Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

24.05.2020    11014    kasper076    18    

Макет оформления в отчете с несколькими СКД

СКД Система компоновки данных Россия Бесплатно (free)

Как заставить работать макет оформления в отчёте с несколькими СКД.

14.05.2020    6238    vendim    4    

СКД. Использование Менеджера временных таблиц в системе компоновки

СКД Платформа 1С v8.3 Запросы Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

29.04.2020    17248    ixijixi    48    

Ограничения полей, или как обмануть СКД?

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Каждое из ограничений полей можно обойти. Рассмотрим варианты обхода и способы обезопасить свой отчет.

15.04.2020    24149    SeiOkami    43    

Работа с запросами в 1С СКД. Отладка СКД

СКД Запросы Система компоновки данных Россия Бесплатно (free)

В предыдущем разделе мы изучали с вами особенности работы с запросами в СКД. Для изучения (отладки) работы различных схем компоновки данных я использовал консоль компоновки данных.

15.04.2020    6385    ProgrammingStore    3    

Работа с запросами в 1С СКД. Особенности работы запросов в СКД. Часть 3

СКД Запросы Система компоновки данных Россия Бесплатно (free)

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

13.04.2020    11353    ProgrammingStore    4