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

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

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


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

	Если Параметры.КоллекцияПечатныхФорм = Неопределено  Тогда
		
		ИменаМакетов = Параметры.ПараметрыИсточника.ИдентификаторКоманды;
				
		ИменаМакетов = СтрРазделить(ИменаМакетов, ",");
		
		КоллекцияПечатныхФорм = СформироватьПечатныеФормы(ИменаМакетов, Отказ);
		
		Если Отказ Тогда
			Возврат;
		КонецЕсли;
		
	Иначе	
		КоллекцияПечатныхФорм = Параметры.КоллекцияПечатныхФорм;
		ИсключитьОфисныеДокументыИзКомплектов(КоллекцияПечатныхФорм);
		ОбъектыПечати = Параметры.ОбъектыПечати;
	КонецЕсли;	
	
Показать
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
pas; user2014960; user1032515; KristinaKa; Hla; +5 Ответить
12. user1032515 4 14.10.23 18:04 Сейчас в теме
(8) Мне помогла замена в функции СведенияОВнешнейОбработке()
КомандаПечати.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(); на
    КомандаПечати.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();

Разработчик обновил версию БСП.
CYCTAHOH; +1 Ответить
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 219 26.09.23 08:52 Сейчас в теме
(9)
ПараметрыОткрытия.УникальныйИдентификаторХранилища = ЭтаФорма.УникальныйИдентификатор;


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


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

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

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

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

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

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

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

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

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

Программист 1C
Санкт-Петербург
зарплата от 140 000 руб. до 200 000 руб.
Полный день