Имя: Пароль:
1C
 
Перебор выборки запрооса
0 Tolstiy Beremenniy
 
18.12.18
12:58
Необходимо сделать контроль остатков. Есть табличная часть документа
и регистр. Подскажите как её правильно перебрать, что бы сравнивать
количество документа с имеющимися партиями?????

        Запрос.Текст = "
            |ВЫБРАТЬ
            |    РецептураКомпоненты.Номенклатура КАК Номенклатура,
            |    СУММА(РецептураКомпоненты.Брутто) КАК брутто
            |ПОМЕСТИТЬ ВТ_ДокТч
            |ИЗ
            |    Документ.Рецептура.Компоненты КАК РецептураКомпоненты
            |ГДЕ
            |    РецептураКомпоненты.Ссылка = &Ссылка
            |
            |СГРУППИРОВАТЬ ПО
            |    РецептураКомпоненты.Номенклатура
            |
            |ИНДЕКСИРОВАТЬ ПО
            |    Номенклатура
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ
            |    ПродуктыНаСкладахОстатки.Номенклатура КАК Номенклатура,
            |    ПродуктыНаСкладахОстатки.Партия КАК Партия,
            |    ВТ_ДокТч.брутто КАК брутто,
            |    ПродуктыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
            |ИЗ
            |    ВТ_ДокТч КАК ВТ_ДокТч
            |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродуктыНаСкладах.Остатки(
            |                &МоментВремени,
            |                Номенклатура В
            |                    (ВЫБРАТЬ РАЗЛИЧНЫЕ
            |                        Вт_ДокТч.Номенклатура
            |                    ИЗ
            |                        Вт_ДокТч КАК Вт_ДокТч)) КАК ПродуктыНаСкладахОстатки
            |        ПО ВТ_ДокТч.Номенклатура = ПродуктыНаСкладахОстатки.Номенклатура
            |
            |УПОРЯДОЧИТЬ ПО
            |    Номенклатура,
            |    Партия
            |ИТОГИ
            |    МАКСИМУМ(брутто),
            |    СУММА(КоличествоОстаток)
            |ПО
            |    Номенклатура,
            |    Партия";
1 Tolstiy Beremenniy
 
19.12.18
04:04
(0+) Я делаю перебор вот этой выборки по группировке
номенклатура. Там номенклатура идет NULL, почему?


        ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаНоменклатура.Следующий() Цикл
            Если ВыборкаНоменклатура.брутто > ВыборкаНоменклатура.КоличествоОстаток Тогда
2 JeHer
 
19.12.18
04:08
(1) а где группировка в запросе?
3 Tolstiy Beremenniy
 
19.12.18
04:11
(2) Я изменил одно значение в регистре и стало нормально.
Значит все там есть? Или как нужно вы видите?
4 Tolstiy Beremenniy
 
19.12.18
04:28
Так правильно?


        Запрос       = Новый Запрос;
        Запрос.Текст = "ВЫБРАТЬ
                       |    РецептураКомпоненты.Номенклатура КАК Номенклатура,
                       |    СУММА(РецептураКомпоненты.Брутто) КАК брутто
                       |ПОМЕСТИТЬ ВТ_ДокТч
                       |ИЗ
                       |    Документ.Рецептура.Компоненты КАК РецептураКомпоненты
                       |ГДЕ
                       |    РецептураКомпоненты.Ссылка = &Ссылка
                       |
                       |СГРУППИРОВАТЬ ПО
                       |    РецептураКомпоненты.Номенклатура
                       |
                       |ИНДЕКСИРОВАТЬ ПО
                       |    Номенклатура
                       |;
                       |
                       |////////////////////////////////////////////////////////////////////////////////
                       |ВЫБРАТЬ
                       |    ПродуктыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                       |    ПродуктыНаСкладахОстатки.Партия КАК Партия,
                       |    МАКСИМУМ(ВТ_ДокТч.брутто) КАК брутто,
                       |    СУММА(ЕСТЬNULL(ПродуктыНаСкладахОстатки.КоличествоОстаток, 0)) КАК КоличествоОстаток,
                       |    ЕСТЬNULL(ПродуктыНаСкладахОстатки.ЦенаОстаток, 0) КАК ЦенаОстаток
                       |ИЗ
                       |    ВТ_ДокТч КАК ВТ_ДокТч
                       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродуктыНаСкладах.Остатки(
                       |                &МоментВремени,
                       |                Номенклатура В
                       |                    (ВЫБРАТЬ РАЗЛИЧНЫЕ
                       |                        Вт_ДокТч.Номенклатура
                       |                    ИЗ
                       |                        Вт_ДокТч КАК Вт_ДокТч)) КАК ПродуктыНаСкладахОстатки
                       |        ПО ВТ_ДокТч.Номенклатура = ПродуктыНаСкладахОстатки.Номенклатура
                       |
                       |СГРУППИРОВАТЬ ПО
                       |    ПродуктыНаСкладахОстатки.Номенклатура,
                       |    ПродуктыНаСкладахОстатки.Партия,
                       |    ЕСТЬNULL(ПродуктыНаСкладахОстатки.ЦенаОстаток, 0)
                       |
                       |УПОРЯДОЧИТЬ ПО
                       |    Номенклатура,
                       |    Партия
                       |ИТОГИ
                       |    МАКСИМУМ(брутто),
                       |    СУММА(КоличествоОстаток)
                       |ПО
                       |    Номенклатура,
                       |    Партия";
5 Ёпрст
 
19.12.18
10:13
Итоги в этом запросе не нужны
6 Ёпрст
 
19.12.18
10:14
Различные тоже выкини