УТ Формирую отчет программно, как загрузить настройки из созданного варианта
Всем привет!
Есть код:
Нужно в него добавить загрузку созданного в пользовательском режиме варианта отчета.
Подскажите пожалуйста как это можно сделать. Спасибо!
Есть код:
ОбъектОтчетНаСервере = Отчеты.ВыручкаИСебестоимостьПродаж.Создать();
ТаблДокумент=Новый ТабличныйДокумент;
ОбъектОтчетНаСервере.СкомпоноватьРезультат(ТаблДокумент);
ТаблДокумент=Новый ТабличныйДокумент;
ОбъектОтчетНаСервере.СкомпоноватьРезультат(ТаблДокумент);
Нужно в него добавить загрузку созданного в пользовательском режиме варианта отчета.
Подскажите пожалуйста как это можно сделать. Спасибо!
Прикрепленные файлы:
По теме из базы знаний
- Перенос остатков, документов и справочников из БП 3.0 в УТ 10.3. Переносятся остатки товаров, взаиморасчетов и денежных средств, а также документы и справочники
- Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки
- Печать кассовых чеков на одну ККМ с нескольких рабочих мест для 1С:УТ11.х, КА2.х, Розница 2.х, УНФ, ERP 2.х, БП 3, БГУ2
- Загрузка чеков ФНС в документы 1С:БП, 1С:УНФ, 1С:ERP, 1С:КА и 1С:УТ
- Обмен по правилам Конвертации данных 2.1 для ERP, КА, УТ 11, БП 3, ЗУП 3, Розница 2.3
Найденные решения
(1) Если вариант отчета предопределенный (зашит в скд) то
Если вариант отчета пользовательский, то тут от конфигурации зависит
Например в БСП ВариантыОтчетов.КлючиВариантовОтчета - выдаст все варианты
ВариантыОтчетов.ПользовательскиеВариантыОтчетов - выдаст не все варианты))
ВариантыОтчетов.ПодключитьОтчетИЗагрузитьНастройки - в итоге структура в котором есть ОтчетОбъект
НастройкиОтчета = СхемаКомпоновкиДанных.ВариантыНастроек.ИмяВарианта.Настройки;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
Если вариант отчета пользовательский, то тут от конфигурации зависит
Например в БСП ВариантыОтчетов.КлючиВариантовОтчета - выдаст все варианты
ВариантыОтчетов.ПользовательскиеВариантыОтчетов - выдаст не все варианты))
ВариантыОтчетов.ПодключитьОтчетИЗагрузитьНастройки - в итоге структура в котором есть ОтчетОбъект
(3)
ну и далее по логике можно в тех же ОМ посмотреть как происходит формирование и тд
ВариантОтчета = ВариантыОтчетов.ВариантОтчета(ОтчетСсылка, КлючВарианта);
ОтчетИнформация = ВариантыОтчетов.СформироватьИнформациюОбОтчетеПоПолномуИмени(ОтчетСсылка.ПолноеИмя);
ПараметрыОтчета = Новый Структура("Отчет, Настройки", ВариантОтчета, Неопределено);
РассылкаОтчетов.ИнициализироватьОтчет(ПараметрыЖурнала, ПараметрыОтчета, Ложь, Новый УникальныйИдентификатор());
ну и далее по логике можно в тех же ОМ посмотреть как происходит формирование и тд
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1) Если вариант отчета предопределенный (зашит в скд) то
Если вариант отчета пользовательский, то тут от конфигурации зависит
Например в БСП ВариантыОтчетов.КлючиВариантовОтчета - выдаст все варианты
ВариантыОтчетов.ПользовательскиеВариантыОтчетов - выдаст не все варианты))
ВариантыОтчетов.ПодключитьОтчетИЗагрузитьНастройки - в итоге структура в котором есть ОтчетОбъект
НастройкиОтчета = СхемаКомпоновкиДанных.ВариантыНастроек.ИмяВарианта.Настройки;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
Если вариант отчета пользовательский, то тут от конфигурации зависит
Например в БСП ВариантыОтчетов.КлючиВариантовОтчета - выдаст все варианты
ВариантыОтчетов.ПользовательскиеВариантыОтчетов - выдаст не все варианты))
ВариантыОтчетов.ПодключитьОтчетИЗагрузитьНастройки - в итоге структура в котором есть ОтчетОбъект
(7) Да это то что нужно.
для стандартных вариантов, все отлично работает:
а вот с пользовательскими вариантами не разберусь
в списке ГУИД и представление, как после этого загрузить вариант не понятно. Лучше бы как то добраться до настроек пользовательского варианта.
Подскажите пожалуйста что дальше делать с этим ГУИД?
для стандартных вариантов, все отлично работает:
лНастройки=ОбъектОтчетНаСервере.СхемаКомпоновкиДанных.ВариантыНастроек.ДинамикаПродаж.Настройки;
ОбъектОтчетНаСервере.КомпоновщикНастроек.ЗагрузитьНастройки(лНастройки);
а вот с пользовательскими вариантами не разберусь
лИмяОтчета=ОбъектОтчетНаСервере.Метаданные().ПолноеИмя();
лСпВарианты=ВариантыОтчетов.КлючиВариантовОтчета(лИмяОтчета);
в списке ГУИД и представление, как после этого загрузить вариант не понятно. Лучше бы как то добраться до настроек пользовательского варианта.
Подскажите пожалуйста что дальше делать с этим ГУИД?
(11)
Вам дали ответ ниже. Если не хотите привязываться к рассылке отчетов, а сделать функциями подсистемы библиотеки, то
Вам дали ответ ниже. Если не хотите привязываться к рассылке отчетов, а сделать функциями подсистемы библиотеки, то
ПараметрыОтчета = Новый Структура("СсылкаВарианта, СсылкаОтчета, КлючВарианта, ИдентификаторФормы", СсылкаВарианта, СсылкаОтчета, "", Неопределено);
// Параметры - Структура - Параметры подключения и формирования отчета.
// * СсылкаВарианта - СправочникСсылка.ВариантыОтчетов - Ссылка варианта отчета.
// * СсылкаОтчета - Произвольный - Ссылка отчета.
// * КлючВарианта - Строка - Имя предопределенного или идентификатор пользовательского варианта отчета.
// * ИдентификаторФормы - Неопределено, УникальныйИдентификатор - Идентификатор формы, из которой подключается отчет.
СтруктураДанных = ВариантыОтчетов.ПодключитьОтчетИЗагрузитьНастройки(ПараметрыОтчета );
КД = СтруктураДанных.Объект.КомпоновщикНастроек;
Показать
(7)Здравствуйте. Подскажите пожалуйста, почему выходит ошибка?
Но при выводе "ПроцессорВывода" у меня ошибка: "Произошла исключительная ситуация(платформа): Ошибка компоновки данных, ошибка инициализации, ошибка создания набора данных "НачисленияУдержанияДрокумента" Не найден внешний набор данных "НачислениеУдержанияДокумента"
ВнешнееСоединение = ПодключитьВнешнийИсточник("Srvr=""buh"";Ref=""zup_test"";Usr=""Администратор"";Pwd=""11111"";");
СхемаКомпоновкиДанных2 = ВнешнееСоединение.Отчеты.АнализНачисленийИУдержаний.GetTemplate("ОсновнаяСхемаКомпоновкиДанных");
ВариантОтчета = СхемаКомпоновкиДанных2.ВариантыНастроек.ЗПВыплачено.Настройки;
КомпоновщикНастроекНастройки = ВнешнееСоединение.NewObject("КомпоновщикНастроекКомпоновкиДанных");
ИсточникДоступныхНастроекКомпоновкиДанных = ВнешнееСоединение.NewObject("ИсточникДоступныхНастроекКомпоновкиДанных",СхемаКомпоновкиДанных2);
КомпоновщикНастроекНастройки.Инициализировать(ИсточникДоступныхНастроекКомпоновкиДанных);
КомпоновщикНастроекНастройки.ЗагрузитьНастройки(ВариантОтчета);
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
ПараметрПериод = Настройки.ПараметрыДанных.Элементы.Найти("Период");
Период = ПараметрПериод.Значение;
КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период", Период);
КомпоновщикМакета = ВнешнееСоединение.NewObject("КомпоновщикМакетаКомпоновкиДанных");
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных2, КомпоновщикНастроекНастройки.Настройки,,,ВнешнееСоединение.NewObject("ОписаниеТипов", "ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений").Типы().Получить(0));
ПроцессорКомпоновкиДанных = ВнешнееСоединение.NewObject("ПроцессорКомпоновкиДанных");
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
ПроцессорВывода = ВнешнееСоединение.NewObject("ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений ");
ДанныеТЗ = ВнешнееСоединение.NewObject("ТаблицаЗначений");
ПоказатьНо при выводе "ПроцессорВывода" у меня ошибка: "Произошла исключительная ситуация(платформа): Ошибка компоновки данных, ошибка инициализации, ошибка создания набора данных "НачисленияУдержанияДрокумента" Не найден внешний набор данных "НачислениеУдержанияДокумента"
(16) откуда я знаю, какие "Дрокументы" там у вас. Запустите отладку второй базы, к которой подключаетесь, ловите внешнее соединение в ПриКомпановке, и смотри какие там наборы данных. Может прав нет у пользователя, может еще что. Подозреваю, что это ЗУП, а это значит отчет на половину кодом в общих модулях собирается, а это значит, что возможно какой-то модуль недоступен через внешнее соединение.
(1)Была подобная задача.
Для этого вынес компоновщик настроек в реквизиты формы, на саму форму пользовательские настройки из этого компоновщика.
Для сохранения настроек перед закрытием делаю:
- это на сервере всё.
Потом при создании на сервере подгружаю эти настройки:
Но у вас последнее будет не при создании на сервере а при компоновке результата скорее
Для этого вынес компоновщик настроек в реквизиты формы, на саму форму пользовательские настройки из этого компоновщика.
Для сохранения настроек перед закрытием делаю:
Если НЕ ЗавершениеРаботы Тогда
Попытка
ХранилищеОбщихНастроек.Сохранить("НапримерИмяФормы", "НастройкиСКД", КомпоновщикНастроек.ПолучитьНастройки());
Исключение
ЗаписьЖурналаРегистрации("Не удалось сохранить настройки формы ""АРМ Кассира""", УровеньЖурналаРегистрации.Ошибка, , , "Пользователь: """ + Строка(ПараметрыСеанса.ТекущийПользователь) + Символы.ПС + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
ПоказатьПотом при создании на сервере подгружаю эти настройки:
ОбрОб = РеквизитФормыВЗначение("Объект");
СхемаКомпоновкиДанных = ОбрОб.ПолучитьМакет("Макет");
АдресСКД = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, УникальныйИдентификатор);
ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД);
НастройкиСКД.Инициализировать(ИсточникНастроек);
НастройкиСКДСохранённые = ХранилищеОбщихНастроек.Загрузить("НапримерИмяФормы", "НастройкиСКД");
Если НастройкиСКДСохранённые = Неопределено Тогда
НастройкиСКД.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
Иначе
НастройкиСКД.ЗагрузитьНастройки(НастройкиСКДСохранённые);
КонецЕсли;
ПоказатьНо у вас последнее будет не при создании на сервере а при компоновке результата скорее
(2) Модуль Рассылка отчетов нашел, справочник Рассылку отчетов тоже, но вот где там есть варианты отчетов не вижу. Не понял как там настраивается вариант. Можете подсказать?
В этом основной вопрос. Сами настройки я сам могу с легкостью изменить, тут самое главное воспользоваться теми настройками которые пользователь может сохранить в вариант.
В этом основной вопрос. Сами настройки я сам могу с легкостью изменить, тут самое главное воспользоваться теми настройками которые пользователь может сохранить в вариант.
(3)
ну и далее по логике можно в тех же ОМ посмотреть как происходит формирование и тд
ВариантОтчета = ВариантыОтчетов.ВариантОтчета(ОтчетСсылка, КлючВарианта);
ОтчетИнформация = ВариантыОтчетов.СформироватьИнформациюОбОтчетеПоПолномуИмени(ОтчетСсылка.ПолноеИмя);
ПараметрыОтчета = Новый Структура("Отчет, Настройки", ВариантОтчета, Неопределено);
РассылкаОтчетов.ИнициализироватьОтчет(ПараметрыЖурнала, ПараметрыОтчета, Ложь, Новый УникальныйИдентификатор());
ну и далее по логике можно в тех же ОМ посмотреть как происходит формирование и тд
(9) А ведь помогло) к 7 ответу
И соответственно вышел на пункт НастройкиКД
Спасибо
лИмяОтчета=ОбъектОтчетНаСервере.Метаданные().ПолноеИмя();
лСпВариантыПользовательские=ВариантыОтчетов.КлючиВариантовОтчета(лИмяОтчета);
лИдентификатор=ОбщегоНазначения.ИдентификаторОбъектаМетаданных(лИмяОтчета);
ВариантОтчета = ВариантыОтчетов.ВариантОтчета(лИдентификатор, лСпВариантыПользовательские[0].Значение);
ПараметрыОтчета = Новый Структура("Отчет, Настройки", ВариантОтчета, Неопределено);
лОтчетИнициализация=РассылкаОтчетов.ИнициализироватьОтчет(Неопределено, ПараметрыОтчета, Ложь, Новый УникальныйИдентификатор());
лНастройки=лОтчетИнициализация.НастройкиКД;
ПоказатьИ соответственно вышел на пункт НастройкиКД
Спасибо
(5) Не пойму как это связано с вариантами ( нужно именно вариант отчета загрузить.
Вообще в справке есть такая функция: УстановитьТекущийВариант(<КлючВарианта>)
Но она применяется к форме отчета, мне открывать форму нельзя, так как все должно произойти на сервере.
Вообще в справке есть такая функция: УстановитьТекущийВариант(<КлючВарианта>)
Но она применяется к форме отчета, мне открывать форму нельзя, так как все должно произойти на сервере.
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)