Имя: Пароль:
1C
1С v8
УФ: как во внешнюю печ.форму добавить пару реквизитов для выбора перед печатью?
0 Shved_72
 
29.05.13
15:00
чото умучался весь...
надо перед печать спросить пару данных у юзера и передать их на печать.
открыть я уже смог и даже смог вызвать из команды клиенты, процедуры модуля обьъекта:
Как выполнить экспортируемую процедуру объекта, находясь в его форме?
&НаСервере
Процедура ПересчитатьЦеныНаСервере()
               
    ОбъектОтчет = РеквизитФормыВЗначение("Объект", Тип("ОбъектОтчет .Накладная"));
    ОбъектДокумента.Печать();
    ЗначениеВРеквизитФормы(ОбъектОтчет , "Объект");
               
КонецПроцедуры

но в вызываемую процедуру надо передать
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

чо это и кого сувать?
отлидчик не ловит ничо, при добавлении они наверно в хранилище в битовом виде чтоли...
1 Shved_72
 
29.05.13
15:04
прочитал и это
// Тут задается, как должна вызваться команда обработки
  // Возможные варианты:
  // - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
  // - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
  // - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
  Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
2 Shved_72
 
29.05.13
15:05
передаю ОткрытиеФормы
форма открывается и все. печати нет
3 Shved_72
 
29.05.13
15:06
из этой же серии: почему то доп.отчеты добавленные также через стандартные подсистемы не появились как заявлено в БСП в доп.отчетах подсистем
БП 3.0
4 Shved_72
 
29.05.13
15:24
как сложно стало делать простые вещи
5 Shved_72
 
29.05.13
16:25
нашел как ловить отладку через зад:

в начале обработки ставишь
РаботаСДиалогами.ВывестиПредупреждение("ААААА");

в момент пока предупреждение висит, идешь в отладчик, жмешь остановить, возвращаешься в Предприятие, Ок, шифт-F11 - и ты у себя в ВПФ.
6 Новиков
 
29.05.13
16:34
а какой вид обработки ты указал?
7 Shved_72
 
29.05.13
16:37
(6) это где?
8 Новиков
 
29.05.13
16:46
ПараметрыРегистрации.Вид или как там у тебя называется эта структура?
9 Shved_72
 
29.05.13
16:49
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
10 Новиков
 
29.05.13
16:59
ну коли ты пошел через открытие формы, то - логику работы в самой форме за тебя вряд ли кто-то нарисует. Процедуру, которую нужно дергать, ты уже отыскал. Осталось подготовить нужные тебе параметры, и туда их передать. В чем проблема, прочитать хелп по параметрам процедуры? :)
11 Новиков
 
29.05.13
17:01
Кстати, с отладкой ты тоже что-то перемудрил совсем. Ты либо через внешнюю обработку свою открывай, и там уже отлаживай свой код, либо форму отладочную накидал быстро - и оттуда дернул печать (что тебе и нужно). А остановки по ошибки (работают от платформы к платформе), да по предупреждениям - это какие-то квадрокоперы :)
12 Shved_72
 
29.05.13
17:09
(10) хелп только в БСП, а там
...
КоллекцияПечатныхФорм

Служебная таблица значений. Через нее передаются имена макетов, для которых должны быть сформированы табличные документы. Возвращаются синонимы макетов (представление), сформированные табличные документы с указанием количества экземпляров, картинка для отображения на закладке соответствующего табличного документа в форме печати документов...

а структура тз нигде не описывается.

перехватил отладчиком:
Индекс    Значение элемента    Тип элемента    ИмяМакета    ИмяВРЕГ    СинонимМакета    ТабличныйДокумент    Экземпляров    Картинка    ПолныйПутьКМакету
0    СтрокаТаблицыЗначений    СтрокаТаблицыЗначений    "Акт приемки"    "АКТ ПРИЕМКИ"            1
13 Shved_72
 
29.05.13
17:10
ну я вроде кончаю. сменил вызываемую процедуру. получается в обход БСП. низнаю чем ущербней. хотя одно знаю - пакетная печать комплектов уже не сработает...
14 Shved_72
 
29.05.13
17:10
не люблю через зад, но пока этому рад
15 Новиков
 
29.05.13
17:11
но коле кончел, тогда, пожалуй, я свои советы, приберегу для более сдержанного товарисча :)
16 Shved_72
 
29.05.13
17:17
почему то стандартный метод БСП перестает больше работать после открытия формы. по идее я бы закрыл и он обратно вернулся на свой путь. или надо запрос реквизитов делать в другой форме другой обработки, чтобы эту не трогать...
17 Новиков
 
29.05.13
17:19
он перестал работать токма потому, что ты в параметру херь передал, если передал вообще...

Открой демо-пример из БСП, да погляди, мученник. А то так можно и приступ получить сердечный. Ты уже все расколупал до потрохов, осталось только сформировать параметры и! и? и ты сгородил какую-то свою шнягу. Печаль.
18 Shved_72
 
29.05.13
17:23
(17) я передал параметры - копию тех что поймал отладичком при  печати без диалога:
МассивОбъектов = Новый Массив(1);
   МассивОбъектов[0] = Объект.Док;
   
   КоллекцияПечатныхФорм    = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("Акт приемки");
   ОбъектыПечати            = "";
   ПараметрыВывода            = "";
   
   ПечатьНаСервере(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);

но вывода формы не произошло
19 Shved_72
 
29.05.13
17:25
последней вызывается
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
   Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Акт приемки") Тогда
       УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Акт приемки", "Акт приемки", СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати));
   КонецЕсли;
КонецПроцедуры // Печать()
20 Shved_72
 
29.05.13
17:26
где:
Процедура ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, ИмяМакета, СинонимМакета, ТабличныйДокумент, Картинка = Неопределено, ПолныйПутьКМакету = "") Экспорт
   
   Стр = КоллекцияПечатныхФорм.Найти(ВРег(ИмяМакета), "ИмяВРЕГ");
   
   Если Стр <> Неопределено Тогда
       Стр.ТабличныйДокумент = ТабличныйДокумент;
       Стр.СинонимМакета = СинонимМакета;
       Стр.Картинка = Картинка;
       Стр.ПолныйПутьКМакету = ПолныйПутьКМакету;
   КонецЕсли;
   
КонецПроцедуры
21 Shved_72
 
29.05.13
17:26
что и где делает ТабличныйДокумент.Вывести() ?
22 Shved_72
 
29.05.13
17:27
т.е. Показать()
23 Shved_72
 
29.05.13
17:48
поставил последнюю БСП. в ней нет пример печатной формы с диалогом.
24 Shved_72
 
29.05.13
17:52
зато посмотрел что такое печать комплекта. красиво. но как раз моя формы бы в это не вписалась, т.к. ей надо спросить чтонить в диалоге у юзера. поэтому реализовывать в контексте БСП не представляется возможным. наверно
25 Новиков
 
29.05.13
19:18
(24) ты ошибаешься, возможно и в бсп даже показано - как