Имя: Пароль:
1C
1С v8
БП: внеш.отчет КнигаПокупок (Поле объекта не обнаружено)
0 листопад
 
21.01.13
12:23
БП 2.0.43.6

Дорабатываю КнигуПокупок1137 (в виде внешнего отчета): добавляю вывод доп.столбцов - НомерДокументаОснования и ДатаДокументаОснования.
Для этого в ОбщемМодуле "УчетНДСКлиент", в процедуре ЗаполнитьСтрокуКнигиПокупок() добавила строчки:

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


Все отлично выводится, только перед выводом постоянно выводит сообщение об ошибке:

{ОбщийМодуль.УчетНДСКлиент.Модуль(164)}: Поле объекта не обнаружено (ДокументОснование)
           ПараметрыСтроки.НомерОснования = СчетФактура.ДокументОснование.Номер;


Подскажите, как от этого избавиться? Ведь Номер и Дату документа-основания выводит!!! Зачем тогда пишет об ошибке???
1 vicof
 
21.01.13
12:24
Ну а отладчик что говорит? :) о документе-основании
И почему отчетственному дата присваивается?
2 Wobland
 
21.01.13
12:24
просто это у тебя в другом месте. там нет такого поля
3 Галахад
 
гуру
21.01.13
12:25
Наверное потому, что СчетФактура это не всегда документ счет фактура.
4 vicof
 
21.01.13
12:26
(0) Пора уже фотку на более откровенную поменять
5 mikecool
 
21.01.13
12:28
пробовать поменять СчетФактура на ДокументСсылка
6 листопад
 
21.01.13
12:37
(3) И как быть?
(5) Не помогло...
7 листопад
 
21.01.13
12:38
(1) про Ответственного не обращайте внимание...
8 KUBIK
 
21.01.13
12:40
(0) Проверь тип значения "СчетФактура" - кажись в отчете это строка
9 листопад
 
21.01.13
12:40
(1) Через отладчик смотрю: ДокументОснование это документ "ОтражениеНДСКВычету".
10 листопад
 
21.01.13
12:40
(8) Как?
11 KUBIK
 
21.01.13
12:40
(8) СчетаФактуры
12 KUBIK
 
21.01.13
12:44
СчетаФактуры = это ТЗ?
Посмотри отладчиком, что в этой ТЗ есть. Стопудово там нет ДокументОснование
13 Sinus1984
 
21.01.13
13:10
Попытка
 ПараметрыСтроки.НомерОснования = СчетФактура.ДокументОснование.Номер;
 ПараметрыСтроки.Ответственный  = СчетФактура.ДокументОснование.Дата;
Исключение
КонецПопытки;

не всегда счетфактука это документы счетфактура
и не всегда документ основания заполнен есть табличная часть ДокументыОснования
14 листопад
 
21.01.13
14:12
(13) СПАСИБО!!! Помогло!!! А можно так и оставить (Попытку)?
15 Sinus1984
 
21.01.13
14:23
если лень писать нормальную обработку то можно
16 листопад
 
21.01.13
14:32
Рано обрадовалась!!! Если в Книге покупок попадает Счет-фактура ВЫДАННАЯ, то мой код не срабатывает!!!
Подскажите, как это решить!!!
17 Sinus1984
 
21.01.13
14:44
Если (ТипЗнч(СчетФактура) = Тип("ДокументСсылка.СчетФактураПолученный") Или ТипЗнч(СчетФактура) = Тип("ДокументСсылка.СчетФактураВыданный")) Тогда
       Если СчетФактура.ДокументОснование.Пустая() Тогда
           Основание = СчетФактура.ДокументыОснования[0];
           ПараметрыСтроки.НомерОснования = СчетФактура.ДокументОснование.Номер;
             ПараметрыСтроки.Ответственный  = СчетФактура.ДокументОснование.Дата;
       Иначе
           ПараметрыСтроки.НомерОснования = СчетФактура.ДокументОснование.Номер;
             ПараметрыСтроки.Ответственный  = СчетФактура.ДокументОснование.Дата;
       КонецЕсли;
   КонецЕсли;
18 Sinus1984
 
21.01.13
14:47
Если (ТипЗнч(СчетФактура) = Тип("ДокументСсылка.СчетФактураПолученный") Или ТипЗнч(СчетФактура) = Тип("ДокументСсылка.СчетФактураВыданный")) Тогда
       Если СчетФактура.ДокументОснование.Пустая() Тогда
           Основание = СчетФактура.ДокументыОснования[0];
           ПараметрыСтроки.НомерОснования = СчетФактура.ДокументОснование.Номер;
             ПараметрыСтроки.Ответственный  = СчетФактура.ДокументОснование.Дата;
       Иначе
           ПараметрыСтроки.НомерОснования = СчетФактура.ДокументОснование.Номер;
             ПараметрыСтроки.Ответственный  = СчетФактура.ДокументОснование.Дата;
       КонецЕсли;
Иначе
           ПараметрыСтроки.НомерОснования = СчетФактура.Номер;
             ПараметрыСтроки.Ответственный  = СчетФактура.Дата;

   КонецЕсли;

Можно еще так попробовать но это надо проверять не знаю каким типом может быть переменная СчетФактура, ну тогда попытка спасет мир
19 Sinus1984
 
21.01.13
14:49
Основание = СчетФактура.ДокументыОснования[0];
           ПараметрыСтроки.НомерОснования = Основание.Номер;
             ПараметрыСтроки.Ответственный  = Основание .Дата;

вот это надо поправить в (17) и (18)
20 листопад
 
21.01.13
14:51
(17), (18), (19) - огромное СПАСИБО!!! Сейчас буду пробовать...
21 Sinus1984
 
21.01.13
14:55
(19) ну блин короче вот так заработать должно
           
Основание = СчетФактура.ДокументыОснования[0];
ПараметрыСтроки.НомерОснования = Основание.ДокументОснование.Номер;
ПараметрыСтроки.Ответственный  = Основание.ДокументОснование.Дата;