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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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


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

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

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

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

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



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

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


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

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

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

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

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