Программирование на 1С8 » История » Версия 2
Версия 1 (Всеволод Дорофеев, 31.01.2017 18:12) → Версия 2/3 (Всеволод Дорофеев, 31.01.2017 18:14)
h1. Программирование на 1С8
h2. Система компоновки данных (СКД)
h3. Программное выполнение СКД с выводом в таблицу значений
<pre>
&НаСервере
Процедура ПеренестиНоменклатуруСервере()
ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
СхемаНоменклатуры = ОбъектНаСервере.ПолучитьМакет("СКД");
ПараметрДанных = КомпоновщикНаФорме.Настройки.ПараметрыДанных.Элементы.Найти("ГруппаНоменклатуры");
ПараметрДанных.Использование = Истина;
ПараметрДанных.Значение = Объект.ПапкаАрхив;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаНоменклатуры, КомпоновщикНаФорме.ПолучитьНастройки(),,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗНоменклатура = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТЗНоменклатура);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
Для каждого СтрокаТЗ из ТЗНоменклатура Цикл
ОбработкаОбъект.ПеренестиНоменклатурнуюПозициюВПапкуНаСервере(СтрокаТЗ);
КонецЦикла;
КонецПроцедуры
</pre>
h2. Система компоновки данных (СКД)
h3. Программное выполнение СКД с выводом в таблицу значений
<pre>
&НаСервере
Процедура ПеренестиНоменклатуруСервере()
ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
СхемаНоменклатуры = ОбъектНаСервере.ПолучитьМакет("СКД");
ПараметрДанных = КомпоновщикНаФорме.Настройки.ПараметрыДанных.Элементы.Найти("ГруппаНоменклатуры");
ПараметрДанных.Использование = Истина;
ПараметрДанных.Значение = Объект.ПапкаАрхив;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаНоменклатуры, КомпоновщикНаФорме.ПолучитьНастройки(),,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗНоменклатура = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТЗНоменклатура);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
Для каждого СтрокаТЗ из ТЗНоменклатура Цикл
ОбработкаОбъект.ПеренестиНоменклатурнуюПозициюВПапкуНаСервере(СтрокаТЗ);
КонецЦикла;
КонецПроцедуры
</pre>