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

Публикация № 92712

Программирование - Практика программирования

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

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

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

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

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

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

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

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

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

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

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

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

    .......

 

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

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

 

 

 

40

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. cool.vlad4 44 02.10.11 11:49 Сейчас в теме
Ящик пандоры, не? был у меня опыт "встречи" с программкой, где списание партии - выборочное...- обычная торговля, задние числа...это была жесть...перенос в 1С был неописуемым удовольствием...
2. GreenLab 75 02.10.11 12:03 Сейчас в теме
Безусловно, выборочное списание должно использоваться скорее как исключение, если это станет правилом,то с учетом скорее всего что-то не так.
abrafaks; Светлый ум; +2 Ответить
3. cool.vlad4 44 02.10.11 12:11 Сейчас в теме
Вот этого в статье нет - "то с учетом скорее всего что-то не так." . Кстати "В конфигурации "Управление торговлей" редакции 10 разработчики такую возможность явно не реализовали." - я бы задался вопросом почему не реализовали? и потом (может ошибаюсь), вроде есть вопрос в тестировании, как можно организовать выборочное списание партий?
4. GreenLab 75 02.10.11 14:29 Сейчас в теме
(3) cool.vlad4, Повторюсь: не стану обсуждать методологию учета использованную в "Управление торговлей", хотя в ней хватает спорных моментов, но все эти вопросы не однократно обсуждались на профильных форумах. Есть ситуации когда партия в учетной системе точно соответствует партии товара на складе, у них разная стоимость, учет ведется по FIFO, но нужно списать товар пришедший последним а не первым. Использовать серии или характеристики не всегда удобно.
5. Zoomby 02.10.11 15:10 Сейчас в теме
 Использовать серии или характеристики не всегда удобно.

Но это единственный выход в типовой.
6. GreenLab 75 02.10.11 15:49 Сейчас в теме
Приведу пример из своей практики: есть клиент у которого учет "вылизан" от и до. Ситуация, когда что-то не списалось по партиям считается чуть ли не ЧП :-). Они конечно скорее исключение, чем правило. У них осталась партия кондиционеров в конце сезона корейского производства (по документам на них нет ГТД - особенности бизнеса в России) купленная ранее и партия таких же кондиционеров но сделанных в России, российского производства дешевле в закупке, розничная цена одинаковая, у поставщиков это одна позиция. В первую очередь со склада отпускают пришедшие позднее российские, т.к. "корейцы" уйдут в любом случае, даже не в сезон по более дорогим ценам. Такой же пример могу привести по авто шинам.
7. Поручик 4248 02.10.11 16:51 Сейчас в теме
Таких ситуаций масса. Торговля медикаментами, продажа агрегатов типа транспортных средств, двигателей, etc. На прошлой работе я тоже реализовывал сабж, в другом виде, но методика совпадала.
8. photiev 03.10.11 09:53 Сейчас в теме
А чем предложенная методика лучше учета по сериям, если рассматривать серию как отельную партию.
9. Поручик 4248 03.10.11 10:13 Сейчас в теме
(8) Учет по сериям по некоторым причинам не всем подходит.
10. GreenLab 75 03.10.11 11:08 Сейчас в теме
photiev пишет:

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

Серии чаще всего воспринимаются как способ учета импортного товара по ГТД, предложенный вариант списания партий скорее способ корректировки стандартного списания партий, нежели метод ведения учета. Я уже об этом написал выше.
11. undo 1 05.10.11 23:47 Сейчас в теме
У меня производство, серии мы используем для учета продукции выходящей из производства, там у нас срок хранения, дата производства и т.д. Иногда для производства продукции используется сырое которое даст наибольшие процент выхода готовой продукции, и к сожалению это не всегда первая партия. Поэтому мне то же пришлось предоставить пользователю выбор партии товара.
12. proger1c81 06.10.11 01:02 Сейчас в теме
по опыту могу сказать, что оператор должен очень хорошо владеть информацией о своих партиях и помнить про корректировки задним числом. Я пока не встречал таких пользователей
13. undo 1 08.10.11 16:36 Сейчас в теме
в частности у меня производство выведено в отдельный цикл с собственными поступлениями и перемещениями на склад для дальнейшей продажи, и занимается этим один адекватный пользователь. так что можно считать что мне повезло. А по сути проблемы скажу следующее. Предоставление пользователю самостоятельного выбора партии необходимо, НО как любая привилегия она должна предоставлять пользователю который осознает что он делает и как это повлияет на дальнейший процесс...
14. GreenLab 75 09.10.11 22:18 Сейчас в теме
undo пишет:
Предоставление пользователю самостоятельного выбора партии необходимо, НО как любая привилегия она должна предоставлять пользователю который осознает что он делает и как это повлияет на дальнейший процесс...


Точнее и не скажешь, и то, что такую возможность не сделали разработчики в типовых, лишь подтверждает то, что для большинства такую "привилегию" давать не стоит.
15. GreenLab 75 09.10.11 22:21 Сейчас в теме
статья была написана по той причине, что данный вопрос несколько раз встречался мне на профильных форумах, а конкретно алгоритмом "зубры" поделиться не изволили.
16. shatt 38 03.05.12 22:56 Сейчас в теме
Вы меня просто очень и очень выручили!!!!
Спасибо за методу огромное!
Здорово, что есть Инфостарт!!!
17. John83 23.10.13 17:12 Сейчас в теме
Конечно же попробую, но кто-нибудь в рабочей базе использовал такое?
18. sidka89 24.10.13 13:36 Сейчас в теме
метода хорошо работает на демке, в идеальном ведении учета...мои юзеры зарубили за полчаса, рукастые люди:)
Gendalf_beliy; +1 Ответить
19. GreenLab 75 24.10.13 14:37 Сейчас в теме
(18) Метод работает на реальных задачах, иначе здесь бы не публиковался. Если быть точнее, то этот метод не совсем указывает партию к списанию. Метод указывает приоритетную для списания партию. Если в результате изменений задним числом нет остатка указанной партии, то при повторном проведении по FIFO(LIFO) списываются имеющиеся на момент проведения.
Kesak; lesenoklenok; ZLENKO; +3 Ответить
21. ZLENKO 14.01.14 18:20 Сейчас в теме
Реализовывал аналогичную задачу - надо было делать некоторые реализации с идентифицированной себестоимостью - партии подбирались в документ реализации. Вообще за последний год было много нестандартных задач по партионному учету. Например, перемещение с транзитным складом: одним документом разными датами перемещается товар со склада отправителя на транзитный склад и с транзитного склада на склад получатель. Перемещение с преобразованием одной номенклатуры в другую (перемещение на склад брака). Разукомплектация с восстановлением себестоимости на основании документов комплектации. И т.д. ...
Вобщем у моего заказчика богатая фантазия на тему себестоимости оказалась :-)
22. Rothschild 14.01.14 18:31 Сейчас в теме
(21) ZLENKO.PRO,
интересно...а соответствует ли партионный учет реалиям жизни.
Ведь все зависит от того, какую там "коробку" (или "колесо")
кладовщик схватит и потащит (или покатит).
23. Rothschild 14.01.14 18:32 Сейчас в теме
(22)

Ну в аптеках - там каждуюю упаковку лейблят этикеткой с ценой
- это в общем-то крайний случай
- и понятно что тут есть "партионный" учет.
24. Rothschild 14.01.14 18:33 Сейчас в теме
(23)
Но насколько организация работы складов в целом
(среднестатистически) адекватна тому партионному учету
,
который ведется в компаниях
(если он конечно ведется ;)) ???
25. GreenLab 75 15.01.14 21:55 Сейчас в теме
(24) Rothschild, Ну я собственно приводил вполне конкретную ситуацию у моего клиента в (6), когда эта методика актуальна.
26. ZLENKO 20.01.14 19:43 Сейчас в теме
(22) Ответ по поводу адекватности партионного учета носит субъективный характер.
27. lesenoklenok 23 24.01.14 14:01 Сейчас в теме
Очень интересная статья, иногда данная функция списывания товара по определенной партии нужна.
28. Sergafan10 26.01.14 12:02 Сейчас в теме
КА не работает. Партию указываю, а он в танке, - действует, как указано в учётке, по ФИФО, берёт остататок первой партии и потрошит следующие. Куда копнуть?
29. GreenLab 75 26.01.14 13:07 Сейчас в теме
(28) Sergafan10, В КА используется РАУЗ. Метод актуален только для УТ 10.3
30. Sergafan10 26.01.14 13:16 Сейчас в теме
(29) не, у нас партионка. Заработало. Я облажался в назначении типа добавленному реквизиту "ДокументПартии". Был "Строка", а должен быть составной с указанием документов. ;) Прошу прощения!
31. bahcha8 28.01.14 15:00 Сейчас в теме
Действительно, такие ситуации случаются, но все же не на столько часто, чтобы не хватало функционала учета по сериям. Хотя у нас тоже поступают просьбы сделать возможность указания конкретной партии. Пока отбиваемся. Этот функционал надо вложить ТОЛЬКО в руки понимающего человека, а то никакой тебе себестоимости))).
32. val54321 23 04.03.14 11:15 Сейчас в теме
Есть подобный метод для УТ 11.1?
33. John83 11.04.14 17:01 Сейчас в теме
Не учтены движения по партиям НДС.
34. user913300 06.04.18 14:50 Сейчас в теме
В УТП чтобы, списывались партии по бух учету аналогично нужно добавить реквизит, ДокументОприходования, и аналогично заполнять.
Оставьте свое сообщение