|   |   | 
| 
 | Печатная форма в УФ с формой (выбор подписи пользователем!) | ☑ | ||
|---|---|---|---|---|
| 0
    
        Diamond905 23.02.14✎ 17:56 | 
        Как сделать на управляемой форме (УТ 11 и БП 3), чтобы можно было при выборе печати сначала вызвать форму, где пользователь что то выберет, а потом это будет использоваться при печати? На обычных просто все было - в процедуре печати вызываешь форму модально, выбираешь что нужно и вуаля используешь реквизиты формы.
 На управляемой печать вроде как на сервере, модуль объекта же. Пробовал и так и сяк. Добился того что сначала появляется форма: ДобавитьКоманду(ТаблицаКоманд, "Счет-Фактура с выбором уполномоченных лиц", "ВПФ_MXL_СчетФактура1137", "ОткрытиеФормы", Истина, "ПечатьMXL"); Но дальше то при попытке печати с формы: &НаКлиенте Процедура ОК(Команда) ВыполнитьОткрытиеПечатнойФормы(); ЭтаФорма.Закрыть(); КонецПроцедуры &НаКлиенте Процедура ВыполнитьОткрытиеПечатнойФормы() МассивОбъектов = новый Массив; Для Каждого Строка из ОбъектыПечати Цикл МассивОбъектов.Добавить(Строка.Значение); КонецЦикла; СтандартнаяОбработка = Истина; ДополнительныеОтчетыИОбработкиКлиентПереопределяемый.ПередВыполнениемКомандыПечатиВнешнейПечатнойФормы( МассивОбъектов, СтандартнаяОбработка); Отказ = Ложь; Если СтандартнаяОбработка И Не УправлениеПечатьюКлиент.ПроверитьДокументыПроведены(МассивОбъектов) Тогда Отказ = Истина; КонецЕсли; Если Не Отказ Тогда ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника"); ПараметрыОткрытия.ИсточникДанных = ДополнительнаяОбработкаСсылка; ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения"); ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = ИдентификаторКоманды; ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = МассивОбъектов; ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия); КонецЕсли; //ПоказатьРезультатВыполненияОбработки(); КонецПроцедуры выходило что при печати создается новый экземпляр обработки и там ему пофиг что выбрано в исходной форме. Как правильно то сделать этот механизм в этих великих управляемых формах с их клиент-серверной невозможностью работать с нормальным логичным алгоритмом??? | |||
| 1
    
        Dmitry1c 23.02.14✎ 18:00 | 
        (0) это очень сильное колдунство.     | |||
| 2
    
        marvak 23.02.14✎ 18:38 | 
        (0)
 Я в доп. команде печати в заказе клиента (УТ 11.1.2.28) слелал так: Если УправлениеПечатьюКлиент.ПроверитьДокументыПроведены(ПараметрКоманды, ПараметрыВыполненияКоманды.Источник) Тогда ПараметрыПечати = Новый Структура; СписокВыбора = ПолучитьСписокВыбора(ПараметрКоманды); Если СписокВыбора.Количество() > 0 Тогда ВыбранныйЭлемент = СписокВыбора.ВыбратьЭлемент("Выберите представителя организации в договоре."); Если ВыбранныйЭлемент <> Неопределено Тогда ПараметрыПечати.Вставить("ОтветственноеЛицо", ВыбранныйЭлемент.Значение); УправлениеПечатьюКлиент.ВыполнитьКомандуПечати( "Документ.ЗаказКлиента", "ПремьерПакДоговор", ПараметрКоманды, Неопределено, ПараметрыПечати); КонецЕсли; КонецЕсли; КонецЕсли; &НаСервере Функция ПолучитьСписокВыбора(ПараметрКоманды) СписокВыбора = Новый СписокЗначений; ОтборОтветственныхЛиц = Новый Структура; Если ПараметрКоманды.Количество() > 0 Тогда СсылкаНаЗаказ = ПараметрКоманды[0]; ОтборОтветственныхЛиц.Вставить("Организация", СсылкаНаЗаказ.Организация); КонецЕсли; ОтборОтветственныхЛиц.Вставить("ОтветственноеЛицо", Перечисления.ОтветственныеЛицаОрганизаций.Руководитель); ТаблицаОтветственныхЛиц = ОтветственныеЛицаСервер.ПолучитьТаблицуОтветственныхЛицПоОтбору(ОтборОтветственныхЛиц); ТаблицаОтветственныхЛиц.Сортировать("Должность Убыв"); Для каждого СтрокаТЗ Из ТаблицаОтветственныхЛиц Цикл ФИОФизлица = ФизическиеЛица.ФамилияИнициалыФизЛица(СтрокаТЗ.ФизическоеЛицо); СписокВыбора.Добавить(СтрокаТЗ.Ссылка, СтрокаТЗ.Должность + " " + ФИОФизлица); КонецЦикла; Возврат СписокВыбора; КонецФункции // () | |||
