Имя: Пароль:
1C
 
Списание товара по партиям
, ,
0 gabd_marat
 
22.05.16
18:26
Народ, подскажите пожалуйста , почему списание происходит по товару а не по партиям. И движения соответсвенно происходят не так как надо?
Сделал следующим образом
//разрешение на движения в регистре перед запросом
Дерево = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Товар");
Пока Дерево.Следующий() Цикл
//Проверка количества товара на складе
//......
//формирование списания товара по партиям
ОсталосьСписать = Дерево.Количество;
Выборка = Дерево.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Товар");
Пока Выборка.Следующий() И ОсталосьСписать <> 0 Цикл
КСписанию = МИН(ОсталосьСписать,Выборка.Количество);
СуммаСписания = ?(Выборка.КоличествоОстаток = КСписанию,
Выборка.СуммаОстаток,
Выборка.СуммаОстаток/Выборка.КоличествоОстаток*КСписанию);


Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Регистратор = Ссылка;
Движение.Товар = Выборка.Товар;
Движение.Склад = Склад;
Движение.Организация = Организация;
Движение.Количество = КСписанию;
Движение.Партия = Выборка.Партия;
Движение.Сумма = СуммаСписания;
ОсталосьСписать = ОсталосьСписать - КСписанию;

КонецЦикла;

КонецЦикла;
1 alle68
 
22.05.16
18:31
(0) Обе выборки по товару.
2 Чайник Рассела
 
22.05.16
18:31
помогу за 100$ правильно сформулировать вопрос.
3 gabd_marat
 
22.05.16
18:33
Как сделать что бы выборка сначала была по итогам , а вложенная проходила по партиям?
4 gabd_marat
 
22.05.16
18:34
Чайник Рассела, я тебе сам это запрос сделаю за 100$
5 gabd_marat
 
22.05.16
18:35
вот запрос

ВЫБРАТЬ
                        СписаниеТоваровСоСкладаТовары.Товар,
                        СУММА(СписаниеТоваровСоСкладаТовары.Количество) КАК Количество
                   ПОМЕСТИТЬ ДокТЧ
                    ИЗ
                        Документ.СписаниеТоваровСоСклада.Товары КАК СписаниеТоваровСоСкладаТовары
                    ГДЕ
                        СписаниеТоваровСоСкладаТовары.Ссылка = &Ссылка
                    
                    СГРУППИРОВАТЬ ПО
                        СписаниеТоваровСоСкладаТовары.Товар
                    ;
                    
                    ////////////////////////////////////////////////////////////////////////////////
                    ВЫБРАТЬ
                        ДокТЧ.Товар,
                        ДокТЧ.Количество,
                        ОстаткиТоваровОстатки.Партия,
                        ЕСТЬNULL(ОстаткиТоваровОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
                        ЕСТЬNULL(ОстаткиТоваровОстатки.СуммаОстаток, 0) КАК СуммаОстаток
                    ИЗ
                        ДокТЧ КАК ДокТЧ
                            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(
                                    ,
                                   Склад = &Склад И
                                   Организация = &Организация И                  
                                    Товар В
                                            (ВЫБРАТЬ
                                                ДокТЧ.Товар
                                            ИЗ
                                                ДокТЧ КАК ДокТЧ)) КАК ОстаткиТоваровОстатки
                            ПО ДокТЧ.Товар = ОстаткиТоваровОстатки.Товар
                    УПОРЯДОЧИТЬ ПО
                       ОстаткиТоваровОстатки.Партия ВОЗР
                    ИТОГИ
                           МИНИМУМ(Количество),
                           СУММА(КоличествоОстаток),
                           СУММА(СуммаОстаток)
                    ПО
                           ДокТЧ.Товар
6 Чайник Рассела
 
22.05.16
18:35
(4) еще научу читать. Но это дорого.
7 ДенисЧ
 
22.05.16
18:37
(2) У тебя нет столько
8 gabd_marat
 
22.05.16
18:38
Кто-нибудь сможет помочь с движением регистра?
9 gabd_marat
 
22.05.16
18:39
И движения вроде во вложенном цикле делаю?
10 piter3
 
22.05.16
18:41
смотрю на секцию итоги и я один не понимаю логики автора?
11 gabd_marat
 
22.05.16
18:44
что не понятного? возможно СуммаОстаток не нужно, остальное по итогам для контроля остатка товара на складе
12 piter3
 
22.05.16
18:47
(11) такой мелочи как партии.
13 piter3
 
22.05.16
18:49
что мешает взять из типовой или из поиска по форуму
14 gabd_marat
 
22.05.16
18:54
Не понял тебя?
15 gabd_marat
 
22.05.16
18:55
"из поиска по форому" что откуда взять?
16 piter3
 
22.05.16
19:00
17 gabd_marat
 
22.05.16
19:05
Считать все в запросе, не тормозит ли систему, и приветствуется ли такой метод решения? И по условию задачи у меня один регистр накопления, а втаком методе лучше использовать вроде 2 регистра? нет?
18 piter3
 
22.05.16
21:41
я не телепат,но у тебя и так все вроде в запросе.просто нет обхода оп партиям.я не знаю как еще написать честно говоря