Имя: Пароль:
1C
1С v8
v8: мутабельное значение и толстый клиент
0 EvgeniuXP
 
20.01.14
20:52
Сделал кнопку во внешней обработке (конфигурация УПП) и написал вызов функции УправлениеПечатью.СформироватьПечатныеФормы(), где пятым параметром передается обычная переменная, в которую должна вернуться коллекция макетов... но в итоге платформа пишет ошибку: Попытка передачи с сервера клиенту мутабельного значения...

Работаю в толстом режиме, обычные формы (не управляемые)...
1 shuhard
 
20.01.14
20:53
(0) зря ты на сервер объект передаешь
2 EvgeniuXP
 
20.01.14
20:55
(1) пятым параметром я передают переменную Коллекция, которая перед этой функции:

Колллекция = Неопределено;
3 EvgeniuXP
 
20.01.14
21:00
(1) ошибка выдается при окончании вызова процедуры СформироватьПечатныеФормы()
4 EvgeniuXP
 
20.01.14
21:07
платформа 8.2.19.76.
5 EvgeniuXP
 
20.01.14
23:43
еще советы?
6 ОбычныйЧеловек
 
21.01.14
00:04
(5) в (1) тебе и совет и вариант исправления.
7 К_Дач
 
21.01.14
00:08
(0) где модуль компилируешь? флаги компиляции посмотри
8 ОбычныйЧеловек
 
21.01.14
00:12
(7) так из (0) и так понятно,что флаг там один "Сервер".
9 EvgeniuXP
 
21.01.14
00:13
вопрос отпадает, дома во внешней обработке сделал - всё работает... на работе тоже самое - нифига... буду завтра разбираться...
10 К_Дач
 
21.01.14
00:14
(9) дома у тебя и сервер и клиент на одной локальной машине)))
11 ОбычныйЧеловек
 
21.01.14
00:15
(9) у тебя дома скл стоит?
12 EvgeniuXP
 
21.01.14
00:15
(9) так толстый клиент - че ему не нравится-то..., там да - SQL-сервер...
13 EvgeniuXP
 
21.01.14
00:16
(11) на файловой проверил...
14 ОбычныйЧеловек
 
21.01.14
00:16
(13) юморист )))
15 EvgeniuXP
 
21.01.14
00:18
мне пятый параметр нужен, там макеты формируются - их и возвращает - на них и ошибка
16 EvgeniuXP
 
21.01.14
00:19
точнее возвращает таблицу значений, в строках которых хранятся табличные документы... как тогда печатные формы получить? может другая функция есть?
17 К_Дач
 
21.01.14
00:19
(14) я сразу понял, что на файловой)))
18 EvgeniuXP
 
21.01.14
00:19
ДокументСсылка = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("ТК000000001");
    
    МассивОбъектов = Новый Массив;
    МассивОбъектов.Добавить(ДокументСсылка);
    
    ПараметрыПечати = Неопределено;
    КоллекцияПечатныхФорм = Неопределено;
    ОбъектыПечати = Неопределено;
    ПараметрыВывода = Неопределено;
    
    
    УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", "ТОРГ12", МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
19 EvgeniuXP
 
21.01.14
00:20
как тогда табличные документы получить?
20 К_Дач
 
21.01.14
00:22
(19) http://help1c.com/faq/view/1407.html

с уважением, Ваш гууууугл )))
21 EvgeniuXP
 
21.01.14
00:23
(20) временное понятно, мне из типового решения надо взять... не меняя кода.
22 EvgeniuXP
 
21.01.14
00:24
(20) т.к. там различные формы макетов могут создаваться и эта функция их - отчеты и формирует по имени... не буду же я весь их модуль копировать к себе и потом еще во временные пихать... это ж, убиться можно...
23 К_Дач
 
21.01.14
00:25
Ну сделай ТЧ у своей обработки и заполняй ее на сервере
24 EvgeniuXP
 
21.01.14
00:28
(23) и переносить весь модуль по формированию макета по имени (имена разные)?... обновлять потом плохо такое типовое решение... потом сравнивай всё это хозяйство...
25 zladenuw
 
21.01.14
00:29
(24) создай реквизит с произвольным значением. заполняешь на сервере. поидее должно проконать
26 EvgeniuXP
 
21.01.14
00:32
а взять сформированный макет ни как нельзя? выводить мне его на форму не надо в универсальном форме "Печать документов"...
27 EvgeniuXP
 
21.01.14
00:34
просто хочу взять и отправить на емайл по всем документам (типы документов разные)
28 К_Дач
 
21.01.14
00:34
УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", "ТОРГ12", МассивОбъектов, ПараметрыПечати, Обработка.ТЧКоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
29 EvgeniuXP
 
21.01.14
00:36
(28) понял :) СПС!!!
30 EvgeniuXP
 
21.01.14
09:15
(28) ошибка та же самая... перенес вызов процедуры УправлениеПечатью.СформироватьПечатныеФормы в модуль обработки - всё равно ругается на пятый параметр :(((
31 Feunoir
 
21.01.14
09:31
Может ты полный текст ошибки приведёшь? Таблицу значений между сервером и толстым клиентом передавать можно.
32 EvgeniuXP
 
21.01.14
09:33
{Форма.Форма.Форма(15)}: Ошибка при вызове метода контекста (СформироватьПечатныеФормы)
    УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", "ТОРГ12", МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);    
по причине:
Попытка передачи с сервера клиенту мутабельного значения 5-го параметра метода СформироватьПечатныеФормы ().
33 EvgeniuXP
 
21.01.14
09:35
{Форма.Форма.Форма(14)}: Ошибка при вызове метода контекста (СформироватьПечатныеФормы)
    УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", "ТОРГ12", МассивОбъектов, ПараметрыПечати, ЭтотОбъект.КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);    
по причине:
Попытка передачи с сервера клиенту мутабельного значения 5-го параметра метода СформироватьПечатныеФормы ().
34 Feunoir
 
21.01.14
09:37
Ок.

А скриншот с содержимым КоллекцииПечатныхФорм с сервера можно?
35 EvgeniuXP
 
21.01.14
09:42
Поставил код:

                #Если ТолстыйКлиентОбычноеПриложение Тогда
                    А = 1;
                    
                #КонецЕсли
                
                #Если ТолстыйКлиентУправляемоеПриложение Тогда
                    А = 2;
                    
                #КонецЕсли

Отрабатывает первое условие.
36 EvgeniuXP
 
21.01.14
09:44
(34) что у типовой возвращает?

у меня не возвращает, при этом даже

КоллекцииПечатныхФорм = Неопределено;
УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", "ТОРГ12", МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);

ошибка на (32)
37 Infsams654
 
21.01.14
09:45
(35) При чем тут это ? В этом, просто видишь как оно работает в клиент-сервер. Зачем передаешь мутабельные значения ?
38 Feunoir
 
21.01.14
09:52
(36) В УправлениеПечатью.СформироватьПечатныеФормы поставь точку останова в конце процедуры и посмотри что в каком параметре у тебя возвращается с сервера.
39 EvgeniuXP
 
21.01.14
10:00
ИмяМенеджераПечати: строка
ИменаМакетов: строка
МассивОбъектов: массив, количество элементов 1, содержит ссылку на документ.
ПараметрыПечати: Неопределено
КоллекцияПечатныхФорм: таблица значений, количество строк 1, содержит табличный документ, остальные примитивные колонки у строки, типа Неопределено, Строка, Число.
ОбъектыПечати: список значений, количество 1, в качестве значения ДокументСсылка.
ПараметрыВывода - структура, три ключа значения которых: Ложь, Неопределено, Неопределено.
40 EvgeniuXP
 
21.01.14
10:02
(37) тыкни пальцем, где я передаю мутабельное значение:

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    ДокументСсылка = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("ТК000000001");
    
    МассивОбъектов = Новый Массив;
    МассивОбъектов.Добавить(ДокументСсылка);
    
    ПараметрыПечати = Неопределено;
    КоллекцияПечатныхФорм = Неопределено;
    ОбъектыПечати = Неопределено;
    ПараметрыВывода = Неопределено;
    
    УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", "ТОРГ12", МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);    
    
КонецПроцедуры
41 Infsams654
 
21.01.14
10:21
(40) УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", "ТОРГ12", МассивОбъектов, ПараметрыПечати, ЭтотОбъект.КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);

ЭтотОбъект.КоллекцияПечатныхФорм - это что такое ?
42 EvgeniuXP
 
21.01.14
10:22
(7) ОбщийМодуль.УправлениеПечатью() - галки: Сервер, ВызовСервера.
43 Feunoir
 
21.01.14
10:23
(39) Непонятная хреновина. Всё должно работать нормально. Форму ТОРГ12 не меняли? Может где в расшифровку засунули какой левый объект? Но тогда оно бы и из документа не печаталось бы. Попробуй другой макет сформировать.
44 EvgeniuXP
 
21.01.14
10:24
(41) вторым способом пробовал, это у обработки Реквизит с типом "ТаблицаЗначений".

в (40) инициализирую в неопределено и называю по-другому, чтобы не пересекалось с именем реквизита.
45 EvgeniuXP
 
21.01.14
10:27
(43) в типовой печатается, из моей функции тоже печатается (отображается форма с документом), если идти от Объект.Печать(). Но мне форма не нужна, мне макет нужно получить, поэтому пытаюсь взять напрямую из УправлениеПечатью.СформироватьПечатныеФормы.
46 wPa
 
21.01.14
10:32
(18) хард-код детектед. да еще кривой. фу таким быть
47 х86
 
21.01.14
10:33
(45)>>Но мне форма не нужна, мне макет нужно

что есть в твоем понимании макет? и зачем он тебе?
48 EvgeniuXP
 
21.01.14
10:37
(43) М15 - тоже самое...
49 EvgeniuXP
 
21.01.14
10:38
(47) табличный документ, чтобы его передать на емайл.
50 х86
 
21.01.14
10:40
(49)возьми с формы
51 EvgeniuXP
 
21.01.14
10:40
сформировать нужно несколько табличных документов отфильтрованных по периоду и сотруднику: РеализацияТоваровИУслуг и СчетФактураВыданная и отправить контрагенту на емайл, при этом еще отправить по каждому документу на отдельный адрес, который указан в документе - добавлен реквизит свой.
52 EvgeniuXP
 
21.01.14
10:42
(50) это ж тупо... в цикле документов формировать форму и вытаскивать табличный документ, при этом форму не отображать...
53 EvgeniuXP
 
21.01.14
10:52
ДокументСсылка.ПолучитьОбъект().Печать("ТОРГ12", 0, Ложь) - форму выводит с документом.
54 EvgeniuXP
 
21.01.14
10:52
(50) и как с формы взять?
55 EvgeniuXP
 
21.01.14
11:49
(50) там общая форма, а в нее параметры нельзя передавать, имя макета по котору формируется отчет...
56 EvgeniuXP
 
21.01.14
11:50
со внешними обработками нет проблем - там как-раз табличный документ и возвращается...
57 EvgeniuXP
 
21.01.14
11:59
ладно, сделаю отдельный модуль для обычного приложения... может он вернет коллекцию, опишу также как управляемый по получению стандартных форм по двум документам - выхода нет...
58 EvgeniuXP
 
21.01.14
12:32
ппц, обработу сделал на управляемой форме - пошло :)
не фиг в обычной было делать :)))
59 EvgeniuXP
 
21.01.14
17:00
в управляемой форме другие проблемы.... криворукие какие-то типовые пишут... как можно писать .ПолучитьОбъект().ПроцедураВызова(), а он исполняется на сервере писать "ПроцедураВызова" в директиве препроцессора Клиент... - слов нет...
60 EvgeniuXP
 
21.01.14
17:01
т.е. всю структуру макета получить не могу... точнее получил, но форму по умолчанию не могу получить, т.к. она берется из ВосстановитьПоУмолчанию(), а эта процедура работает только в толстом клиенте в обычных формах...
61 EvgeniuXP
 
21.01.14
17:03
(60) имя макета, которое является по умолчанию хранится в самой форме толстого клиента...
62 EvgeniuXP
 
21.01.14
17:04
жесть... как всё-таки получить макеты в толстом клиенте...
63 EvgeniuXP
 
21.01.14
17:05
сформированные (табличные документы)
64 EvgeniuXP
 
21.01.14
17:09
В обработке (обычная форма) необходимо, чтобы отработал код в клиент-сервером варианте (на файловой работает), которая вернет коллекцию печатных форм (сформированных табличных документов):

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    ДокументСсылка = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("Кш000014672", Дата(2013, 04, 17));
    
    
    МассивОбъектов = Новый Массив;
    МассивОбъектов.Добавить(ДокументСсылка);
    
    КоллекцияПечатныхФорм = Неопределено;
    ОбъектыПечати = Новый СписокЗначений;
    
    ПС_УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", "ТОРГ12", МассивОбъектов, Неопределено, КоллекцияПечатныхФорм, ОбъектыПечати, Неопределено);
КонецПроцедуры
65 EvgeniuXP
 
21.01.14
17:10
последняя строка;
УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", "ТОРГ12", МассивОбъектов, Неопределено, КоллекцияПечатныхФорм, ОбъектыПечати, Неопределено);
- является стандартной типовой функцией. (ПС_ - ошибся).
66 H A D G E H O G s
 
21.01.14
17:15
А ты - упорный парень.
67 H A D G E H O G s
 
21.01.14
17:15
По ощущениям - уже можно было бы написать годный код методом тыка, навреное.
68 Ярус
 
21.01.14
17:16
(67) это если чем тыкать есть
69 EvgeniuXP
 
21.01.14
17:20
(67) так написал бы, просто тут другая форма, из которую нужно показать на форме какие макеты и там некоторые макеты выделены по умолчанию, а эта запись берется уже из настроек сохраненных пользователем, которые хранятся в формах обычных... так бы уже давно двинулся дальше... а через управляемые формы я получил все сформированные отчеты...
70 H A D G E H O G s
 
21.01.14
17:25
http://upload.wikimedia.org/wikipedia/commons/6/66/Whitenoisesound.ogg

Вот так я примерно воспринимаю автора.

Короче, что не получается?
71 EvgeniuXP
 
21.01.14
17:26
нафиг, проще настройки сохранять в регистре по каждому пользователю и брать от туда какой отчет по умолчанию является, буду дальше на управляемых формах делать :)
72 zladenuw
 
21.01.14
17:27
(70) шутник однако
73 EvgeniuXP
 
21.01.14
17:30
(70) спасибо, сделаю регистр сведений по сохранению отчетов по умолчанию для каждого пользовователя, в глобальнике поменяю в пару местах и всё.

все модули тянуть в обычные формы по формированию отчетов - не выход и не есть гуд.
74 H A D G E H O G s
 
21.01.14
17:32
Автор скорее всего в шоке от типовой подсистемы печати в УПП, и пытается прикрутить к ней сохранение выбранных пользователем галочками нужных печатных форм, количества копий, вывода сразу на принтер с учетом внешних обработок печати, и как в толстом, так и в тонком.

Удачи.
75 zladenuw
 
21.01.14
17:32
(71) а если на сервере Коллекцию конвертиш в массив или структуру и передаешь на клиент. не ?
76 H A D G E H O G s
 
21.01.14
17:32
Только мне непонятно мутабельное значение причем тут.
77 zladenuw
 
21.01.14
17:36
(75) типа обвернуть так
ПС_УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", "ТОРГ12", МассивОбъектов, Неопределено, ТабЗначВМассив(КоллекцияПечатныхФорм), ОбъектыПечати, Неопределено);

Функция ТабЗначВМассив(ТаблицаЗначений) Экспорт
    НашМассив = Новый Массив;
    Для Каждого СтрокаТаблицы из ТаблицаЗначений Цикл
        НашаСтруктура = Новый Структура;
        Счетчик = 0;
        Для Каждого СтрокаСтруктуры из СтрокаТаблицы Цикл
            Если НЕ ТипЗнч(СтрокаСтруктуры) = Тип(ТаблицаЗначений) тогда
                НашаСтруктура.Вставить(ТаблицаЗначений.Колонки[Счетчик].Имя,СтрокаТаблицы[Счетчик]);
            Иначе
                НашаСтруктура.Вставить(ТаблицаЗначений.Колонки[Счетчик].Имя,ТабЗначВМассив(СтрокаСтруктуры));
            КонецЕсли;
            Счетчик = Счетчик + 1;
        КонецЦикла;
        НашМассив.Добавить(НашаСтруктура);
    КонецЦикла;
    Возврат(НашМассив);
КонецФункции

может и взлетит :)
78 К_Дач
 
21.01.14
20:07
(58) ну ииии???

&наклиенте

СформироватьМакетыСервер();

&насервере
СформироватьМакетыСервер()

УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", "ТОРГ12", МассивОбъектов, ПараметрыПечати, ЭтотОбъект.КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);

КоллекцияПечатныхФорм - сделай ее ТЧ, а не реквизитом, добавь реквизиты ТЧ "Макет", какие там еще нужны.
79 EvgeniuXP
 
21.01.14
22:07
(77) зачем обертывать? В процедуру передается нормально (можно вообще передать с типом Неопределено, там функция сама сделать ТЗ с макетами), вернуть процедура не может значение (тз) через параметр КоллекцияПечатныхФорм, в строках которых хранится табличные документы.
(76) при возврате ругается на мутабельное значение - вот тоже понять не могу, работаю в толстом клиенте в обычных формах.

(64) в файловой работает код, а в клиент-сервере нет.
80 EvgeniuXP
 
21.01.14
22:10
(70) шок только от одного:

ДокументСсылка.ПолучитьОбъект().ВызватьКлиентскуюПроцедуру() - вот это точно шок, так извращаться :)

, где ВызватьКлиентскуюПроцедуру в модуле объекта описана как:

#Если НаКлиенте Тогда
Процедура ВызватьКлиентскуюПроцедуру()
   ...
КонецПроцедуры
#КонецЕсли
81 К_Дач
 
21.01.14
22:16
(80) тебе возвращать надо не сами макеты, а ссылки на них, как ты не поймешь то
82 EvgeniuXP
 
21.01.14
22:19
(81) я это понимаю, только надо править типовые модули, что не хотелось бы...
83 EvgeniuXP
 
21.01.14
22:22
(81) просто думал, может Клиент-Сервер расставить как-то в своей обработке по-умному и получу коллекцию без правки типового общего модуля - ведь по факту я работаю в толстом клиенте, и коллекция заполняется...
84 EvgeniuXP
 
21.01.14
22:25
я одно понять не могу, почему возникает эта ошибка "мутабельное значение", работаю в толстом на обычных формах - разделение на клиент-сервер же нет...
85 ОбычныйЧеловек
 
21.01.14
22:28
(84) разделение на клиент-сервер же нет...

Когда разделения нет (а нет его в твоей файловой версии) то и ошибки нет, а когда разделение есть (а есть оно у тебя на работе) то ошибка есть... обычные формы и клиент сервер не являются взаимоисключающим понятиями как ты почему-то решил.
86 EvgeniuXP
 
21.01.14
22:30
проверить очень просто, открываем типовую УПП 1.3, создаем внешнюю обработку обычная форма, на кнопку выполнить вешаем код (64), документ только подравьте Номер и дату, чтоб нашел документ, и запускаем - в клиент-сервере не выполнится, ошибка.
87 EvgeniuXP
 
