Подскажите пожалуйста что не так на
ругается на {Форма.Форма(81)}: Ошибка при вызове метода контекста (Выполнить): Ошибка компоновки макета
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек,,,Тип(«ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений»));
по причине:
Ошибка компоновки макета
по причине:
Ошибка генерации макета
по причине:
Не поддерживается вывод таблиц, диаграмм и вложенных отчетов в универсальную коллекцию значений
Сам текст модуля
СхемаКомпоновкиДанных = Отчеты.РасчетнаяВедомость.ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
КомпоновщикНастроек = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
ЭлементОтбораПодразделение = КомпоновщикНастроек.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ЭлементОтбораПодразделение.ЛевоеЗначение = Новый полеКомпоновкиДанных(«Подразделение»);
ЭлементОтбораПодразделение.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбораПодразделение.ПравоеЗначение = Справочники.ПодразделенияОрганизаций.НайтиПоКоду(«14»);
ЭлементОтбораПодразделение.Использование = Истина;
//ЭлементОтбораОрганизация = КомпоновщикНастроек.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
//ЭлементОтбораОрганизация.ЛевоеЗначение = Новый полеКомпоновкиДанных(«Организация»);
//ЭлементОтбораОрганизация.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
//ЭлементОтбораОрганизация.ПравоеЗначение = Справочники.Организации.НайтиПоКоду(«000000004»);
//ЭлементОтбораОрганизация.Использование = Истина;
ТЗ = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТЗ);
Если ЗначениеЗаполнено(ЭлементыФормы.НачПериода.Значение) Тогда
ПараметраДанныхНачалоПериода = КомпоновщикНастроек.ПараметрыДанных.Элементы.Найти(«НачалоПериода»);
ПараметраДанныхНачалоПериода.Значение = ЭлементыФормы.НачПериода.Значение;
ПараметраДанныхНачалоПериода.Использование=Истина;
КонецЕсли;
Если ЗначениеЗаполнено(ЭлементыФормы.КонПериода.Значение) Тогда
ПараметраДанныхКонецПериода = КомпоновщикНастроек.ПараметрыДанных.Элементы.Найти(«КонецПериода»);
ПараметраДанныхКонецПериода.Значение = ЭлементыФормы.КонПериода.Значение;
ПараметраДанныхКонецПериода.Использование=Истина;
КонецЕсли;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек,,,Тип(«ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений»));
ПроцессорКомпоновки.Инициализировать(МакетКомпоновкиДанных);
Попытка
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
+3
Как отчет на СКД сохранить в таблицу значений, а потом выгрузить в файл?
Допустим у нас есть отчет с ОсновнойСхемойКомпановкиДанных,
Создадим ФормуОтчета:
На форму добавим Кнопку Выгрузка( Процедура ДействияФормыВыгрузка(Кнопка) ) и Выбор Периода формирования отчета
ВНИМАНИЕ!!!
Ошибка генерации макета
по причине: Не поддерживается вывод таблиц, диаграмм и вложенных отчетов в универсальную коллекцию значений
Выводить можно только Группировки:
Код отчета будет следующий:
Код 1C v 8.х
Процедура ДействияФормыВыгрузка(Кнопка)
//Выберем файл для сохранения выгрузки
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.Заголовок = "Выберите файл для сохранения данных";
Диалог.ПолноеИмяФайла = "NDFL_"+Формат(НачПериода,"ДФ=MM_yyyy");
Диалог.Фильтр = "TXT (*.txt)|*.txt";
Диалог.МножественныйВыбор = Ложь; Диалог.Каталог = "D:";
Если Диалог.Выбрать() Тогда
ФайлСохранения = Диалог.ПолноеИмяФайла;
//Выгрузим результат отчета СКД в Таблицу Значений
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ДанныеТЗ = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ДанныеТЗ);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
//Выгрузим данные из Таблицы значений в Файл, запись данных в файл построчно
Текст = Новый ЗаписьТекста(ФайлСохранения, КодировкаТекста.ANSI);
Текст.ЗаписатьСтроку("Организация~КПП~Начислено13~Начислено30");
Для Каждого стр из ДанныеТЗ Цикл
Текст.ЗаписатьСтроку(СокрЛП(Строка(стр.Организация))+"~"+СокрЛП(стр.ПодразделениеОрганизацииКПП)+"~"+Формат(стр.Начислено13,"ЧГ=0")+"~"+Формат(стр.Начислено30,"ЧГ=0"));
КонецЦикла;
Текст.Закрыть();
КонецЕсли;
КонецПроцедуры
Процедура ВыбПериодНажатие(Элемент)
НастройкаПериода = Новый НастройкаПериода;
НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода)));
НастройкаПериода.РедактироватьКакИнтервал = Истина;
НастройкаПериода.РедактироватьКакПериод = Истина;
НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
Если НастройкаПериода.Редактировать() Тогда
НачПериода = НастройкаПериода.ПолучитьДатуНачала();
КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
КонецЕсли;
// установить парметры периода для отчета СКД
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[4].Значение = НачПериода;
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[5].Значение = КонПериода;
КонецПроцедуры
Смотрите так же:
Вывод отчета СКД в коллекцию значений — Дерево Значений
Допустим у нас есть отчет с ОсновнойСхемойКомпановкиДанных,
Создадим ФормуОтчета:
На форму добавим Кнопку Выгрузка( Процедура ДействияФормыВыгрузка(Кнопка) ) и Выбор Периода формирования отчета
ВНИМАНИЕ!!!
Ошибка генерации макета
по причине: Не поддерживается вывод таблиц, диаграмм и вложенных отчетов в универсальную коллекцию значений
Выводить можно только Группировки:
Код отчета будет следующий:
Код 1C v 8.х
Процедура ДействияФормыВыгрузка(Кнопка)
//Выберем файл для сохранения выгрузки
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.Заголовок = "Выберите файл для сохранения данных";
Диалог.ПолноеИмяФайла = "NDFL_"+Формат(НачПериода,"ДФ=MM_yyyy");
Диалог.Фильтр = "TXT (*.txt)|*.txt";
Диалог.МножественныйВыбор = Ложь; Диалог.Каталог = "D:";
Если Диалог.Выбрать() Тогда
ФайлСохранения = Диалог.ПолноеИмяФайла;
//Выгрузим результат отчета СКД в Таблицу Значений
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ДанныеТЗ = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ДанныеТЗ);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
//Выгрузим данные из Таблицы значений в Файл, запись данных в файл построчно
Текст = Новый ЗаписьТекста(ФайлСохранения, КодировкаТекста.ANSI);
Текст.ЗаписатьСтроку("Организация~КПП~Начислено13~Начислено30");
Для Каждого стр из ДанныеТЗ Цикл
Текст.ЗаписатьСтроку(СокрЛП(Строка(стр.Организация))+"~"+СокрЛП(стр.ПодразделениеОрганизацииКПП)+"~"+Формат(стр.Начислено13,"ЧГ=0")+"~"+Формат(стр.Начислено30,"ЧГ=0"));
КонецЦикла;
Текст.Закрыть();
КонецЕсли;
КонецПроцедуры
Процедура ВыбПериодНажатие(Элемент)
НастройкаПериода = Новый НастройкаПериода;
НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода)));
НастройкаПериода.РедактироватьКакИнтервал = Истина;
НастройкаПериода.РедактироватьКакПериод = Истина;
НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
Если НастройкаПериода.Редактировать() Тогда
НачПериода = НастройкаПериода.ПолучитьДатуНачала();
КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
КонецЕсли;
// установить парметры периода для отчета СКД
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[4].Значение = НачПериода;
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[5].Значение = КонПериода;
КонецПроцедуры
Смотрите так же:
Вывод отчета СКД в коллекцию значений — Дерево Значений
Информация взята с сайта http://helpf.pro
Хотите узнать больше по этому вопросу?
Подпишитесь на нашу рассылку новостей
Подписаться
Чтобы задать вопрос или предложить тему статьи, нажмите на кнопку ниже:
Предложить статью
{Форма.ФормаОтчета}: Ошибка при вызове метода контекста (Выполнить): Ошибка компоновки макета МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, по причине: Ошибка компоновки макета по причине: Ошибка генерации макета по причине: Не поддерживается вывод таблиц, диаграмм и вложенных отчетов в универсальную коллекцию значений
а как тогда выводить. делал по хрусталевой
тоже самое пишет ) только с макетом, на постороители сделал вывод в ТабДок
да разобрался. в настройках вывод был в таблицу. заменил на группировки прошло.
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
- Pick a username
- Email Address
- Password
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account







