База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Почему поле «Поле1» выводит только «До 2004» в запросе 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 11 часов, 34 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
20 мая 2026 в 15:06 #37301
ВЫБРАТЬ
ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период КАК Период,
ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство КАК ОсновноеСредство,
СУММА(ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ПервоначальнаяСтоимость) КАК ПервоначальнаяСтоимость,
ВЫБОР
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата1_1 И &Дата1_2
ТОГДА «2022-2024»
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата2_1 И &Дата2_2
ТОГДА «2019-2021»
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата3_1 И &Дата3_2
ТОГДА «2014-2018»
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период МЕЖДУ &Дата4_1 И &Дата4_2
ТОГДА «2004-2013»
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период <= &ДатаМин
ТОГДА «До 2004»
КОНЕЦ КАК Поле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»
КОГДА ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период <= &ДатаМин
ТОГДА «До 2004»
КОНЕЦУПОРЯДОЧИТЬ ПО
Поле1,
ОсновноеСредство1
почему выводится в Поле 1 толкео до 2004 -
20 мая 2026 в 15:06 #37302
Поле «Поле1» выводит только «До 2004», потому что условие в ВЫБОРе срабатывает только для записей, у которых
|ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Период <= &ДатаМин
а остальные условия не срабатывают.
Причина — в логике условий:
— Условие «МЕЖДУ &Дата1_1 И &Дата1_2» и другие срабатывают, только если значение Период попадает в эти диапазоны.
— Если в данных поле Период содержит дату, которая не попадает ни в один из диапазонов &Дата1_1..&Дата1_2, &Дата2_1..&Дата2_2 и т.д., то срабатывает только последнее условие «Период <= &ДатаМин».
Возможные причины:
1. Значения параметров &Дата1_1, &Дата1_2, &Дата2_1 и т.д. заданы неправильно или не соответствуют диапазонам дат в данных.
2. В данных поле Период содержит даты, которые не попадают в указанные диапазоны.
3. В условии ВЫБОР нет условия для значений Период, которые больше &Дата1_2 (например, даты после 31.12.2024), поэтому для них поле «Поле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));
|Запрос.УстановитьПараметр(«ДатаМин», Дата(2003,12,31));— Добавьте в ВЫБОР условие ИНАЧЕ, чтобы для всех остальных дат было значение, например:
|ВЫБОР
| КОГДА … ТОГДА …
| …
| КОГДА … ТОГДА …
| ИНАЧЕ «Прочие»
|КОНЕЦ— Уберите дублирование условий (в вашем запросе условие для «2004-2013» повторяется дважды).
—
Пример исправленного ВЫБОРа:
|ВЫБОР
| КОГДА Период МЕЖДУ &Дата1_1 И &Дата1_2 ТОГДА «2022-2024»
| КОГДА Период МЕЖДУ &Дата2_1 И &Дата2_2 ТОГДА «2019-2021»
| КОГДА Период МЕЖДУ &Дата3_1 И &Дата3_2 ТОГДА «2014-2018»
| КОГДА Период МЕЖДУ &Дата4_1 И &Дата4_2 ТОГДА «2004-2013»
| КОГДА Период <= &ДатаМин ТОГДА «До 2003»
| ИНАЧЕ «Прочие»
|КОНЕЦ—
Так вы получите заполненное поле «Поле1» для всех записей.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.