|
v7: Ошибка при формировании записей книги-покупок | ☑ | ||
---|---|---|---|---|
0
тоа
24.09.14
✎
16:28
|
Релиз Бухгалтерия 7.70.584
Формирую запись книги-покупок выдает ошибку Если СокрЛП(Запрос.ДокументПоставки.ДатаНомерСчетаФактуры)<>"" Тогда {Документ.ЗаписиКнигиПокупок.Форма.Модуль(719)}: Поле агрегатного объекта не обнаружено (ДатаНомерСчетаФактуры) |
|||
1
тоа
24.09.14
✎
16:30
|
Причем за июль все окау, а за август проблема
|
|||
2
lavalit
24.09.14
✎
16:35
|
Проверьте на ПустоеЗначение(Запрос.ДокументПоставки)
|
|||
3
lavalit
24.09.14
✎
16:39
|
Если увидите "пустышку", То поймете где ошибочка случилась
|
|||
4
тоа
24.09.14
✎
16:41
|
(2) как это сделать? не пойму как должны увидеть пустышку..
|
|||
5
lavalit
24.09.14
✎
16:44
|
Запустите отладчик, поставьте точку останова на строке 719. Далее формируйте книгу. На строке 719 оно остановится и там можно будет посмотреть чему равно Запрос.ДокументПоставки.
Но если Вы бухгалтер, то можно попросить это сделать Вашего 1С ника. Он знает как это делать |
|||
6
тоа
24.09.14
✎
16:44
|
Док=СоздатьОбъект("Документ");
Пока Запрос.Группировка(1) = 1 Цикл СтрокаТЗ = ""; ТЗ.НоваяСтрока(); ТЗ.ДокРезерв = Запрос.ДокументПоставки; ТЗ.Резерв = Запрос.СуммаДок; Если СокрЛП(Запрос.ДокументПоставки.ДатаНомерСчетаФактуры)<>"" Тогда ТЗ.СчетФактура = Запрос.ДокументПоставки; Иначе Док.ВыбратьПодчиненныеДокументы(Запрос.ДокументПоставки.ДатаДок,ДатаКон,Запрос.ДокументПоставки); Пока Док.ПолучитьДокумент()=1 Цикл Если Док.Вид()="СчетФактураПолученный" Тогда ТЗ.СчетФактура = Док.ТекущийДокумент(); Прервать; КонецЕсли; КонецЦикла; Вот что имеем. Где Пустышка? Где запрос ПустоеЗначение? |
|||
7
lavalit
24.09.14
✎
16:45
|
Док.ВыбратьПодчиненныеДокументы(Запрос.ДокументПоставки.ДатаДок,ДатаКон,Запрос.ДокументПоставки);
По ходу это и есть строка 719 |
|||
8
lavalit
24.09.14
✎
16:46
|
нет сори вот эта строка СокрЛП(Запрос.ДокументПоставки.ДатаНомерСчетаФактуры)<>""
|
|||
9
lavalit
24.09.14
✎
16:48
|
А сам запрос покажите
|
|||
10
тоа
24.09.14
✎
16:49
|
Процедура ЗаполнитьРезерв(ТЗ)
ДатаНач = НачМесяца(ДатаДок); ДатаКон = КонМесяца(ДатаДок); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Запрос) |Период с ДатаНач по ДатаКон; |Обрабатывать НеПомеченныеНаУдаление; |ДокументПоставки = Документ.Выписка.ДокументПоставки, Документ.РасходныйОрдер.ДокументПоставки; |Сумма = Документ.РасходныйОрдер.Сумма, Документ.Выписка.Расход; |Функция СуммаДок = Сумма(Сумма); |Группировка ДокументПоставки без групп без упорядочивания; |Условие(ДокументПоставки.Выбран()=1); |Условие(Сумма>0); |Условие(ДокументПоставки.Договор.АвтоОбработкаНДС=1); |";//}}ЗАПРОС Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда Предупреждение("Невозможно выполнить запрос"); Возврат; КонецЕсли; Док=СоздатьОбъект("Документ"); Пока Запрос.Группировка(1) = 1 Цикл СтрокаТЗ = ""; ТЗ.НоваяСтрока(); ТЗ.ДокРезерв = Запрос.ДокументПоставки; ТЗ.Резерв = Запрос.СуммаДок; Если СокрЛП(Запрос.ДокументПоставки.ДатаНомерСчетаФактуры)<>"" Тогда ТЗ.СчетФактура = Запрос.ДокументПоставки; Иначе Док.ВыбратьПодчиненныеДокументы(Запрос.ДокументПоставки.ДатаДок,ДатаКон,Запрос.ДокументПоставки); Пока Док.ПолучитьДокумент()=1 Цикл Если Док.Вид()="СчетФактураПолученный" Тогда ТЗ.СчетФактура = Док.ТекущийДокумент(); Прервать; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
11
lavalit
24.09.14
✎
16:51
|
Так стоп.... там по ходу пустышки не предвидится...
А во всех ли документах есть реквизит "ДатаНомерСчетаФактуры"? |
|||
12
тоа
24.09.14
✎
16:53
|
а как посмотреть чему равно Запрос.ДокументПоставки все манипуляции с отладчиком сделали
|
|||
13
lavalit
24.09.14
✎
16:53
|
Вернее в документах выписка и расходный ордер есть Документ поставки вот там во всех ли документах есть этот реквизит? Там наверняка могут быть разные доки
|
|||
14
тоа
24.09.14
✎
16:54
|
по реквизитам щас посмотрим
|
|||
15
lavalit
24.09.14
✎
16:55
|
делаете так- отладчик включили, точку останова сделали. запустили формирование книги. после этого отладчик остановился на точке... выделяем Запрос.ДокументПоставки и жмем шифт+F9. в окошке видим содержание.
|
|||
16
lavalit
24.09.14
✎
16:57
|
Если это агрегат, то под плюсиками можно открывать сам агрегат и смотреть чего там есть еще.. для документа это будут датадок номердок и т.д.
|
|||
17
тоа
24.09.14
✎
16:57
|
= Ошибка в выражении
|
|||
18
lavalit
24.09.14
✎
16:59
|
ну вот а какой документ ? если ошибка выражения, стало быть реквизита нет
|
|||
19
тоа
24.09.14
✎
16:59
|
смотрим документы...
|
|||
20
lavalit
24.09.14
✎
17:00
|
наверно сразу смотрели "Запрос.ДокументПоставки.ДатаНомерСчетаФактуры"?
|
|||
21
lavalit
24.09.14
✎
17:01
|
Смотрите "Запрос.ДокументПоставки" он должен как раз показать что за документ
|
|||
22
тоа
24.09.14
✎
17:02
|
ага щас
|
|||
23
тоа
24.09.14
✎
17:03
|
не заполнены реквизиты
|
|||
24
тоа
24.09.14
✎
17:03
|
спасибо за помощь
|
|||
25
lavalit
24.09.14
✎
17:04
|
ну вот и суслик))
|
|||
26
lavalit
24.09.14
✎
17:04
|
не за что))
|
|||
27
тоа
25.09.14
✎
14:30
|
Добрый день!
Разобрались с формированием книги покупок Теперь делаем отчет Книга покупок по Постановлению № 1137 ТабОтчета.КодВидаОперации = ДокАвто.Приход.КодВидаОперации; {Отчет.КнигаПокупок1137.Форма.Модуль(862)}: Поле агрегатного объекта не обнаружено (КодВидаОперации) |
|||
28
lavalit
25.09.14
✎
15:24
|
Можно по той же схеме в принципе.
Отладчик точка на строке 862 и смотреть что там в ДокАвто.Приход. Что за документ и есть ли у него такой реквизит |
|||
29
lavalit
25.09.14
✎
15:25
|
Обновки надеюсь свежие?
|
|||
30
тоа
25.09.14
✎
15:58
|
(29) 585 поставили
|
|||
31
тоа
25.09.14
✎
16:00
|
Если ПустоеЗначение(ДокАвто.Приход) = 0 Тогда
Если (ДокАвто.Приход.Вид() = "РасходнаяНакладная") или (ДокАвто.Приход.Вид() = "ОтпускМатериаловНаСторону") Тогда Иначе ТабОтчета.КодВидаОперации = ДокАвто.Приход.КодВидаОперации; КонецЕсли; КонецЕсли; ТабОтчета.ВсегоПокупок = ДокАвто.Всего; ТабОтчета.СуммаБезНДС20 = ДокАвто.БезНДС20; ТабОтчета.НДС20 = ДокАвто.НДС20; ТабОтчета.СуммаБезНДС10 = ДокАвто.БезНДС10; ТабОтчета.НДС10 = ДокАвто.НДС10; ТабОтчета.НДС0 = ДокАвто.НДС0; ТабОтчета.СуммаСовсемБезНДС = ДокАвто.Освобождаемые; Если ПустоеЗначение(ДокАвто.СчетФактура) = 0 Тогда ДокОснование = ДокАвто.СчетФактура; Если ДокОснование.Вид() = "ПоступлениеТоваров" Тогда Если ((ДокОснование.ВидПоступления=4) или (ДокОснование.ВидПоступления=13)) и (ДокОснование.ПокупателемВыставляетсяСчетФактураНаВозврат = 0) и (ДокОснование.ВариантОтраженияВозврата = 1) и (ПустоеЗначение(ДокОснование.ДатаНомерСчетаФактуры) = 1) Тогда ТабОтчета.Возврат = 1; КонецЕсли; строка 862... |
|||
32
lavalit
25.09.14
✎
16:08
|
Вот на этой строке
ТабОтчета.КодВидаОперации = ДокАвто.Приход.КодВидаОперации; надо глянуть что за документ ДокАвто.Приход Есть ли у него в принципе реквизит "КодВидаОперации" |
|||
33
тоа
25.09.14
✎
16:27
|
рушится на документе об оказании услуг, который введен на основании счета
В этих документах все ровно |
|||
34
lavalit
25.09.14
✎
16:34
|
Тогда все верно у документа "ОказаниеУслуг" нет такого реквизита
|
|||
35
lavalit
25.09.14
✎
16:36
|
Поправьте строку
Если (ДокАвто.Приход.Вид() = "РасходнаяНакладная") или (ДокАвто.Приход.Вид() = "ОтпускМатериаловНаСторону") Тогда На эту Если (ДокАвто.Приход.Вид() = "РасходнаяНакладная") или (ДокАвто.Приход.Вид() = "ОтпускМатериаловНаСторону") или (ДокАвто.Приход.Вид() = "ОказаниеУслуг") Тогда |
|||
36
lavalit
25.09.14
✎
16:38
|
В этом случае Отчет не будет считывать реквизит "КодВидаОперации"
|
|||
37
тоа
25.09.14
✎
16:41
|
Все получилось.
Большое СПАСИБО!!! |
|||
38
lavalit
25.09.14
✎
16:47
|
Вообще то я бы заменил бы вот этот момент
Если (ДокАвто.Приход.Вид() = "РасходнаяНакладная") или (ДокАвто.Приход.Вид() = "ОтпускМатериаловНаСторону") Тогда Иначе ТабОтчета.КодВидаОперации = ДокАвто.Приход.КодВидаОперации; КонецЕсли; КонецЕсли; на Реквизит=Метаданные.Документ(ДокАвто.Приход.Вид()).РеквизитТабличнойЧасти(ИмяРеквизита); Если Реквизит.Выбран()=1 Тогда ТабОтчета.КодВидаОперации = ДокАвто.Приход.КодВидаОперации; КонецЕсли; В этом варианте не надо перечислять все виды документов в который нет реквизита... а просто берется документ по его виду и определяется есть ли такой реквизит... а уж какой документ попадется отчету будет все равно |
|||
39
lavalit
25.09.14
✎
16:48
|
Чем смог тем помог.
Удачи. Если чего спрашивайте. |
|||
40
тоа
26.09.14
✎
08:55
|
Доброе утро!
Заменил код, теперь при открытии Книги покупок по постановлению №1137 вылетает ошибка Реквизит=Метаданные.Документ(ДокАвто.Приход.Вид()).РеквизитТабличнойЧасти(ИмяРеквизита<<?>>); {Отчет.КнигаПокупок1137.Форма.Модуль(860)}: Переменная не определена (ИмяРеквизита) Где забить переменную? |
|||
41
lavalit
29.09.14
✎
09:59
|
Вместо ИмяРеквизита ставьте "КодВидаОперации"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |