ЗУП 3.1 (3.1.27.23) после обновления перестали работать дополнительные печатные формы
Всем доброго дня!
Сегодня обновили ЗУП до последней версии 3.1.27.23, и после обновления перестали формироваться все дополнительные печатные формы. Ошибку не выдают, просто не формируются. Может кто в курсе где что поменялось в коде БСП? Во вложении пример одной из печатных форм для справочника сотрудников.
Сегодня обновили ЗУП до последней версии 3.1.27.23, и после обновления перестали формироваться все дополнительные печатные формы. Ошибку не выдают, просто не формируются. Может кто в курсе где что поменялось в коде БСП? Во вложении пример одной из печатных форм для справочника сотрудников.
Прикрепленные файлы:
ДопСоглашениеКТрудовомуДоговору.epf
По теме из базы знаний
Найденные решения
(6)
(7)Кустарно и впопыхах писал, по этому на мой взгляд корявенько, но работает (во вложении обработка "НаправлениеНаМедОсмотр.epf"). Суть изменений смотрите в процедуре "Ок" формы обработки, и в функции "Печать" модуля обработки.
За основу брал обработку "ТабДок в ПечатьДокументов.epf" (Тоже во вложении).
(7)Кустарно и впопыхах писал, по этому на мой взгляд корявенько, но работает (во вложении обработка "НаправлениеНаМедОсмотр.epf"). Суть изменений смотрите в процедуре "Ок" формы обработки, и в функции "Печать" модуля обработки.
За основу брал обработку "ТабДок в ПечатьДокументов.epf" (Тоже во вложении).
Прикрепленные файлы:
НаправлениеНаМедОсмотр.epf
ТабДок в ПечатьДокументов.epf
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)Да есть, вот из новой версии в Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Я через расширение сделал так
Если Параметры.КоллекцияПечатныхФорм = Неопределено Тогда
Отказ = Истина;
Возврат;
Иначе
КоллекцияПечатныхФорм = Параметры.КоллекцияПечатныхФорм;
ИсключитьОфисныеДокументыИзКомплектов(КоллекцияПечатныхФорм);
ОбъектыПечати = Параметры.ОбъектыПечати;
КонецЕсли;
ПоказатьЯ через расширение сделал так
Если Параметры.КоллекцияПечатныхФорм = Неопределено Тогда
ИменаМакетов = Параметры.ПараметрыИсточника.ИдентификаторКоманды;
ИменаМакетов = СтрРазделить(ИменаМакетов, ",");
КоллекцияПечатныхФорм = СформироватьПечатныеФормы(ИменаМакетов, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Иначе
КоллекцияПечатныхФорм = Параметры.КоллекцияПечатныхФорм;
ИсключитьОфисныеДокументыИзКомплектов(КоллекцияПечатныхФорм);
ОбъектыПечати = Параметры.ОбъектыПечати;
КонецЕсли;
Показать
(6)
(7)Кустарно и впопыхах писал, по этому на мой взгляд корявенько, но работает (во вложении обработка "НаправлениеНаМедОсмотр.epf"). Суть изменений смотрите в процедуре "Ок" формы обработки, и в функции "Печать" модуля обработки.
За основу брал обработку "ТабДок в ПечатьДокументов.epf" (Тоже во вложении).
(7)Кустарно и впопыхах писал, по этому на мой взгляд корявенько, но работает (во вложении обработка "НаправлениеНаМедОсмотр.epf"). Суть изменений смотрите в процедуре "Ок" формы обработки, и в функции "Печать" модуля обработки.
За основу брал обработку "ТабДок в ПечатьДокументов.epf" (Тоже во вложении).
Прикрепленные файлы:
НаправлениеНаМедОсмотр.epf
ТабДок в ПечатьДокументов.epf
(8) Мне помогла замена в функции СведенияОВнешнейОбработке()
Разработчик обновил версию БСП.
КомандаПечати.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(); на
КомандаПечати.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Разработчик обновил версию БСП.
(12)
Аналогичная ситуация, печатная форма после этого стала работать, а то вовсе не появлялась после нажатия на нее
КомандаПечати.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(); на
КомандаПечати.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
КомандаПечати.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Аналогичная ситуация, печатная форма после этого стала работать, а то вовсе не появлялась после нажатия на нее
У меня слетели печатные формы, в которых была форма обработки. Выяснил, что изменилась процедура ПриОткрытии в форме и добавилась процедура ВыполнитьОткрытиеПечатнойФормыФормированияПечатныхФорм.
Было просто ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);
Стало:
Изменил во всех и все заработало.
Было просто ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);
Стало:
ПараметрыОткрытия.УникальныйИдентификаторХранилища = ЭтаФорма.УникальныйИдентификатор;
ДлительнаяОперация = УправлениеПечатьюВызовСервера.НачатьФормированиеПечатныхФорм(ПараметрыОткрытия);
ПараметрыОткрытия.ВладелецФормы = ЭтаФорма;
ОповещениеОЗавершении = Новый ОписаниеОповещения("ВыполнитьОткрытиеПечатнойФормыФормированияПечатныхФорм", ЭтотОбъект, ПараметрыОткрытия);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, УправлениеПечатьюСлужебныйКлиент.ПараметрыОжидания(ЭтаФорма));
Изменил во всех и все заработало.
Вот такой обработчик модуля формы полный теперь
#Область ОбработчикиСобытийФормы
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если ЭтоОтладка() Тогда
Возврат;
КонецЕсли;
ПараметрыИсточника = Новый Структура;
ПараметрыИсточника.Вставить("ИдентификаторКоманды", Параметры.ИдентификаторКоманды);
ПараметрыИсточника.Вставить("ОбъектыНазначения", Параметры.ОбъектыНазначения);
ПараметрыОткрытия = УправлениеПечатьюСлужебныйКлиент.ПараметрыОткрытияФормыПечати();
ПараметрыОткрытия.Вставить("ИсточникДанных", Параметры.ДополнительнаяОбработкаСсылка);
ПараметрыОткрытия.Вставить("ПараметрыИсточника", ПараметрыИсточника);
ПараметрыОткрытия.Вставить("ПараметрКоманды", Параметры.ОбъектыНазначения);
ПараметрыОткрытия.УникальныйИдентификаторХранилища = ЭтаФорма.УникальныйИдентификатор;
ДлительнаяОперация = УправлениеПечатьюВызовСервера.НачатьФормированиеПечатныхФорм(ПараметрыОткрытия);
ПараметрыОткрытия.ВладелецФормы = ЭтаФорма;
ОповещениеОЗавершении = Новый ОписаниеОповещения("ВыполнитьОткрытиеПечатнойФормыФормированияПечатныхФорм", ЭтотОбъект, ПараметрыОткрытия);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, УправлениеПечатьюСлужебныйКлиент.ПараметрыОжидания(ЭтаФорма));
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьОткрытиеПечатнойФормыФормированияПечатныхФорм(РезультатФоновойОперации, ПараметрыОткрытия) Экспорт
Если Не РезультатФоновойОперации = Неопределено Тогда
Если РезультатФоновойОперации.Статус = "Ошибка" Тогда
ПоказатьПредупреждение(, РезультатФоновойОперации.КраткоеПредставлениеОшибки);
Иначе
СтруктураРезультата = ПолучитьИзВременногоХранилища(РезультатФоновойОперации.АдресРезультата);
ПараметрыОткрытия.Вставить("ОбъектыПечати", СтруктураРезультата.ОбъектыПечати);
ПараметрыОткрытия.Вставить("ПараметрыВывода", СтруктураРезультата.ПараметрыВывода);
ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", СтруктураРезультата.КоллекцияПечатныхФорм);
ВладелецФормы = ПараметрыОткрытия.ВладелецФормы;
ПараметрыОткрытия.Удалить("ВладелецФормы");
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, Строка(Новый УникальныйИдентификатор));
КонецЕсли;
КонецЕсли;
Закрыть();
КонецПроцедуры
#КонецОбласти
Показать
Вот так вроде работает. ПечатьАкта это кнопка на форме
&НаКлиенте
Процедура ПечатьАкта(Команда)
СтандартнаяОбработка = Ложь;
ПараметрыИсточника = Новый Структура;
ПараметрыИсточника.Вставить("ИдентификаторКоманды", Параметры.ИдентификаторКоманды);
ПараметрыИсточника.Вставить("ОбъектыНазначения", Параметры.ОбъектыНазначения);
ПараметрыОткрытия = УправлениеПечатьюСлужебныйКлиент.ПараметрыОткрытияФормыПечати();
ПараметрыОткрытия.Вставить("ИсточникДанных", Параметры.ДополнительнаяОбработкаСсылка);
ПараметрыОткрытия.Вставить("ПараметрыИсточника", ПараметрыИсточника);
ПараметрыОткрытия.Вставить("ПараметрКоманды", Параметры.ОбъектыНазначения);
ПараметрыОткрытия.УникальныйИдентификаторХранилища = ЭтаФорма.УникальныйИдентификатор;
СформированныеПечатныеФормы = УправлениеПечатьюВызовСервера.НачатьФормированиеПечатныхФорм(ПараметрыОткрытия);
ПараметрыОткрытия.ВладелецФормы = ВладелецФормы;
РезультатФоновойОперации = Новый Структура;
РезультатФоновойОперации.Вставить("Статус", "Выполнено");
РезультатФоновойОперации.Вставить("КраткоеПредставлениеОшибки", "");
РезультатФоновойОперации.Вставить("ПодробноеПредставлениеОшибки", "");
РезультатФоновойОперации.Вставить("Сообщения", Новый ФиксированныйМассив(Новый Массив));
РезультатФоновойОперации.Вставить("АдресРезультата", ПоместитьВоВременноеХранилище(СформированныеПечатныеФормы, ПараметрыОткрытия.УникальныйИдентификаторХранилища));
ВыполнитьКомандуПечатиПослеФормированияПечатныхФорм(РезультатФоновойОперации, ПараметрыОткрытия);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьКомандуПечатиПослеФормированияПечатныхФорм(РезультатФоновойОперации, ПараметрыОткрытия) Экспорт
Если РезультатФоновойОперации <> Неопределено Тогда
Если РезультатФоновойОперации.Статус = "Ошибка" Тогда
ВызватьИсключение РезультатФоновойОперации.КраткоеПредставлениеОшибки;
КонецЕсли;
СтруктураРезультата = ПолучитьИзВременногоХранилища(РезультатФоновойОперации.АдресРезультата);
ПараметрыОткрытия.Вставить("ОбъектыПечати", СтруктураРезультата.ОбъектыПечати);
ПараметрыОткрытия.Вставить("ПараметрыВывода", СтруктураРезультата.ПараметрыВывода);
ПараметрыОткрытия.Вставить("ПараметрыПечати", СтруктураРезультата.ПараметрыПечати);
КоллекцияПечатныхФорм = СтруктураРезультата.КоллекцияПечатныхФорм;
ОфисныеДокументы = СтруктураРезультата.ОфисныеДокументы;
Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
ОфисныеДокументыНовыеАдреса = Новый Соответствие();
Если ЗначениеЗаполнено(ПечатнаяФорма.ОфисныеДокументы) Тогда
Для Каждого ОфисныйДокумент Из ПечатнаяФорма.ОфисныеДокументы Цикл
ОфисныеДокументыНовыеАдреса.Вставить(ПоместитьВоВременноеХранилище(ОфисныеДокументы[ОфисныйДокумент.Ключ], ПараметрыОткрытия.УникальныйИдентификаторХранилища), ОфисныйДокумент.Значение);
КонецЦикла;
ПечатнаяФорма.ОфисныеДокументы = ОфисныеДокументыНовыеАдреса;
КонецЕсли;
КонецЦикла;
ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", КоллекцияПечатныхФорм);
СообщенияЗадания = Новый Массив(РезультатФоновойОперации.Сообщения);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(СообщенияЗадания, СтруктураРезультата.Сообщения);
ПараметрыОткрытия.Вставить("Сообщения", СообщенияЗадания);
ВладелецФормы = ПараметрыОткрытия.ВладелецФормы;
ПараметрыОткрытия.Удалить("ВладелецФормы");
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, Строка(Новый УникальныйИдентификатор));
КонецЕсли;
КонецПроцедуры
Показать
Для передачи параметров печати, модуль команды должен быть такой:
СтандартнаяОбработка = Ложь;
ДополнительныеПараметры = Новый Структура();
ДополнительныеПараметры.Вставить("ОбщиеДанные", ПараметрыПечати());
ОбъектыНазначения = Новый СписокЗначений;
ОбъектыНазначения.Добавить(ДополнительныеПараметры);
Для каждого ОбъектНазначения Из Параметры.ОбъектыНазначения Цикл
ОбъектыНазначения.Добавить(ОбъектНазначения);
КонецЦикла;
ПараметрыИсточника = Новый Структура;
ПараметрыИсточника.Вставить("ИдентификаторКоманды", Параметры.ИдентификаторКоманды);
ПараметрыИсточника.Вставить("ОбъектыНазначения", ОбъектыНазначения);
ПараметрыОткрытия = УправлениеПечатьюСлужебныйКлиент.ПараметрыОткрытияФормыПечати();
ПараметрыОткрытия.Вставить("ИсточникДанных", Параметры.ДополнительнаяОбработкаСсылка);
ПараметрыОткрытия.Вставить("ПараметрыИсточника", ПараметрыИсточника);
ПараметрыОткрытия.Вставить("ПараметрКоманды", Параметры.ОбъектыНазначения);
ПараметрыОткрытия.УникальныйИдентификаторХранилища = ЭтаФорма.УникальныйИдентификатор;
СформированныеПечатныеФормы = УправлениеПечатьюВызовСервера.НачатьФормированиеПечатныхФорм(ПараметрыОткрытия);
ПараметрыОткрытия.ВладелецФормы = ВладелецФормы;
РезультатФоновойОперации = Новый Структура;
РезультатФоновойОперации.Вставить("Статус", "Выполнено");
РезультатФоновойОперации.Вставить("КраткоеПредставлениеОшибки", "");
РезультатФоновойОперации.Вставить("ПодробноеПредставлениеОшибки", "");
РезультатФоновойОперации.Вставить("Сообщения", Новый ФиксированныйМассив(Новый Массив));
РезультатФоновойОперации.Вставить("АдресРезультата", ПоместитьВоВременноеХранилище(СформированныеПечатныеФормы, ПараметрыОткрытия.УникальныйИдентификаторХранилища));
ВыполнитьКомандуПечатиПослеФормированияПечатныхФорм(РезультатФоновойОперации, ПараметрыОткрытия);
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот