Имя: Пароль:
1C
 
ЗУП 3.1 Внешняя печатная форма не видит документ, к которому должна подключаться.
0 Vasiliy2018
 
26.01.18
11:45
ЗУП 3.1.4.120

Возникла необходимость перенести печатные формы с 2.5.

Соответственно была создана новая внешняя обработка с реквизитом «СсылкаНаОбъект» с  типом ДокументСсылка.НужныйДокумент.

Перенесет макет.

Оформлена процедура «СведенияОВнешнейОбработке» и все сопутствующее.

Но возникла проблема, обработка не видит «СсылкаНаОбъект», соответственно отрисовывает голый макет без параметров.



В чем может быть проблема?
1 Alexandr_U1982
 
26.01.18
11:49
2 Alexandr_U1982
 
26.01.18
11:51
Реквизит "СсылкаНаОбъект" не нужен.
Объект(ы), к которому привязана печатная форма, в процедуру печати передается другим способом.
3 Darych
 
26.01.18
11:54
в 3.1 другая парадигма.. кури БСП
4 Vasiliy2018
 
26.01.18
14:16
(2) но как?

Глянул описание, расписаны СведенияОВнешнейОбработке(), но не понятно к чему обращаться. Назначение документа указано.
5 Alexandr_U1982
 
26.01.18
14:22
(4)Для особо одаренных и тех, кто не умеет читать до конца:

Пример: внешняя печатная форма
Обработка с одной печатной формой:

Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.3.1.73");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.Версия = "1.3";
    // Определение объектов, к которым подключается эта обработка.
    ПараметрыРегистрации.Назначение.Добавить("Документ._ДемоСчетНаОплатуПокупателю");
    // Добавление команды печати "Счет на оплату".
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'Счет на оплату (внешняя печатная форма)'");
    НоваяКоманда.Идентификатор = "СчетНаОплату";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    НоваяКоманда.Модификатор = "ПечатьMXL";
    Возврат ПараметрыРегистрации;
КонецФункции

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "СчетНаОплату");
    Если ПечатнаяФорма <> Неопределено Тогда
        ПечатнаяФорма.ТабличныйДокумент = СформироватьСчетНаОплатуПокупателю(МассивОбъектов, ОбъектыПечати);
        ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Счет на оплату'");
    КонецЕсли;
КонецПроцедуры

Функция СформироватьСчетНаОплатуПокупателю(МассивОбъектов, ОбъектыПечати)
    ТабличныйДокумент = Новый ТабличныйДокумент;
     ....
    Возврат ТабличныйДокумент;
КонецФункции
6 Alexandr_U1982
 
26.01.18
14:23
Для назначаемых обработок типа ПечатнаяФорма реализовать экспортную процедуру Печать с параметрами МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати и ПараметрыВывода. Описание параметров см. в разделе «Печать». При этом в структуре ПараметрыВывода содержится свойство ДополнительнаяОбработкаСсылка (ссылка на элемент справочника ДополнительныеОтчетыИОбработки, который связан с данной дополнительной обработкой).

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
  // Реализация логики команды печати
  Если ИдентификаторКоманды = ... Тогда
    ...
  ИначеЕсли ...
КонецПроцедуры
7 Alexandr_U1982
 
26.01.18
14:24
Вариант запуска «Вызов клиентского метода»
Для назначаемых обработок типа ПечатнаяФорма реализовать экспортную процедуру Печать с двумя параметрами: ИдентификаторКоманды и ОбъектыНазначенияМассив, где ИдентификаторКоманды – строка, идентификатор команды; ОбъектыНазначенияМассив – массив ссылок на объекты информационной базы, для которых выполняется дополнительная обработка:

&НаКлиенте
Процедура Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив)
  // Реализация логики команды печати
  // ...
КонецПроцедуры