| 3
    
        Мимохожий Однако 23.02.14✎ 18:46 | 
        Удобнее делать выбор не во время печати, а до. Нужную подпись можно хранить в регистре сведений. Например "Уполномоченные лица организации". Или на худой конец в дополнительном реквизите документа.     | |||
| 4
    
        Мимохожий Однако 23.02.14✎ 18:47 | 
        (0)Как это будет выглядеть при групповой печати документов на 100? ))     | |||
| 5
    
        Diamond905 23.02.14✎ 18:47 | 
        Эм, господа, смысл в том что это ВНЕШНЯЯ Печатная форма и менять модули нельзя. С заменой в конфе и я горазд     | |||
| 6
    
        Diamond905 23.02.14✎ 18:47 | 
        (4) никак, ее не будет     | |||
| 7
    
        Diamond905 23.02.14✎ 18:53 | 
        (3) о, идея - может в хранилище сохранять?     | |||
| 8
    
        Мимохожий Однако 23.02.14✎ 18:58 | 
        (6)У пользователя может быть другое мнение, т.к. он всегда прав. 
 (7)Уже как минимум 3 варианта подсказали. Можешь и так. А можешь для каждой подписи свою форму накидать )) | |||
| 9
    
        Diamond905 23.02.14✎ 19:13 | 
        (8) Суть то печатной формы чтоб конфиг не менять, мне ж нужен был вариант как на управляемых. Но хоть и косвенно идею то вы подали. Вот так все получилось!
 &НаКлиенте Процедура ОК(Команда) СохранитьВХранилищеРеквизиты(); ВыполнитьОткрытиеПечатнойФормы(); ЭтаФорма.Закрыть(); КонецПроцедуры &НаСервере Процедура СохранитьВХранилищеРеквизиты() ХранилищаНастроек.ХранилищеБуфераОбмена.Сохранить("ВПФ","РуководительДляВПФСчетФактуры",Объект.Руководитель); ХранилищаНастроек.ХранилищеБуфераОбмена.Сохранить("ВПФ","ГлавныйБухгалтерДляВПФСчетФактуры",Объект.ГлавныйБухгалтер); КонецПроцедуры Потом при формировании: Процедура ЗаполнитьРеквизитыПодвалаСчетФактура(ОбластьПодвала, ДанныеПечати, СведенияОбОрганизации) Руководитель = ХранилищаНастроек.ХранилищеБуфераОбмена.Загрузить("ВПФ","РуководительДляВПФСчетФактуры"); ГлавныйБухгалтер = ХранилищаНастроек.ХранилищеБуфераОбмена.Загрузить("ВПФ","ГлавныйБухгалтерДляВПФСчетФактуры"); Если СведенияОбОрганизации.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда ОбластьПодвала.Параметры.ФИОРуководителя = ?(ЗначениеЗаполнено(Руководитель),Руководитель, ДанныеПечати.Руководитель); ОбластьПодвала.Параметры.ФИОГлавногоБухгалтера = (ЗначениеЗаполнено(ГлавныйБухгалтер),ГлавныйБухгалтер , ДанныеПечати.ГлавныйБухгалтер); Иначе ОбластьПодвала.Параметры.ФИОПБОЮЛ = ДанныеПечати.Руководитель; ОбластьПодвала.Параметры.Свидетельство = СведенияОбОрганизации.Свидетельство; КонецЕсли; КонецПроцедуры | |||
| 10
    
        Холст 23.02.14✎ 19:16 | 
        1. модальные формы под запретом же говорят в УФ
 2. смена последовательности с Док - ОбрПечати - ОбрВыбора - ОбрПечати на Док - ОбрВыбора - ОбрПечати | |||
| 11
    
        Мимохожий Однако 23.02.14✎ 19:31 | 
        (9)Хороший велосипед. При нормальной настройке достаточно типовых настроек. Открой демо УТ и увидишь, что и руководитель и бухгалтер попадают нормально и в ТОРГ12 и в Счет-фактуру.     | |||
| 12
    
        Diamond905 23.02.14✎ 19:42 | 
        (11) мне нужен был скорее универсальный механизм для подобных конструкций. Этот вроде подходит     | |||
| 13
    
        Поpyчик-4 24.02.14✎ 09:17 | 
        (0) Передача параметров/значений во внешнюю печатную форму для конфигураций на БСП
 http://infostart.ru/public/191796/ | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |