Выборочное списание партий товаров в "Управление торговлей" редакции 10

Реализация выборочного списания партий товаров в "Управление торговлей" редакции 10

Пользователи работавшие с конфигурацией «Торговля и Склад» редакции 9 на платформе 1С Предприятие 7.7 наверное помнят, что в добавок к методам партионного учета себестоимости товаров: «FIFO»,»LIFO», в документах «Расходная накладная», «Перемещение ТМЦ», «Списание ТМЦ» существовала возможность выбора для списания конкретной партии товара, независимо от настроек учета. В конфигурации «Управление торговлей» редакции 10 разработчики такую возможность явно не реализовали. Иногда все же бывают ситуации, когда нужно списать товар из более поздней или ранней партии,  конечно можно использовать серии или характеристики номенклатуры , но это не всегда удобно. Не берусь судить о методологии учета реализованной в «Управление торговлей», но хочу поделиться с сообществом идеей реализации возможности выборочного списания партий товаров.

В конфигурации имеет регистр сведений «Списанные товары». Из комментария к регистру, мы узнаем следующее: «Содержит данные документов, необходимые для выполнения движений, связанных со списанием партий товаров». Это служебный регистр сведений, документ списания  формирует записи по данному регистру, которые в дальнейшем используются процедурами из модуля «Управление запасами партионный учет» для непосредственно списания партий товаров и формирования движений по регистру накопления «Партии товаров на складах (управленческий учет)».

Один из реквизитов регистра сведений «Списанные товары» называется «Документ Партии», из комментария следует : «Документ партии (документ поставки, документ реализации)». Указав при проведении значение данного реквизита, мы тем самым явно задаем «приоритетный» документ партии.

Реализовать в данный реквизит запись ссылки на документ партии  достаточно просто.

Разберем на примере документа «Реализация товаров и услуг»:

В табличную часть «Товары» необходимо добавить реквизит «ДокументПартии». Проще всего скопировать его из регистра сведений «Списанные товары» и вставить в табличную часть «Товары».

Далее необходимо в форме документа реализовать выбор конкретной партии товара. Один из простейших вариантов обработчика выбора:

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

        Запрос = Новый Запрос();
        Запрос.Текст = ТекстЗапроса;
       
        Запрос.УстановитьПараметр(«Период»       ,ЭтотОбъект.МоментВремени());
        Запрос.УстановитьПараметр(«Номенклатура» ,СтрокаТабличнойЧасти.Номенклатура);
        Запрос.УстановитьПараметр(«Склад»        ,?(ЗначениеЗаполнено(СтрокаТабличнойЧасти.Склад),СтрокаТабличнойЧасти.Склад,ЭтотОбъект.Склад));
        Запрос.УстановитьПараметр(«СтатусПартии» ,Перечисления.СтатусыПартийТоваров.Купленный);
        Запрос.УстановитьПараметр(«Организация»  ,ЭтотОбъект.Организация);
       
        РезультатЗапроса = Запрос.Выполнить().Выгрузить();
        ВыбраннаяСтрока =  РезультатЗапроса.ВыбратьСтроку(«Выберите документ оприходования»);
       
        Если ВыбраннаяСтрока <> Неопределено Тогда
            СтрокаТабличнойЧасти.ДокументПартии = ВыбраннаяСтрока.ДокументОприходования;
        КонецЕсли  
       
    Иначе
        ОбщегоНазначения.СообщитьОбОшибке(«Действие недоступно для незаписанного документа»);
    КонецЕсли;   
    СтандартнаяОбработка = Ложь;
КонецПроцедуры

Теперь необходимо модифицировать процедуру подготовки таблицы товаров «ПодготовитьТаблицыДокумента», для проведения про регистрам . Необходимо в структуру полей добавить реквизит «ДокументПартии».

Процедура ПодготовитьТаблицыДокумента(СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоУслугам, ТаблицаПоТаре) Экспорт
    …….
    СтруктураПолей.Вставить(«КоличествоВЕдиницахДокумента»       , «Количество»);
    СтруктураПолей.Вставить(«ДокументПартии»                     , «ДокументПартии»); //Добавляем в структуру полей «ДокументПартии»

    …….

 

Данный метод имеет некоторые ограничения в применении. Здесь не учитывается случай с комиссионной торговлей, нет проверки серий и характеристик номенклатуры, оставляю это все на совести разработчика.

Этим методом стоит пользоваться только при условии  соблюдения «порядка» в учете. В случае частого проведения «задним числом» или наличии расхождений между складским и партионным учетом вы рискуете лишь добавить себе проблем.

 

 

 

33 Comments

  1. cool.vlad4

    Ящик пандоры, не? был у меня опыт «встречи» с программкой, где списание партии — выборочное…- обычная торговля, задние числа…это была жесть…перенос в 1С был неописуемым удовольствием…

    Reply
  2. GreenLab

    Безусловно, выборочное списание должно использоваться скорее как исключение, если это станет правилом,то с учетом скорее всего что-то не так.

    Reply
  3. cool.vlad4

    Вот этого в статье нет — «то с учетом скорее всего что-то не так.» . Кстати «В конфигурации «Управление торговлей» редакции 10 разработчики такую возможность явно не реализовали.» — я бы задался вопросом почему не реализовали? и потом (может ошибаюсь), вроде есть вопрос в тестировании, как можно организовать выборочное списание партий?

    Reply
  4. GreenLab

    (3) cool.vlad4, Повторюсь: не стану обсуждать методологию учета использованную в «Управление торговлей», хотя в ней хватает спорных моментов, но все эти вопросы не однократно обсуждались на профильных форумах. Есть ситуации когда партия в учетной системе точно соответствует партии товара на складе, у них разная стоимость, учет ведется по FIFO, но нужно списать товар пришедший последним а не первым. Использовать серии или характеристики не всегда удобно.

    Reply
  5. Zoomby
     Использовать серии или характеристики не всегда удобно.

    Но это единственный выход в типовой.

    Reply
  6. GreenLab

    Приведу пример из своей практики: есть клиент у которого учет «вылизан» от и до. Ситуация, когда что-то не списалось по партиям считается чуть ли не ЧП :-). Они конечно скорее исключение, чем правило. У них осталась партия кондиционеров в конце сезона корейского производства (по документам на них нет ГТД — особенности бизнеса в России) купленная ранее и партия таких же кондиционеров но сделанных в России, российского производства дешевле в закупке, розничная цена одинаковая, у поставщиков это одна позиция. В первую очередь со склада отпускают пришедшие позднее российские, т.к. «корейцы» уйдут в любом случае, даже не в сезон по более дорогим ценам. Такой же пример могу привести по авто шинам.

    Reply
  7. Поручик

    Таких ситуаций масса. Торговля медикаментами, продажа агрегатов типа транспортных средств, двигателей, etc. На прошлой работе я тоже реализовывал сабж, в другом виде, но методика совпадала.

    Reply
  8. photiev

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

    Reply
  9. Поручик

    (8) Учет по сериям по некоторым причинам не всем подходит.

    Reply
  10. GreenLab
    photiev пишет:

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

    Серии чаще всего воспринимаются как способ учета импортного товара по ГТД, предложенный вариант списания партий скорее способ корректировки стандартного списания партий, нежели метод ведения учета. Я уже об этом написал выше.

    Reply
  11. undo

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

    Reply
  12. proger1c81

    по опыту могу сказать, что оператор должен очень хорошо владеть информацией о своих партиях и помнить про корректировки задним числом. Я пока не встречал таких пользователей

    Reply
  13. undo

    в частности у меня производство выведено в отдельный цикл с собственными поступлениями и перемещениями на склад для дальнейшей продажи, и занимается этим один адекватный пользователь. так что можно считать что мне повезло. А по сути проблемы скажу следующее. Предоставление пользователю самостоятельного выбора партии необходимо, НО как любая привилегия она должна предоставлять пользователю который осознает что он делает и как это повлияет на дальнейший процесс…

    Reply
  14. GreenLab
    undo пишет:

    Предоставление пользователю самостоятельного выбора партии необходимо, НО как любая привилегия она должна предоставлять пользователю который осознает что он делает и как это повлияет на дальнейший процесс…

    Точнее и не скажешь, и то, что такую возможность не сделали разработчики в типовых, лишь подтверждает то, что для большинства такую «привилегию» давать не стоит.

    Reply
  15. GreenLab

    статья была написана по той причине, что данный вопрос несколько раз встречался мне на профильных форумах, а конкретно алгоритмом «зубры» поделиться не изволили.

    Reply
  16. shatt

    Вы меня просто очень и очень выручили!!!!

    Спасибо за методу огромное!

    Здорово, что есть Инфостарт!!!

    Reply
  17. John83

    Конечно же попробую, но кто-нибудь в рабочей базе использовал такое?

    Reply
  18. sidka89

    метода хорошо работает на демке, в идеальном ведении учета…мои юзеры зарубили за полчаса, рукастые люди:)

    Reply
  19. GreenLab

    (18) Метод работает на реальных задачах, иначе здесь бы не публиковался. Если быть точнее, то этот метод не совсем указывает партию к списанию. Метод указывает приоритетную для списания партию. Если в результате изменений задним числом нет остатка указанной партии, то при повторном проведении по FIFO(LIFO) списываются имеющиеся на момент проведения.

    Reply
  20. ZLENKO

    Реализовывал аналогичную задачу — надо было делать некоторые реализации с идентифицированной себестоимостью — партии подбирались в документ реализации. Вообще за последний год было много нестандартных задач по партионному учету. Например, перемещение с транзитным складом: одним документом разными датами перемещается товар со склада отправителя на транзитный склад и с транзитного склада на склад получатель. Перемещение с преобразованием одной номенклатуры в другую (перемещение на склад брака). Разукомплектация с восстановлением себестоимости на основании документов комплектации. И т.д. …

    Вобщем у моего заказчика богатая фантазия на тему себестоимости оказалась 🙂

    Reply
  21. Rothschild

    (21) ZLENKO.PRO,

    интересно…а соответствует ли партионный учет реалиям жизни.

    Ведь все зависит от того, какую там «коробку» (или «колесо»)

    кладовщик схватит и потащит (или покатит).

    Reply
  22. Rothschild

    (22)

    Ну в аптеках — там каждуюю упаковку лейблят этикеткой с ценой

    — это в общем-то крайний случай

    — и понятно что тут есть «партионный» учет.

    Reply
  23. Rothschild

    (23)

    Но насколько организация работы складов в целом

    (среднестатистически) адекватна тому партионному учету
    ,

    который ведется в компаниях

    (если он конечно ведется ;)) ???

    Reply
  24. GreenLab

    (24) Rothschild, Ну я собственно приводил вполне конкретную ситуацию у моего клиента в (6), когда эта методика актуальна.

    Reply
  25. ZLENKO

    (22) Ответ по поводу адекватности партионного учета носит субъективный характер.

    Reply
  26. lesenoklenok

    Очень интересная статья, иногда данная функция списывания товара по определенной партии нужна.

    Reply
  27. Sergafan10

    КА не работает. Партию указываю, а он в танке, — действует, как указано в учётке, по ФИФО, берёт остататок первой партии и потрошит следующие. Куда копнуть?

    Reply
  28. GreenLab

    (28) Sergafan10, В КА используется РАУЗ. Метод актуален только для УТ 10.3

    Reply
  29. Sergafan10

    (29) не, у нас партионка. Заработало. Я облажался в назначении типа добавленному реквизиту «ДокументПартии». Был «Строка», а должен быть составной с указанием документов. 😉 Прошу прощения!

    Reply
  30. bahcha8

    Действительно, такие ситуации случаются, но все же не на столько часто, чтобы не хватало функционала учета по сериям. Хотя у нас тоже поступают просьбы сделать возможность указания конкретной партии. Пока отбиваемся. Этот функционал надо вложить ТОЛЬКО в руки понимающего человека, а то никакой тебе себестоимости))).

    Reply
  31. val54321

    Есть подобный метод для УТ 11.1?

    Reply
  32. John83

    Не учтены движения по партиям НДС.

    Reply
  33. user913300

    В УТП чтобы, списывались партии по бух учету аналогично нужно добавить реквизит, ДокументОприходования, и аналогично заполнять.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *