Группа: Пользователи
Сообщений: 52
Спасибо сказали: 3 раз
Рейтинг: 0
Платформа 1С:Підприємство 8.3 (8.3.10.2252) "Управление производственным предприятием для Украины", редакция 1.3 (1.3.53.1) Доброго времени! Есть некий отчет по взвешиванию продукции при ручном формировании с заданными параметрами все хорошо формирует
есть задача формировать отчет программно, собственно функция формирования отчета: Код
Функция СформироватьОтчетПрограммно(Склад) Таб = Новый ТабличныйДокумент;
ПараметрКомпоновки = Новый ПараметрКомпоновкиДанных("КонецПериода"); ПараметрСКД = ТекОтчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновки); ПараметрСКД.Значение = КонДата; ПараметрСКД.Использование = Истина; //Помещаем в переменную данные о расшифровке данных
МассивН = Новый Массив; МассивН.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000001198")); МассивН.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000001197")); МассивН.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000001200")); СЗ = Новый СписокЗначений; СЗ.ЗагрузитьЗначения(МассивН);
тОтчет = ТекОтчет;
//НастройкиКД = ТекОтчет.КомпоновщикНастроек.ПолучитьНастройки(); НастройкиКД = Настройки; ВидВзвешивания = тОтчет.КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("ВидВзвешивания"); //поле отбора присутствует в СКД
ПараметрКомпоновки = Новый ПараметрКомпоновкиДанных("КонецПериода"); ПараметрСКД = ТекОтчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновки); ПараметрСКД.Значение = КонДата; ПараметрСКД.Использование = Истина; //Помещаем в переменную данные о расшифровке данных
Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных; //Формируем макет, с помощью компоновщика макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; //Передаем в макет компоновки схему, настройки и данные расшифровки МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, ТекОтчет.КомпоновщикНастроек.ПолучитьНастройки(), Расшифровка); ВнешниеПараметры = Новый Структура; //Выполним компоновку с помощью процессора компоновки ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка); //Выводим результат в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Таб); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
ТаблицаРезультат = Новый ТаблицаЗначений; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
Группа: Пользователи
Сообщений: 98
Спасибо сказали: 24 раз
Рейтинг: 22
Sirius83 @ Сегодня, 13:00
, У вас есть два пути: легкий и трудный. Первый - это воспользоваться кнопочкой "сохранение настройки", второй - это создание отчета через Построитель, на базе Универсального Отчета. Посмотрите по конфигурации, большинство регистровых отчетов работают именно так.
Группа: Основатель
Сообщений: 13988
Из: Киев
Спасибо сказали: 4562 раз
Рейтинг: 3690.8
Sirius83, выглядит так, будто элементы отбора не совпадают, хотя по названию одинаковые. Я бы попробовал выключить отборы, оставить только Параметры. Если что-то покажет, добавлять оторы и смотреть где пропадают данные.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!