|   |   | 
| 
 | Создание печ. формы в УТ 11 | ☑ | ||
|---|---|---|---|---|
| 0
    
        sanja26 22.04.12✎ 15:29 | 
        есть процедура
  // Выполнить команду печати, которая открывает результат в форме печати документов Процедура ВыполнитьКомандуПечати(ИмяМенеджераПечати, ИменаМакетов, ПараметрКоманды, ВладелецФормы, ПараметрыПечати = Неопределено) Экспорт // Проверим количество объектов Если НЕ ПроверитьКоличествоПереданныхОбъектов(ПараметрКоманды) Тогда Возврат; КонецЕсли; // Получим ключ уникальности открываемой формы КлючУникальности = Строка(Новый УникальныйИдентификатор); ПараметрыОткрытия = Новый Структура("ИмяМенеджераПечати,ИменаМакетов,ПараметрКоманды,ПараметрыПечати"); ПараметрыОткрытия.ИмяМенеджераПечати = ИмяМенеджераПечати; ПараметрыОткрытия.ИменаМакетов = ИменаМакетов; ПараметрыОткрытия.ПараметрКоманды = ПараметрКоманды; ПараметрыОткрытия.ПараметрыПечати = ПараметрыПечати; // Откроем форму печати документов ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, КлючУникальности); КонецПроцедуры В ней параметр команды - документСсылка а при создании на сервере ПараметрКоманды - это массив реквизитов документа. &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Перем КоллекцияПечатныхФорм, ПараметрыВывода; // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". Если Параметры.Свойство("АвтоТест") Тогда Возврат; КонецЕсли; Если Параметры.Свойство("ИсточникДанных") Тогда Если НЕ УправлениеПечатьюПереопределяемый.ПечатьПоВнешнемуИсточнику( Параметры.ИсточникДанных, Параметры.ПараметрыИсточника, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Тогда Отказ = Истина; Возврат; КонецЕсли; КлючНастроек = Неопределено; Иначе ИмяМенеджераПечати = Параметры.ИмяМенеджераПечати; ИменаМакетов = Параметры.ИменаМакетов; ПараметрКоманды = Параметры.ПараметрКоманды; ПараметрыПечати = Параметры.ПараметрыПечати; УправлениеПечатью.СформироватьПечатныеФормы(ИмяМенеджераПечати, ИменаМакетов, ПараметрКоманды, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода); КлючНастроек = Параметры.ИмяМенеджераПечати + "-" + Параметры.ИменаМакетов; КонецЕсли; как так? | |||
| 1
    
        sanja26 22.04.12✎ 15:31 | 
        параметрКоманды - параметр формы "ПечатьДокументов", тип Произвольный     | |||
| 2
    
        sanja26 22.04.12✎ 18:51 | 
        как все-таки так получается, на выходе ссылка, на входе массив реквизитов     | |||
| 3
    
        sanja26 22.04.12✎ 23:17 | 
        апну на ночь глядя     | |||
| 4
    
        Агент Инфостарта 23.04.12✎ 00:13 | 
        Чёрная магия, не иначе.
  Что смущает или непонятно? | |||
| 5
    
        sanja26 23.04.12✎ 00:31 | 
        (4) хоть кто-то откликнулся)  
  Смущает то, что при вызове процедуры открытия формы передается в параметре ссылка, а в процедйре ПриСозданииНаСервере у форме в параметре массив реквизитов этой ссылки | |||
| 6
    
        Агент Инфостарта 23.04.12✎ 01:01 | 
        Так задумано. Ваша задача сделать печатную форму, а не копаться в потрохах конфигурации.
  Печатую форму рекомендую разрабатывать на основе существующих. | |||
| 7
    
        sanja26 23.04.12✎ 01:17 | 
        так на основе типовой и делается
  ПараметрКоманды = Параметры.ПараметрКоманды; // Подготовим коллекцию для формируемых печатных форм КоллекцияПечатныхФорм = ПодготовитьКоллекциюПечатныхФорм("Торг12_метро"); // Подготовим структуру параметров вывода ПараметрыВывода = ПодготовитьСтруктуруПараметровВывода(); ОбъектыПечати = Новый СписокЗначений; СтруктураТипов = РазложитьМассивПоТипамОбъектов(МассивОбъектов); УстановитьПривилегированныйРежим(Истина); УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТОРГ12", "ТОРГ-12 (Товарная накладная" + " без услуг)", СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати)); МассивОбъектов придется вручную создавать | |||
| 8
    
        sanja26 23.04.12✎ 01:19 | 
        Процедура Печать() Экспорт
  ПараметрКоманды = Параметры.ПараметрКоманды; // Подготовим коллекцию для формируемых печатных форм КоллекцияПечатныхФорм = ПодготовитьКоллекциюПечатныхФорм("Торг12_метро"); // Подготовим структуру параметров вывода ПараметрыВывода = ПодготовитьСтруктуруПараметровВывода(); ОбъектыПечати = Новый СписокЗначений; СтруктураТипов = РазложитьМассивПоТипамОбъектов(МассивОбъектов); УстановитьПривилегированныйРежим(Истина); УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТОРГ12", "ТОРГ-12 (Товарная накладная" + " без услуг)", СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати)); КонецПроцедуры | |||
| 9
    
        sanja26 23.04.12✎ 01:19 | 
        ПараметрКоманды    = Параметры.ПараметрКоманды;   -- лишнее     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |