База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Почему поле «Поле1» пустое в запросе 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 12 часов, 19 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
20 мая 2026 в 14:21 #37299
ВЫБРАТЬ
ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период КАК Период,
ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство КАК ОсновноеСредство,
СУММА(ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ПервоначальнаяСтоимость) КАК ПервоначальнаяСтоимость,
ВЫБОР
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата1_1 И &Дата1_2
ТОГДА «2022-2024»
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата2_1 И &Дата2_2
ТОГДА «2019-2021»
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата3_1 И &Дата3_2
ТОГДА «2014-2018»
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата3_1 И &Дата3_2
ТОГДА «2004-2013»
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период <= &ДатаМин
ТОГДА «2004-2013»
КОНЕЦ КАК Поле1,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство) КАК ОсновноеСредство1
ИЗ
РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&Дата, ) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследнихСГРУППИРОВАТЬ ПО
ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период,
ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство,
ВЫБОР
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата1_1 И &Дата1_2
ТОГДА «2022-2024»
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата2_1 И &Дата2_2
ТОГДА «2019-2021»
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата3_1 И &Дата3_2
ТОГДА «2014-2018»
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата4_1 И &Дата4_2
ТОГДА «2004-2013»
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата4_1 И &Дата4_2
ТОГДА «2004-2013»
КОНЕЦУПОРЯДОЧИТЬ ПО
Поле1,
ОсновноеСредство1
почему Поле1 пустое -
20 мая 2026 в 14:21 #37300
Ошибка в запросе — в условии ВЫБОР для «Поле1» дважды используется одно и то же условие с &Дата3_1 и &Дата3_2, а для диапазона «2004-2013» используется условие с &Дата3_1 и &Дата3_2, вместо &Дата4_1 и &Дата4_2.
Из-за этого для периода «2004-2013» условие не срабатывает, и в итоге для этих записей поле «Поле1» остаётся пустым.
Правильно должно быть так:
|ВЫБОР
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата1_1 И &Дата1_2 ТОГДА «2022-2024»
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата2_1 И &Дата2_2 ТОГДА «2019-2021»
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата3_1 И &Дата3_2 ТОГДА «2014-2018»
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата4_1 И &Дата4_2 ТОГДА «2004-2013»
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период < &Дата4_1 ТОГДА «До 2003»
| ИНАЧЕ «»
|КОНЕЦ КАК Поле1То же самое в части GROUP BY.
—
Также обратите внимание, что в вашем варианте:
— Последнее условие
ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период <= &ДатаМин ТОГДА "2004-2013"— не совсем корректно, лучше использовать< &Дата4_1для периода до 2004 года.— В условии ВЫБОР для группировки и выборки должны быть одинаковые условия.
—
Исправленный пример:
|ВЫБРАТЬ
| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период КАК Период,
| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство КАК ОсновноеСредство,
| СУММА(ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ПервоначальнаяСтоимость) КАК ПервоначальнаяСтоимость,
| ВЫБОР
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата1_1 И &Дата1_2 ТОГДА «2022-2024»
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата2_1 И &Дата2_2 ТОГДА «2019-2021»
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата3_1 И &Дата3_2 ТОГДА «2014-2018»
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата4_1 И &Дата4_2 ТОГДА «2004-2013»
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период < &Дата4_1 ТОГДА «До 2003»
| ИНАЧЕ «»
| КОНЕЦ КАК Поле1,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство) КАК ОсновноеСредство1
|ИЗ
| РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&Дата, ) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
|СГРУППИРОВАТЬ ПО
| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период,
| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство,
| ВЫБОР
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата1_1 И &Дата1_2 ТОГДА «2022-2024»
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата2_1 И &Дата2_2 ТОГДА «2019-2021»
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата3_1 И &Дата3_2 ТОГДА «2014-2018»
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата4_1 И &Дата4_2 ТОГДА «2004-2013»
| КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период < &Дата4_1 ТОГДА «До 2003»
| ИНАЧЕ «»
| КОНЕЦ
|УПОРЯДОЧИТЬ ПО
| Поле1,
| ОсновноеСредство1—
Проверьте параметры:
|Запрос.УстановитьПараметр(«Дата1_1», Дата(2022,1,1));
|Запрос.УстановитьПараметр(«Дата1_2», Дата(2024,12,31));
|Запрос.УстановитьПараметр(«Дата2_1», Дата(2019,1,1));
|Запрос.УстановитьПараметр(«Дата2_2», Дата(2021,12,31));
|Запрос.УстановитьПараметр(«Дата3_1», Дата(2014,1,1));
|Запрос.УстановитьПараметр(«Дата3_2», Дата(2018,12,31));
|Запрос.УстановитьПараметр(«Дата4_1», Дата(2004,1,1));
|Запрос.УстановитьПараметр(«Дата4_2», Дата(2013,12,31));
|Запрос.УстановитьПараметр(«Дата», ТекущаяДата());—
Так поле «Поле1» будет заполняться корректно.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.