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

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

Создание перемещения с партией в табличной части документа
Я
   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!!


Список тем форума
Рекламное место пустует  Рекламное место пустует
AdBlock убивает бесплатный контент. 1Сергей
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует