Имя: Пароль:
1C
1С v8
Оприходование партий по методу LIFO
0 ac13
 
20.03.19
11:03
Нужно реализовать списание партий по методу FIFO (first in, first out) только наоборот. То есть оприходовать по методу LIFO (last in, first out).
Например, дано: Клеящий карандаш канцелярский - 10 шт. Нужно найти все последние партии прихода данного количества.
Помогите с запросом, я в результате получаю выборку всех партий

    Запрос.Текст = "ВЫБРАТЬ
                   |    ПартииТоваровНаСкладахОбороты.ПериодСекунда КАК Период,
                   |    ПартииТоваровНаСкладахОбороты.ДокументОприходования,
                   |    ПартииТоваровНаСкладахОбороты.Номенклатура КАК Номенклатура,
                   |    СУММА(ЕСТЬNULL(ПартииТоваровНаСкладахОбороты.КоличествоПриход, 0)) КАК Количество
                   |ИЗ
                   |    РегистрНакопления.ПартииТоваровНаСкладах.Обороты(, , Авто, Номенклатура = &Номенклатура) КАК ПартииТоваровНаСкладахОбороты
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ПартииТоваровНаСкладахОбороты.ДокументОприходования,
                   |    ПартииТоваровНаСкладахОбороты.Номенклатура,
                   |    ПартииТоваровНаСкладахОбороты.ПериодСекунда
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Период УБЫВ
                   |ИТОГИ
                   |    СУММА(Количество)
                   |ПО
                   |    Номенклатура
                   |АВТОУПОРЯДОЧИВАНИЕ";
                  
    Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока Выборка.Следующий() Цикл
        Оприходовать = 10;
        ВыборкаПартия = Выборка.Выбрать();
        Пока Оприходовать > 0 И ВыборкаПартия.Следующий() Цикл
            КолПриход = Мин(ВыборкаПартия.Количество, Оприходовать);
            
            НоваяСтрока = Товары.Добавить();
            НоваяСтрока.Партия = ВыборкаПартия.ДокументОприходования;
            НоваяСтрока.Количество = КолПриход;
            
        КонецЦикла;    
    КонецЦикла;
1 sqr4
 
20.03.19
11:10
обороты) заменить на остатки
2 sqr4
 
20.03.19
11:13
да и вообще бы лучше сначала посмотреть как сделать надо
https://1c.chistov.pro/2014/03/blog-post.html
3 HeKrendel
 
20.03.19
11:26
Обратитесь к спецу по платформе
4 ac13
 
20.03.19
11:29
(1) Мне не нужны остатки, так как я ничего не списываю. На дату проведения операции остатки по регистрам партий у меня нулевые. И я собираюсь оприходовать остатки по партиям начиная от последней, которая приходила.
5 Garykom
 
гуру
20.03.19
11:31
А если в одном документе эта номенклатура была двумя строчками то какая раньше/позже? Которая выше или ниже?

А что если некто задним числом порядок строк поменятс
6 ac13
 
20.03.19
11:34
(5) двумя строчками она может быть только из-за разных серий или цены. я буду использовать отбор по Номенклатуре и Серии номенклатуры, стоимость будет расчитываться средняя по документу. сейчас мне нужно понять алгоритм получения последних партий
7 Garykom
 
гуру
20.03.19
11:36
(6) Какой еще алгоритм кроме как табличка включающая дату/время дока прихода и сортировка по ней
8 azernot
 
20.03.19
11:44
Пока Выборка.Следующий() Цикл
        ОсталосьОприходовать = 10;
        ВыборкаПартия = Выборка.Выбрать();
        Пока ОсталосьОприходовать > 0 И ВыборкаПартия.Следующий() Цикл
            КолПриход = Мин(ВыборкаПартия.Количество, Оприходовать);
            
            НоваяСтрока = Товары.Добавить();
            НоваяСтрока.Партия = ВыборкаПартия.ДокументОприходования;
            НоваяСтрока.Количество = КолПриход;
            ОсталосьОприходовать = ОсталосьОприходовать - КолПриход;
        КонецЦикла;  
        Если ОсталосьОприходовать > 0 Тогда
            НоваяСтрока = Товары.Добавить();
            НоваяСтрока.Партия = Оппа! А что делать, если это первый приход?;
            НоваяСтрока.Количество = ОсталосьОприходовать;
        КонецЦикла;
9 AlvlSpb
 
20.03.19
15:04
(0) Не по теме, но все же.... В курсе, что ЛИФО законом запрещена   в РФ? Это признано уклонением от уплаты налогов
10 Масянька
 
20.03.19
15:06
(9) Присоединяюсь.
11 sqr4
 
20.03.19
15:24
(10) (9) да не видите он ОПРИХОДУЕТ так.
(4) ну да читаю я конечно норм и с клиентами такое бывает, а потом за голову хватаюсь.
" Нужно найти все последние партии прихода данного количества. " расшифруйте плиз
12 ac13
 
20.03.19
15:32
(9) (10) списание партий и расчет остатков себестоимости происходит по методу ФИФО
(11) по некоторым товарам между остатками на Складах и остатками по Партиям - расхождения.
Там, где товара по партиям не хватает - делаю приход на последние партии поступления
13 Масянька
 
20.03.19
15:34
(12) Не проще сделать инвентаризацию?
14 sqr4
 
20.03.19
15:35
(12) последние партии поступления
Что такое последние партии и сколько их должно быть?
и да (13)
15 Aleksandr N
 
20.03.19
15:36
(9) Запрещена только в бухучете. В управленке или оперативке делай чо хошь.
16 ac13
 
20.03.19
15:40
(9), (15), какое отношение всё это имеет к тому, что я собираюсь сделать? И уплата налогов тут вообще при чем?
Последние партии - самые свежие по дате поступления.
17 ac13
 
20.03.19
15:42
(13) для того, чтобы выровнять расхождения по регистрам "Товары на складах" и "Партии товаров на складах"?
18 Garykom
 
гуру
20.03.19
15:44
(16) (17) Боюсь с вопросом который вы задали очень сомнительно что у вас это получится правильно.
19 Масянька
 
20.03.19
15:45
(17) Конфа?
20 sqr4
 
20.03.19
15:48
Что то мне кажется чревато все это потом проблемами, да наверно инвентаризация не даст равенства по двум регистрам, хотя я не уверен. Надо искать доки которые сделали разницу и колдовать с ними. На примере ут 11 такое бывало из за статусов документов. Ваш подход выглядит проще, но он может аукнуться нормально так)
21 Мимохожий Однако
 
20.03.19
15:59
(0) Метод LIFO  запрещён действующим законодательством.
22 ac13
 
20.03.19
16:11
(18) а как думаете правильно?)
(19) торговля 10.3
(20) инвентаризация ничего не даст в моем случае. насчет доков которые сделали разницу, тут не в доках дело, а в том, что пользователи продавали товар в минус по складам, по сериям. Пример:
01.01.2015 - на складе нет остатка, 0 шт. продали 5 шт. На складе осталось -5 шт.
03.02.2015 поступил этот товар 10 шт. По складу стало 5 шт, по партии 10 шт.
зависло расхождение в 5 шт.
(21) вы уже третий) какое это имеет отношение к моей задаче?
23 Масянька
 
20.03.19
16:15
(22) А почему инвентаризация ничего не даст?
24 Новиков
 
20.03.19
16:23
А какую практическую задачу ты решаешь? Чего в итоге от твоего "оприходовать по методу LIFO" надо получить? Чтоб остатков не было отрицательных или чего?

Конечная цель этого цирка какая?
25 ac13
 
20.03.19
16:26
(23) потому что на основании инвентаризации приходуются недостачи и списываются излишки по регистрам "Товары на складах", но у меня в этом регистре всё четко и остатки регистра соответствуют факту. Каким образом инвентаризация мне поможет выровнять расхождения между регистрами "Товары на складах" и "Партии товаров на складах"?

(24) у меня сейчас так
Клей карандаш - на складе 5 шт., по партии 3 шт.
Текстовыделитель желтый - на складе 1 шт., по партии 4 шт.

надо чтобы стало
Клей карандаш - на складе 5 шт., по партии 5 шт.
Текстовыделитель желтый - на складе 1 шт., по партии 1 шт.
26 Масянька
 
20.03.19
17:19
27 ac13
 
20.03.19
19:07
(26) и? не понимаю к чему эта картинка. каким образом мне это поможет выровнять остатки?

У меня есть 5 шт. товара "Клей карандаш", по факту "Клея карандаша" так же 5 шт. По партиям числится только 3 шт.
Что мне пересчитывать? Ну например, оприходую я 2 шт. На складах у меня станет 7 шт., по партиям 5 шт. - та же разница в 2 шт. и останется, так еще и фактические остатки будут несовпадать.
28 FIXXXL
 
21.03.19
08:42
(22) а товар какой отдал кладовщик?
29 ac13
 
21.03.19
09:43
(28) кладовщик отдал тот товар, который у него лежал. по правилам учета отдал тот товар, который поступил раньше остальных
30 FIXXXL
 
21.03.19
11:31
(29) ну то есть остаток по факту был, регистры "разъезжаются" по сериям?
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.