|
Проблема с запросом | ☑ | ||
---|---|---|---|---|
0
ЮлияКолегова
15.07.20
✎
20:26
|
Всем добрый день. Есть запрос
ВЫБРАТЬ КодыСтрокДекларацииПоНДСКЗачетуСрезПоследних.Период КАК Период, КодыСтрокДекларацииПоНДСКЗачетуСрезПоследних.ВидОперации КАК ВидОперацииПоступления, КодыСтрокДекларацииПоНДСКЗачетуСрезПоследних.КодСтроки КАК КодСтроки, КодыСтрокДекларацииПоНДСКЗачетуСрезПоследних.ВидОборота КАК ВидОборота, ВЫБОР КОГДА КодыСтрокДекларацииПоНДСКЗачетуСрезПоследних.ВидОборота = ЗНАЧЕНИЕ(Перечисление.ВидыОборотовПоРеализации.ПустаяСсылка) ТОГДА 2 ИНАЧЕ 1 КОНЕЦ КАК Приоритет ПОМЕСТИТЬ ВТ_Приоритет ИЗ РегистрСведений.КодыСтрокДекларацииПоНДСКЗачету.СрезПоследних(&КонПериода, ) КАК КодыСтрокДекларацииПоНДСКЗачетуСрезПоследних ИНДЕКСИРОВАТЬ ПО Приоритет, ВидОперацииПоступления ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблицаОпераций.ВидОперацииПоступления КАК ВидОперацииПоступления, МИНИМУМ(ТаблицаОпераций.Приоритет) КАК Приоритет ПОМЕСТИТЬ вт_ТаблицаДохода ИЗ ВТ_Приоритет КАК ТаблицаОпераций СГРУППИРОВАТЬ ПО ТаблицаОпераций.ВидОперацииПоступления ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ вт_ТаблицаДохода.ВидОперацииПоступления КАК ВидОперацииПоступления, ДанныеОКодахДекларации.КодСтроки КАК КодСтроки ПОМЕСТИТЬ ВТ_СведенияОкодахСтрокДекларации ИЗ вт_ТаблицаДохода КАК вт_ТаблицаДохода ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Приоритет КАК ДанныеОКодахДекларации ПО вт_ТаблицаДохода.Приоритет = ДанныеОКодахДекларации.Приоритет И вт_ТаблицаДохода.ВидОперацииПоступления = ДанныеОКодахДекларации.ВидОперацииПоступления ИНДЕКСИРОВАТЬ ПО ВидОперацииПоступления, КодСтроки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ НДСКВозмещению.СуммаБезНДСОборот КАК СуммаБезНДСОборот, НДСКВозмещению.СуммаНДСОборот КАК СуммаНДСОборот, НДСКВозмещению.ВидОперацииПоступления КАК ВидОперацииПоступления, НДСКВозмещению.ВидОборота КАК ВидОборота, НДСКВозмещению.ВидНалогаНДС КАК ВидНалогаНДС, НДСКВозмещению.Регистратор, НДСКВозмещению.СчетФактура ПОМЕСТИТЬ вт_НДСКВозмещениюОбороты ИЗ РегистрНакопления.НДСКВозмещению.Обороты(&НачПериода, &КонПериода, Регистратор, Налогоплательщик = &Налогоплательщик) КАК НДСКВозмещению ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ КорректировкаНДСКВозмещению.СуммаКорректировкиОборотаОборот, КорректировкаНДСКВозмещению.СуммаНДСОборот, КорректировкаНДСКВозмещению.ВидОперацииКорректировки, КорректировкаНДСКВозмещению.ВидОборота, КорректировкаНДСКВозмещению.ВидНалогаНДС, КорректировкаНДСКВозмещению.Регистратор, NULL ИЗ РегистрНакопления.КорректировкаНДСКВозмещению.Обороты(&НачПериода, &КонПериода, Регистратор, Налогоплательщик = &Налогоплательщик) КАК КорректировкаНДСКВозмещению ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КодыСтрокДекларацииПоНДСКЗачетуСрезПоследних.КодСтроки КАК КодСтроки, СУММА(вт_НДСКВозмещениюОбороты.СуммаБезНДСОборот) КАК СуммаБезНДСОборот, СУММА(вт_НДСКВозмещениюОбороты.СуммаНДСОборот) КАК СуммаНДСОборот, вт_НДСКВозмещениюОбороты.ВидОперацииПоступления КАК ВидОперацииПоступления, "Возмещение" КАК Раздел, вт_НДСКВозмещениюОбороты.ВидОборота, вт_НДСКВозмещениюОбороты.ВидНалогаНДС КАК ВидНалогаНДС, вт_НДСКВозмещениюОбороты.Регистратор КАК Регистратор, вт_НДСКВозмещениюОбороты.СчетФактура КАК СчетФактура ПОМЕСТИТЬ ВозмещениеВТ ИЗ вт_НДСКВозмещениюОбороты КАК вт_НДСКВозмещениюОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КодыСтрокДекларацииПоНДСКЗачету.СрезПоследних(&КонПериода, ) КАК КодыСтрокДекларацииПоНДСКЗачетуСрезПоследних ПО вт_НДСКВозмещениюОбороты.ВидОборота = КодыСтрокДекларацииПоНДСКЗачетуСрезПоследних.ВидОборота И вт_НДСКВозмещениюОбороты.ВидОперацииПоступления = КодыСтрокДекларацииПоНДСКЗачетуСрезПоследних.ВидОперации ГДЕ (КодыСтрокДекларацииПоНДСКЗачетуСрезПоследних.КодСтроки ПОДОБНО &КодСтроки300 ИЛИ КодыСтрокДекларацииПоНДСКЗачетуСрезПоследних.КодСтроки ЕСТЬ NULL) СГРУППИРОВАТЬ ПО КодыСтрокДекларацииПоНДСКЗачетуСрезПоследних.КодСтроки, вт_НДСКВозмещениюОбороты.ВидОборота, вт_НДСКВозмещениюОбороты.ВидНалогаНДС, вт_НДСКВозмещениюОбороты.ВидОперацииПоступления, вт_НДСКВозмещениюОбороты.Регистратор, вт_НДСКВозмещениюОбороты.СчетФактура ИНДЕКСИРОВАТЬ ПО КодСтроки, ВидНалогаНДС, Регистратор, СчетФактура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ СчетФактураПолученный.Ссылка, СчетФактураПолученный.ДокументОснование.Ссылка КАК Регистратор ПОМЕСТИТЬ ВТ_ПодчиненныеДокументы ИЗ Документ.СчетФактураПолученный.ДокументыОснования КАК СчетФактураПолученный ГДЕ СчетФактураПолученный.Ссылка.Проведен = ИСТИНА И СчетФактураПолученный.ДокументОснование.Ссылка В (ВЫБРАТЬ вт_НДСКВозмещениюОбороты.Регистратор ИЗ вт_НДСКВозмещениюОбороты КАК вт_НДСКВозмещениюОбороты) ИНДЕКСИРОВАТЬ ПО Регистратор ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ПодчиненныеДокументы.Ссылка, ПодчиненныеДокументы.Регистратор КАК Регистратор ПОМЕСТИТЬ вт_ДействующиеСФ ИЗ ВТ_ПодчиненныеДокументы КАК ПодчиненныеДокументы ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СчетаФактурыПрекратившиеДействие.СрезПоследних( , СчетФактура В (ВЫБРАТЬ ВТ_ПодчиненныеДокументы.Ссылка ИЗ ВТ_ПодчиненныеДокументы КАК ВТ_ПодчиненныеДокументы)) КАК СчетаФактурыПрекратившиеДействие ПО ПодчиненныеДокументы.Ссылка = СчетаФактурыПрекратившиеДействие.СчетФактура ГДЕ СчетаФактурыПрекратившиеДействие.СчетФактура ЕСТЬ NULL ИНДЕКСИРОВАТЬ ПО Регистратор ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВозмещениеВТ.КодСтроки, ВозмещениеВТ.ВидОперацииПоступления, СУММА(ВозмещениеВТ.СуммаБезНДСОборот) КАК СуммаБезНДСОборот, СУММА(ВозмещениеВТ.СуммаНДСОборот) КАК СуммаНДСОборот, СУММА(ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка ЕСТЬ NULL ТОГДА ВозмещениеВТ.СуммаБезНДСОборот ИНАЧЕ 0 КОНЕЦ) КАК СуммаБезНДСОборот_БезСФ, СУММА(ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка ЕСТЬ NULL ТОГДА ВозмещениеВТ.СуммаНДСОборот ИНАЧЕ 0 КОНЕЦ) КАК СуммаНДСОборот_БезСФ, ВозмещениеВТ.Раздел КАК Раздел, ВозмещениеВТ.ВидОборота, СУММА(ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ВозмещениеВТ.СуммаБезНДСОборот КОНЕЦ) КАК СуммаБезНДСОборот_СФ, СУММА(ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ВозмещениеВТ.СуммаНДСОборот КОНЕЦ) КАК СуммаНДСОборот_СФ, ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка ЕСТЬ NULL ТОГДА ЛОЖЬ ИНАЧЕ ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка.СпособПолучения = ЗНАЧЕНИЕ(Перечисление.СпособыОбменаДокументами.Электронно) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КОНЕЦ КАК ЕстьЭСФ ИЗ ВозмещениеВТ КАК ВозмещениеВТ ЛЕВОЕ СОЕДИНЕНИЕ вт_ДействующиеСФ КАК вт_ДействующиеСФ ПО ВозмещениеВТ.Регистратор = вт_ДействующиеСФ.Регистратор И (ВЫБОР КОГДА ВозмещениеВТ.Регистратор ССЫЛКА Документ.АвансовыйОтчет ТОГДА ВозмещениеВТ.СчетФактура = вт_ДействующиеСФ.Ссылка ИНАЧЕ ИСТИНА КОНЕЦ) ГДЕ ВозмещениеВТ.ВидНалогаНДС = &ВидНалогаНДСМетодомЗачета И ВозмещениеВТ.КодСтроки = &КодСтрокиМетодаЗачета И ВозмещениеВТ.СчетФактура.Дата МЕЖДУ &НачПериода И &КонПериода СГРУППИРОВАТЬ ПО ВозмещениеВТ.КодСтроки, ВозмещениеВТ.ВидОперацииПоступления, ВозмещениеВТ.Раздел, ВозмещениеВТ.ВидОборота, ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка ЕСТЬ NULL ТОГДА ЛОЖЬ ИНАЧЕ ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка.СпособПолучения = ЗНАЧЕНИЕ(Перечисление.СпособыОбменаДокументами.Электронно) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КОНЕЦ ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВозмещениеВТ.КодСтроки, ВозмещениеВТ.ВидОперацииПоступления, СУММА(ВозмещениеВТ.СуммаБезНДСОборот), СУММА(ВозмещениеВТ.СуммаНДСОборот), СУММА(ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка ЕСТЬ NULL ТОГДА ВозмещениеВТ.СуммаБезНДСОборот ИНАЧЕ 0 КОНЕЦ), СУММА(ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка ЕСТЬ NULL ТОГДА ВозмещениеВТ.СуммаНДСОборот ИНАЧЕ 0 КОНЕЦ), ВозмещениеВТ.Раздел, ВозмещениеВТ.ВидОборота, СУММА(ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ВозмещениеВТ.СуммаБезНДСОборот КОНЕЦ), СУММА(ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ВозмещениеВТ.СуммаНДСОборот КОНЕЦ), ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка ЕСТЬ NULL ТОГДА ЛОЖЬ ИНАЧЕ ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка.СпособПолучения = ЗНАЧЕНИЕ(Перечисление.СпособыОбменаДокументами.Электронно) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КОНЕЦ ИЗ ВозмещениеВТ КАК ВозмещениеВТ ЛЕВОЕ СОЕДИНЕНИЕ вт_ДействующиеСФ КАК вт_ДействующиеСФ ПО ВозмещениеВТ.Регистратор = вт_ДействующиеСФ.Регистратор И (ВЫБОР КОГДА ВозмещениеВТ.Регистратор ССЫЛКА Документ.АвансовыйОтчет ТОГДА ВозмещениеВТ.СчетФактура = вт_ДействующиеСФ.Ссылка ИНАЧЕ ИСТИНА КОНЕЦ) ГДЕ НЕ ВозмещениеВТ.КодСтроки = &КодСтрокиМетодаЗачета СГРУППИРОВАТЬ ПО ВозмещениеВТ.КодСтроки, ВозмещениеВТ.ВидОперацииПоступления, ВозмещениеВТ.Раздел, ВозмещениеВТ.ВидОборота, ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка ЕСТЬ NULL ТОГДА ЛОЖЬ ИНАЧЕ ВЫБОР КОГДА вт_ДействующиеСФ.Ссылка.СпособПолучения = ЗНАЧЕНИЕ(Перечисление.СпособыОбменаДокументами.Электронно) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КОНЕЦ При выполнении в обработке вылетает ошибка - "{ВнешнийОтчет.РегламентированныйОтчет300Форма.Форма.Форма3002020Кв1.Форма(3162)}: Ошибка при вызове метода контекста (Выполнить) Результат = Запрос.Выполнить(); по причине: {(201, 34)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. И ВозмещениеВТ.СчетФактура.Дата <<?>>МЕЖДУ &НачПериода И &КонПериода" При проверке этого же запроса в консоле работает все нормально. Пробовала и не ко временной таблице прописывать параметры связанные с датой, а СчетФактураПолученный.Ссылка.Проведен МЕЖДУ &НачПериода И &КонПериода - ошибка не уходит. Запрос не мой, а как видно по ошибке - переделываю рег отчетность. Мне бы понять от чего такая ошибка? Пустых дат в СчетФактуре быть не может. Или как изменить условия? |
|||
1
ЮлияКолегова
15.07.20
✎
20:30
|
В последней строке не Проведен а Дата
|
|||
2
LoneWanderer
15.07.20
✎
21:00
|
В параметрах точно даты лежат, а не, например, строки?
|
|||
3
palsergeich
15.07.20
✎
21:02
|
Посмотри что является результатом пакета вт_НДСКВозмещениюОбороты.
Там запрос - объединение. Во 2ой части - счет фактура забита как Null. А Null нельзя сравнивать так как Вы хотите |
|||
4
Жан Пердежон
15.07.20
✎
21:02
|
***
NULL <= скорее всего вот отсюда дату выцепить не может ИЗ РегистрНакопления.КорректировкаНДСКВозмещению.Обороты(&НачПериода, &КонПериода, Регистратор, Налогоплательщик = &Налогоплательщик) КАК КорректировкаНДСКВозмещению ; *** |
|||
5
palsergeich
15.07.20
✎
21:02
|
ВЫБРАТЬ
НДСКВозмещению.СуммаБезНДСОборот КАК СуммаБезНДСОборот, НДСКВозмещению.СуммаНДСОборот КАК СуммаНДСОборот, НДСКВозмещению.ВидОперацииПоступления КАК ВидОперацииПоступления, НДСКВозмещению.ВидОборота КАК ВидОборота, НДСКВозмещению.ВидНалогаНДС КАК ВидНалогаНДС, НДСКВозмещению.Регистратор, НДСКВозмещению.СчетФактура ПОМЕСТИТЬ вт_НДСКВозмещениюОбороты ИЗ РегистрНакопления.НДСКВозмещению.Обороты(&НачПериода, &КонПериода, Регистратор, Налогоплательщик = &Налогоплательщик) КАК НДСКВозмещению ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ КорректировкаНДСКВозмещению.СуммаКорректировкиОборотаОборот, КорректировкаНДСКВозмещению.СуммаНДСОборот, КорректировкаНДСКВозмещению.ВидОперацииКорректировки, КорректировкаНДСКВозмещению.ВидОборота, КорректировкаНДСКВозмещению.ВидНалогаНДС, КорректировкаНДСКВозмещению.Регистратор, NULL <- Проблема тут ИЗ РегистрНакопления.КорректировкаНДСКВозмещению.Обороты(&НачПериода, &КонПериода, Регистратор, Налогоплательщик = &Налогоплательщик) КАК КорректировкаНДСКВозмещению ; |
|||
6
Жан Пердежон
15.07.20
✎
21:02
|
(3) сам NULL сравнивать можно
|
|||
7
palsergeich
15.07.20
✎
21:02
|
(4) Хех, почти синхронно)
|
|||
8
palsergeich
15.07.20
✎
21:03
|
(6) Но не на интервал
|
|||
9
palsergeich
15.07.20
✎
21:04
|
(8) Туплю, чота, устал.
СчетФактура.Дата он не может от Null получить Дату) |
|||
10
ЮлияКолегова
15.07.20
✎
21:16
|
В общем проблема была в том, что при передаче параметра в КонПериода была изначально Граница, поменяв на просто КонецДня все заработало. Посмотрим на сколько сильно это повлияет на данные (2) (3) (4)
|
|||
11
palsergeich
15.07.20
✎
21:42
|
(10) Но на то, что мы написали тоже обрати внимание, то, что сейчас этого нет, не значит что не нарвешься
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |