Вход | Регистрация
 

Как перебрать выборку

Как перебрать выборку
Я
   TolstiyBeremenniy
 
24.12.18 - 05:18
Как перебрать выборку, что бы по номенклатуре смотреть общий
итог, и далее списывать по партиям?


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

    ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"НоменклатураОстатков");
    Пока ВыборкаНоменклатура.Следующий() Цикл
        Если ЗначениеЗаполнено(ВыборкаНоменклатура.ПартияОстатков) Тогда
            // Вставить обработку выборки ВыборкаНоменклатура
               Стоимость = 0;
            Если ВыборкаНоменклатура.КоличествоИзДокумента > ВыборкаНоменклатура.КоличествоОстаток Тогда
                 Сообщение       = Новый СообщениеПользователю;
                 Сообщение.Текст = "Товара " + ВыборкаНоменклатура.НоменклатураОстатков + " с количеством  " + ВыборкаНоменклатура.КоличествоИзДокумента + " недостаточно. На остатке :" + ВыборкаНоменклатура.КоличествоОстаток;
                 Сообщение.Сообщить();
                 Отказ = Истина;
                 Продолжить;
            КонецЕсли;
            ВыборкаПартия   = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
            ОсталосьСписать = ВыборкаНоменклатура.ДокументКоличество;
            Пока ВыборкаПартия.Следующий() и ОсталосьСписать >0 Цикл
                //
                
            КонецЦикла;        
        КонецЕсли;
    КонецЦикла;


Я в цикле по ВыборкаНоменклатура не вижу количество документа,
итог по номенклатуре остатка из регистра вроде есть.
Что бы в этом цикле получить количество документа, что
нужно поправит? Запрос? КАК?
 
 
   seevkik
 
1 - 24.12.18 - 05:20
Ты решил обходить запрос по группировкам, а потом спрашиваешь почему не показываются остальные поля?
   TolstiyBeremenniy
 
2 - 24.12.18 - 05:27
(1) Подскажите не понимаю, моя задача посмотреть общий итог по номенклатуре, а потом идти списывать по партиям.
Я смотрел примеры, там везде идет обход по группировкам.
   TolstiyBeremenniy
 
3 - 24.12.18 - 05:31
(1)  А если я буду обходить без группировок, как я тогда
буду смотреть итог по номенклатуре текущей которая идет в выборке?
Хочу просветить себя этими темными моментами.
Подскажите пожалуйста?
Задача такова. Есть табличная часть документа.
Там указывается или не указывается партия.
Если партия указывается то списание сначала идет с неё.
Если нет то по FIFO. Но что бы начать списывать, нужно
же вначале итог общий по номенклатуре посмотреть.
Так же, что бы понять можно ли списывать такое количество
со строки документа.
Если есть потом уже списывать по партиям, по документам
партий. И если с партии которая выбрана в строке нельзя
списать, то тоже не давать провести документ.
   TolstiyBeremenniy
 
4 - 24.12.18 - 05:53
никто не подсказывает (((((
Вроде написал что не понятно мне!!!!
   TolstiyBeremenniy
 
5 - 24.12.18 - 05:55
Как мне получать итог по количеству, и сравнивать с количеством из документа что бы потом списывать по партиям?
   TolstiyBeremenniy
 
6 - 24.12.18 - 06:17
Что никто не поддержит что ли?????
   TolstiyBeremenniy
 
7 - 24.12.18 - 06:34
Срочно нужна подсказка, как в переборе выборки
сравнивать значение количества из строки документа
с итоговым количеством по номенклатуре???????
   Михаил Иванович
 
8 - 24.12.18 - 06:55
(7) Сколько?
   TolstiyBeremenniy
 
9 - 24.12.18 - 07:01
(8) пять!
   Мелифаро
 
10 - 24.12.18 - 07:03
Это какой-то ад, треш и угар.
 
 Рекламное место пустует
   TolstiyBeremenniy
 
11 - 24.12.18 - 07:07
Пять (10) Да разобрался я. пришло понимание!
   Михаил Иванович
 
12 - 24.12.18 - 07:22
(11) Это иллюзия. Тебе кажется.
   TolstiyBeremenniy
 
13 - 24.12.18 - 08:16
(12) И есть предложения?
   TolstiyBeremenniy
 
14 - 24.12.18 - 08:20
Вот этот запрос как я вижу должен выдавать остатки
но он выдает количество документов. Можете поправить меня?
Что я не так понимаю? он же должен выдавать остатки по регистру. А показывает значения строк документов.


ВЫБРАТЬ
    ПеремещениеТоваровСписокНоменклатуры.Номенклатура КАК Номенклатура,
    СУММА(ПеремещениеТоваровСписокНоменклатуры.Количество) КАК Количество,
    ПеремещениеТоваровСписокНоменклатуры.Партия КАК Партия
ПОМЕСТИТЬ ВТ_ДокТч
ИЗ
    Документ.ПеремещениеТоваров.СписокНоменклатуры КАК ПеремещениеТоваровСписокНоменклатуры
ГДЕ
    ПеремещениеТоваровСписокНоменклатуры.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
    ПеремещениеТоваровСписокНоменклатуры.Номенклатура,
    ПеремещениеТоваровСписокНоменклатуры.Партия

ИНДЕКСИРОВАТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ПродуктыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ЕСТЬNULL(ПродуктыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    ПродуктыНаСкладахОстатки.Партия КАК Партия,
    ПродуктыНаСкладахОстатки.Партия.МоментВремени КАК ПартияМоментВремени
ИЗ
    РегистрНакопления.ПродуктыНаСкладах.Остатки(
            &Момент,
            Номенклатура В
                (ВЫБРАТЬ
                    ВТ_ДокТч.Номенклатура
                ИЗ
                    ВТ_ДокТч КАК ВТ_ДокТч)) КАК ПродуктыНаСкладахОстатки

УПОРЯДОЧИТЬ ПО
    ПродуктыНаСкладахОстатки.Номенклатура.Наименование
   Лодырь
 
15 - 24.12.18 - 08:21
(12) Ты был прав )
   TolstiyBeremenniy
 
16 - 24.12.18 - 08:21
Каша в голове. нужно разбираться детально.
Что я и делаю.
   TolstiyBeremenniy
 
17 - 24.12.18 - 08:22
(15) Все нормально у меня!
   Михаил Иванович
 
18 - 24.12.18 - 08:48
(17) Каша. Пригоревшая.
   TolstiyBeremenniy
 
19 - 24.12.18 - 09:08
Сейчас вот тут проблема. Списалось все с одной партии
а всего партий 5. Списалось по документу все, но 
переходит к следующей строке этой же номенклатуры.
А нужно по идее перейти к следующей номенклатуре, так как
эта списалась. Как быть в таких случаях. Как поступить
правильно?


    Запрос.Текст                          = "
        |ВЫБРАТЬ
        |    ПеремещениеТоваровСписокНоменклатуры.Номенклатура      КАК Номенклатура,
        |    СУММА(ПеремещениеТоваровСписокНоменклатуры.Количество) КАК Количество,
        |    ПеремещениеТоваровСписокНоменклатуры.Партия            КАК Партия
        |ПОМЕСТИТЬ ВТ_ДокТч
        |ИЗ
        |    Документ.ПеремещениеТоваров.СписокНоменклатуры КАК ПеремещениеТоваровСписокНоменклатуры
        |ГДЕ
        |    ПеремещениеТоваровСписокНоменклатуры.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |    ПеремещениеТоваровСписокНоменклатуры.Номенклатура,
        |    ПеремещениеТоваровСписокНоменклатуры.Партия
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    Номенклатура
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ
        |    ПродуктыНаСкладахОстатки.Номенклатура                     КАК Номенклатура,
        |    ЕСТЬNULL(ПродуктыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
        |    ПродуктыНаСкладахОстатки.Партия                         КАК Партия,
        |    ПродуктыНаСкладахОстатки.Партия.МоментВремени            КАК МоментВремени
        |ПОМЕСТИТЬ ВТ_ОстаткиПартий
        |ИЗ
        |    РегистрНакопления.ПродуктыНаСкладах.Остатки(
        |            &Момент,
        |            Номенклатура В
        |                (ВЫБРАТЬ
        |                    ВТ_ДокТч.Номенклатура
        |                ИЗ
        |                    ВТ_ДокТч КАК ВТ_ДокТч)) КАК ПродуктыНаСкладахОстатки
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    Номенклатура
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ
        |    ВТ_ДокТч.Номенклатура                КАК Номенклатура,
        |    ВТ_ОстаткиПартий.Партия            КАК Партия,
        |    ВТ_ДокТч.Количество                КАК КоличествоИзДокумента,
        |    ВТ_ОстаткиПартий.КоличествоОстаток КАК КоличествоОстаток,
        |    ВЫБОР
        |        КОГДА ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия
        |            ТОГДА 1
        |        ИНАЧЕ 2
        |    КОНЕЦ КАК ПорядокСписания
        |ИЗ
        |    ВТ_ДокТч КАК ВТ_ДокТч
        |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиПартий КАК ВТ_ОстаткиПартий
        |        ПО ВТ_ДокТч.Номенклатура = ВТ_ОстаткиПартий.Номенклатура
        |
        |УПОРЯДОЧИТЬ ПО
        |    ВТ_ОстаткиПартий.Номенклатура.Наименование,
        |    ПорядокСписания,
        |    ВТ_ДокТч.Партия.МоментВремени
        |ИТОГИ
        |    МАКСИМУМ(КоличествоИзДокумента),
        |    СУММА(КоличествоОстаток)
        |ПО
        |    Номенклатура";
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("Момент", Дата);
    Результат             = Запрос.Выполнить();
    ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаНоменклатура.Следующий() Цикл
        //

        Если ВыборкаНоменклатура.КоличествоИзДокумента > ВыборкаНоменклатура.КоличествоОстаток Тогда
             Сообщение       = Новый СообщениеПользователю;
             Сообщение.Текст = "Товара " + ВыборкаНоменклатура.Номенклатура + " с количеством  " + 
                                ВыборкаНоменклатура.КоличествоИзДокумента + " недостаточно. На остатке :" + ВыборкаНоменклатура.КоличествоОстаток;
             Сообщение.Сообщить();
             Отказ = Истина;
             Продолжить;
        КонецЕсли;
        //

        ОсталосьСписать = ВыборкаНоменклатура.КоличествоИзДокумента;
        //

        ВыборкаПартия   = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаПартия.Следующий() и ОсталосьСписать > 0 Цикл
            //

            Движение               = Движения.ПродуктыНаСкладах.Добавить();
            Движение.ВидДвижения  = ВидДвиженияНакопления.Расход;
            Движение.Период       = Дата;
            Движение.Номенклатура = ВыборкаПартия.Номенклатура;
            Движение.Партия       = ВыборкаПартия.Партия;
            Движение.Количество   = МИН(ВыборкаПартия.КоличествоОстаток, ОсталосьСписать);
            //Движение.Цена = 

            ОсталосьСписать       = ОсталосьСписать - Движение.Количество;
        КонецЦикла;        
    КонецЦикла;
   TolstiyBeremenniy
 
20 - 24.12.18 - 09:12
(19) Если вышло с ВыборкаПартия, то ВыборкаНоменклатура
должна же перейти на следующую номенклатуру?
не должна же прокручивать партии дальше по этой же номенклатуре? Или это из за того что в запросе что то не так?
   novichok79
 
21 - 24.12.18 - 09:19
где связь по партии в запросе?
|    ВТ_ДокТч КАК ВТ_ДокТч
|        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиПартий КАК ВТ_ОстаткиПартий
|        ПО ВТ_ДокТч.Номенклатура = ВТ_ОстаткиПартий.Номенклатура

если партия будет не одна, то ты оxуеешь
   novichok79
 
22 - 24.12.18 - 09:20
обращение к полям через точку надо запретить имхо

|УПОРЯДОЧИТЬ ПО
|    ВТ_ОстаткиПартий.Номенклатура.Наименование,
|    ПорядокСписания,
|    ВТ_ДокТч.Партия.МоментВремени
   novichok79
 
23 - 24.12.18 - 09:22
(20) если есть сомнения воспользуйся конструктором запроса с обходом по группировкам. но, на первый взгляд, обход вроде норм сделан. надо данные смотреть, а помогать бесплатно я не буду.
   novichok79
 
24 - 24.12.18 - 09:24
(21) ты оxуеешь = декартово произведение в джойне. у меня из-за забытой связи в джойне в базе на продакшне размером под пару ТБ, файлы sql server'а увеличились на 600 гигов внезапно, а потом был out of memory error. это был как пел лепс - "самый лучший день".
   novichok79
 
25 - 24.12.18 - 09:29
да и вообще - делай как в типовых - сначала пишешь движухи в регистр, а потом проверяешь результат, зашло ли за минус.
   TolstiyBeremenniy
 
26 - 24.12.18 - 09:32
Сейчас такая проблема. (20) Поправил.
В запросе стоит что 

        |УПОРЯДОЧИТЬ ПО
        |    ВТ_ОстаткиПартий.Номенклатура.Наименование,
        |    ПорядокСписания,
        |    ВТ_ДокТч.Партия.МоментВремени

Но по одному списанию, партия что должна быть самой первой, так как 1 вперед 2. а она в середине партий.
Почему не отсортировалось по ней? По ней должно
произойти списание в первую очередь, так как она
из табличной части документа.




        |ПО
        |    Номенклатура,
        |   Партия";
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("Момент", Дата);
    Результат             = Запрос.Выполнить();
    ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаНоменклатура.Следующий() Цикл
        //

        Если ВыборкаНоменклатура.КоличествоИзДокумента > ВыборкаНоменклатура.КоличествоОстаток Тогда
             Сообщение       = Новый СообщениеПользователю;
             Сообщение.Текст = "Товара " + ВыборкаНоменклатура.Номенклатура + " с количеством  " + 
                                ВыборкаНоменклатура.КоличествоИзДокумента + " недостаточно. На остатке :" + ВыборкаНоменклатура.КоличествоОстаток;
             Сообщение.Сообщить();
             Отказ = Истина;
             Продолжить;
        КонецЕсли;
        //

        ОсталосьСписать = ВыборкаНоменклатура.КоличествоИзДокумента;
        //

        ВыборкаПартия   = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаПартия.Следующий() и ОсталосьСписать > 0 Цикл
            //

            Движение               = Движения.ПродуктыНаСкладах.Добавить();
            Движение.ВидДвижения  = ВидДвиженияНакопления.Расход;
            Движение.Период       = Дата;
            Движение.Номенклатура = ВыборкаПартия.Номенклатура;
            Движение.Партия       = ВыборкаПартия.Партия;
            Движение.Количество   = МИН(ВыборкаПартия.КоличествоОстаток, ОсталосьСписать);
            //Движение.Цена = 

            ОсталосьСписать       = ОсталосьСписать - Движение.Количество;
        КонецЦикла;        
    КонецЦикла;        
    //
   novichok79
 
27 - 24.12.18 - 09:35
потому что сначала порядок списания, потом по ссылке номенклатуры, а потом уже по партии. и если сортируешь по ссылке делай автоупорядочивание.
   TolstiyBeremenniy
 
28 - 24.12.18 - 09:36
   TolstiyBeremenniy
 
29 - 24.12.18 - 09:37
(27) Сначала по наименованию номенклатуры сортировка.
Потом по порядку спивания!!!!!!
А вот эту партию с 1 почему то не отсортировало!!!!!





       |УПОРЯДОЧИТЬ ПО
        |    ВТ_ОстаткиПартий.Номенклатура.Наименование,
        |    ПорядокСписания,
        |    ВТ_ДокТч.Партия.МоментВремени
   TolstiyBeremenniy
 
30 - 24.12.18 - 09:38
(27) где я сортирую по ссылке?
Я сортирую по наименованию номенклатуры. что бы она была рядом, потом по порядку списания 1 или 2.

так в чем дело?
   novichok79
 
31 - 24.12.18 - 09:39
(29) чувак, осади. разбирайся сам.
у тебя в итогах сортировка не работает, потому что если нет агрегации, то в поле будет null, проверь - выгрузи твой запрос в ТЗ и посмотри что у тебя в группировках по которым ты сортируешь.
   Михаил Иванович
 
32 - 24.12.18 - 09:43
(29) Вот и уселся на шею)))
   TolstiyBeremenniy
 
33 - 24.12.18 - 09:44
(31) В тз и выгружаю.
Вообще достаточно в консоле запрос запустить и увидеть что там тоже самое.
Не сортирует по Порядку списания, единица в середине партий. а должна быть в начале!!!!

то есть говорите сортировка не работает в финальном запросе потому что он с итогами? И что тут делать тогда, когда именно от этого и зависит решение задачи! Важно списывать первой партию что в строке табличной части документа и
имеет порядок списания 1.
 
 
   hhhh
 
34 - 24.12.18 - 09:45
(30) ну, по моменту времени это же по ссылке ты сортируещь. момент времени это значит ссылка + дата.
   novichok79
 
35 - 24.12.18 - 09:45
(32) да, я тож офигеваю от школоты. ни, спасибо, ни пожалуйста за бесплатный опыт и знания.
   novichok79
 
36 - 24.12.18 - 09:47
(33) это все можно сократить до "кококо".
слабо написать в итогах МИНИМУМ(Порядок)?
   TolstiyBeremenniy
 
37 - 24.12.18 - 09:48
(34) ну ясно!!!!!

Вот поставил автоупорядочивание, результата нет.


ВЫБРАТЬ
    ПеремещениеТоваровСписокНоменклатуры.Номенклатура КАК Номенклатура,
    СУММА(ПеремещениеТоваровСписокНоменклатуры.Количество) КАК Количество,
    ПеремещениеТоваровСписокНоменклатуры.Партия КАК Партия
ПОМЕСТИТЬ ВТ_ДокТч
ИЗ
    Документ.ПеремещениеТоваров.СписокНоменклатуры КАК ПеремещениеТоваровСписокНоменклатуры
ГДЕ
    ПеремещениеТоваровСписокНоменклатуры.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
    ПеремещениеТоваровСписокНоменклатуры.Номенклатура,
    ПеремещениеТоваровСписокНоменклатуры.Партия

ИНДЕКСИРОВАТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ПродуктыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ЕСТЬNULL(ПродуктыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    ПродуктыНаСкладахОстатки.Партия КАК Партия,
    ПродуктыНаСкладахОстатки.Партия.МоментВремени КАК МоментВремени
ПОМЕСТИТЬ ВТ_ОстаткиПартий
ИЗ
    РегистрНакопления.ПродуктыНаСкладах.Остатки(
            &Момент,
            Номенклатура В
                (ВЫБРАТЬ
                    ВТ_ДокТч.Номенклатура
                ИЗ
                    ВТ_ДокТч КАК ВТ_ДокТч)) КАК ПродуктыНаСкладахОстатки

ИНДЕКСИРОВАТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВТ_ДокТч.Номенклатура КАК Номенклатура,
    ВТ_ОстаткиПартий.Партия КАК Партия,
    ВТ_ДокТч.Количество КАК КоличествоИзДокумента,
    ВТ_ОстаткиПартий.КоличествоОстаток КАК КоличествоОстаток,
    ВЫБОР
        КОГДА ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия
            ТОГДА 1
        ИНАЧЕ 2
    КОНЕЦ КАК ПорядокСписания
ИЗ
    ВТ_ДокТч КАК ВТ_ДокТч
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиПартий КАК ВТ_ОстаткиПартий
        ПО ВТ_ДокТч.Номенклатура = ВТ_ОстаткиПартий.Номенклатура

УПОРЯДОЧИТЬ ПО
    ПорядокСписания,
    ВТ_ДокТч.Партия.МоментВремени
ИТОГИ
    МАКСИМУМ(КоличествоИзДокумента),
    СУММА(КоличествоОстаток)
ПО
    Номенклатура,
    Партия
АВТОУПОРЯДОЧИВАНИЕ
   Михаил Иванович
 
38 - 24.12.18 - 09:49
(37) Ну, читай литературу, думай, пробуй. Потом приходи как чего надумаешь.
   TolstiyBeremenniy
 
39 - 24.12.18 - 09:50
(36) То есть ПорядокСписания в итогах в нижнюю часть и
установить ему Минимум?
   novichok79
 
40 - 24.12.18 - 09:54
(39) я написал 1 раз - выгрузи в ТЗ чтобы увидеть что у тебя в строках ТЗ, где идет группировка ПорядокСписания = Null, ты не понял. я тебе говорю 2-й раз - агрегации нету, ты не понял. вот 3-й раз написал - МАКСИМУМ(ПорядокСписания) в ИТОГИ, ты не понял. ты не читаешь сообщения до конца.
   TolstiyBeremenniy
 
41 - 24.12.18 - 09:54
И что. вот это верный запрос?



ВЫБРАТЬ
    ПеремещениеТоваровСписокНоменклатуры.Номенклатура КАК Номенклатура,
    СУММА(ПеремещениеТоваровСписокНоменклатуры.Количество) КАК Количество,
    ПеремещениеТоваровСписокНоменклатуры.Партия КАК Партия
ПОМЕСТИТЬ ВТ_ДокТч
ИЗ
    Документ.ПеремещениеТоваров.СписокНоменклатуры КАК ПеремещениеТоваровСписокНоменклатуры
ГДЕ
    ПеремещениеТоваровСписокНоменклатуры.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
    ПеремещениеТоваровСписокНоменклатуры.Номенклатура,
    ПеремещениеТоваровСписокНоменклатуры.Партия

ИНДЕКСИРОВАТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ПродуктыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ЕСТЬNULL(ПродуктыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    ПродуктыНаСкладахОстатки.Партия КАК Партия,
    ПродуктыНаСкладахОстатки.Партия.МоментВремени КАК МоментВремени
ПОМЕСТИТЬ ВТ_ОстаткиПартий
ИЗ
    РегистрНакопления.ПродуктыНаСкладах.Остатки(
            &Момент,
            Номенклатура В
                (ВЫБРАТЬ
                    ВТ_ДокТч.Номенклатура
                ИЗ
                    ВТ_ДокТч КАК ВТ_ДокТч)) КАК ПродуктыНаСкладахОстатки

ИНДЕКСИРОВАТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВТ_ДокТч.Номенклатура КАК Номенклатура,
    ВТ_ОстаткиПартий.Партия КАК Партия,
    ВТ_ДокТч.Количество КАК КоличествоИзДокумента,
    ВТ_ОстаткиПартий.КоличествоОстаток КАК КоличествоОстаток,
    ВЫБОР
        КОГДА ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия
            ТОГДА 1
        ИНАЧЕ 2
    КОНЕЦ КАК ПорядокСписания
ИЗ
    ВТ_ДокТч КАК ВТ_ДокТч
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиПартий КАК ВТ_ОстаткиПартий
        ПО ВТ_ДокТч.Номенклатура = ВТ_ОстаткиПартий.Номенклатура

УПОРЯДОЧИТЬ ПО
    ПорядокСписания,
    ВТ_ДокТч.Партия.МоментВремени
ИТОГИ
    МАКСИМУМ(КоличествоИзДокумента),
    СУММА(КоличествоОстаток),
    МИНИМУМ(ПорядокСписания)
ПО
    Номенклатура,
    Партия
АВТОУПОРЯДОЧИВАНИЕ
   МимохожийОднако
 
42 - 24.12.18 - 09:54
(38) ОФФ: Некоторые умеют думать только проговорив вслух. Ну, это как начинающий читать по слогам проговаривает вслух. У некоторых подобная привычка остаётся на всю жизнь. Но бывает ситуация из передачи Поле чудес - угадал все буквы, но не смог назвать слово.
   TolstiyBeremenniy
 
43 - 24.12.18 - 09:57
(40) В финальном запросе этого пакетного запроса
нужно связать ещё по партиям?
   TolstiyBeremenniy
 
44 - 24.12.18 - 10:10
То есть, вот это финальный запрос получается.
И финальный его перебор.
То есть контроль остатков и партионное списание, где
в первую очередь списывается партия из табличной части документа?


    Запрос.Текст                          = "
        |ВЫБРАТЬ
        |    ПеремещениеТоваровСписокНоменклатуры.Номенклатура КАК Номенклатура,
        |    СУММА(ПеремещениеТоваровСписокНоменклатуры.Количество) КАК Количество,
        |    ПеремещениеТоваровСписокНоменклатуры.Партия КАК Партия
        |ПОМЕСТИТЬ ВТ_ДокТч
        |ИЗ
        |    Документ.ПеремещениеТоваров.СписокНоменклатуры КАК ПеремещениеТоваровСписокНоменклатуры
        |ГДЕ
        |    ПеремещениеТоваровСписокНоменклатуры.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |    ПеремещениеТоваровСписокНоменклатуры.Номенклатура,
        |    ПеремещениеТоваровСписокНоменклатуры.Партия
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    Номенклатура
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ
        |    ПродуктыНаСкладахОстатки.Номенклатура КАК Номенклатура,
        |    ЕСТЬNULL(ПродуктыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
        |    ПродуктыНаСкладахОстатки.Партия КАК Партия,
        |    ПродуктыНаСкладахОстатки.Партия.МоментВремени КАК МоментВремени
        |ПОМЕСТИТЬ ВТ_ОстаткиПартий
        |ИЗ
        |    РегистрНакопления.ПродуктыНаСкладах.Остатки(
        |            &Момент,
        |            Номенклатура В
        |                (ВЫБРАТЬ
        |                    ВТ_ДокТч.Номенклатура
        |                ИЗ
        |                    ВТ_ДокТч КАК ВТ_ДокТч)) КАК ПродуктыНаСкладахОстатки
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    Номенклатура
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ
        |    ВТ_ДокТч.Номенклатура КАК Номенклатура,
        |    ВТ_ОстаткиПартий.Партия КАК Партия,
        |    ВТ_ДокТч.Количество КАК КоличествоИзДокумента,
        |    ВТ_ОстаткиПартий.КоличествоОстаток КАК КоличествоОстаток,
        |    ВЫБОР
        |        КОГДА ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия
        |            ТОГДА 1
        |        ИНАЧЕ 2
        |    КОНЕЦ КАК ПорядокСписания
        |ИЗ
        |    ВТ_ДокТч КАК ВТ_ДокТч
        |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиПартий КАК ВТ_ОстаткиПартий
        |        ПО ВТ_ДокТч.Номенклатура = ВТ_ОстаткиПартий.Номенклатура
        |
        |УПОРЯДОЧИТЬ ПО
        |    ВТ_ДокТч.Номенклатура.Наименование,
        |    ПорядокСписания,
        |    ВТ_ДокТч.Партия.МоментВремени
        |ИТОГИ
        |    МАКСИМУМ(КоличествоИзДокумента),
        |    СУММА(КоличествоОстаток),
        |    МИНИМУМ(ПорядокСписания)
        |ПО
        |    Номенклатура,
        |    Партия
        |АВТОУПОРЯДОЧИВАНИЕ";
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("Момент", Дата);
    Результат             = Запрос.Выполнить();
    ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаНоменклатура.Следующий() Цикл
        //

        Если ВыборкаНоменклатура.КоличествоИзДокумента > ВыборкаНоменклатура.КоличествоОстаток Тогда
             Сообщение       = Новый СообщениеПользователю;
             Сообщение.Текст = "Товара " + ВыборкаНоменклатура.Номенклатура + " с количеством  " + 
                                ВыборкаНоменклатура.КоличествоИзДокумента + " недостаточно. На остатке :" + ВыборкаНоменклатура.КоличествоОстаток;
             Сообщение.Сообщить();
             Отказ = Истина;
             Продолжить;
        КонецЕсли;
        //

        ОсталосьСписать = ВыборкаНоменклатура.КоличествоИзДокумента;
        //

        ВыборкаПартия   = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаПартия.Следующий() и ОсталосьСписать > 0 Цикл
            //

            Движение               = Движения.ПродуктыНаСкладах.Добавить();
            Движение.ВидДвижения  = ВидДвиженияНакопления.Расход;
            Движение.Период       = Дата;
            Движение.Номенклатура = ВыборкаПартия.Номенклатура;
            Движение.Партия       = ВыборкаПартия.Партия;
            Движение.Количество   = МИН(ВыборкаПартия.КоличествоОстаток, ОсталосьСписать);
            //Движение.Цена = 

            ОсталосьСписать       = ОсталосьСписать - Движение.Количество;
        КонецЦикла;        
    КонецЦикла;
   Михаил Иванович
 
45 - 24.12.18 - 10:20
(42) Т.е. он это тут просто сам с собой разговаривает?
   Мелифаро
 
46 - 24.12.18 - 10:24
(45) Да, в присутствии зрителей.
Как в том анекдоте про онаниста со свечкой и стулом.
   FIXXXL
 
47 - 24.12.18 - 10:36
https://ru.wikipedia.org/wiki/Метод_утёнка

Миста - лучше любой уточки :)
   TolstiyBeremenniy
 
48 - 24.12.18 - 11:00
Вот с ценами, ->


//

Процедура ОбработкаПроведения(Отказ, Режим)
    Движения.ПродуктыНаСкладах.Записывать = Истина;
    Запрос                                = Новый Запрос;
    Запрос.Текст                          = "
        |ВЫБРАТЬ
        |    ПеремещениеТоваровСписокНоменклатуры.Номенклатура      КАК Номенклатура,
        |    СУММА(ПеремещениеТоваровСписокНоменклатуры.Количество) КАК Количество,
        |    ПеремещениеТоваровСписокНоменклатуры.Партия            КАК Партия,
        |    МАКСИМУМ(ПеремещениеТоваровСписокНоменклатуры.Цена)    КАК Цена
        |ПОМЕСТИТЬ ВТ_ДокТч
        |ИЗ
        |    Документ.ПеремещениеТоваров.СписокНоменклатуры КАК ПеремещениеТоваровСписокНоменклатуры
        |ГДЕ
        |    ПеремещениеТоваровСписокНоменклатуры.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |    ПеремещениеТоваровСписокНоменклатуры.Номенклатура,
        |    ПеремещениеТоваровСписокНоменклатуры.Партия
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    Номенклатура
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ
        |    ПродуктыНаСкладахОстатки.Номенклатура                   КАК Номенклатура,
        |    ЕСТЬNULL(ПродуктыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
        |    ПродуктыНаСкладахОстатки.Партия                         КАК Партия,
        |    ПродуктыНаСкладахОстатки.Партия.МоментВремени           КАК МоментВремени
        |ПОМЕСТИТЬ ВТ_ОстаткиПартий
        |ИЗ
        |    РегистрНакопления.ПродуктыНаСкладах.Остатки(
        |            &Момент,
        |            Номенклатура В
        |                (ВЫБРАТЬ
        |                    ВТ_ДокТч.Номенклатура
        |                ИЗ
        |                    ВТ_ДокТч КАК ВТ_ДокТч)) КАК ПродуктыНаСкладахОстатки
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    Номенклатура
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ
        |    ВТ_ДокТч.Номенклатура              КАК Номенклатура,
        |    ВТ_ОстаткиПартий.Партия            КАК Партия,
        |    ВТ_ДокТч.Количество                КАК КоличествоИзДокумента,
        |    ВТ_ОстаткиПартий.КоличествоОстаток КАК КоличествоОстаток,
        |    ВЫБОР
        |        КОГДА ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия
        |            ТОГДА 1
        |        ИНАЧЕ 2
        |    КОНЕЦ                              КАК ПорядокСписания,
        |    ВТ_ДокТч.Цена                      КАК ЦенаИзДокумента
        |ИЗ
        |    ВТ_ДокТч КАК ВТ_ДокТч
        |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиПартий КАК ВТ_ОстаткиПартий
        |        ПО ВТ_ДокТч.Номенклатура = ВТ_ОстаткиПартий.Номенклатура
        |
        |УПОРЯДОЧИТЬ ПО
        |    ВТ_ДокТч.Номенклатура.Наименование,
        |    ПорядокСписания,
        |    ВТ_ДокТч.Партия.МоментВремени
        |ИТОГИ
        |    МАКСИМУМ(КоличествоИзДокумента),
        |    СУММА(КоличествоОстаток),
        |    МИНИМУМ(ПорядокСписания),
        |    МАКСИМУМ(Цена)
        |ПО
        |    Номенклатура,
        |    Партия
        |АВТОУПОРЯДОЧИВАНИЕ";
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("Момент", Дата);
    Результат             = Запрос.Выполнить();
    ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаНоменклатура.Следующий() Цикл
        //

        Если ВыборкаНоменклатура.КоличествоИзДокумента > ВыборкаНоменклатура.КоличествоОстаток Тогда
             Сообщение       = Новый СообщениеПользователю;
             Сообщение.Текст = "Товара " + ВыборкаНоменклатура.Номенклатура + " с количеством  " + 
                                ВыборкаНоменклатура.КоличествоИзДокумента + " недостаточно. На остатке :" + ВыборкаНоменклатура.КоличествоОстаток;
             Сообщение.Сообщить();
             Отказ = Истина;
             Продолжить;
        КонецЕсли;
        //

        ОсталосьСписать = ВыборкаНоменклатура.КоличествоИзДокумента;
        //

        ВыборкаПартия   = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаПартия.Следующий() и ОсталосьСписать > 0 Цикл
            Если ВыборкаПартия.КоличествоОстаток < 0 Тогда
                Продолжить;
            КонецЕсли;
            //

            Движение               = Движения.ПродуктыНаСкладах.Добавить();
            Движение.ВидДвижения  = ВидДвиженияНакопления.Расход;
            Движение.Период       = Дата;
            Движение.Номенклатура = ВыборкаПартия.Номенклатура;
            Движение.Партия       = ВыборкаПартия.Партия;
            //

            КоличествоРасходПриход = МИН(ВыборкаПартия.КоличествоОстаток, ОсталосьСписать); 
            //

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

            Движение               = Движения.ПродуктыНаСкладах.Добавить();
            Движение.ВидДвижения  = ВидДвиженияНакопления.Приход;
            Движение.Период       = Дата;
            Движение.Номенклатура = ВыборкаПартия.Номенклатура;
            Движение.Партия       = ВыборкаПартия.Партия;
            Движение.Количество   = КоличествоРасходПриход;
            Движение.Цена         = ВыборкаПартия.ЦенаИзДокумента;
        КонецЦикла;        
    КонецЦикла;        
    //

КонецПроцедуры
//
   novichok79
 
49 - 24.12.18 - 11:08
(48) отлично, а соединение с партией где? ты реально не читаешь.
 
 Рекламное место пустует
   TolstiyBeremenniy
 
50 - 24.12.18 - 11:26
(49) Читаю.
В (43) я хотел уточнить.
Данных тестовых не много. на тех которые есть и так отработало.

А как делать связь с партией????
Я вот попробовал, смотрю в консоле, там совсем не то что нужно.



ВЫБРАТЬ
    ПеремещениеТоваровСписокНоменклатуры.Номенклатура КАК Номенклатура,
    СУММА(ПеремещениеТоваровСписокНоменклатуры.Количество) КАК Количество,
    ПеремещениеТоваровСписокНоменклатуры.Партия КАК Партия,
    МАКСИМУМ(ПеремещениеТоваровСписокНоменклатуры.Цена) КАК Цена
ПОМЕСТИТЬ ВТ_ДокТч
ИЗ
    Документ.ПеремещениеТоваров.СписокНоменклатуры КАК ПеремещениеТоваровСписокНоменклатуры
ГДЕ
    ПеремещениеТоваровСписокНоменклатуры.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
    ПеремещениеТоваровСписокНоменклатуры.Номенклатура,
    ПеремещениеТоваровСписокНоменклатуры.Партия

ИНДЕКСИРОВАТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ПродуктыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ЕСТЬNULL(ПродуктыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    ПродуктыНаСкладахОстатки.Партия КАК Партия,
    ПродуктыНаСкладахОстатки.Партия.МоментВремени КАК МоментВремени
ПОМЕСТИТЬ ВТ_ОстаткиПартий
ИЗ
    РегистрНакопления.ПродуктыНаСкладах.Остатки(
            &Момент,
            Номенклатура В
                (ВЫБРАТЬ
                    ВТ_ДокТч.Номенклатура
                ИЗ
                    ВТ_ДокТч КАК ВТ_ДокТч)) КАК ПродуктыНаСкладахОстатки

ИНДЕКСИРОВАТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВТ_ДокТч.Номенклатура КАК Номенклатура,
    ВТ_ОстаткиПартий.Партия КАК Партия,
    ВТ_ДокТч.Количество КАК КоличествоИзДокумента,
    ВТ_ОстаткиПартий.КоличествоОстаток КАК КоличествоОстаток,
    ВЫБОР
        КОГДА ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия
            ТОГДА 1
        ИНАЧЕ 2
    КОНЕЦ КАК ПорядокСписания,
    ВТ_ДокТч.Цена КАК ЦенаИзДокумента
ИЗ
    ВТ_ДокТч КАК ВТ_ДокТч
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиПартий КАК ВТ_ОстаткиПартий
        ПО ВТ_ДокТч.Номенклатура = ВТ_ОстаткиПартий.Номенклатура
            И ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия

УПОРЯДОЧИТЬ ПО
    ВТ_ДокТч.Номенклатура.Наименование,
    ПорядокСписания,
    ВТ_ДокТч.Партия.МоментВремени
ИТОГИ
    МАКСИМУМ(КоличествоИзДокумента),
    СУММА(КоличествоОстаток),
    МИНИМУМ(ПорядокСписания),
    МАКСИМУМ(ЦенаИзДокумента)
ПО
    Номенклатура,
    Партия
АВТОУПОРЯДОЧИВАНИЕ
   TolstiyBeremenniy
 
51 - 24.12.18 - 11:27
(49) Подскажите пожалуйста, как делать соединение с партией правильно?!
   Михаил Иванович
 
52 - 24.12.18 - 11:32
(50) Кто такая "консоле"?
   novichok79
 
53 - 24.12.18 - 12:02
ИЗ
    ВТ_ДокТч КАК ВТ_ДокТч
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиПартий КАК ВТ_ОстаткиПартий
        ПО ВТ_ДокТч.Номенклатура = ВТ_ОстаткиПартий.Номенклатура
            И ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия

сейчас в (50) правильно, связь с партией есть.
не совсем то, что нужно, то данные - говно.

УПОРЯДОЧИТЬ ПО
    ВТ_ДокТч.Номенклатура.Наименование,
    ПорядокСписания,
    ВТ_ДокТч.Партия.МоментВремени

если у тебя автоупорядочивание, то можно так написать

УПОРЯДОЧИТЬ ПО
    ВТ_ДокТч.Номенклатура,
    ПорядокСписания,
    ВТ_ДокТч.Партия
   TolstiyBeremenniy
 
54 - 24.12.18 - 12:10
(52) КонсольЗапросов_Такси.epf

(53) Ясно про автоупорядочивание. Но наверное и как сейчас не критично.

А вот по данным. Да. Совсем ерунда выдана запросом.

Без этой связи же нормально идет все как нужно.
Я убрал эту связь. Так как там вообще чушь.

Данные набивал сам для тестирования. Что бы отладить разрабатываемый бизнес процесс.
   novichok79
 
55 - 24.12.18 - 12:38
(54) ахуеть логика конечно. я тебе говорю "у тебя рассогласование в данных", а ты - "тяп-ляп, и так сойдет".
   Михаил Иванович
 
56 - 24.12.18 - 12:41
(55) да он издевается...
   TolstiyBeremenniy
 
57 - 24.12.18 - 13:03
(55) Ну завтра мне нужно значит выявить что за рассогласование!!!! Пока мне не понятно что это значит!!!!
Я набил 5 поступлений, с пятью номенклатурами и различными числовыми данными и делаю перемещение. Где произвожу контроль остатков по FIFO, списывая в первую очередь партию, если она выбрана в строке табличной части.

(56) Ничего такого я и думать не мог. Сегодня только
разобрался с контролем остатков для перемещения. не знаю на сколько верно. Завтра буду продолжать доводить до ума этот бизнес процесс.
   TolstiyBeremenniy
 
58 - 25.12.18 - 11:20
(55) А как это рассогласование? Каким образом?
Как выявляется? Как сам так ничего подобного не вижу.
Но данные запросом (50) выдаются кривые.
   TolstiyBeremenniy
 
59 - 26.12.18 - 08:55
(55) Каким образом выявить это рассогласование данных?
были пустые партии, я перепровел, сейчас их нет.
Но запрос где установлена связь по партиям выбирает
кривые данные!!!! Как выявить почему, если вы говорите
что запрос верный?
   Михаил Иванович
 
60 - 26.12.18 - 09:04
(59) Мдя... Продолжайте.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует