Имя: Пароль:
1C
1C 7.7
v7: Запроос выдает странный остаток
,
0 aka AMIGO
 
23.04.19
20:18
Выбирается инфа Запросом:
Запрос=СоздатьОбъект("Запрос");
    ТекстЗапроса="//{{ЗАПРОС(Запрос)
    |Период с ДатаНач по КонДата;
    |Товар = Регистр.Заказы.Товар;
    |Заказ = Регистр.Заказы.Заказ;
    |Клиент = Регистр.Заказы.Заказ.Клиент;
    |Колво = Регистр.Заказы.Количество;";
ТекстЗапроса = ТекстЗапроса + "
        |Группировка Заказ упорядочить по Заказ.ДатаДок, Заказ.ВремяДок;
        |Группировка Товар упорядочить по Товар.Наименование;
ТекстЗапроса = ТекстЗапроса + "
    |Группировка Документ;
    |Функция НачОст = НачОст(Колво);
    |Функция Приход = Приход(Колво);
    |Функция Получ  = Расход(Колво);
    |Функция ВПути  = КонОст(Колво);
    |"//}}ЗАПРОС
ТекстЗапроса=ТекстЗапроса+"Условие(Товар.ПринадлежитГруппе(ВыбТов)=1);";
...
Пока Запрос.Группировка("Товар")=1 Цикл
            Тов=Запрос.Товар;
            Таб.ВывестиСекцию("Товар");

        Пока Запрос.Группировка("Заказ")=1 Цикл
            Таб.ВывестиСекцию("Заказ");
        КонецЦикла;
КонецЦикла;

Картинки выложу во втором посте..
1 aka AMIGO
 
23.04.19
20:40
Сразу - код не мой, в 2002 году меня не этом предприятии еще в проекте не было.

Вот такой результат для одного из товаров одного дока Заказ:
https://i.paste.pics/e8b8fc67dded59f625cc7acf0cca026d.png

т.е.НачОст = 0, Приход = 1000, расход = 1000, остаток (ну, В Пути, не получено еще) 2000 !... Откуда что взялось?

Вывожу содержимое регистра.. Чисто! Что заказано - всё получено, с-до =0:

https://i.paste.pics/06fc2eac0d2b9dc097cc3cb3fcc973a1.png

ГКод для вывода содержимого регистра, уже мой:
    Рег = СоздатьОбъект("Регистр.Заказы");
    Рег.УстановитьЗначениеФильтра("Товар",ВыбТовар,2);
    Рег.ВременныйРасчет();
    РассчитатьРегистрыНа(ВыбНачПериода);
    Рег.ВыбратьДвиженияСОстатками(ВыбКонПериода);
    Пока Рег.ПолучитьДвижение()=1 Цикл
        ТМЦ.НоваяСтрока();
        ТМЦ.Товар = Рег.Товар;
        ТМЦ.Заказ = Рег.Заказ;
        Если Рег.Приход=1 Тогда
            ТМЦ.Приход = Рег.Количество;
        Иначе
            ТМЦ.Расход = Рег.Количество;
        КонецЕсли;
        ТМЦ.ТекСальдо=Рег.СводныйОстаток(ВыбТовар,,"Количество");
        ТМЦ.Док = Рег.ТекущийДокумент();
    КонецЦикла;
2 Ёпрст
 
23.04.19
20:45
(0) выборка не совпадает с группировкой запроса. Нужно или группировки менять местами или выборку.
3 aka AMIGO
 
23.04.19
21:04
(2) Точно! Спасибо, вот ведь досада, мимо внимания проскочило, а ты заметил!
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн