Имя: Пароль:
1C
1С v8
Внеш.печ.форма в Word: ошибка при вызове метода контекста (Execute)
0 листопад
 
02.05.14
23:52
При попытке сформировать внешнюю печ.фому в Word, выдает сообщение об ошибке и не формирует печ.форму:

{ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(352)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (0x80020005)

Вот код:

Функция Печать() Экспорт

Выборка = СформироватьЗапросДляПечатиТрудовогоДоговора().Выбрать();

Если Выборка.Следующий() Тогда
    
    Запрос = Новый Запрос;
    Запрос.Текст =        
    "ВЫБРАТЬ
    |    ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета,
    |    ЛицевыеСчетаРаботниковОрганизации.Банк,
    |    ЛицевыеСчетаРаботниковОрганизации.Банк.ОсновнойБанковскийСчет.НомерСчета КАК ФЛБанкКСчет,
    |    ЛицевыеСчетаРаботниковОрганизации.Банк.ОсновнойБанковскийСчет.Банк.Код КАК ФЛБанкБИК
    |ИЗ
    |    РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК ЛицевыеСчетаРаботниковОрганизации
    |ГДЕ
    |    ЛицевыеСчетаРаботниковОрганизации.ФизЛицо.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект.Физлицо);
    
    Результат = Запрос.Выполнить().Выбрать();
    
    Если Результат.Следующий() Тогда
        Если Результат.НомерЛицевогоСчета <> Неопределено Тогда
            ФЛНомерЛС = Результат.НомерЛицевогоСчета;
            ФЛБанк = Результат.Банк;
            ФЛКСчет = Результат.ФЛБанкКСчет;
            ФЛБИК = Результат.ФЛБанкБИК;
        КонецЕсли;
    КонецЕсли;
    
    ш_ФЛНомерЛС = ФЛНомерЛС;
    ш_ФЛБанк = ФЛБанк;
    ш_ФЛКСчет = ФЛКСчет;
    ш_ФЛБИК = ФЛБИК;
КонецЕсли;

Макет = ПолучитьМакет("МакетWord");
MSWord = Макет.Получить();
Замена = Документ.Content.Find;
Замена.Wrap = 1;   //чтобы не писать каждый раз  Find
Замена.Execute("ш_ФЛНомерЛС", , , , , , , , ,ш_ФЛНомерЛС,2);
Замена.Execute("ш_ФЛБанк", , , , , , , , ,ш_ФЛБанк,2);
Замена.Execute("ш_ФЛКСчет", , , , , , , , ,ш_ФЛКСчет,2);
Замена.Execute("ш_ФЛБИК", , , , , , , , ,ш_ФЛБИК,2);

MSWord.Application.Visible=Истина;
MsWord.Activate();
Исключение
Сообщить(ОписаниеОшибки());
MSWord.Application.Quit();
КонецПопытки;

КонецФункции
1 Torquader
 
02.05.14
23:55
Надо все поля функции передавать - там значения по умолчанию.
Просто, если не установлено, то 1С передаёт UNDEFINED, а Word этого понять не может.
2 Torquader
 
02.05.14
23:55
И вообще - проще делать через поля - есть такие объекты, которые можно заполнять значениями, почти как в 1С.
3 листопад
 
02.05.14
23:57
(1) Не поняла: какие поля еще надо передавать? У меня до вставки этого запроса по лицевым счетам все формировалось в Ворд.
4 Torquader
 
02.05.14
23:58
(3) Ну, например, Банк - это ссылка - его сначала нужно преобразовать в строку, так как переданное значение банка Word точно не поймёт, и ошибка будет звучать "плохой тип переменной".
5 листопад
 
03.05.14
00:00
Спотыкается на этой строчке:
Замена.Execute("ш_ФЛБанк", , , , , , , , ,ш_ФЛБанк,2);
Может из-за того, что в РС"ЛицевыеСчетаРаботниковОрганизации", измерение "Банк" - это СправочникСсылка.Контрагенты?
6 листопад
 
03.05.14
00:01
(4) Опять 25, как эту ссылку преобразовать в строку???
7 Torquader
 
03.05.14
00:01
(5) Читаем (4) я тебе уже там сказал, где спотыкается, и что говорит.

Вместо
ФЛБанк = Результат.Банк;

Напиши
ФЛБанк = Строка(Результат.Банк);

Чудо случиться, только вот результат будет не такой, как ожидалось.
8 ДенисЧ
 
03.05.14
00:01
У меня возникает подозрение, что листочек наш - далеко не из России... Причём настолько далеко, что у них рабочий день начинается, когда у нас заканчивается...
Прикинув МПХ к глобусу - ба... Да это ж Америка...
9 Torquader
 
03.05.14
00:02
(8) Американский WoodSpeaker ?
10 листопад
 
03.05.14
00:03
(8) С нерезиновой я, просто в другое время времени совсем нет, вот и работаю по ночам...
11 ДенисЧ
 
03.05.14
00:04
(9) WoodSpeaker ? Говорящий с деревом? О_о
(10) И почему я не верю....
12 листопад
 
03.05.14
00:06
(7) УРА! Чудо произошло!!! Все сформировалось как надо!!!
Torquader :*) !!!
13 Torquader
 
03.05.14
00:07
(11) Другими словами "тук-тук по дереву" ^_^
14 ДенисЧ
 
03.05.14
00:07
(13) бл....
Woody Woodpecker...

GN негодуе!
15 Torquader
 
03.05.14
00:11
(14) Да я это уже понял - просто не очень я знаю их "заграничных".
16 Torquader
 
03.05.14
00:13
Вообще, наверное, как только Листопад решает очередную задачу, обращаясь за помощью - с дерева падает один листок, и как только листики закончатся, то помощь - тоже.
17 листопад
 
03.05.14
00:14
(13) Почему Вы ко мне так предвзято относитесь? У меня ведь ошибки не глобальные, а что-то в мелочах неправильно пишу. Я думаю, что с опытом это придет. А Вы меня постоянно с дятлом сравниваете. Меня, как девушку, это очень обижает...
18 Torquader
 
03.05.14
00:21
(17) Это сравнение - для вас - стимул - быть лучше и способнее - так что не переживайте, а учитесь быть лучше и умнее.
2 + 2 = 3.9999999999999999999999999999999...