![]() |
![]() |
![]() |
|
V8.2 Внешняя печатная форма с нуля в управляемом режиме | ☑ | ||
---|---|---|---|---|
0
Minirius
13.02.11
✎
12:45
|
Необходимо создать внешнюю печатную форму с нуля, с включенным в неё макетом, в управляемом режиме. Может есть у кого-нибудь примеры подобных форм??... код ошибок не выдает, но и печатную форму не выводит.
|
|||
1
Minirius
13.02.11
✎
12:48
|
в модуле объекта
&НаСервере Функция СведенияОВнешнейОбработке() Экспорт РегистрационныеДанные = Новый Структура; РегистрационныеДанные.Вставить("Наименование", "нПечатная форма 8.2."); РегистрационныеДанные.Вставить("БезопасныйРежим", Истина); РегистрационныеДанные.Вставить("Версия", "1.1"); //ДополнительнаяОбработка //ДополнительныйОтчет //ЗаполнениеОбъекта //Отчет //ПечатнаяФорма //СозданиеСвязанныхОбъектов //РегистрационныеДанные.Вставить("Вид", "ПечатнаяФорма"); РегистрационныеДанные.Вставить("Вид", "ПечатнаяФорма"); РегистрационныеДанные.Вставить("Информация", "Обработка сделано по новому стандарту подключения внешних обработок 8.2. Пример обработки ""Hello Word"" "); ///////////// команды ///////////////////////// тзКоманд = Новый ТаблицаЗначений; тзКоманд.Колонки.Добавить("Идентификатор"); тзКоманд.Колонки.Добавить("Представление"); тзКоманд.Колонки.Добавить("Модификатор"); тзКоманд.Колонки.Добавить("ПоказыватьОповещение"); тзКоманд.Колонки.Добавить("Использование"); строкаКоманды = тзКоманд.Добавить(); строкаКоманды.Идентификатор = "1"; строкаКоманды.Представление = "команда ""Hello Word"" (ОткрытиеФормыНинкиной)"; строкаКоманды.ПоказыватьОповещение = Истина; строкаКоманды.Использование = "ОткрытиеФормы"; строкаКоманды = тзКоманд.Добавить(); строкаКоманды.Идентификатор = "2"; строкаКоманды.Представление = "команда ""Hello Word"" (ВызовКлиентскогоМетода)"; строкаКоманды.ПоказыватьОповещение = Истина; строкаКоманды.Использование = "ВызовКлиентскогоМетода"; строкаКоманды = тзКоманд.Добавить(); строкаКоманды.Идентификатор = "3"; строкаКоманды.Представление = "команда ""Hello Word"" (ВызовСерверногоМетода)"; строкаКоманды.ПоказыватьОповещение = Истина; строкаКоманды.Использование = "ВызовСерверногоМетода"; строкаКоманды.ПоказыватьОповещение = "Истина"; РегистрационныеДанные.Вставить("Команды", тзКоманд); ////////////// назначение (в каких объектах используется) ///////////////////////// //для печ.форм, заполнения, ввода свазанных объектов МассивНазначений = Новый Массив; //МассивНазначений.Добавить("Документ.*"); // все документы назначаются //МассивНазначений.Добавить("Документ.Анкета"); МассивНазначений.Добавить("Документ._ДемоСчетНаОплатуПокупателю"); РегистрационныеДанные.Вставить("Назначение", МассивНазначений); Возврат РегистрационныеДанные; КонецФункции Процедура Печать(ИдентификаторКоманды, ОбъектыНазначения) Экспорт ТабДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Печать"); Запрос = Новый Запрос; Запрос.Текст="ВЫБРАТЬ | _ДемоСчетНаОплатуПокупателю.БанковскийСчет, | _ДемоСчетНаОплатуПокупателю.Дата, | _ДемоСчетНаОплатуПокупателю.Договор, | _ДемоСчетНаОплатуПокупателю.Контрагент, | _ДемоСчетНаОплатуПокупателю.Номер, | _ДемоСчетНаОплатуПокупателю.Организация, | _ДемоСчетНаОплатуПокупателю.Товары.( | НомерСтроки, | Номенклатура, | ЕдиницаИзмерения, | Количество, | Цена, | Сумма, | СуммаНДС, | Всего | ) |ИЗ | Документ._ДемоСчетНаОплатуПокупателю КАК _ДемоСчетНаОплатуПокупателю |ГДЕ | _ДемоСчетНаОплатуПокупателю.Ссылка В (&Ссылка)"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка"); ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка"); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); ТабДок.Очистить(); ВставлятьРазделительСтраниц = Ложь; Пока Выборка.Следующий() Цикл Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ТабДок.Вывести(ОбластьЗаголовок); Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень()); ТабДок.Вывести(ОбластьТоварыШапка); ВыборкаТовары = Выборка.Товары.Выбрать(); Пока ВыборкаТовары.Следующий() Цикл ОбластьТовары.Параметры.Заполнить(ВыборкаТовары); ТабДок.Вывести(ОбластьТовары, ВыборкаТовары.Уровень()); КонецЦикла; ВставлятьРазделительСтраниц = Истина; КонецЦикла; ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; ТабДок.Показать(); ТабДок.Вывести(Макет); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |