|
Ошибка в запросе | ☑ | ||
---|---|---|---|---|
0
Iceman_208
09.10.15
✎
15:23
|
Всем добрый день уважаемые знатоки 1С 8.
Столкнулся со следующей проблемой. В одном из отчетов создал запрос. При выполнении запроса выдается ошибка на строке "ТОГДА РеализацияТоваровУслугТовары.КоличествоПакетов * ТабВесПакета.ВесПакета". Почему такое происходит не могу понять. Текст Запроса следующий: ВЫБРАТЬ ТабТТН.Маршрут КАК Маршрут, ТабТТН.ДатаКалендаря КАК ДатаКалендаря, ТабТТН.Протяженность КАК Протяженность, ТабТТН.Стоимость КАК Стоимость ПОМЕСТИТЬ ТабТТН ИЗ &ТабТТН КАК ТабТТН ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТабВесПакета.Номенклатура КАК Номенклатура, ТабВесПакета.ВесПакета КАК ВесПакета ПОМЕСТИТЬ ТабВесПакета ИЗ &ТабВесПакета1 КАК ТабВесПакета ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТабТТН.Маршрут КАК Маршрут, ТабТТН.ДатаКалендаря КАК ДатаКалендаря, ТабТТН.Протяженность КАК Протяженность, ТабТТН.Стоимость КАК Стоимость, ВложенныйЗапрос.КолвоОтгрузки КАК КолвоОтгрузки, ВложенныйЗапрос.СуммаОтгрузки КАК СуммаОтгрузки, ВложенныйЗапрос.КолвоТТ КАК КолвоТТ, ВЫБОР КОГДА ЕСТЬNULL(ТабТТН.Стоимость, 0) = 0 ТОГДА ВложенныйЗапрос.СуммаОтгрузки ИНАЧЕ ВложенныйЗапрос.СуммаОтгрузки - ТабТТН.Стоимость КОНЕЦ КАК МаржинальнаяПрибыль, ВЫБОР КОГДА ЕСТЬNULL(ТабТТН.Стоимость, 0) <> 0 И ЕСТЬNULL(ТабТТН.Протяженность, 0) <> 0 ТОГДА ТабТТН.Стоимость / ТабТТН.Протяженность ИНАЧЕ NULL КОНЕЦ КАК ТранспортРасходыНАКМ, ВЫБОР КОГДА ЕСТЬNULL(ВложенныйЗапрос.КолвоОтгрузки, 0) <> 0 И ЕСТЬNULL(ТабТТН.Стоимость, 0) <> 0 ТОГДА ТабТТН.Стоимость / ВложенныйЗапрос.КолвоОтгрузки ИНАЧЕ NULL КОНЕЦ КАК ТранспортРасходыНаКГ, ВЫБОР КОГДА ЕСТЬNULL(ВложенныйЗапрос.КолвоОтгрузки, 0) <> 0 И ЕСТЬNULL(ВложенныйЗапрос.КолвоТТ, 0) <> 0 ТОГДА ВложенныйЗапрос.КолвоОтгрузки / ВложенныйЗапрос.КолвоТТ ИНАЧЕ NULL КОНЕЦ КАК СредняяОтгрузкаВТТ, ВЫБОР КОГДА ЕСТЬNULL(ТабТТН.Стоимость, 0) <> 0 И ЕСТЬNULL(ВложенныйЗапрос.КолвоТТ, 0) <> 0 ТОГДА ТабТТН.Стоимость / ВложенныйЗапрос.КолвоТТ ИНАЧЕ NULL КОНЕЦ КАК СредняяСтоимостьВТТ, ВесБруттоИБонусы.НачисленныйБонус КАК НачисленныйБонус, ВесБруттоИБонусы.ВесТары КАК ВесТары, ВесБруттоИБонусы.ВесПакетов КАК ВесПакетов, ВложенныйЗапрос.КолвоОтгрузки + ВесБруттоИБонусы.ВесТары + ВесБруттоИБонусы.ВесПакетов КАК КолвоОтгрузкиБрутто ИЗ ТабТТН КАК ТабТТН ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПродажиОбороты.ДокументПродажи.Маршрут КАК Маршрут, СУММА(ПродажиОбороты.КоличествоСкладОборот) КАК КолвоОтгрузки, СУММА(ПродажиОбороты.СтоимостьОборот - ПродажиСебестоимостьОбороты.СтоимостьОборот) КАК СуммаОтгрузки, НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕНЬ) КАК ДатаРеализации, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПродажиОбороты.Контрагент) КАК КолвоТТ ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНачала, &ДатаКонца, Регистратор, ) КАК ПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость.Обороты(&ДатаНачала, &ДатаКонца, Регистратор, ) КАК ПродажиСебестоимостьОбороты ПО ПродажиОбороты.Регистратор = ПродажиСебестоимостьОбороты.Регистратор ГДЕ ПродажиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг СГРУППИРОВАТЬ ПО ПродажиОбороты.ДокументПродажи.Маршрут, НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕНЬ)) КАК ВложенныйЗапрос ПО ТабТТН.Маршрут = ВложенныйЗапрос.Маршрут И ТабТТН.ДатаКалендаря = ВложенныйЗапрос.ДатаРеализации ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ВложенныйЗапрос.ДокРеализации.Маршрут КАК Маршрут, СУММА(ВложенныйЗапрос.ВесПакетов) КАК ВесПакетов, СУММА(ВложенныйЗапрос.ВесТары) КАК ВесТары, НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДокРеализации.Дата, ДЕНЬ) КАК ДатаРеализации, СУММА(НачисленныеБонусы.НачисленныйБонус) КАК НачисленныйБонус ИЗ (ВЫБРАТЬ СУММА(ВЫБОР КОГДА ЕСТЬNULL(ТабВесПакета.ВесПакета, 0) <> 0 ТОГДА РеализацияТоваровУслугТовары.КоличествоПакетов * ТабВесПакета.ВесПакета ИНАЧЕ 0 КОНЕЦ) КАК ВесПакетов, РеализацияТоваровУслугТовары.Ссылка.ВесТары КАК ВесТары, РеализацияТоваровУслугТовары.Ссылка КАК ДокРеализации, ВложенныйЗапрос.ВесПакета КАК ВесПакета ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ ТабВесПакета КАК ТабВесПакета ПО РеализацияТоваровУслугТовары.Номенклатура = ТабВесПакета.ВесПакета, (ВЫБРАТЬ ТабВесПакета.Номенклатура КАК Номенклатура, ТабВесПакета.ВесПакета КАК ВесПакета ИЗ ТабВесПакета КАК ТабВесПакета) КАК ВложенныйЗапрос ГДЕ РеализацияТоваровУслугТовары.Ссылка.Проведен = ИСТИНА И РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца СГРУППИРОВАТЬ ПО РеализацияТоваровУслугТовары.Ссылка, РеализацияТоваровУслугТовары.Ссылка.ВесТары, ВложенныйЗапрос.ВесПакета) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СУММА(таБонусыАкцийОбороты.КоличествоПриход) КАК НачисленныйБонус, НАЧАЛОПЕРИОДА(таБонусыАкцийОбороты.Период, ДЕНЬ) КАК ДатаНачисления, таБонусыАкцийОбороты.Документ КАК ДокРеализации ИЗ РегистрНакопления.таБонусыАкций.Обороты(&ДатаНачала, &ДатаКонца, Регистратор, ) КАК таБонусыАкцийОбороты ГДЕ таБонусыАкцийОбороты.Документ.Проведен = ИСТИНА СГРУППИРОВАТЬ ПО НАЧАЛОПЕРИОДА(таБонусыАкцийОбороты.Период, ДЕНЬ), таБонусыАкцийОбороты.Документ) КАК НачисленныеБонусы ПО (НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДокРеализации.Дата, ДЕНЬ) = НачисленныеБонусы.ДатаНачисления) И ВложенныйЗапрос.ДокРеализации = НачисленныеБонусы.ДокРеализации СГРУППИРОВАТЬ ПО ВложенныйЗапрос.ДокРеализации.Маршрут, НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДокРеализации.Дата, ДЕНЬ)) КАК ВесБруттоИБонусы ПО ТабТТН.Маршрут = ВесБруттоИБонусы.Маршрут И ТабТТН.ДатаКалендаря = ВесБруттоИБонусы.ДатаРеализации, ТабВесПакета КАК ТабВесПакета ИТОГИ СРЕДНЕЕ(Протяженность), СРЕДНЕЕ(Стоимость), СРЕДНЕЕ(КолвоОтгрузки), СРЕДНЕЕ(СуммаОтгрузки), СРЕДНЕЕ(КолвоТТ), СРЕДНЕЕ(МаржинальнаяПрибыль), СРЕДНЕЕ(ТранспортРасходыНАКМ), СРЕДНЕЕ(ТранспортРасходыНаКГ), СРЕДНЕЕ(СредняяОтгрузкаВТТ), СРЕДНЕЕ(СредняяСтоимостьВТТ), СРЕДНЕЕ(НачисленныйБонус), СРЕДНЕЕ(ВесТары), СРЕДНЕЕ(ВесПакетов), СРЕДНЕЕ(КолвоОтгрузкиБрутто) ПО Маршрут, ДатаКалендаря |
|||
1
Ненавижу 1С
гуру
09.10.15
✎
15:30
|
подозреваю, что ВесПакета это не число
|
|||
2
ibreiter
09.10.15
✎
15:42
|
ПО РеализацияТоваровУслугТовары.Номенклатура = ТабВесПакета.ВесПакета непонятно
|
|||
3
Iceman_208
09.10.15
✎
15:47
|
"ПО РеализацияТоваровУслугТовары.Номенклатура = ТабВесПакета.ВесПакета непонятно" исправил, но ошибка осталась
|
|||
4
Iceman_208
09.10.15
✎
15:48
|
по поводу параметра ВесПакета, то там преобразовано в число все предварительно
|
|||
5
Ненавижу 1С
гуру
09.10.15
✎
15:49
|
(4) покажи как преобразовано
|
|||
6
Iceman_208
09.10.15
✎
15:50
|
Запрос.Текст = "ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Объект КАК Номенклатура, | ЗначенияСвойствОбъектов.Значение КАК ВесПакета |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Свойство = &Свойство"; Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.ВесПакета); Попытка ТабВесПакета = Запрос.Выполнить().Выгрузить(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Для Каждого СтрокаТабВесПакета ИЗ ТабВесПакета Цикл СтрокаТабВесПакета.ВесПакета = Число(Формат(СтрокаТабВесПакета.ВесПакета.Наименование,"ЧЦ=10; ЧДЦ=3; ЧРД=.")); КонецЦикла; |
|||
7
Iceman_208
09.10.15
✎
15:50
|
ТабВесПакета эта та таблица что передается в запрос
|
|||
8
ibreiter
09.10.15
✎
16:02
|
Можно без выбора сразу * ЕСТЬNULL(ТабВесПакета.ВесПакета, 0)
|
|||
9
Iceman_208
09.10.15
✎
16:05
|
(8) Можно, переделал, ошибка все равно.
|
|||
10
ibreiter
09.10.15
✎
16:08
|
Таблицу ТабВесПакета проверяли, что там в колонке вес?
|
|||
11
Горогуля
09.10.15
✎
16:10
|
круто. числовое значение допсвойства добывается из наименования. я б так не додумался
|
|||
12
Iceman_208
09.10.15
✎
16:12
|
(10) Там вес, из серии 0.012 и т.д
|
|||
13
Iceman_208
09.10.15
✎
16:13
|
(10) Для теста делал
Для Каждого СтрокаТабВесПакета ИЗ ТабВесПакета Цикл СтрокаТабВесПакета.ВесПакета = 1; КонецЦикла; |
|||
14
Iceman_208
09.10.15
✎
16:13
|
все равно ошибка
|
|||
15
Iceman_208
09.10.15
✎
16:13
|
Такое ощущение как будто не может прочитать значение из временной таблицы
|
|||
16
ibreiter
09.10.15
✎
16:14
|
Давайте еще раз запрос сюда полностью
|
|||
17
sash-ml
09.10.15
✎
16:18
|
Переименуй выборки и времянки
ПОМЕСТИТЬ ВТ_ТабТТН ИЗ &ТабТТН КАК ТабТТН |
|||
18
Iceman_208
09.10.15
✎
16:30
|
Все решалось проще
апрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Объект КАК Номенклатура, | ЗначенияСвойствОбъектов.Значение КАК ВесПакета1 |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Свойство = &Свойство"; Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.ВесПакета); Попытка ТабВесПакета = Запрос.Выполнить().Выгрузить(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; ТабВесПакета.Колонки.Добавить("ВесПакета", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,2))); Для Каждого СтрокаТабВесПакета ИЗ ТабВесПакета Цикл СтрокаТабВесПакета.ВесПакета = Число(Формат(СтрокаТабВесПакета.ВесПакета1.Наименование,"ЧЦ=10; ЧДЦ=3; ЧРД=.")); //СтрокаТабВесПакета.ВесПакета = 1; КонецЦикла; |
|||
19
ibreiter
09.10.15
✎
16:48
|
Так я и думал..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |