ЗУП 3.1 (3.1.27.23) после обновления перестали работать дополнительные печатные формы

1. eLeMeNtaLe 31.07.23 11:56 Сейчас в теме
Всем доброго дня!
Сегодня обновили ЗУП до последней версии 3.1.27.23, и после обновления перестали формироваться все дополнительные печатные формы. Ошибку не выдают, просто не формируются. Может кто в курсе где что поменялось в коде БСП? Во вложении пример одной из печатных форм для справочника сотрудников.
Прикрепленные файлы:
ДопСоглашениеКТрудовомуДоговору.epf
EvgeniyOlxovskiy; +1 Ответить
По теме из базы знаний
Найденные решения
8. eLeMeNtaLe 01.08.23 09:57 Сейчас в теме
(6)
(7)Кустарно и впопыхах писал, по этому на мой взгляд корявенько, но работает (во вложении обработка "НаправлениеНаМедОсмотр.epf"). Суть изменений смотрите в процедуре "Ок" формы обработки, и в функции "Печать" модуля обработки.
За основу брал обработку "ТабДок в ПечатьДокументов.epf" (Тоже во вложении).
Прикрепленные файлы:
НаправлениеНаМедОсмотр.epf
ТабДок в ПечатьДокументов.epf
mart-sha; pas; user2014960; user1032515; KristinaKa; Hla; +6 Ответить
2. user613719_shelepen.mn 31.07.23 12:20 Сейчас в теме
Изменилась общая форма "ПечатьДокументов".
EvgeniyOlxovskiy; +1 Ответить
5. eLeMeNtaLe 31.07.23 17:43 Сейчас в теме
(4)Не, это сомнительный вариант, добавлять старую форму. Переписал модуль формирования табличного документа обработок под новую форму.
user613719_shelepen.mn; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user613719_shelepen.mn 31.07.23 12:20 Сейчас в теме
Изменилась общая форма "ПечатьДокументов".
EvgeniyOlxovskiy; +1 Ответить
3. eLeMeNtaLe 31.07.23 12:38 Сейчас в теме
(2)А есть мысли как поправить?
14. lefthander 24.10.23 23:08 Сейчас в теме
(3)Да есть, вот из новой версии в Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	
	Если Параметры.КоллекцияПечатныхФорм = Неопределено Тогда
		Отказ = Истина;
		Возврат;
	Иначе
		КоллекцияПечатныхФорм = Параметры.КоллекцияПечатныхФорм;
		ИсключитьОфисныеДокументыИзКомплектов(КоллекцияПечатныхФорм);
		ОбъектыПечати = Параметры.ОбъектыПечати;
	КонецЕсли;
	
Показать


Я через расширение сделал так

	Если Параметры.КоллекцияПечатныхФорм = Неопределено  Тогда
		
		ИменаМакетов = Параметры.ПараметрыИсточника.ИдентификаторКоманды;
				
		ИменаМакетов = СтрРазделить(ИменаМакетов, ",");
		
		КоллекцияПечатныхФорм = СформироватьПечатныеФормы(ИменаМакетов, Отказ);
		
		Если Отказ Тогда
			Возврат;
		КонецЕсли;
		
	Иначе	
		КоллекцияПечатныхФорм = Параметры.КоллекцияПечатныхФорм;
		ИсключитьОфисныеДокументыИзКомплектов(КоллекцияПечатныхФорм);
		ОбъектыПечати = Параметры.ОбъектыПечати;
	КонецЕсли;	
	
Показать
roman-sln; JohnOEM; +2 Ответить
19. roman-sln 59 18.01.24 20:38 Сейчас в теме
(14)
Спасибо. Помогло. Но хотелось бы уйти от расширения и изменения конфигурации в сторону изменения ВПФ. Есть пример, как изменить печатную форму, чтобы параметр "КоллекцияПечатныхФорм" передать в общую форму "Печать Документов"?
4. user613719_shelepen.mn 31.07.23 12:42 Сейчас в теме
Добавить в новую Конфигурацию старую общую форму "ПечатьДокументов", переименовав её.
И в отчете обращаться к старой форме.
5. eLeMeNtaLe 31.07.23 17:43 Сейчас в теме
(4)Не, это сомнительный вариант, добавлять старую форму. Переписал модуль формирования табличного документа обработок под новую форму.
user613719_shelepen.mn; +1 Ответить
6. tandy82 60 01.08.23 06:36 Сейчас в теме
(5) можете переписанный вариант выложить
7. user613719_shelepen.mn 01.08.23 09:01 Сейчас в теме
Если не сложно, выложите, пожалуйста, исправленный вариант модуля...
8. eLeMeNtaLe 01.08.23 09:57 Сейчас в теме
(6)
(7)Кустарно и впопыхах писал, по этому на мой взгляд корявенько, но работает (во вложении обработка "НаправлениеНаМедОсмотр.epf"). Суть изменений смотрите в процедуре "Ок" формы обработки, и в функции "Печать" модуля обработки.
За основу брал обработку "ТабДок в ПечатьДокументов.epf" (Тоже во вложении).
Прикрепленные файлы:
НаправлениеНаМедОсмотр.epf
ТабДок в ПечатьДокументов.epf
mart-sha; pas; user2014960; user1032515; KristinaKa; Hla; +6 Ответить
12. user1032515 4 14.10.23 18:04 Сейчас в теме
(8) Мне помогла замена в функции СведенияОВнешнейОбработке()
КомандаПечати.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(); на
    КомандаПечати.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();

Разработчик обновил версию БСП.
_Yulia_; CYCTAHOH; +2 Ответить
17. CYCTAHOH 11.11.23 16:41 Сейчас в теме
(12)
КомандаПечати.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(); на
КомандаПечати.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();

Аналогичная ситуация, печатная форма после этого стала работать, а то вовсе не появлялась после нажатия на нее
18. kng67 24.11.23 13:56 Сейчас в теме
(12) Спасибо за "рецепт", помог. Бухгалтерия 3, печатная форма не появлялась после нажатия на нее, после этого стала работать.
9. denic73 17.08.23 18:11 Сейчас в теме
У меня слетели печатные формы, в которых была форма обработки. Выяснил, что изменилась процедура ПриОткрытии в форме и добавилась процедура ВыполнитьОткрытиеПечатнойФормыФормированияПечатныхФорм.
Было просто ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);
Стало:
	ПараметрыОткрытия.УникальныйИдентификаторХранилища = ЭтаФорма.УникальныйИдентификатор;
	
	ДлительнаяОперация = УправлениеПечатьюВызовСервера.НачатьФормированиеПечатныхФорм(ПараметрыОткрытия);
	ПараметрыОткрытия.ВладелецФормы = ЭтаФорма;
	
	ОповещениеОЗавершении = Новый ОписаниеОповещения("ВыполнитьОткрытиеПечатнойФормыФормированияПечатныхФорм", ЭтотОбъект, ПараметрыОткрытия);
	ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, УправлениеПечатьюСлужебныйКлиент.ПараметрыОжидания(ЭтаФорма));
	

Изменил во всех и все заработало.
makspro79; mihco; +2 Ответить
10. andrew.ab 220 26.09.23 08:52 Сейчас в теме
(9)
ПараметрыОткрытия.УникальныйИдентификаторХранилища = ЭтаФорма.УникальныйИдентификатор;


Добрый день. А пример можете выложить что и где заменили?
11. denic73 26.09.23 14:07 Сейчас в теме
Вот такой обработчик модуля формы полный теперь


#Область ОбработчикиСобытийФормы

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	Если ЭтоОтладка() Тогда
		Возврат;
	КонецЕсли;	
	
	ПараметрыИсточника = Новый Структура;
	ПараметрыИсточника.Вставить("ИдентификаторКоманды", Параметры.ИдентификаторКоманды);
	ПараметрыИсточника.Вставить("ОбъектыНазначения",    Параметры.ОбъектыНазначения);
	
	ПараметрыОткрытия = УправлениеПечатьюСлужебныйКлиент.ПараметрыОткрытияФормыПечати();
	ПараметрыОткрытия.Вставить("ИсточникДанных",        Параметры.ДополнительнаяОбработкаСсылка);
	ПараметрыОткрытия.Вставить("ПараметрыИсточника",    ПараметрыИсточника);
	ПараметрыОткрытия.Вставить("ПараметрКоманды",       Параметры.ОбъектыНазначения); 
	
	ПараметрыОткрытия.УникальныйИдентификаторХранилища = ЭтаФорма.УникальныйИдентификатор;
	
	ДлительнаяОперация = УправлениеПечатьюВызовСервера.НачатьФормированиеПечатныхФорм(ПараметрыОткрытия);
	ПараметрыОткрытия.ВладелецФормы = ЭтаФорма;
	
	ОповещениеОЗавершении = Новый ОписаниеОповещения("ВыполнитьОткрытиеПечатнойФормыФормированияПечатныхФорм", ЭтотОбъект, ПараметрыОткрытия);
	ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, УправлениеПечатьюСлужебныйКлиент.ПараметрыОжидания(ЭтаФорма));
	
КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьОткрытиеПечатнойФормыФормированияПечатныхФорм(РезультатФоновойОперации, ПараметрыОткрытия) Экспорт
	
	Если Не РезультатФоновойОперации = Неопределено Тогда   
		Если РезультатФоновойОперации.Статус = "Ошибка" Тогда   
			ПоказатьПредупреждение(, РезультатФоновойОперации.КраткоеПредставлениеОшибки);
		Иначе 
			СтруктураРезультата = ПолучитьИзВременногоХранилища(РезультатФоновойОперации.АдресРезультата);
			
			ПараметрыОткрытия.Вставить("ОбъектыПечати",         СтруктураРезультата.ОбъектыПечати);
			ПараметрыОткрытия.Вставить("ПараметрыВывода",       СтруктураРезультата.ПараметрыВывода); 
			ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", СтруктураРезультата.КоллекцияПечатныхФорм);
			
			ВладелецФормы = ПараметрыОткрытия.ВладелецФормы;
			ПараметрыОткрытия.Удалить("ВладелецФормы");
			
			ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, Строка(Новый УникальныйИдентификатор));  
		КонецЕсли;  
	КонецЕсли;
	
	Закрыть();

КонецПроцедуры
#КонецОбласти

Показать
Necronicus360; Desnyanka; berezin; makspro79; user77; +5 Ответить
13. Vinzor 91 15.10.23 14:29 Сейчас в теме
15. aleter 27 25.10.23 11:41 Сейчас в теме
Вот так вроде работает. ПечатьАкта это кнопка на форме
&НаКлиенте
Процедура ПечатьАкта(Команда)
	
	СтандартнаяОбработка = Ложь;
	
	ПараметрыИсточника = Новый Структура;
    ПараметрыИсточника.Вставить("ИдентификаторКоманды", Параметры.ИдентификаторКоманды);
    ПараметрыИсточника.Вставить("ОбъектыНазначения",    Параметры.ОбъектыНазначения);
    
    ПараметрыОткрытия = УправлениеПечатьюСлужебныйКлиент.ПараметрыОткрытияФормыПечати();
    ПараметрыОткрытия.Вставить("ИсточникДанных",        Параметры.ДополнительнаяОбработкаСсылка);
    ПараметрыОткрытия.Вставить("ПараметрыИсточника",    ПараметрыИсточника);
    ПараметрыОткрытия.Вставить("ПараметрКоманды",       Параметры.ОбъектыНазначения); 
    
    ПараметрыОткрытия.УникальныйИдентификаторХранилища = ЭтаФорма.УникальныйИдентификатор;
    		
	СформированныеПечатныеФормы = УправлениеПечатьюВызовСервера.НачатьФормированиеПечатныхФорм(ПараметрыОткрытия);
	ПараметрыОткрытия.ВладелецФормы = ВладелецФормы;
	
	РезультатФоновойОперации = Новый Структура;
	РезультатФоновойОперации.Вставить("Статус", "Выполнено");
	РезультатФоновойОперации.Вставить("КраткоеПредставлениеОшибки", "");
	РезультатФоновойОперации.Вставить("ПодробноеПредставлениеОшибки", "");
	РезультатФоновойОперации.Вставить("Сообщения", Новый ФиксированныйМассив(Новый Массив));
	РезультатФоновойОперации.Вставить("АдресРезультата", ПоместитьВоВременноеХранилище(СформированныеПечатныеФормы, ПараметрыОткрытия.УникальныйИдентификаторХранилища));
	
	ВыполнитьКомандуПечатиПослеФормированияПечатныхФорм(РезультатФоновойОперации, ПараметрыОткрытия);
			
КонецПроцедуры  

&НаКлиенте
Процедура ВыполнитьКомандуПечатиПослеФормированияПечатныхФорм(РезультатФоновойОперации, ПараметрыОткрытия) Экспорт
	Если РезультатФоновойОперации <> Неопределено Тогда
		Если РезультатФоновойОперации.Статус = "Ошибка" Тогда
			ВызватьИсключение РезультатФоновойОперации.КраткоеПредставлениеОшибки;
		КонецЕсли;
		СтруктураРезультата = ПолучитьИзВременногоХранилища(РезультатФоновойОперации.АдресРезультата);
		
		ПараметрыОткрытия.Вставить("ОбъектыПечати", СтруктураРезультата.ОбъектыПечати);
		ПараметрыОткрытия.Вставить("ПараметрыВывода", СтруктураРезультата.ПараметрыВывода);
		ПараметрыОткрытия.Вставить("ПараметрыПечати", СтруктураРезультата.ПараметрыПечати); 
		
		КоллекцияПечатныхФорм	 = СтруктураРезультата.КоллекцияПечатныхФорм;
		ОфисныеДокументы		 = СтруктураРезультата.ОфисныеДокументы;
		Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
			ОфисныеДокументыНовыеАдреса = Новый Соответствие();
			Если ЗначениеЗаполнено(ПечатнаяФорма.ОфисныеДокументы) Тогда
				Для Каждого ОфисныйДокумент Из ПечатнаяФорма.ОфисныеДокументы Цикл
					ОфисныеДокументыНовыеАдреса.Вставить(ПоместитьВоВременноеХранилище(ОфисныеДокументы[ОфисныйДокумент.Ключ], ПараметрыОткрытия.УникальныйИдентификаторХранилища), ОфисныйДокумент.Значение);
				КонецЦикла;
				ПечатнаяФорма.ОфисныеДокументы = ОфисныеДокументыНовыеАдреса;
			КонецЕсли;
		КонецЦикла;
		
		ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", КоллекцияПечатныхФорм);
		
		СообщенияЗадания = Новый Массив(РезультатФоновойОперации.Сообщения);
		ОбщегоНазначенияКлиентСервер.ДополнитьМассив(СообщенияЗадания, СтруктураРезультата.Сообщения);
		ПараметрыОткрытия.Вставить("Сообщения", СообщенияЗадания);
		
		ВладелецФормы = ПараметрыОткрытия.ВладелецФормы;
		ПараметрыОткрытия.Удалить("ВладелецФормы");
		
		ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, Строка(Новый УникальныйИдентификатор));
	КонецЕсли;
КонецПроцедуры
Показать
16. aleter 27 25.10.23 12:08 Сейчас в теме
Для передачи параметров печати, модуль команды должен быть такой:
СтандартнаяОбработка = Ложь;
	
	ДополнительныеПараметры = Новый Структура();
	ДополнительныеПараметры.Вставить("ОбщиеДанные", ПараметрыПечати()); 
				
	ОбъектыНазначения = Новый СписокЗначений;
	ОбъектыНазначения.Добавить(ДополнительныеПараметры);
		
	Для каждого ОбъектНазначения Из Параметры.ОбъектыНазначения Цикл
		ОбъектыНазначения.Добавить(ОбъектНазначения);
	КонецЦикла; 
	
	ПараметрыИсточника = Новый Структура;
    ПараметрыИсточника.Вставить("ИдентификаторКоманды", Параметры.ИдентификаторКоманды);
    ПараметрыИсточника.Вставить("ОбъектыНазначения",    ОбъектыНазначения);
    
    ПараметрыОткрытия = УправлениеПечатьюСлужебныйКлиент.ПараметрыОткрытияФормыПечати();
    ПараметрыОткрытия.Вставить("ИсточникДанных",        Параметры.ДополнительнаяОбработкаСсылка);
    ПараметрыОткрытия.Вставить("ПараметрыИсточника",    ПараметрыИсточника);
    ПараметрыОткрытия.Вставить("ПараметрКоманды",       Параметры.ОбъектыНазначения); 
	
    ПараметрыОткрытия.УникальныйИдентификаторХранилища = ЭтаФорма.УникальныйИдентификатор;
    		
	СформированныеПечатныеФормы = УправлениеПечатьюВызовСервера.НачатьФормированиеПечатныхФорм(ПараметрыОткрытия);
	ПараметрыОткрытия.ВладелецФормы = ВладелецФормы;
	
	РезультатФоновойОперации = Новый Структура;
	РезультатФоновойОперации.Вставить("Статус", "Выполнено");
	РезультатФоновойОперации.Вставить("КраткоеПредставлениеОшибки", "");
	РезультатФоновойОперации.Вставить("ПодробноеПредставлениеОшибки", "");
	РезультатФоновойОперации.Вставить("Сообщения", Новый ФиксированныйМассив(Новый Массив));
	РезультатФоновойОперации.Вставить("АдресРезультата", ПоместитьВоВременноеХранилище(СформированныеПечатныеФормы, ПараметрыОткрытия.УникальныйИдентификаторХранилища));
	
	ВыполнитьКомандуПечатиПослеФормированияПечатныхФорм(РезультатФоновойОперации, ПараметрыОткрытия);
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот