Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 13:52

регистр накопления

Автор andron81_81, 23 апр 2018, 09:52

0 Пользователей и 1 гость просматривают эту тему.

andron81_81

Доброе утро всем.
Объясните мне, пожалуйста, как работает запрос на регистр накопления. С MS SQL я на ты , но как работает запрос 1с понять не могу


Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| wОстаткиМассыИПачекОстатки.Номенклатура,
| wОстаткиМассыИПачекОстатки.КоличествоОстаток КАК Количество,
| wОстаткиМассыИПачекОстатки.КоличествоВПачке,
| wОстаткиМассыИПачекОстатки.ХарактеристикаНоменклатуры,
| wОстаткиМассыИПачекОстатки.Заказ,
| wОстаткиМассыИПачекОстатки.Партия,
| wОстаткиМассыИПачекОстатки.СерияНоменклатуры
|ИЗ
| РегистрНакопления.wОстаткиМассыИПачек.Остатки(
| &Период,
| Номенклатура В (&Номенклатура)
| И Заказ В (&Заказ)
| И Склад = &Склад) КАК wОстаткиМассыИПачекОстатки
|ГДЕ
| wОстаткиМассыИПачекОстатки.КоличествоОстаток < 0
|
|ДЛЯ ИЗМЕНЕНИЯ"
Запрос.УстановитьПараметр("Заказ", Товары_2.ВыгрузитьКолонку("Заказ"));
Запрос.УстановитьПараметр("Номенклатура", Товары_2.ВыгрузитьКолонку("Номенклатура"));
Запрос.УстановитьПараметр("Период", Новый Граница(Ссылка.МоментВремени(), ВидГраницы.Включая));
Запрос.УстановитьПараметр("Склад", Склад);

параметры заносятся такие:
заказ = "Заказ покупателя м2328 от 07.12.2015 13:27:59"
Номенклатура = "Олимпиадная математика Решаем сами 2 класс Часть 1 Рабочие тетради в 2-х частях Дубова"
Период = "18.04.2018"
Склад = "Склад готовой продукции (КЭБ - Оперативный)"

он в результате выдаёт всё же одну строку. а я не могу понять с какого перепуга :


Заказ покупателя м2328 от 07.12.2015 13:27:59-1 00010Олимпиадная математика Решаем сами 2 класс Часть 1 Рабочие тетради в 2-х частях ДубоваПеремещение товаров СМ-00022843 от 01.10.2016 0:00:01

сама таблица регистра с вышеуказанным отбором см. картинку


p.s. Возможно кто-нибудь объяснил бы как в консоле запроса данный запрос запустить - возможно я бы понял в чем дело. проблема лишь в том как задать параметр "период".












andron81_81


alex0402

Цитата: andron81_81 от 23 апр 2018, 09:52он в результате выдаёт всё же одну строку. а я не могу понять с какого перепуга :

он выдаст все строки по комбинации измерений. Если с ms sql на ты, то все измерения - это уникальный индекс. На каждую дату будет отличаться только остаток ресурса.

т.е. у вас в остатке только одна запись, где измерения соответствуют условию 
Цитата: andron81_81 от 23 апр 2018, 09:52Номенклатура В (&Номенклатура) | И Заказ В (&Заказ) | И Склад = &Склад)
и выполняется условие

Цитата: andron81_81 от 23 апр 2018, 09:52wОстаткиМассыИПачекОстатки.КоличествоОстаток < 0

Спасибо за Сказать спасибо

andron81_81

Цитата: alex0402 от 25 апр 2018, 15:02
Цитата: andron81_81 от 23 апр 2018, 09:52он в результате выдаёт всё же одну строку. а я не могу понять с какого перепуга :

он выдаст все строки по комбинации измерений. Если с ms sql на ты, то все измерения - это уникальный индекс. На каждую дату будет отличаться только остаток ресурса.

т.е. у вас в остатке только одна запись, где измерения соответствуют условию 
Цитата: andron81_81 от 23 апр 2018, 09:52Номенклатура В (&Номенклатура) | И Заказ В (&Заказ) | И Склад = &Склад)
и выполняется условие

Цитата: andron81_81 от 23 апр 2018, 09:52wОстаткиМассыИПачекОстатки.КоличествоОстаток < 0

Объясните тогда одно для ясности : если я убираю условия отбора , то фактически я получу остатки сгруппированные по измерениям на дату &Период. Верно ?

alex0402

Цитата: andron81_81 от 25 апр 2018, 16:15Объясните тогда одно для ясности : если я убираю условия отбора , то фактически я получу остатки сгруппированные по измерениям на дату &Период. Верно ?

в начале формируется временная таблица остатков на &Период c отбором соответствующему условию
Цитата: andron81_81 от 23 апр 2018, 09:52Номенклатура В (&Номенклатура) | И Заказ В (&Заказ) | И Склад = &Склад

за тем к этой таблице применяется условие ГДЕ

ну ответ на вопрос. это будут просто остатки на дату. слово сгруппированные не уместно, так как группировать нечего. Если имеются ввиду сгруппированные обороты, тогда - да.


Спасибо за Сказать спасибо

andron81_81

Цитата: alex0402 от 25 апр 2018, 17:15
ну ответ на вопрос. это будут просто остатки на дату. слово сгруппированные не уместно, так как группировать нечего. Если имеются ввиду сгруппированные обороты, тогда - да.
группировка имелась ввиду как бы sql - евская. то есть если у нас скажем(упростим задачу) есть 2 измерения : склад и товар , а так же один ресурс количество, то на определенную дату запрос

ЫБРАТЬ
ТоварыОстаткиОстатки.Склад,
ТоварыОстаткиОстатки.Товар,
ТоварыОстаткиОстатки.КоличествоОстаток
ИЗ
РегистрНакопления.ТоварыОстатки.Остатки(&ДатаОстатков, ) КАК ТоварыОстаткиОстатки

выдаст таблицу из различных групп измерений , а так же остаток соответствующий каждой группе
Верно ???

alex0402

Если РН имеет измерения Склад,Товар,Характаристика, то запрос выдаст уникальные значение Склад, Товар при этом остатки по Характеристика Просуммируются.

Склад Товар Характаристика Количество
Склад1 Товар1 Х1                1
Склад1 Товар1 Х2                1
Склад2 Товар1 Х1                1
Склад2 Товар1 Х2                1

Результат
Склад1 Товар1                 2
Склад2 Товар1                 2

Спасибо за Сказать спасибо

Теги: регистр 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск