wiki:1c:ckd

Описание названий группировок и методика применения макета в СКД

Статья находится здесь.

Создание документа на основании отчета СКД. 1С 8.2

Процедура СоздатьЗаказПоставщикуНажатие(Элемент)
	// получаем настройки СКД, хранимые в макете
	СхемаКомпоновкиДанных = ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); 
	// получаем настройки СКД, введенные пользователем.
	Настройки = ЭтотОбъект.КомпоновщикНастроек.Настройки; 
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
	
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,);
	
	ТЗ = Новый ТаблицаЗначений;
    // вывод должен быть именно в коллекцию значений, а не в документ	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; 
	
	ПроцессорВывода.УстановитьОбъект(ТЗ);
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
	
	Док = Документы.ЗаказПоставщику.СоздатьДокумент();
	
	Для Каждого Стр из ТЗ Цикл
		Если Стр.КоличествоКЗаказу > 0 Тогда
			Товар = Док.Товары.Добавить();
			Товар.Номенклатура = Стр.Номенклатура;
			Товар.Количество = Стр.КоличествоКЗаказу;
		КонецЕсли;
	КонецЦикла;
	Форма = Док.ПолучитьФорму();
	Форма.Открыть();
КонецПроцедуры

Как добавить варианты отчета СКД на обычную форму

В модуль формы добавить код:

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

Процедура ПриОткрытии()
	УстановитьВариантыНастроек();
КонецПроцедуры

Процедура _СменаВариантаНастройки (Элемент) 
	Для каждого Настройка Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл 
		Если Элемент.Текст = Настройка.Представление Тогда 
			КомпоновщикНастроек.ЗагрузитьНастройки(Настройка.Настройки); 
			Прервать; 
		КонецЕсли; 
	КонецЦикла; 
КонецПроцедуры;
  • wiki/1c/ckd.txt
  • Последнее изменение: 2020/08/24 04:47
  • anton