Имя: Пароль:
1C
1С v8
1С Расширение
0 first_may
 
04.02.18
18:08
Добрый вечер.

Хочу, что бы после печати комплекта документов, было выполнено прикрепление файлов. Конфа на поддержке. Поэтому сделал расширение и в него добавил событие

&После("ВыполнитьКомандуПечати")
Процедура Расш_ПечатьКомплектаДокументов_ВыполнитьКомандуПечати(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ВладелецФормы, ПараметрыПечати)
    ФорматыСохранения = Новый Массив;
    ФорматыСохранения.Добавить(ТипФайлаТабличногоДокумента.PDF);
    
    РезультатВыбора = Новый Структура;
    РезультатВыбора.Вставить("УпаковатьВАрхив", Истина);
    РезультатВыбора.Вставить("ФорматыСохранения", ФорматыСохранения);
    РезультатВыбора.Вставить("ВариантСохранения", "Присоединить");
    РезультатВыбора.Вставить("ПапкаДляСохранения", "");
    РезультатВыбора.Вставить("ОбъектДляПрикрепления", МассивОбъектов[0]);
    РезультатВыбора.Вставить("ПереводитьИменаФайловВТранслит", Истина);
    РезультатВыбора.Вставить("АдресКомплектаПечатныхФорм", ПараметрыПечати.АдресКомплектаПечатныхФорм);
    
    ФайлыВоВременномХранилище = ПоместитьТабличныеДокументыВоВременноеХранилище(РезультатВыбора);
    //ПрисоединитьПечатныеФормыКОбъекту(ФайлыВоВременномХранилище, МассивОбъектов[0]);
КонецПроцедуры

тут же написал, взяв из формы сохранения
&НаСервере
Функция ПоместитьТабличныеДокументыВоВременноеХранилище(ПереданныеНастройки) Экспорт
...

но когда делаю проверку, то получаю сообщение

{Расширение_ПечатьКомплектаДокументов ОбщийМодуль.УправлениеПечатьюКлиент.Модуль(196,30)}: Процедура или функция с указанным именем не определена (ПоместитьТабличныеДокументыВоВременноеХранилище)
    ФайлыВоВременномХранилище = <<?>>ПоместитьТабличныеДокументыВоВременноеХранилище(РезультатВыбора); (Проверка: Тонкий клиент)


Подскажите пож, как правильно указать директивы?
1 first_may
 
04.02.18
18:26
Нужна помощь. Очень.
2 Неверный Параметр И
 
04.02.18
18:39
> УправлениеПечатьюКлиент
> &НаСервере

Ничего не смущает?
3 first_may
 
04.02.18
18:43
(2) а как надо?
4 first_may
 
04.02.18
18:53
(2) но код в форме ПечатьДокументов такой же

то есть
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
    
    Если ВРег(ИсточникВыбора.ИмяФормы) = ВРег("ОбщаяФорма.СохранениеПечатнойФормы") Тогда
        
        Если ВыбранноеЗначение <> Неопределено И ВыбранноеЗначение <> КодВозвратаДиалога.Отмена Тогда
            ФайлыВоВременномХранилище = ПоместитьТабличныеДокументыВоВременноеХранилище(ВыбранноеЗначение);
            Если ВыбранноеЗначение.ВариантСохранения = "СохранитьВПапку" Тогда
                СохранитьПечатныеФормыВПапку(ФайлыВоВременномХранилище, ВыбранноеЗначение.ПапкаДляСохранения);
            Иначе
                ЗаписанныеОбъекты = ПрисоединитьПечатныеФормыКОбъекту(ФайлыВоВременномХранилище, ВыбранноеЗначение.ОбъектДляПрикрепления);


а внутри вызываются фунции НаСервере.
5 Неверный Параметр И
 
04.02.18
19:10
(3) Надо разместить серверный метод в месте, где доступен серверный контекст.
6 first_may
 
04.02.18
19:17
(5) то есть в расширении подключен модуль УправлениеПечатьюКлиент

в котором
&После("ВыполнитьКомандуПечати")
Процедура Расш_ПечатьКомплектаДокументов_ВыполнитьКомандуПечати(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ВладелецФормы, ПараметрыПечати)
    ФорматыСохранения = Новый Массив;
    ФорматыСохранения.Добавить(ТипФайлаТабличногоДокумента.PDF);
    
    РезультатВыбора = Новый Структура;
    РезультатВыбора.Вставить("УпаковатьВАрхив", Истина);
    РезультатВыбора.Вставить("ФорматыСохранения", ФорматыСохранения);
    РезультатВыбора.Вставить("ВариантСохранения", "Присоединить");
    РезультатВыбора.Вставить("ПапкаДляСохранения", "");
    РезультатВыбора.Вставить("ОбъектДляПрикрепления", МассивОбъектов[0]);
    РезультатВыбора.Вставить("ПереводитьИменаФайловВТранслит", Истина);
    РезультатВыбора.Вставить("АдресКомплектаПечатныхФорм", ПараметрыПечати.АдресКомплектаПечатныхФорм);
    
    ФайлыВоВременномХранилище = УправлениеПечатью.ПоместитьТабличныеДокументыВоВременноеХранилище(РезультатВыбора);
    УправлениеПечатью.ПрисоединитьПечатныеФормыКОбъекту(ФайлыВоВременномХранилище, МассивОбъектов[0]);
КонецПроцедуры




а
    ФайлыВоВременномХранилище = УправлениеПечатью.ПоместитьТабличныеДокументыВоВременноеХранилище(РезультатВыбора);
    УправлениеПечатью.ПрисоединитьПечатныеФормыКОбъекту(ФайлыВоВременномХранилище, МассивОбъектов[0]);

надо поместить в модуль, у которого в свойствах установлен флаг Сервер?
7 Неверный Параметр И
 
04.02.18
19:25
(6) И установлен флаг вызова сервера.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.