Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
24 Янв 2018, 04:30
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Скд и свой макет  (Прочитано 3627 раз)

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

Оффлайн Пустовалов Артем

  • ***
  • Сообщений: 102
  • РЕПУТАЦИЯ: 2
  • КПД: 2%
  • Регистрация: 2015-10-14
  • Сайт: 
  • Профессия: Ученик 1С
Добрый всем день! Есть отчет СКД где добавляются области из другого макета. Добавляю заголовок, шапку,начальныйОстаток, таблицу из СКД, конечный остаток. По сути конечный остаток должен выводиться после таблицы, но он выводится до нее, почему? в чем косяк?

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


Оффлайн Kironten

  • *****
  • Сообщений: 906
  • РЕПУТАЦИЯ: 187
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
Re: Скд и свой макет
« Ответ #1: 11 Апр 2016, 16:45 »
Ну, выведите результат компоновки в промежуточный табличный документ, а уже потом из него в ДокументРезультат

Оффлайн Пустовалов Артем

  • ***
  • Сообщений: 102
  • РЕПУТАЦИЯ: 2
  • КПД: 2%
  • Регистрация: 2015-10-14
  • Сайт: 
  • Профессия: Ученик 1С
Re: Скд и свой макет
« Ответ #2: 12 Апр 2016, 07:13 »
Ну, выведите результат компоновки в промежуточный табличный документ, а уже потом из него в ДокументРезультат

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

Оффлайн Kironten

  • *****
  • Сообщений: 906
  • РЕПУТАЦИЯ: 187
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
Re: Скд и свой макет
« Ответ #3: 13 Апр 2016, 11:49 »
Ну, выведите результат компоновки в промежуточный табличный документ, а уже потом из него в ДокументРезультат

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

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

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Re: Скд и свой макет
« Ответ #4: 13 Апр 2016, 12:04 »
1. Очень странный метод формирования отчета. Может проще сделать обычный отчет через запрос по фиксированному макету?
2. Попробуйте после каждого "ДокументРезультат.Вывести(" вставить "ДокументРезультат.Показать()" - попытайтесь определить на каком этапе происходит глюк.

Оффлайн Пустовалов Артем

  • ***
  • Сообщений: 102
  • РЕПУТАЦИЯ: 2
  • КПД: 2%
  • Регистрация: 2015-10-14
  • Сайт: 
  • Профессия: Ученик 1С
Re: Скд и свой макет
« Ответ #5: 13 Апр 2016, 13:57 »
1. Очень странный метод формирования отчета. Может проще сделать обычный отчет через запрос по фиксированному макету?
2. Попробуйте после каждого "ДокументРезультат.Вывести(" вставить "ДокументРезультат.Показать()" - попытайтесь определить на каком этапе происходит глюк.

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

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Re: Скд и свой макет
« Ответ #6: 13 Апр 2016, 14:06 »
СтандартнойОбработке = Истина

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


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
121 Сообщений
AIFrame
47 Сообщений
alex0402
28 Сообщений
kiksi
27 Сообщений
pavl_vs
23 Сообщений
alexandr_ll
18 Сообщений
KOI8-R
14 Сообщений
andron81_81
14 Сообщений
Norfolk
13 Сообщений
MuI_I_Ika MuI_I_Ika
13 Сообщений

* Кто онлайн

  • Точка Гостей: 176
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal