Имя: Пароль:
1C
1С v8
Ошибка в запросе
,
0 Metman
 
20.09.13
07:25
Здравствуйте. При выполнении запроса на попадает 1-я запись колонки Сумма. Прошу помощи.
ВЫБРАТЬ
     |    УчетПартий.МестоХранения КАК МестоХранения,
     |    УчетПартий.Период КАК Период,
     |    УчетПартий.Регистратор КАК Регистратор,
     |    УчетПартий.Номенклатура,
     |    УчетПартий.Характеристика,
     |    ВЫБОР
     |        КОГДА (УчетПартий.КодОперации = &КодИнвентаризации)
     |                ИЛИ (УчетПартий.КодОперации = &КодПеремещения
     |                    И УчетПартий.ВидДвижения = &ВидДвиженияРасход
     |                    И УчетПартий.Регистратор ССЫЛКА Документ.Перемещение)
     |            ТОГДА -СУММА(УчетПартий.Количество)
     |        ИНАЧЕ СУММА(УчетПартий.Количество)
     |    КОНЕЦ КАК Количество,
     |    ВЫБОР
     |        КОГДА (УчетПартий.КодОперации = &КодИнвентаризации)
     |                ИЛИ (УчетПартий.КодОперации = &КодПеремещения
     |                    И УчетПартий.ВидДвижения = &ВидДвиженияРасход
     |                    И УчетПартий.Регистратор ССЫЛКА Документ.Перемещение)
     |            ТОГДА -СУММА(УчетПартий.СуммаБезНДС)
     |        ИНАЧЕ СУММА(УчетПартий.СуммаБезНДС)
     |    КОНЕЦ КАК СуммаБезНДС,
     |    ВЫБОР
     |        КОГДА (УчетПартий.КодОперации = &КодИнвентаризации)
     |                ИЛИ (УчетПартий.КодОперации = &КодПеремещения
     |                    И УчетПартий.ВидДвижения = &ВидДвиженияРасход
     |                    И УчетПартий.Регистратор ССЫЛКА Документ.Перемещение)
     |            ТОГДА -СУММА(УчетПартий.СуммаНДС)
     |        ИНАЧЕ СУММА(УчетПартий.СуммаНДС)
     |    КОНЕЦ КАК СуммаНДС,
     |    СУММА(0) КАК Сумма,
     |    СУММА(0) КАК НДСВходящий,
     |    СУММА(0) КАК НДС,
     |    0 КАК СтавкаНДС,
     |    УчетПартий.КодОперации,
     |    УчетПартий.ВидДвижения КАК ВидДвижения
     |ИЗ
     |    РегистрНакопления.УчетПартий КАК УчетПартий
     |ГДЕ
     |    УчетПартий.МестоХранения В(&СписокСкладов)
     |    И УчетПартий.Период МЕЖДУ &НачалоПериода И &КонецПериода
     |
     |СГРУППИРОВАТЬ ПО
     |    УчетПартий.МестоХранения,
     |    УчетПартий.Регистратор,
     |    УчетПартий.Номенклатура,
     |    УчетПартий.Характеристика,
     |    УчетПартий.Период,
     |    УчетПартий.КодОперации,

|    УчетПартий.ВидДвижения
     |
     |ОБЪЕДИНИТЬ
     |
     |ВЫБРАТЬ
     |    УчетПродаж.Склад,
     |    УчетПродаж.Период,
     |    УчетПродаж.Регистратор,
     |    УчетПродаж.Номенклатура,
     |    УчетПродаж.Характеристика,
     |    СУММА(УчетПродаж.Количество),
     |    СУММА(0),
     |    0,
     |    СУММА(УчетПродаж.Сумма),
     |    СУММА(УчетПродаж.НДСВходящий),
     |    СУММА(УчетПродаж.НДС),
     |    УчетПродаж.СтавкаНДС,
     |    0,
     |    0
     |ИЗ
     |    РегистрНакопления.УчетПродаж КАК УчетПродаж
     |ГДЕ
     |    УчетПродаж.Склад В(&СписокСкладов)
     |    И УчетПродаж.Период МЕЖДУ &НачалоПериода И &КонецПериода
     |
     |СГРУППИРОВАТЬ ПО
     |    УчетПродаж.Склад,
     |    УчетПродаж.Регистратор,
     |    УчетПродаж.Номенклатура,
     |    УчетПродаж.Характеристика,
     |    УчетПродаж.Период,
     |    УчетПродаж.СтавкаНДС
     |
     |УПОРЯДОЧИТЬ ПО
     |    Период
     |";
1 Metman
 
20.09.13
07:26
Последующие записи выводятся, а вот первая нет
2 Галахад
 
гуру
20.09.13
07:32
Может там нуль?
3 Raybek
 
20.09.13
07:33
(0) Обединение затем группируете?
4 Metman
 
20.09.13
07:34
(2) нет, значение заполнено. При выводе документов у первой позиции сумма 0
5 Галахад
 
гуру
20.09.13
07:36
(4) А это что?

СУММА(0)
6 Metman
 
20.09.13
07:41
(5) все досталось в "наследство" от бывшего программиста.
7 Metman
 
20.09.13
07:45
(4) как правильно сделать?
8 Галахад
 
гуру
20.09.13
07:46
(6) О. Нашли виновного, значит вопрос закрыт.
9 Raybek
 
20.09.13
07:54
(4) Ну так ежели не группируете результат объединения, по смыслу запроса первые записи из регистра Учет партий, где все поля Сумма равны нулю.

Телепатирую, что в Учете партий только одна запись, раз только первая Сумма равна 0.
10 Metman
 
20.09.13
08:05
нет, записей много. При установке периода у первого документа (попадающего в период) первая позиция с нулевой суммой.
11 Metman
 
20.09.13
08:16
Я так понимаю, что первые записи "нулевые" из-за СУММА(0)? или я не прав?
12 Raybek
 
20.09.13
08:18
(11) Не понял смысла объединения, если результат не группировать.
13 Metman
 
20.09.13
08:25
(12) я в запросах слаб
14 Мимохожий Однако
 
20.09.13
08:29
(0)Цель запроса?
15 Metman
 
20.09.13
08:40
Вывести для бухгалтерии отчет по ставкам НДС и валовой прибыли. В отчет выводится "Себестоимость Без НДС", "Сумма Входящего НДС", "Себестоимость с учетом НДС", "Сумма Продажи с НДС", "Сумма Исходящего НДС". "Сумма Продажи с НДС" и "Сумма Исходящего НДС" у первой позиции первого документа не выводится.
16 Raybek
 
20.09.13
09:00
Попробуйте так:
ВЫБРАТЬ
     |    Объединение.МестоХранения,
     |    Объединение.Период,
     |    Объединение.Регистратор,
     |    Объединение.Номенклатура,
     |    Объединение.Характеристика,
     |    СУММА(Объединение.Количество) КАК Количество,
     |    СУММА(ОбъединениеСуммаБезНДС) КАК СуммаБезНДС,
     |    СУММА(Объединение.СуммаНДС) КАК СуммаНДС,
     |    СУММА(Объединение.Сумма) КАК Сумма,
|    СУММА(Объединение.НДСВходящий) КАК НДСВходящий,
|    СУММА(Объединение.НДС) КАК НДС,
|    Объединение.СтавкаНДС,
|    Объединение.КодОперации,
|    Объединение.ВидДвижения
КАК ВидДвижения
(ВЫБРАТЬ
     | УчетПартий.МестоХранения
КАК МестоХранения,
     |    УчетПартий.Период КАК
Период,
     |    УчетПартий.Регистратор
КАК Регистратор,
     |    УчетПартий.Номенклатура,
     |    УчетПартий.Характеристика,
     |    ВЫБОР
     |        КОГДА
(УчетПартий.КодОперации =
&КодИнвентаризации)
     |                ИЛИ
(УчетПартий.КодОперации =
&КодПеремещения
     |                    И
УчетПартий.ВидДвижения =
&ВидДвиженияРасход
     |                    И
УчетПартий.Регистратор ССЫЛКА
Документ.Перемещение)
     |            ТОГДА -СУММА
(УчетПартий.Количество)
     |        ИНАЧЕ СУММА
(УчетПартий.Количество)
     |    КОНЕЦ КАК Количество,
     |    ВЫБОР
     |        КОГДА
(УчетПартий.КодОперации =
&КодИнвентаризации)
     |                ИЛИ
(УчетПартий.КодОперации =
&КодПеремещения
     |                    И
УчетПартий.ВидДвижения =
&ВидДвиженияРасход
     |                    И
УчетПартий.Регистратор ССЫЛКА
Документ.Перемещение)
     |            ТОГДА -СУММА
(УчетПартий.СуммаБезНДС)
     |        ИНАЧЕ СУММА
(УчетПартий.СуммаБезНДС)
     |    КОНЕЦ КАК СуммаБезНДС,
     |    ВЫБОР
     |        КОГДА
(УчетПартий.КодОперации =
&КодИнвентаризации)
     |                ИЛИ
(УчетПартий.КодОперации =
&КодПеремещения
     |                    И
УчетПартий.ВидДвижения =
&ВидДвиженияРасход
     |                    И
УчетПартий.Регистратор ССЫЛКА
Документ.Перемещение)
     |            ТОГДА -СУММА
(УчетПартий.СуммаНДС)
     |        ИНАЧЕ СУММА
(УчетПартий.СуммаНДС)
     |    КОНЕЦ КАК СуммаНДС,
     |    СУММА( 0 ) КАК Сумма,
|    СУММА( 0 ) КАК НДСВходящий,
|    СУММА( 0 ) КАК НДС,
|    0 КАК СтавкаНДС,
|    УчетПартий.КодОперации,
|    УчетПартий.ВидДвижения
КАК ВидДвижения
     |ИЗ
     |
    РегистрНакопления.УчетПартий КАК
УчетПартий
     |ГДЕ
     |    УчетПартий.МестоХранения В
(&СписокСкладов)
     |    И УчетПартий.Период МЕЖДУ
&НачалоПериода И &КонецПериода
     |
     |СГРУППИРОВАТЬ ПО
     |    УчетПартий.МестоХранения,
     |    УчетПартий.Регистратор,
     |    УчетПартий.Номенклатура,
     |    УчетПартий.Характеристика,
     |    УчетПартий.Период,
     |    УчетПартий.КодОперации,
|    УчетПартий.ВидДвижения
     |
     |ОБЪЕДИНИТЬ
     |
     |ВЫБРАТЬ
     |    УчетПродаж.Склад,
     |    УчетПродаж.Период,
     |    УчетПродаж.Регистратор,
     |    УчетПродаж.Номенклатура,
     |    УчетПродаж.Характеристика,
     |    СУММА
(УчетПродаж.Количество),
     |    СУММА( 0 ),
|    0,
|    СУММА(УчетПродаж.Сумма),
|    СУММА
(УчетПродаж.НДСВходящий),
     |    СУММА(УчетПродаж.НДС),
     |    УчетПродаж.СтавкаНДС,
     |    0,
     |    0
     |ИЗ
     |
    РегистрНакопления.УчетПродаж КАК
УчетПродаж
     |ГДЕ
     |    УчетПродаж.Склад В
(&СписокСкладов)
     |    И УчетПродаж.Период МЕЖДУ
&НачалоПериода И &КонецПериода
     |
     |СГРУППИРОВАТЬ ПО
     |    УчетПродаж.Склад,
     |    УчетПродаж.Регистратор,
     |    УчетПродаж.Номенклатура,
     |    УчетПродаж.Характеристика,
     |    УчетПродаж.Период,
     |    УчетПродаж.СтавкаНДС
     |
     |УПОРЯДОЧИТЬ ПО
     |    Период
     |) КАК Объединение
     |СГРУППИРОВАТЬ ПО
     |    УчетПродаж.Склад,
     |    УчетПродаж.Регистратор,
     |    УчетПродаж.Номенклатура,
     |    УчетПродаж.Характеристика,
     |    УчетПродаж.Период,
     |    УчетПродаж.СтавкаНДС
     |УПОРЯДОЧИТЬ ПО
     |    Период";
17 Raybek
 
20.09.13
09:02
(16) Перед подзапрросом "(ВЫБРАТЬ" забыл "ИЗ".
18 Metman
 
20.09.13
09:29
Во вложенных запросах нельзя применять операцию УПОРЯДОЧИТЬ ПО без использования конструкции ПЕРВЫЕ.
<<?>>УПОРЯДОЧИТЬ ПО
19 Raybek
 
20.09.13
09:31
(18) Уберите во вложенном запросе "Упорядочить по".
20 Raybek
 
20.09.13
09:33
(18) Извиняюсь - редактировал на смартфоне:)
21 Metman
 
20.09.13
09:44
Поле не найдено "УчетПродаж.Склад"
<<?>>УчетПродаж.Склад,
22 Raybek
 
20.09.13
09:54
(21) Ага. Тупо копипастил, в коце запроса УчетПродаж заменить на Объединение. И вместо Склад - МестоХранения.
23 Metman
 
20.09.13
10:02
Поле не входит в группу "Объединение.КодОперации"
<<?>>Объединение.КодОперации
24 Raybek
 
20.09.13
10:06
(23) :)
В конце запроса в СГРУППИРОВАТЬ ПО добавить строки
Объединение.КодОперации,
Объединение.ВидДвижения
25 Metman
 
20.09.13
10:15
Спасибо за помощь, но у первой позиции нет суммы
26 Raybek
 
20.09.13
10:22
Типы и значения какие у реквизитов КодОперации, ВидДвижения, СтавкаНДС.
Во вложеннос запросе по Учету продаж нужно вместо 0 проставить соответсвующие значения по умолчанию.
27 Metman
 
20.09.13
11:07
КодОперации - Ссылка на перечисление "Коды операций" (Ввод остатков, возврат от покупателя. Вид Движения - Проход/расход, Ставка НДС - 18%,10%