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

Создание перемещения с партией в табличной части документа

Создание перемещения с партией в табличной части документа
Я
   TolstiyBeremenniy
 
21.12.18 - 06:21
Столкнулся со сложностью написания запроса модуля проведения
документа перемещение товаров.
У документа, в шапке:
-СкладИсточник
-СкладПриемник
в табличной части:
-Номенклатура
-Партия
-Цена
-Количество

Нужно производить контроль остатков.
Если партия не выбрана в табличной части, списывать по методу
FIFO. Если выбрана, то сначала с указанной партии.

Можете подсказать по запросу для данного решения?
 
 
   PuhUfa
 
1 - 21.12.18 - 06:36
(0) покажи запрос который ты уже написал
   TolstiyBeremenniy
 
2 - 21.12.18 - 06:46
(1) Вот смотрю в консоле запросов.
Что то пока общая картина туго соображается.
К примеру в табличную часть вводятся строки с номенклатурой
и количеством, где партия указанна а где то не указана.
И количество разное. Если партия указана, то списывается 
сначала с неё, а потом по методу FIFO. Где не указана
списываться должно по методу FIFO.


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

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

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

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

УПОРЯДОЧИТЬ ПО
    Номенклатура
   Лодырь
 
3 - 21.12.18 - 06:48
(0) Это стандартная задача из экзамена спеца по платформе. Смотри разбор билетов.
   TolstiyBeremenniy
 
4 - 21.12.18 - 06:52
(3) Вроде как похожую видел, билет 4. Но смотрел примеры
так как то сильно мутно. Так мутно что не понятно ничего.
Какие например билеты, где можно было бы посмотреть пример?
я ничего подобного не нашел.
Как это решить пока не нашел способа!!! завис на поиске решения. и у самого идей нет.

Есть идеи сделать в модуле проведения перебор табличной части и списание или не списание с партии если есть партия
в тч. Или по методу FIFO если нет партии. Но это ка кто
примитивно и не правильно кажется.
   PuhUfa
 
5 - 21.12.18 - 07:14
ВТпоТЧ
Номенклатура КоличествоДокумент УказаннаяПартия

ВТпоОстаткамПарий
Номенклатура КоличествоОстаток ПартияОстатка

Выбор из ВТпоТЧ
с левым соединением к ВТпоОстаткамПарий
По номенклатура и если УказаннаяПартия = ПартияОстатка то выставляешь ПорядокСписания = 1 иначе ПорядокСписания = 2
на выходе:
Номенклатуа КоличествоДокумент КоличетсвоОстаток ПартияСписания ПорядокСписания

Сортируешь по ПорядкуСписания и ДатеПартииОстатка

Ну и потом уже перебираешь результат запроса не забывая считать сколько уже списал...

Что то типа такого...
   TolstiyBeremenniy
 
6 - 21.12.18 - 07:40
(5) Не дастся мне видимо такое описание (((((
Вроде задача 1.29 похожая.....?
   TolstiyBeremenniy
 
7 - 21.12.18 - 07:42
боюсь не сдвинуться в решении(((((
   TolstiyBeremenniy
 
8 - 21.12.18 - 07:49
тут есть что либо полезное?

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

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

    Запрос.УстановитьПараметр("МоментВремени", МоментВремени);
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("Партии", СписокНоменклатуры.ВыгрузитьКолонку("Партия"));

    Результат = Запрос.Выполнить();

    ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

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

        Движения.Продажи.Записывать = Истина;
        Движение = Движения.Продажи.Добавить();
        Движение.Период = Дата;
        Движение.Номенклатура = ВыборкаНоменклатура.Номенклатура;
        Движение.Количество = ВыборкаНоменклатура.Количество;
        Движение.Сумма = ВыборкаНоменклатура.Сумма;
        Движение.Себистоимость = Себистоимость;
    КонецЦикла;
   TolstiyBeremenniy
 
9 - 21.12.18 - 08:47
Мало знакомая всем задача?
Нет однозначного решения??
   xXeNoNx
 
10 - 21.12.18 - 08:54
купи ты уже курс подготовки к спецу, не мучайся...
 
 Рекламное место пустует
   xXeNoNx
 
11 - 21.12.18 - 09:01
(9)по фифо/лифо у тебя порядок сортировки один - момент времени документа, а надо что бы было 2: момент времени и приоритет, сначала сортируешь по приоритету, потом по моменту.
СЕБЕСТОИМОСТЬ пишется через букуву 'Е'
   TolstiyBeremenniy
 
12 - 21.12.18 - 09:01
вот этот запрос какую то чушь выдает ((((

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

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

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

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

УПОРЯДОЧИТЬ ПО
    СПартии УБЫВ,
    ПродуктыНаСкладахОстатки.Партия
   TolstiyBeremenniy
 
13 - 21.12.18 - 09:02
(10) Есть у меня он. Мне нужно задачу решить а не курс смотреть!
   TolstiyBeremenniy
 
14 - 21.12.18 - 09:03
(11) У меня списание должно идти по партии что выбрана в строке документа. Или по FIFO. Ничего другого.
   xXeNoNx
 
15 - 21.12.18 - 09:03
(13) пацанам лучше знать что нужнее!
   xXeNoNx
 
16 - 21.12.18 - 09:06
(12) в корне не верное решение, зачем полное соединение, зачем соединение по партии?
   xXeNoNx
 
17 - 21.12.18 - 09:07
(12) индексировать кто будет? для данного экзамена оно ой как нужно
   TolstiyBeremenniy
 
18 - 21.12.18 - 09:07
(16) Взял из примера задачи 1_04. не сам же делал.
Я не соображаю.
   TolstiyBeremenniy
 
19 - 21.12.18 - 09:08
(17) Что там индексировать, если не верное решение.
Я ищу пример, который можно использовать!!!!!
   xXeNoNx
 
20 - 21.12.18 - 09:10
(19) индексировать выборку из документа...
Примера нет
   TolstiyBeremenniy
 
21 - 21.12.18 - 09:12
(20) Задача известная а примера нет, это как?
   xXeNoNx
 
22 - 21.12.18 - 09:15
(21) бывает, нужно смириться и искать другие подходы к решению задачи..
   xXeNoNx
 
23 - 21.12.18 - 09:19
Пойдешь ты работать, скажут тебе: а напиши учет хряков на свиноферме в килограммах.
Примера нет...
Что будешь делать?
   TolstiyBeremenniy
 
24 - 21.12.18 - 09:19
(22) С чем смириться?
Какие решения искать?

У меня одно решение в голове есть.
Перебирать табличную часть документа при проведении.
И смотреть, заполнена ли партия в строке.
Если да, то списывать с неё.
Если не хватает, контроль остатков!
Если хватает списывать и идти к следующей строке.
Если партия не заполнена, то списание этой номенклатуры
по FIFO.

Так можно? Тут хоть понятно как делать. относительно.
   xXeNoNx
 
25 - 21.12.18 - 09:23
(24) причем тут решение, ты о примерах писал.., не путай!
Очень плохое решение...
Я тебе дал уже подсказку выше как решить...
   TolstiyBeremenniy
 
26 - 21.12.18 - 09:26
(25) В (11) подсказка?
   TolstiyBeremenniy
 
27 - 21.12.18 - 09:27
(25) То есть можно использовать, не сложный запрос
главное отсортировать правильно?
   xXeNoNx
 
28 - 21.12.18 - 09:28
Еще раз, в дополнение к (11): тебе нужно получить набор данных отсортированных нужным способом, в данном задании по двум измерениям, по приоритетуСписания(в твоем случае это показатель есть ли партия в ТЧ дока) и по моменту времени партии(в зависимости фифо у тебя или лифо)

И не благодари..
   xXeNoNx
 
29 - 21.12.18 - 09:29
далее стандартный механизЬм списания по партиям
   TolstiyBeremenniy
 
30 - 21.12.18 - 09:37
(29) Попробовал вот так начать.
Но что то по строкам где не указана партия, по две партии везде, вроде на остатках есть и ещё. А по этим двум и не
спишется. Можете что подсказать по этому поводу?
Про сортировку вроде понял, отсортировал.


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

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

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

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

УПОРЯДОЧИТЬ ПО
    ВТ_ДокТч.Партия,
    ВТ_ДокТч.Номенклатура.Наименование
   TolstiyBeremenniy
 
31 - 21.12.18 - 09:40
Как бы остальные партии то включить в выборку????
   TolstiyBeremenniy
 
32 - 21.12.18 - 09:44
Пока решение (24) только более менее усваивается.
не правильное с точки зрения постановки оптимального решения. Но зато так же рабочее.

Можно и его наверное применить.
Главное что бы выдавало результат.
   TolstiyBeremenniy
 
33 - 21.12.18 - 09:56
Может решение (5) разобрать, вроде начинаю вникать в него,
как это сделать.
 
 
   TolstiyBeremenniy
 
34 - 21.12.18 - 10:06
(5) Вот что получилось, -

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

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

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

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

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

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


На сколько это верно? Что поправить?
   xXeNoNx
 
35 - 21.12.18 - 10:17
(30)
ВТ_ДокТч:
1. Какая цена в перемещении - выкинуть
2. Почему  МАКСИМУМ по количеству?

Что такое: ПродуктыНаСкладахОстатки.ЦенаОстаток?
Зачем:  И Партия В
                        (ВЫБРАТЬ
                            ВТ_ДокТч.Партия
                        ИЗ
                            ВТ_ДокТч КАК ВТ_ДокТч)? 
(32) пробовал через голову труселя одевать.., оно ведь как..., тоже в принципе возможно
"Главное что бы выдавало результат." - мля..., больше не буду подсказывать..., приди на экзамен и скажи: Вы все ничего не понимаете.., главное результат. прощевай!
   TolstiyBeremenniy
 
36 - 21.12.18 - 10:18
Как вам такой запрос???


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

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

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

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

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

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

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



http://joxi.ru/E2pjgl1i9QKNar
   TolstiyBeremenniy
 
37 - 21.12.18 - 10:20
(35) Да это чей то пример.
Я его лишь правил. Сильно не вникал, надеялся на его
результат!

Ну если я не понимаю как правильно сделать, значит
можно сделать что бы работало. И ограничиться на этом
пока. А пойму как правильно потом исправить можно со временем!
   TolstiyBeremenniy
 
38 - 21.12.18 - 10:23
(36) Вроде как это можно запустить попробовать!
делал по описанию (5).
   TolstiyBeremenniy
 
39 - 21.12.18 - 10:28
(36+) Кое где только в ПартияОстатков появляются пустые
партии с минусовыми значениями. Ну это наверное в регистре
уже что то введено. при переборе наверное можно фильтровать их.
   TolstiyBeremenniy
 
40 - 21.12.18 - 10:57
Все криво что то идет!!! Подскажет кто, нет?
   TolstiyBeremenniy
 
41 - 21.12.18 - 11:20
Up1
   TolstiyBeremenniy
 
42 - 21.12.18 - 11:28
Подскажите пожалуйста, как вот это правильно сгруппировать
что бы перебором сделать партионное спивание????
У меня самого чт ото не получается?
Что там нужно изменить?


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

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

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

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

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

УПОРЯДОЧИТЬ ПО
    ВТ_ДокТч.Номенклатура.Наименование
ИТОГИ
    МАКСИМУМ(КоличествоИзДокумента),
    СУММА(КоличествоОстаток)
ПО
    НоменклатураОстатков,
    ПартияИзДокумента
   TolstiyBeremenniy
 
43 - 21.12.18 - 11:45
Что никто не подскажет что ли???????
Исходя из того что у меня есть!!!!!
   TolstiyBeremenniy
 
44 - 21.12.18 - 12:04
Подсказок не будет что ли?
   TolstiyBeremenniy
 
45 - 21.12.18 - 12:09
помогите я застрял!
   TolstiyBeremenniy
 
46 - 21.12.18 - 12:17
Ну хоть намеки!!!!! я что то из того что есть ничего не вывел!1!!


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