База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как добавить поле Регистратор в запрос на остатки и обороты?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
26 августа 2026 в 13:00 #38480
Как добавить Регистратор в этот запрос:
-
26 августа 2026 в 13:00 #38481
Чтобы добавить измерение Регистратор в ваш запрос, нужно:
1. Везде, где вы работаете с остатками и оборотами, добавить поле Регистратор в выборку и в группировку (если есть).
2. В таблицах и соединениях, где есть поле Регистратор, добавить его в выборку и условия соединения.
3. В таблице дат и ближайших дат остатков тоже добавить Регистратор, чтобы корректно группировать и связывать данные.Пример, как добавить Регистратор в ваш запрос (только ключевые места):
—
### 1. В выборке из регистра накопления остатков и оборотов:
|ВЫБРАТЬ
| ТоварыНаСкладахОстаткиИОбороты.Период,
| ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
| ТоварыНаСкладахОстаткиИОбороты.Регистратор,
| ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
|ПОМЕСТИТЬ ВТ_Остатки
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , День, Движения, Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстаткиИОбороты—
### 2. В таблице ближайших дат остатков добавить Регистратор в выборку и группировку:
|ВЫБРАТЬ
| ТаблицаДат.Период КАК ТДПериод,
| МАКСИМУМ(ВТ_Остатки.Период) КАК ПериодРО,
| ВТ_Остатки.Номенклатура,
| ВТ_Остатки.Регистратор
|ПОМЕСТИТЬ ВТ_БлижайшиеДатыОстатков
|ИЗ
| ТаблицаДат КАК ТаблицаДат
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
| ПО ТаблицаДат.Период >= ВТ_Остатки.Период
|СГРУППИРОВАТЬ ПО
| ТаблицаДат.Период,
| ВТ_Остатки.Номенклатура,
| ВТ_Остатки.Регистратор—
### 3. В основном запросе добавить Регистратор в выборку и условия соединения:
|ВЫБРАТЬ
| ВТ_БлижайшиеДатыОстатков.ТДПериод КАК ТДПериод,
| ВТ_Остатки.Номенклатура,
| ВТ_Остатки.Регистратор,
| ВЫБОР
| КОГДА ТДПериод = ВТ_Остатки.Период
| ТОГДА ВТ_Остатки.КоличествоНачальныйОстаток
| ИНАЧЕ ВТ_Остатки.КоличествоКонечныйОстаток
| КОНЕЦ КАК КоличествоНачальныйОстаток,
| ВЫБОР
| КОГДА ТДПериод = ВТ_Остатки.Период
| ТОГДА ВТ_Остатки.КоличествоПриход
| ИНАЧЕ 0
| КОНЕЦ КАК КоличествоПриход,
| ВЫБОР
| КОГДА ТДПериод = ВТ_Остатки.Период
| ТОГДА ВТ_Остатки.КоличествоРасход
| ИНАЧЕ 0
| КОНЕЦ КАК КоличествоРасход,
| ВТ_Остатки.КоличествоКонечныйОстаток,
| ТоварыНаСкладахОбороты.Регистратор
|ИЗ
| ВТ_БлижайшиеДатыОстатков КАК ВТ_БлижайшиеДатыОстатков
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
| ПО ВТ_БлижайшиеДатыОстатков.ПериодРО = ВТ_Остатки.Период
| И ВТ_БлижайшиеДатыОстатков.Номенклатура = ВТ_Остатки.Номенклатура
| И ВТ_БлижайшиеДатыОстатков.Регистратор = ВТ_Остатки.Регистратор
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОбороты
| ПО ВТ_Остатки.Период = НАЧАЛОПЕРИОДА(ТоварыНаСкладахОбороты.Период, ДЕНЬ)
| И ВТ_Остатки.Регистратор = ТоварыНаСкладахОбороты.Регистратор
|УПОРЯДОЧИТЬ ПО
| ТДПериод—
### Кратко:
— Добавьте поле Регистратор в выборки из регистра остатков и оборотов.
— Добавьте Регистратор в таблицу ближайших дат и группировку.
— В условиях соединения добавьте сравнение по Регистратору.
— В итоговой выборке добавьте Регистратор.—
Если нужно, могу помочь с полным исправленным запросом с учётом Регистратора.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.