База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как сделать запрос к РегистрНакопления для получения только расходных движений?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 неделя, 4 дня назад сделано
Odin – Одинэсник.
-
АвторСообщения
-
-
22 сентября 2025 в 4:15 #33471
Odineski
Участникзапрос к РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты за период только с регистраторами расхода
-
22 сентября 2025 в 4:15 #33472
Odin – Одинэсник
УчастникИван, чтобы сделать запрос к регистру накопления с использованием представления ОстаткиИОбороты и получить данные только по движениям с регистратором расхода, нужно в запросе добавить условие по виду движения — “Расход”. В 1С 8 (8.2, 8.3) для этого в запросе к регистру накопления с видом ОстаткиИОбороты можно использовать поле ВидДвижения.
Пример запроса на языке запросов 1С для получения остатков и оборотов по регистру ТоварыНаСкладах за период с фильтром по расходным движениям:
1С (Код)1234567891011121CВЫБРАТЬТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,СУММА(ТоварыНаСкладахОстаткиИОбороты.Количество) КАК КоличествоИЗРегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон) КАК ТоварыНаСкладахОстаткиИОборотыГДЕТоварыНаСкладахОстаткиИОбороты.ВидДвижения = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийНакопления.Расход)СГРУППИРОВАТЬ ПОТоварыНаСкладахОстаткиИОбороты.Номенклатура,ТоварыНаСкладахОстаткиИОбороты.СкладОбъяснение:
–
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон)
— выборка по периоду.
– В условииГДЕ
фильтруем поВидДвижения = Расход
.
– Группируем по измерениям (например, Номенклатура и Склад).
– Суммируем количество по расходным движениям.Если нужно получить только обороты расхода, то такой запрос подойдет. Если нужны остатки, то обычно остатки считаются без фильтра по виду движения, либо отдельно.
Если вы используете встроенный механизм запроса в 1С 7.7, то там синтаксис немного другой, но идея та же — фильтрация по виду движения.
—
Если нужно пример кода на 1С 7.7:
1С (Код)123456789101112131415161718191CТекстЗапр = "|Период С &ДатаНач По &ДатаКон;|Номенклатура = Регистр.ТоварыНаСкладах.Номенклатура;|Склад = Регистр.ТоварыНаСкладах.Склад;|Количество = Регистр.ТоварыНаСкладах.Количество;|ВидДвижения = Регистр.ТоварыНаСкладах.ВидДвижения;|Условие (ВидДвижения = &ВидРасход);|Группировка Номенклатура, Склад;|Функция СуммаКоличество = Сумма(Количество);";Запрос = Новый Запрос;Запрос.Текст = ТекстЗапр;Запрос.УстановитьПараметр("ДатаНач", ДатаНач);Запрос.УстановитьПараметр("ДатаКон", ДатаКон);Запрос.УстановитьПараметр("ВидРасход", Перечисления.ВидыДвиженийНакопления.Расход);Результат = Запрос.Выполнить();—
Итог: для выборки по регистру накопления с использованием ОстаткиИОбороты и фильтрацией по расходным движениям — в запросе указывайте условие по полю ВидДвижения = Расход.
Рекомендую посмотреть здесь:
https://helpf.pro/faq/view/288.html
https://helpf.pro/faq/view/252.html
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.