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