Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 мар 2024, 10:36

Скд и свой макет

Автор Пустовалов Артем, 11 апр 2016, 15:33

0 Пользователей и 2 гостей просматривают эту тему.

Пустовалов Артем

Добрый всем день! Есть отчет СКД где добавляются области из другого макета. Добавляю заголовок, шапку,начальныйОстаток, таблицу из СКД, конечный остаток. По сути конечный остаток должен выводиться после таблицы, но он выводится до нее, почему? в чем косяк?

СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

//Из Специального объекта "КомпоновщикНастроек",
// предназначенного для редактирования настроек отчета, возьмем настройки
Настройки = КомпоновщикНастроек.Настройки;
ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки;

НачалоПериодаПараметр   = ПользовательскиеНастройки.Элементы.Получить(0);
КонецПериодаПараметр   = ПользовательскиеНастройки.Элементы.Получить(1);
НоменклатураПараметр   = ПользовательскиеНастройки.Элементы.Получить(2);
СкладПараметр = ПользовательскиеНастройки.Элементы.Получить(3);

НачалоПериода   = НачалоПериодаПараметр.Значение;
КонецПериода    = КонецПериодаПараметр.Значение;
Номенклатура    = НоменклатураПараметр.Значение;
Склад = СкладПараметр.Значение;

Артикул = НоменклатураПараметр.Значение.Артикул;
ВидНоменклатуры = НоменклатураПараметр.Значение.ВидНоменклатуры;
ЕдиницаЗначений = НоменклатураПараметр.Значение.ЕдиницаИзмерения;
КодЕд = НоменклатураПараметр.Значение.ЕдиницаИзмерения.Код;

//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

//Инициализируем КомпоновщикМакетаКомпоновкиДанных, объект для создания макета компоновки данных
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
Настройки, ДанныеРасшифровки);

МакетКопоновкиДляТЗ = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.ПолучитьНастройки(),,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));


//Выполним компоновку данных с помощью специального объекта "процессор компоновки"
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);

ПроцессорКомпоновкиДанныхДляТЗ = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанныхДляТЗ.Инициализировать(МакетКопоновкиДляТЗ);

//Очищаем поле табличного документа в форме отчета
ДокументРезультат.Очистить();

Макет = ПолучитьМакет("Макет");
Заголовок = Макет.ПолучитьОбласть("Заголовок");
Заголовок.Параметры.ПечКодМатериала = Артикул;
Заголовок.Параметры.ВидНоменклатуры = ВидНоменклатуры;
Заголовок.Параметры.Склад = Склад;
Заголовок.Параметры.Артикул = Артикул;
Заголовок.Параметры.КодЕдИзм = КодЕд;
Заголовок.Параметры.ПечЕдИзм = ЕдиницаЗначений;
Заголовок.Параметры.ПечМатериал = Номенклатура;

ДокументРезультат.Вывести(Заголовок);

Шапка = Макет.ПолучитьОбласть("Шапка");
ДокументРезультат.Вывести(Шапка);


//ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
//ПроцессорВывода.Вывести(ПроцессорКомпоновки);

ТаблицаРезультат = Новый ТаблицаЗначений;
    ПроцессорВыводаДляТЗ = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;

    ПроцессорВыводаДляТЗ.УстановитьОбъект(ТаблицаРезультат);
    ПроцессорВыводаДляТЗ.Вывести(ПроцессорКомпоновкиДанныхДляТЗ);

НачОст = Макет.ПолучитьОбласть("ТабНачОст");

Для каждого стр из ТаблицаРезультат Цикл
Если стр.КолНачОст <> 0 И стр.КолНачОст <> Неопределено тогда
НачОст.Параметры.ПечДатаЗаписи = НачалоПериода;
НачОст.Параметры.ВидРасхода = "Остаток на дату " + Формат( НачалоПериода, "ДЛФ=DD");
НачОст.Параметры.ПечЕдИзм = ЕдиницаЗначений;
НачОст.Параметры.ПечОстаток = стр.КолНачОст;
конецЕсли;
КонецЦикла;

ДокументРезультат.Вывести(НачОст);

//Выводим результат в табличный документ на форме отчета
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

КонОст = Макет.ПолучитьОбласть("ТабКонОст");

Для каждого стр из ТаблицаРезультат Цикл
Если стр.КолКонОст <> 0 И стр.КолКонОст <> Неопределено тогда

КонОст.Параметры.ПечДатаЗаписи = КонецПериода;
КонОст.Параметры.ВидРасхода = "Остаток на дату " + Формат( КонецПериода, "ДЛФ=DD");
КонОст.Параметры.ПечЕдИзм = ЕдиницаЗначений;
КонОст.Параметры.ПечОстаток = стр.КолКонОст;

КонецЕсли;
КонецЦикла;

КонОст.Параметры.ПечПриход = ТаблицаРезультат.Итог("КолПриход");
КонОст.Параметры.ПечРасход = ТаблицаРезультат.Итог("КолРасход");

ДокументРезультат.Вывести(КонОст);

Kironten

Ну, выведите результат компоновки в промежуточный табличный документ, а уже потом из него в ДокументРезультат

Пустовалов Артем

Цитата: Kironten от 11 апр 2016, 16:45
Ну, выведите результат компоновки в промежуточный табличный документ, а уже потом из него в ДокументРезультат

Пробовал, это не помогает

Kironten

Цитата: Пустовалов Артем от 12 апр 2016, 07:13
Цитата: Kironten от 11 апр 2016, 16:45
Ну, выведите результат компоновки в промежуточный табличный документ, а уже потом из него в ДокументРезультат

Пробовал, это не помогает

Попробуйте при этом использовать не ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений а ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент

vitasw

1. Очень странный метод формирования отчета. Может проще сделать обычный отчет через запрос по фиксированному макету?
2. Попробуйте после каждого "ДокументРезультат.Вывести(" вставить "ДокументРезультат.Показать()" - попытайтесь определить на каком этапе происходит глюк.

Пустовалов Артем

Цитата: vitasw от 13 апр 2016, 12:04
1. Очень странный метод формирования отчета. Может проще сделать обычный отчет через запрос по фиксированному макету?
2. Попробуйте после каждого "ДокументРезультат.Вывести(" вставить "ДокументРезультат.Показать()" - попытайтесь определить на каком этапе происходит глюк.

Всем спасибо, дело было в СтандартнойОбработке = Истина, Теперь выводит все как надо.

vitasw

Цитата: Пустовалов Артем от 13 апр 2016, 13:57СтандартнойОбработке = Истина

Семен Семеныч....

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск