ZloyBrawler
Full Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору LaCastet Пригляделся к коду в конфе. Как видно печать идет через вызов УправлениеПечатьюУТКлиент.ПечатьЭтикетокИЦенников Но это как видно же в контексте Клиента вызывается. Потом там еще открывается окно с выбором товаров. Ну для начала можно написать так в новой обработке в ее модуле Код: Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.3.3.0"); ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма(); ПараметрыРегистрации.Наименование = ЭтотОбъект.Метаданные().Представление(); ПараметрыРегистрации.Версия = "0.1"; ПараметрыРегистрации.БезопасныйРежим = Ложь; ПараметрыРегистрации.Назначение.Добавить("Документ.РеализацияТоваровУслуг"); НоваяКоманда = ПараметрыРегистрации.Команды.Добавить(); НоваяКоманда.Представление = "Ценники"; НоваяКоманда.Идентификатор = "ЦенникиВнешняя"; НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(); НоваяКоманда.ПоказыватьОповещение = Истина; НоваяКоманда.Модификатор = "ПечатьMXL"; НоваяКоманда = ПараметрыРегистрации.Команды.Добавить(); НоваяКоманда.Представление = "Этикетки"; НоваяКоманда.Идентификатор = "ЭтикеткиВнешняя"; НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(); НоваяКоманда.ПоказыватьОповещение = Истина; НоваяКоманда.Модификатор = "ПечатьMXL"; Возврат ПараметрыРегистрации; КонецФункции | Потом нужно создать форму которая откроется при вызове Кнопки печати "Ценники" или "Этикетки". Потом добавляем три параметра формы ДополнительнаяОбработкаСсылка - СправочникСсылка.ДополнительныеОтчетыИОбработки ИдентификаторКоманды - Строка ОбъектыНазначения - Произвольный Их можно легко читать в ПриСозданииНаСервере В этой форме уже нужно начинать колдовать, так как Код: В ОбщемМодуле УправлениеПечатьюУТКлиент Функция ПечатьЭтикетокИЦенников(ОписаниеКоманды) Экспорт ДополнительныеПараметры = Новый Структура("МенеджерПечати", ОписаниеКоманды.МенеджерПечати); АдресВХранилище = УправлениеПечатьюУТВызовСервера.ДанныеДляПечатиЦенниковИЭтикеток( ОписаниеКоманды.Идентификатор, ОписаниеКоманды.ОбъектыПечати, ДополнительныеПараметры); ОткрытьФорму( "Обработка.ПечатьЭтикетокИЦенников.Форма.ФормаТовары", Новый Структура("АдресВХранилище, НазначениеШаблона", АдресВХранилище, Неопределено), ОписаниеКоманды.Форма, Новый УникальныйИдентификатор); КонецФункции | Использовать не получится ибо при вызове УправлениеПечатьюУТВызовСервера.ДанныеДляПечатиЦенниковИЭтикеток будет обращение допустим к модулю менеджера документа для получения данных Код: ... Если Идентификатор = "Ценники" Тогда Возврат МенеджерОбъекта.ДанныеДляПечатиЦенников(ОбъектыПечати); ИначеЕсли Идентификатор = "Этикетки" Тогда Возврат МенеджерОбъекта.ДанныеДляПечатиЭтикеток(ОбъектыПечати); КонецЕсли; ... | И как известно в расходной накладной нет функций ДанныеДляПечатиЦенников и ДанныеДляПечатиЭтикеток. Словим ошибку. Значит эти функции нужно тащить во внешнюю обработку (в модуль обработки, не в форму, в форму не культурно) и модифицировать чтобы они брали данные по документу РеализацияТоваровУслуг. Вызывать одну или другую это нужно смотреть в параметр ИдентификаторКоманды Когда данные разместятся в переменной АдресВХранилище, тут уже можно использоваться код Код: ... ОткрытьФорму( "Обработка.ПечатьЭтикетокИЦенников.Форма.ФормаТовары", Новый Структура("АдресВХранилище, НазначениеШаблона", АдресВХранилище, Неопределено), ОписаниеКоманды.Форма, Новый УникальныйИдентификатор); ... | конечно же не в чистом виде, беспокоит ОписаниеКоманды.Форма, что с ней делать, хз вызывал бы код выше в обработчике ПриОткрытии и попутно устанавливал Отказ = Истина, чтобы наше окно обработки не выползало дальше не хочу смотреть, устал, предлагаю вам продолжить немного самому))) | Всего записей: 514 | Зарегистр. 19-10-2010 | Отправлено: 20:46 13-07-2017 | Исправлено: ZloyBrawler, 20:51 13-07-2017 |
|