Как передать ссылку на документ во внешнюю печатную форму

1. khnatik 03.05.11 15:38 Сейчас в теме
Помогите пожалуйста со следующим вопросом.
Работаю в УТ 11 редакция (управляемое приложение). Нужно создать внешнюю печатную форму, которая могла бы вызываться из документов некоторого типа и выполнять какие-то действия (в частности, печатать этикетки из документов Поступление товаров услуг и Перемещение товаров). Подключить внешнюю обработку удалось, указала и вид и назначение, и все остальное, что нужно - форма вызывается из нужных документов, НО: я никак не могу понять, как передать в обработку ссылку на вызвавший ее документ. В 10.3 это было реализовано через реквизит СсылкаНаОбъект, в который автоматически передавалась ссылка. В 11 редакции такого нет. Может быть кто-то сталкивался с этим, подскажите пожалуйста, как это сделать
По теме из базы знаний
Найденные решения
5. Legolas 67 09.02.12 15:15 Сейчас в теме
Внешние печ. формы и обработки для управляемых приложений должны содержать обязательную функцию
СведенияОВнешнейОбработке()
Ссылка на документ заполняется в теле этой функции:
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ЗаказПокупателя");
И при вызове внешней печатной формы, например, для документа "Заказ покупателя" ссылка передается автоматически, а в модуле доступна будет в переменной "МассивНазначений"...
Только печатную форму нужно добавить в "Дополнительные отчеты и обработки" и при необходимости настроить назначение печатной формы (выбрать для какого она документа)...

_________________________
Вот пример обработки для управляемой УТ:

Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ЗаказПокупателя");

ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "ВПФ Заказ клиента (в виде счета)");
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
ПараметрыРегистрации.Вставить("Информация", "Дополнительная печатная форма к документу заказ клиента");

ТаблицаКоманд = ПолучитьТаблицуКоманд();

ДобавитьКоманду(ТаблицаКоманд,
"Счет покупателю",
"ВПФ Заказ клиента (в виде счета)",
"ВызовСерверногоМетода",
Истина,
"ПечатьMXL");

ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

Возврат ПараметрыРегистрации;

КонецФункции

Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры

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


// Функция формирует печатную форму документа.
//
// Параметры:
// Тип - Строка - тип печатной формы: Заказ или Счет
// МассивОбъектов - Массив - массив документов для печати
// ОбъектыПечати - СписокЗначений
//
// Возвращаемое значение:
// ТабличныйДокумент
//
Функция СформироватьПечатнуюФорму(Тип, МассивОбъектов, ОбъектыПечати)

УстановитьПривилегированныйРежим(Истина);

ТабличныйДокумент = Новый ТабличныйДокумент;

Запрос = Новый Запрос();
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказКлиента.Ссылка КАК Ссылка,
| ЗаказКлиента.Номер КАК Номер,
| ЗаказКлиента.Дата КАК Дата,
| ЗаказКлиента.Организация КАК Организация,
| ЗаказКлиента.Организация.ТекущийРуководитель.Наименование КАК Руководитель,
| ЗаказКлиента.Организация.ТекущийГлавныйБухгалтер.Наименование КАК ГлавныйБухгалтер,
| ВЫБОР
| КОГДА
| ЗаказКлиента.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК УчитыватьНДС,
| ЗаказКлиента.Организация.Префикс КАК Префикс,
| ЗаказКлиента.Контрагент КАК Контрагент,
| ЗаказКлиента.БанковскийСчет КАК БанковскийСчет,
| ЗаказКлиента.БанковскийСчет.ТекстКорреспондента КАК БанковскийСчетТекстКорреспондента,
| ЗаказКлиента.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ЗаказКлиента.Валюта КАК Валюта,
| ЗаказКлиента.Менеджер.ФизическоеЛицо.Наименование КАК Менеджер,
| ЗаказКлиента.ДополнительнаяИнформация КАК ДополнительнаяИнформация,
| ЗаказКлиента.ЭтапыГрафикаОплаты.(
| НомерСтроки КАК НомерСтроки,
| ВариантОплаты КАК ВариантОплаты,
| ДатаПлатежа КАК ДатаПлатежа,
| ПроцентПлатежа КАК ПроцентПлатежа,
| СуммаПлатежа КАК СуммаПлатежа
| ) КАК ЭтапыГрафикаОплаты,
| ЗаказКлиента.Товары.(
| НомерСтроки КАК НомерСтроки,
| Номенклатура КАК Номенклатура,
| Номенклатура.Код КАК Код,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
| ВЫБОР
| КОГДА ЗаказКлиента.Товары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
| ТОГДА ПРЕДСТАВЛЕНИЕ(ЗаказКлиента.Товары.Номенклатура.ЕдиницаИзмерения)
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ЗаказКлиента.Товары.Упаковка.ЕдиницаИзмерения)
| КОНЕЦ КАК ЕдиницаИзмерения,
| КоличествоУпаковок КАК Количество,
| Цена КАК Цена,
| СуммаРучнойСкидки + СуммаАвтоматическойСкидки КАК СуммаСкидки,
| Сумма + СуммаРучнойСкидки + СуммаАвтоматическойСкидки КАК СуммаБезСкидки,
| Сумма КАК Сумма,
| СтавкаНДС КАК СтавкаНДС,
| СуммаНДС КАК СуммаНДС,
| ДатаОтгрузки КАК ДатаОтгрузки,
| Характеристика КАК Характеристика,
| Отменено КАК Отменено
| )
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
|ГДЕ
| ЗаказКлиента.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка";

ФормированиеПечатныхФорм.ЗаполнитьТабличныйДокументСчетЗаказ(ТабличныйДокумент, Запрос, ОбъектыПечати, Тип);

Если ПривилегированныйРежим() Тогда
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;

Возврат ТабличныйДокумент;

КонецФункции // СформироватьПечатнуюФорму()
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. azmon 1 08.02.12 08:18 Сейчас в теме
как это нету реквизита? Вы же его сами во внеш печ форме создаете и можете его назвать хоть как
3. Filipok 08.02.12 08:34 Сейчас в теме
В процедуре печати в модуле объекта 2-м параметром передается массив ОбъектыНазначения, который и содержит документы.
Процедура Печать(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
4. vx_gas 32 09.02.12 14:39 Сейчас в теме
5. Legolas 67 09.02.12 15:15 Сейчас в теме
Внешние печ. формы и обработки для управляемых приложений должны содержать обязательную функцию
СведенияОВнешнейОбработке()
Ссылка на документ заполняется в теле этой функции:
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ЗаказПокупателя");
И при вызове внешней печатной формы, например, для документа "Заказ покупателя" ссылка передается автоматически, а в модуле доступна будет в переменной "МассивНазначений"...
Только печатную форму нужно добавить в "Дополнительные отчеты и обработки" и при необходимости настроить назначение печатной формы (выбрать для какого она документа)...

_________________________
Вот пример обработки для управляемой УТ:

Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ЗаказПокупателя");

ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "ВПФ Заказ клиента (в виде счета)");
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
ПараметрыРегистрации.Вставить("Информация", "Дополнительная печатная форма к документу заказ клиента");

ТаблицаКоманд = ПолучитьТаблицуКоманд();

ДобавитьКоманду(ТаблицаКоманд,
"Счет покупателю",
"ВПФ Заказ клиента (в виде счета)",
"ВызовСерверногоМетода",
Истина,
"ПечатьMXL");

ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

Возврат ПараметрыРегистрации;

КонецФункции

Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры

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


// Функция формирует печатную форму документа.
//
// Параметры:
// Тип - Строка - тип печатной формы: Заказ или Счет
// МассивОбъектов - Массив - массив документов для печати
// ОбъектыПечати - СписокЗначений
//
// Возвращаемое значение:
// ТабличныйДокумент
//
Функция СформироватьПечатнуюФорму(Тип, МассивОбъектов, ОбъектыПечати)

УстановитьПривилегированныйРежим(Истина);

ТабличныйДокумент = Новый ТабличныйДокумент;

Запрос = Новый Запрос();
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказКлиента.Ссылка КАК Ссылка,
| ЗаказКлиента.Номер КАК Номер,
| ЗаказКлиента.Дата КАК Дата,
| ЗаказКлиента.Организация КАК Организация,
| ЗаказКлиента.Организация.ТекущийРуководитель.Наименование КАК Руководитель,
| ЗаказКлиента.Организация.ТекущийГлавныйБухгалтер.Наименование КАК ГлавныйБухгалтер,
| ВЫБОР
| КОГДА
| ЗаказКлиента.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК УчитыватьНДС,
| ЗаказКлиента.Организация.Префикс КАК Префикс,
| ЗаказКлиента.Контрагент КАК Контрагент,
| ЗаказКлиента.БанковскийСчет КАК БанковскийСчет,
| ЗаказКлиента.БанковскийСчет.ТекстКорреспондента КАК БанковскийСчетТекстКорреспондента,
| ЗаказКлиента.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ЗаказКлиента.Валюта КАК Валюта,
| ЗаказКлиента.Менеджер.ФизическоеЛицо.Наименование КАК Менеджер,
| ЗаказКлиента.ДополнительнаяИнформация КАК ДополнительнаяИнформация,
| ЗаказКлиента.ЭтапыГрафикаОплаты.(
| НомерСтроки КАК НомерСтроки,
| ВариантОплаты КАК ВариантОплаты,
| ДатаПлатежа КАК ДатаПлатежа,
| ПроцентПлатежа КАК ПроцентПлатежа,
| СуммаПлатежа КАК СуммаПлатежа
| ) КАК ЭтапыГрафикаОплаты,
| ЗаказКлиента.Товары.(
| НомерСтроки КАК НомерСтроки,
| Номенклатура КАК Номенклатура,
| Номенклатура.Код КАК Код,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
| ВЫБОР
| КОГДА ЗаказКлиента.Товары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
| ТОГДА ПРЕДСТАВЛЕНИЕ(ЗаказКлиента.Товары.Номенклатура.ЕдиницаИзмерения)
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ЗаказКлиента.Товары.Упаковка.ЕдиницаИзмерения)
| КОНЕЦ КАК ЕдиницаИзмерения,
| КоличествоУпаковок КАК Количество,
| Цена КАК Цена,
| СуммаРучнойСкидки + СуммаАвтоматическойСкидки КАК СуммаСкидки,
| Сумма + СуммаРучнойСкидки + СуммаАвтоматическойСкидки КАК СуммаБезСкидки,
| Сумма КАК Сумма,
| СтавкаНДС КАК СтавкаНДС,
| СуммаНДС КАК СуммаНДС,
| ДатаОтгрузки КАК ДатаОтгрузки,
| Характеристика КАК Характеристика,
| Отменено КАК Отменено
| )
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
|ГДЕ
| ЗаказКлиента.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка";

ФормированиеПечатныхФорм.ЗаполнитьТабличныйДокументСчетЗаказ(ТабличныйДокумент, Запрос, ОбъектыПечати, Тип);

Если ПривилегированныйРежим() Тогда
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;

Возврат ТабличныйДокумент;

КонецФункции // СформироватьПечатнуюФорму()
6. Vigor06 13.02.13 12:27 Сейчас в теме
Друзья,столкнулся с такой же пролемой( Помогите,пожалуйста. Уже больше часа мучаю гугл и все бестолку
Вот код:

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

Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Экспорт

Перем Запрос, ВыборкаШапки, ВыборкаТоваров; // Определяем переменные, используемые
Перем ТабДокумент, Макет, ОбластьМакета; // в нашей обработке

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", МассивОбъектов[0].Ссылка);
Запрос.Текст = "ВЫБРАТЬ
| ТребованиеНакладная.Материалы.(
| ЕдиницаИзмерения,
| Количество,
| Себестоимость КАК Цена,
| Номенклатура.Представление КАК Представление
| )
|ИЗ
| Документ.ТребованиеНакладная КАК ТребованиеНакладная
|ГДЕ
| ТребованиеНакладная.Ссылка = &ТекущийДокумент";
Выборка= Запрос.Выполнить().Выбрать();
Выборка.Следующий();
ТабДокумент = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("АктУстановкиЗапЧастей"); // Получаем оригинальный макет который
// храниться в нашей обработке

ОбластьМакета = Макет.ПолучитьОбласть("ОбластьШапка");
//ОбластьМакета.Параметры.ДатаДок = СсылкаНаОбъект.Дата;
ТабДокумент.Вывести(ОбластьМакета);

ОбластьМакета = Макет.ПолучитьОбласть("ОбластьШапка2");
//ОбластьМакета.Параметры.Комментарий = ссылкаНаОбъект.Комментарий;
ТабДокумент.Вывести(ОбластьМакета);

ОбластьМакета = Макет.ПолучитьОбласть("ОбластьЗаголовок");
ТабДокумент.Вывести(ОбластьМакета);

// Выводим строки таблицы
ОбластьМакета = Макет.ПолучитьОбласть("ОбластьСтрока");
Сч = 1;
Сумма = 0;
Пока Выборка.Следующий() Цикл
ОбластьМакета.Параметры.Сч= Сч;
ОбластьМакета.Параметры.Номенклатура = Выборка.Представление;
ОбластьМакета.Параметры.Колво = Выборка.Количество;
ОбластьМакета.Параметры.Цена = Выборка.Цена;
ОбластьМакета.Параметры.Ед = Выборка.ЕдиницаИзмерения;
//ОбластьМакета.Параметры.ДатаДок = СсылкаНаОбъект.Дата;
//ОбластьМакета.Параметры.Сумма = Выборка.Сумма;
ТабДокумент.Вывести(ОбластьМакета);
Сумма = Сумма + Выборка.Цена;
Сч = Сч + 1;
КонецЦикла;

// Выводим секцию с итоговой суммой
ОбластьМакета = Макет.ПолучитьОбласть("ОбластьИтог");
ОбластьМакета.Параметры.СуммаИтог = Сумма;
ТабДокумент.Вывести(ОбластьМакета);

// Выводим секцию для подписей сторон
ОбластьМакета = Макет.ПолучитьОбласть("ОбластьПодвал");
ОбластьМакета.Параметры.СуммаПр = ЧислоПрописью(Сумма);
ТабДокумент.Вывести(ОбластьМакета);

Возврат ТабДокумент;
КонецФункции // Печать()





Функция СведенияОВнешнейОбработке() Экспорт
// Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные
ПараметрыРегистрации = Новый Структура;

// Объявим еще одну переменную, которая нам потребуется ниже
МассивНазначений = Новый Массив;

// Первый параметр, который мы должны указать - это какой вид обработки системе должна зарегистрировать.
// Допустимые типы: ДополнительнаяОбработка, ДополнительныйОтчет, ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");

// Теперь нам необходимо передать в виде массива имен, к чему будет подключена наша ВПФ
// Имейте ввиду, что можно задать имя в таком виде: Документ.* - в этом случае обработка будет подключена ко всем документам в системе,
// которые поддерживают механизм ВПФ
МассивНазначений.Добавить("Документ.ТребованиеНакладная");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);

// Теперь зададим имя, под которым ВПФ будет зарегистрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("Наименование", "Акт установки зап.частей");

// Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод УстановитьБезопасныйРежим)
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);

// Следующие два параметра играют больше информационную роль, т.е. это то, что будет видеть пользователь в информации к обработке
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "Дополнительная печатная форма к документу Требование-накладная");

// Создадим таблицу команд (подробнее смотрим ниже)
ТаблицаКоманд = ПолучитьТаблицуКоманд();

// Добавим команду в таблицу
ДобавитьКоманду(ТаблицаКоманд, "Акт установки зап.частей", "АктУстановкиЗапЧастей", "ВызовСерверногоМетода", Истина, "ПечатьMXL");

// Сохраним таблицу команд в параметры регистрации обработки
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

// Теперь вернем системе наши параметры
Возврат ПараметрыРегистрации;
КонецФункции

Функция ПолучитьТаблицуКоманд()Экспорт

// Создадим пустую таблицу команд и колонки в ней
Команды = Новый ТаблицаЗначений;

// Как будет выглядеть описание печатной формы для пользователя
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));

// Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));

// Тут задается, как должна вызваться команда обработки
// Возможные варианты:
// - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
// - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
// - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));

// Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));

// Для печатной формы должен содержать строку ПечатьMXL
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции





Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")Экспорт
// Добавляем команду в таблицу команд по переданному описанию.
// Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры
7. Vigor06 13.02.13 12:28 Сейчас в теме
Да,и сейчас при печати он выводит табличный документ то, но там ничего не заполнено,ибо не передается ссылка на текущий документ,из которого происходит печать
8. Vigor06 13.02.13 13:28 Сейчас в теме
11. Alexey26 2 07.12.15 16:27 Сейчас в теме
(8) Vigor06, хотелось бы прочитать более подробно о ваших успехах.
13. Vigor06 12.04.16 10:18 Сейчас в теме
14. maratik131 10.06.16 07:57 Сейчас в теме
(13) Vigor06, актуально, сложно что-ли написать?:)
va582; Hamma; +2 Ответить
9. scout1988 5 13.02.15 10:46 Сейчас в теме
напишите как решили вопрос, сам столкнулся с такой проблемой :(
10. scout1988 5 13.02.15 16:36 Сейчас в теме
разобрался в своей ошибке "метод объекта не обнаружен (печать)", которая возникала из-за того, что в конфигурации Альфа Авто нету в общих модулях УправлениеПечатью, пришлось реализовывать самому...
12. Vigor06 12.04.16 10:11 Сейчас в теме
еще актуально?
acanta; va582; stroganov_ru; zivan38; DrBash; +5 Ответить
16. romulanin 02.09.19 13:37 Сейчас в теме
15. White13 06.02.19 23:24 Сейчас в теме
Три года прошло и еще актуально
Оставьте свое сообщение

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