Имя: Пароль:
1C
1С v8
"Поле объекта не обнаружено" - опять 25. Код и сообщение отладчика выложил.
0 fixavto
 
26.11.14
02:39
Вот код:


Функция Печать()  Экспорт
    Если ПроверкаСуществанияШаблона() Тогда
        ПечатьПоШаблону();
    Иначе
        Сообщить("Не найден файл шаблона!",СтатусСообщения.Важное);
    КонецЕсли;
КонецФункции

//Функция ПолучитьРуководителяОрганизации(Организация)
//Возвращает Физ лицо - руководителя организации
Функция ПолучитьРуководителяОрганизации(Организация)
    НаборЗаписей = РегистрыСведений.ОтветственныеЛицаОрганизаций.СоздатьНаборЗаписей();
    НаборЗаписей.Прочитать();
    Для Каждого Запись Из НаборЗаписей Цикл
        Если Запись.ОтветственноеЛицо = Перечисления.ОтветственныеЛицаОрганизаций.Руководитель Тогда
            Возврат Запись.ФизическоеЛицо;
        Иначе
            Возврат Ложь;
        КонецЕсли;
    КонецЦикла;
КонецФункции

//Функция ПечатьПоШаблону
//
Функция ПечатьПоШаблону()

    Шаблон = ДополнительныеПараметры.Шаблон;
    
    ТекстовыйПроцессор = Новый COMОбъект("Word.Application");
    ТекстовыйПроцессор = ТекстовыйПроцессор.Documents.Add(Шаблон);
    //
    Find =ТекстовыйПроцессор.Application.ActiveDocument.Content.Find;
    Find.ClearFormatting();
    Find.Forward = -1;
    
    //Договор
    Find.Execute("{НомерДоговора}"               ,,,,,,,,,  СсылкаНаОбъект.ДоговорКонтрагента.Номер);
    Find.Execute("{ДатаДоговора}"                ,,,,,,,,,  СсылкаНаОбъект.ДоговорКонтрагента.Дата, 2);
    Find.Execute("{ДатаОкончанияДоговора}"       ,,,,,,,,,  СсылкаНаОбъект.ДоговорКонтрагента.СрокДействия, 2);
    Find.Execute("{ГодЗаключенияДоговора}"       ,,,,,,,,,  Формат(СсылкаНаОбъект.ДоговорКонтрагента.Дата,"ДФ=гггг"), 2);
    
    //организация
    Find.Execute("{Организация}"                 ,,,,,,,,,  СсылкаНаОбъект.Организация.НаименованиеПолное, 2);
    Find.Execute("{АдресОрганизации}"            ,,,,,,,,,  УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(ССылкаНаОбъект.Организация.Ссылка,"Юридический"), 2);
    Find.Execute("{ТелефонОрганизации}"          ,,,,,,,,,  УправлениеКонтактнойИнформацией.ПолучитьТелефонИзКонтактнойИнформации(ССылкаНаОбъект.Организация.Ссылка), 2);
    Find.Execute("{ИННОрганизации}"              ,,,,,,,,,  СсылкаНаОбъект.Организация.ИНН, 2);
    Find.Execute("{БанкОрганизации}"             ,,,,,,,,,  СсылкаНаОбъект.Организация.ОсновнойБанковскийСчет.Банк.Наименование, 2);
    Find.Execute("{СчетОрганизации}"             ,,,,,,,,,  СсылкаНаОбъект.Организация.ОсновнойБанковскийСчет.НомерСчета, 2);
    Find.Execute("{КорСчетОрганизации}"          ,,,,,,,,,  СсылкаНаОбъект.Организация.ОсновнойБанковскийСчет.Банк.КоррСчет, 2);
    Find.Execute("{БИКбанкаОрганизации}"         ,,,,,,,,,  СсылкаНаОбъект.Организация.ОсновнойБанковскийСчет.Банк.Код, 2);
    
    //Документ
    Find.Execute("{СуммаПоДокументу}"         ,,,,,,,,,  Строка(СсылкаНаОбъект.СуммаДокумента)+" "+Строка(СсылкаНаОбъект.ВалютаДокумента), 2);
    
    //Контрагент
    Find.Execute("{Контрагент}"                  ,,,,,,,,,  СсылкаНаОбъект.Контрагент.НаименованиеПолное, 2);
    Find.Execute("{АдресКонтрагента}"            ,,,,,,,,,  УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(ССылкаНаОбъект.Контрагент.Ссылка, "Юридический"), 2);
    Find.Execute("{ТелефонКонтрагента}"          ,,,,,,,,,  УправлениеКонтактнойИнформацией.ПолучитьТелефонИзКонтактнойИнформации(ССылкаНаОбъект.Контрагент.Ссылка), 2);
    Find.Execute("{ИННКонтрагента}"              ,,,,,,,,,  СсылкаНаОбъект.Контрагент.ИНН, 2);
    Find.Execute("{БанкКонтрагента}"             ,,,,,,,,,  СсылкаНаОбъект.Контрагент.ОсновнойБанковскийСчет.Банк.Наименование, 2);
    Find.Execute("{БанковскийСчетКонтрагента}"   ,,,,,,,,,  СсылкаНаОбъект.Контрагент.ОсновнойБанковскийСчет.НомерСчета, 2);
    Find.Execute("{КорСчетКонтрагента}"          ,,,,,,,,,  СсылкаНаОбъект.Контрагент.ОсновнойБанковскийСчет.Банк.КоррСчет, 2);
    Find.Execute("{БИКбанкаКонтрагента}"         ,,,,,,,,,  СсылкаНаОбъект.Контрагент.ОсновнойБанковскийСчет.Банк.Код, 2);
    //
    ТекстовыйПроцессор.Application.Visible = истина;
    
КонецФункции



Ссылка на скрин ошибки отладчика    http://s018.radikal.ru/i524/1411/12/d629238b9228.png
"СсылкаНаОбъект" прописана и указана.
Версия платформы 8.3.
Конфигурация: Бухгалтерия для Беларуси. Редакция 1.6. (1.6.57.3)

Что он от меня желает?
1 fixavto
 
26.11.14
02:41
Скрин отладчика попал под хайд "Code"
2 iHell
 
26.11.14
02:58
Если договор контрагента справочник, то у него код.
3 iHell
 
26.11.14
03:01
Хотя не туплю.
4 iHell
 
26.11.14
03:03
Смотри тогда отладчиком, что у тебя в договоре.
5 Wobland
 
26.11.14
03:07
(0) 38ю строку мы за тебя будем искать?
6 fixavto
 
26.11.14
03:13
38 строка:

    Find.Execute("{НомерДоговора}"               ,,,,,,,,,  СсылкаНаОбъект.ДоговорКонтрагента.Номер);
7 Wobland
 
26.11.14
03:20
(6) будешь нас убеждать, что поле есть? особенно в случае пустого договора
8 fixavto
 
26.11.14
04:14
договор заполнен чуть более чем полностью, только что проверил.

правда вот что такое поле "номер" я хз...это то, что автоматом ставится? а в прочем, разницы нет, т.к. если я из обработки удаляю строчку и "ДоговорКонтрагента.Номер", то "ДоговорКонтрагента.Дата" тож не фурычит и ошибку пишет.
9 Wobland
 
26.11.14
04:22
>правда вот что такое поле "номер"
затрудняюсь ответить. может, это: {НомерДоговора}?
10 fixavto
 
26.11.14
04:33
я реально не понимаю в чем здесь косяк

вот кусок     Find.Execute("{НомерДоговора}"               ,,,,,,,,,  СсылкаНаОбъект.ДоговорКонтрагента.Номер, 2);

Ищем в тексте то, что в фигурных и с текстом "НомерДоговора" -> Заменяем это значением из параметра по адресу "СсылкаНаОбъект.ДоговорКонтрагента.Номер", где СсылкаНаОбъект ссылается (ссылка ссылается ;) ) на либо "СчетНаОплатуПокупателю" либо на "РеализациюТовара"

http://s019.radikal.ru/i632/1411/39/abe88019213a.png

Все верно?
11 Wobland
 
26.11.14
04:40
поле объекта не обнаружено в переводе на белорусский звучит так: "вось у гэтай хренi няма нумары: СсылкаНаОбъект.ДоговорКонтрагента"
12 fixavto
 
26.11.14
04:51
ВО! реально как по бульбашенскому замолвил - все понял. Я-то был уверен, что реквизит "номер" и "дата" есть уже по-умолчанию! а их надо самому делать!

добрый человек, спасибо тебе. Завтра переведу несколько бабушек через дорогу, и скажу, что во твою славу, боярин!

не ну реально спасибо
13 Wobland
 
26.11.14
04:53
(12) номер с датой бывают только у документов. да и то не всегда в случае номера
14 13_Mult
 
26.11.14
08:13
(11) Гыыы ))