21.01.14
22:33
(85) тогда еще один добавить параметр МассивТабличныхДокументов в процедуру УправлениеПечатью.СформироватьПечатныеФормы, массивТабличныхДокументов и возвращать для "особых" случаев...

тогда еще так попробую завтра... а то уже на управляемые пошел...
88 К_Дач
 
21.01.14
22:39
(83) я тебе написал выше, как расставить клиент сервер. С клиента вызываешь серверную процедуру, из серверной процедуры вызываешь свой общий модуль, который компилируется на сервере, макеты пихаешь в табличную часть, при возврате в обработку получишь ссылки.

Ну или скопируй весь требуемый код из общего модуля к себе в модуль объекта обработки. По нажатию кнопки на форме создавай экземпляр объекта обработки и вызывай нужную процедуру.
89 EvgeniuXP
 
21.01.14
22:43
&НаСервере - не прокатит, там ошибка вылетает прямо при открытии формы внешней обработки, а препроцессорную не пробовал
90 EvgeniuXP
 
21.01.14
22:45
(88) хорошо, попробую и этот способ.
91 К_Дач
 
21.01.14
22:49
&НаКлиенте
Процедура КнопкаВыполнитьНажатие(Кнопка)
    КнопкаВыполнитьНажатиеСервер();
КонецПроцедуры

&НаСервере
Процедура КнопкаВыполнитьНажатиеСервер()
    // Вставить содержимое обработчика.
КонецПроцедуры

Обычная форма, обычное приложение. Ничего не ругается.
92 EvgeniuXP
 
22.01.14
09:06
(91) Новую обработку сделал, в ней только этот код:


&НаКлиенте
Процедура КнопкаВыполнитьНажатие(Кнопка)
    КнопкаВыполнитьНажатиеСервер();
КонецПроцедуры

&НаСервере
Процедура КнопкаВыполнитьНажатиеСервер()
    ДокументСсылка = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("Кш000014672", Дата(2013, 04, 17));
    
    МассивОбъектов = Новый Массив;
    МассивОбъектов.Добавить(ДокументСсылка);
    
    КоллекцияПечатныхФорм = Неопределено;
    ОбъектыПечати = Новый СписокЗначений;
    
    УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", "ТОРГ12", МассивОбъектов, Неопределено, КоллекцияПечатныхФорм, ОбъектыПечати, Неопределено);                
КонецПроцедуры

Ошибка:
{Форма.Форма.Форма(4,5)}: Процедура или функция с указанным именем не определена (КнопкаВыполнитьНажатиеСервер)
    <<?>>КнопкаВыполнитьНажатиеСервер();
93 EvgeniuXP
 
22.01.14
09:08
&НаСервере
Процедура КнопкаВыполнитьНажатиеСервер()
    ДокументСсылка = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("Кш000014672", Дата(2013, 04, 17));
    
    МассивОбъектов = Новый Массив;
    МассивОбъектов.Добавить(ДокументСсылка);
    
    КоллекцияПечатныхФорм = Неопределено;
    ОбъектыПечати = Новый СписокЗначений;
    
    УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", "ТОРГ12", МассивОбъектов, Неопределено, КоллекцияПечатныхФорм, ОбъектыПечати, Неопределено);                
КонецПроцедуры

&НаКлиенте
Процедура КнопкаВыполнитьНажатие(Кнопка)
    КнопкаВыполнитьНажатиеСервер();
КонецПроцедуры

Так тоже ошибка:
{Форма.Форма.Форма(17,5)}: Процедура или функция с указанным именем не определена (КнопкаВыполнитьНажатиеСервер)
    <<?>>КнопкаВыполнитьНажатиеСервер();
94 EvgeniuXP
 
22.01.14
10:09
(87) тоже отлетает, добавил новый параметр массив, добавил туда ТабличныеДокументы - при возвращении ругается на этот параметр - содержит мутабельные значения.
95 EvgeniuXP
 
22.01.14
10:18
в модуле объекта обработки прописал:
&НаСервере
Процедура ТТТ() Экспорт
КонецПроцедуры

в модуле формы обработки написал:
Процедура КнопкаВыполнитьНажатие(Кнопка)
     ЭтотОбъект.ТТТ();
КонецПроцедуры

При нажатии на кнопку "Выполнить" появляется ошибка: "Метод объекта не обнаружен (ТТТ)".
96 EvgeniuXP
 
22.01.14
10:25
(94) все остальнце параметры перед возвратом в Неопределено поставил, чтоб явно видно было, что ошибка именно на 8-ом параметре. Пустой массив (или забитый примитивными типами) возвращает через параметр...
97 Serg_1960
 
22.01.14
10:25
Ммм... а чего автор зациклился на "УправлениеПечатью.СформироватьПечатныеФормы"? В УПП есть и другие функции :))
98 К_Дач
 
22.01.14
10:26
Создай экземпляр объекта с помощью менеджера внешних обработок. Потом обращайся к методу
99 EvgeniuXP
 
22.01.14
10:34
наконец-то - получилось только через временное хранилище, там в процедуре положить его, вернуть адрес через параметр... только так - жесть :)
100 Serg_1960
 
22.01.14
10:38
Не спеши, я ещё не всё прочитал :)

Вот тебе типовой код, пока я ещё читаю :))

#Если ТолстыйКлиентОбычноеПриложение Тогда
    УправлениеПечатью.СформироватьПечатныеФормыДляБыстройПечатиОбычноеПриложение(
            ИмяМенеджераПечати, ИменаМакетов, ПараметрКоманды, ПараметрыПечати,
            Адрес, ОбъектыПечатиСоотв, ПараметрыВывода, Отказ);
    Если НЕ Отказ Тогда
        ОбъектыПечати = Новый СписокЗначений;
        ТабличныеДокументы = ПолучитьИзВременногоХранилища(Адрес);
        Для Каждого ОбъектПечати Из ОбъектыПечатиСоотв Цикл
            ОбъектыПечати.Добавить(ОбъектПечати.Значение, ОбъектПечати.Ключ);
        КонецЦикла;
    КонецЕсли;
#Иначе
    УправлениеПечатью.СформироватьПечатныеФормыДляБыстройПечати(
            ИмяМенеджераПечати, ИменаМакетов, ПараметрКоманды, ПараметрыПечати,
            ТабличныеДокументы, ОбъектыПечати, ПараметрыВывода, Отказ);
#КонецЕсли
101 EvgeniuXP
 
22.01.14
10:52
(100) во, где ты раньше был? то что надо.
(98) тоже может сработает, потом проверю ради спортивного интереса.

спс!
102 К_Дач
 
22.01.14
12:27
Про временное хранилище я тебе советовал еще в самом начале ветки, ты почему то не захотел с ним работать
103 EvgeniuXP
 
22.01.14
12:53
(100) не очень хорошо - если макет не смог сформироваться, выскакивает ошибка:

{ОбщийМодуль.УправлениеПечатью.Модуль(29)}: В обработчике печати не был сформирован табличный документ для: Бланк
            ВызватьИсключение(ТекстСообщенияОбОшибке);

так что лучше так:

    #Если ТолстыйКлиентОбычноеПриложение Тогда
        
        КоллекцияПечатныхФорм = Неопределено;
        
        // Получим менеджер печати
        МенеджерПечати = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИмяМенеджераПечати);
        
        // Подготовим коллекцию для формируемых печатных форм
        КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ИменаМакетов);
        
        // Подготовим структуру параметров вывода
        ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
        
        МенеджерПечати.Печать(ПараметрКоманды, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечатиСоотв, ПараметрыВывода);

и если в коллекции КоллекцияПечатныхФорм табличный документ = Неопределно - просто пропускать :)

коллекция заработала, надо было в #Если заключить похоже :)
104 EvgeniuXP
 
22.01.14
12:55
(102) типовые модули не хочу менять - потом обновлять сложнее.

(103) код можно вынести в обработку :)

и всё-равно коллекция нужна :)

спасибо! заработало!
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.