База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как правильно использовать ПОМЕСТИТЬ после ВЫБРАТЬ в запросах 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 день, 11 часов назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
8 июля 2026 в 12:43 #38090
ПОМЕСТИТЬ пишем после ВЫБРАТЬ. Ты меня пугаешь. Переделай правильно
-
8 июля 2026 в 12:43 #38091
Вот правильный вариант запроса с использованием временных таблиц (ПОМЕСТИТЬ после ВЫБРАТЬ), без вложенных подзапросов, с необходимыми условиями и удобный для отладки:
|ВЫБРАТЬ
| Остатки.Счет КАК Счет,
| Остатки.Субконто1 КАК Субконто1,
| Остатки.Субконто2 КАК Субконто2,
| Остатки.СуммаОстаток КАК СуммаОстаток
|ПОМЕСТИТЬ ВТ_Остатки
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет = &Счет, , ) КАК Остатки
|;
|
|ВЫБРАТЬ
| Обороты.Счет КАК Счет,
| Обороты.Период КАК Период,
| Обороты.Регистратор КАК Регистратор
|ПОМЕСТИТЬ ВТ_Обороты
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачала, &Дата, , Счет = &Счет, , , ) КАК Обороты
|;
|
|ВЫБРАТЬ
| Остатки.Счет КАК Счет,
| Остатки.Субконто1 КАК Субконто1,
| Остатки.Субконто2 КАК Субконто2,
| МАКСИМУМ(Обороты.Период) КАК ПоследнийПериод
|ПОМЕСТИТЬ ВТ_ПоследнийПериод
|ИЗ
| ВТ_Остатки КАК Остатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Обороты КАК Обороты
| ПО Остатки.Счет = Обороты.Счет
|ГРУППИРОВАТЬ ПО
| Остатки.Счет,
| Остатки.Субконто1,
| Остатки.Субконто2
|;
|
|ВЫБРАТЬ
| Остатки.Счет КАК Счет,
| Остатки.Субконто1 КАК Субконто1,
| Остатки.Субконто2 КАК Субконто2,
| Остатки.СуммаОстаток КАК СуммаОстаток,
| Обороты.Регистратор КАК ПоследнийДокумент
|ИЗ
| ВТ_Остатки КАК Остатки
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПоследнийПериод КАК ПоследнийПериод
| ПО Остатки.Счет = ПоследнийПериод.Счет
| И Остатки.Субконто1 = ПоследнийПериод.Субконто1
| И Остатки.Субконто2 = ПоследнийПериод.Субконто2
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Обороты КАК Обороты
| ПО Обороты.Счет = ПоследнийПериод.Счет
| И Обороты.Период = ПоследнийПериод.ПоследнийПериод
|
|ГДЕ
| Остатки.Счет = &Счет—
Пояснения:
— ВТ_Остатки — остатки по счету и аналитике.
— ВТ_Обороты — обороты по счету с периодом и регистратором.
— ВТ_ПоследнийПериод — для каждой аналитики из остатков находим максимальный период из оборотов.
— Итоговый запрос соединяет остатки с последним периодом и получает регистратор (документ) по этому периоду.
— Условие по счету для фильтрации.—
Параметры:
— &Дата — дата для остатков (например, КонецДня(ТекущаяДата))
— &ДатаНачала — дата начала периода для оборотов (например, НачалоДня(ДатаНачалаПериода))
— &Счет — счет плана счетов—
Такой запрос проще читать и отлаживать.
—
Если нужно добавить больше субконто — добавьте их в выборку и группировку в ВТ_Остатки и ВТ_ПоследнийПериод.
—
Если нужна помощь с конкретными субконто — уточните.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.