ЗУП 3.1 Не формируется внешний отчет. "Макет "" не существует. Операция прервана"

1. TODD22 18 13.05.19 13:01 Сейчас в теме
Добрый день.

Сохранил отчёт как внешний, добавил функции для подключения отчета.

Формирую отчёт, получаю сообщение "Макет "" не существует. Операция прервана".

Погуглив нашёл рекомендацию что нужно добавить строку в процедуру:

"РегистрационныеДанные.Вставить("ОпределитьНастройкиФормы", Истина); "

Но не помогло, может надо как то иначе делать?

Есть вариант скопировать запрос и макет и сделать свой отчет или менять код общего модуля в конфигурации.

Других вариантов нет?
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. VmvLer 13.05.19 13:07 Сейчас в теме
лучший вариант - прочесть статью о подключение внешних отчетов на ИТС.
худший вариант - продолжать забрасывать на форум чушь.
ваш вариант?
3. TODD22 18 13.05.19 13:07 Сейчас в теме
(2)
ваш вариант?

Если по теме сказать нечего ходи мимо....
5. TODD22 18 13.05.19 14:58 Сейчас в теме
(4)Ветку видел. Пробовал как написано в 24, не сработало.
6. user_2010 871 13.05.19 21:16 Сейчас в теме
7. TODD22 18 13.05.19 21:36 Сейчас в теме
(6)В кадрах, "Сверка сведений с военкоматом" или как то так... под рукой конфигурации нет.
Посмотрел отладчиком, в одной из процедур общего модуля заполняется коллекция списком названий макетов вида "Отчет.ИмяОтчета.НазваниеМакета".
Так вот "Отчет.ИмяОтчета" получается программно из имени объекта метаданных. Если имя отчёт внутренний то имя формируется правильно, а если внешний то имя имеет вид "ВнешнийОтчет.ИмяОтчета.НазваниеМакета", затем происходит поиск макета в коллекции... а в коллекции только имена вида "Отчет.Имя...".
12. EVKash 14 14.05.19 09:59 Сейчас в теме
(7)
Так вот "Отчет.ИмяОтчета" получается программно из имени объекта метаданных. Если имя отчёт внутренний то имя формируется правильно, а если внешний то имя имеет вид "ВнешнийОтчет.ИмяОтчета.НазваниеМакета", затем происходит поиск макета в коллекции... а в коллекции только имена вида "Отчет.Имя...".
Сделайте тогда через расширение. Делов-то?
В ЗУПе много где перемудрили, кмк
8. user_2010 871 13.05.19 21:43 Сейчас в теме
ясно - не сталкивалась с таким отчетом. А если посмотреть в коде - какой макет нужен отчету? на какой макет ругается?
Скорее всего в коде есть ссылка на макет - возможно вам нужно указать там макет из внешней обработки.
9. TODD22 18 14.05.19 00:08 Сейчас в теме
(8)В том и дело. Что получение макета происходит в общем модуле конфигурации и указать макет без изменения я не смог.
Задачу решил другим способом. Но решение узнать хотелось бы.....
10. user_2010 871 14.05.19 08:23 Сейчас в теме
(9) скопировать процедуру из общего модуля (если она одна требуется для получения макета) в свою обработку и там прописать свой макет
11. TODD22 18 14.05.19 09:26 Сейчас в теме
(10)Там как то всё сложнее. Всё заполнение и вся обработка идёт в этих общих модулях.
13. user_2010 871 14.05.19 10:05 Сейчас в теме
(11) ясно - тогда вам правильно рекомендуют выше - сделать свой отчет в расширении.
14. rinik88 31 14.05.19 11:58 Сейчас в теме
15. TODD22 18 14.05.19 13:40 Сейчас в теме
(14)
а как сделали то?

В итоге никак отчет не сделал. По другому решили задачу.
Самому интересно решение :)
Можно скопировать макет, запрос и сделать свой отчёт. Можно через расширение сделать, подменить название макета в одной из процедур. Может есть какие то ещё варианты.
16. rinik88 31 14.05.19 13:46 Сейчас в теме
(15) понятно, спасибо. я пока обошелся изменением макета в настройках макетов печатных форм, удобно конечно, но ограничен тем набором, который есть, то есть без изменения конфы этот набор данных не поменять)
17. milanSpb 12 03.10.22 15:08 Сейчас в теме
Перед компоновкой вставляем пользовательский параметр с указанием нужного макета.

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
..............

ИначеЕсли КлючВарианта = "СписокДляСверкиСВоенкоматом" Тогда

...........


ЭтотОбъект.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("МакетПечатнойФормы", ЭтотОбъект.ПолучитьМакет("ПФ_MXL_СписокДляСверкиСВоенкоматом"));

РезультатКомпоновки = ЗарплатаКадрыОтчеты.РезультатКомпоновкиМакетаПечатнойФормы(ЭтотОбъект, ДанныеРасшифровки, НастройкиОтчета);
........
Показать
lucy2211; Highlander1981; +2 Ответить
18. milanSpb 12 03.10.22 17:51 Сейчас в теме
(17)
И продолжение....
подставляем макет из внешнего отчета
Все описанное делалось для варианта отчета "СписокДляСверкиСВоенкоматом"
все остальные можно сделать по аналогии.

Процедура ВывестиМакетСписокДляСверкиСВоенкоматом(ДокументРезультат, РезультатКомпоновки, ДатаОтчета)
	
............
	
	//Макет = УправлениеПечатью.МакетПечатнойФормы("Отчет.ВоинскийУчетОбщий.ПФ_MXL_СписокДляСверкиСВоенкоматом2021");
	//Если ДатаОтчета < '20170801' Тогда
	//	Макет = УправлениеПечатью.МакетПечатнойФормы("Отчет.ВоинскийУчетОбщий.ПФ_MXL_СписокДляСверкиСВоенкоматом");
	//ИначеЕсли ДатаОтчета < '20220108' Тогда 
	//	Макет = УправлениеПечатью.МакетПечатнойФормы("Отчет.ВоинскийУчетОбщий.ПФ_MXL_СписокДляСверкиСВоенкоматом2017");
	//КонецЕсли;
	
	Макет = ЭтотОбъект.ПолучитьМакет("ПФ_MXL_СписокДляСверкиСВоенкоматом2021");
	Если ДатаОтчета < '20170801' Тогда
		Макет = ЭтотОбъект.ПолучитьМакет("ПФ_MXL_СписокДляСверкиСВоенкоматом");
	ИначеЕсли ДатаОтчета < '20220108' Тогда 
		Макет = ЭтотОбъект.ПолучитьМакет("ПФ_MXL_СписокДляСверкиСВоенкоматом2017");
	КонецЕсли;

...............................

КонецПроцедуры
Показать
lucy2211; Highlander1981; +2 Ответить
19. Highlander1981 04.10.23 14:33 Сейчас в теме
(17) (18) Спасибо, работает!
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)