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