Предпосылка создания данной публикации
На нашем предприятии устаревшая версия Рарус Торговый комплекс v8 (08.1.17.01) - аналог торговли 10.3, неуправляемые формы, которая изначально не была рассчитана на ведение учета от нескольких организаций и организации в нее мы добавляли самостоятельно. Добавили регистр "товары организаций", но структуру регистра "ПартииТоваровКомпании" менять не стали, измерение "организация" в него добавлять не стали, положились видимо на правильный выбор документов партий в общем модуле проведения документов, что при аккуратном обращении вполне возможно.
Однако изменчивость правил управленческого учета реальной компании, ротация программистов, пренебрежение (закупка на все организацииделается по одинаковым ценам), привели к ошибкам. Теперь у нас в партиях зачастую товар поступает на одну организацию, а реализуется от имени другой организации. Решением было бы пересоздать регистр с правильной структурой, содержащий измерение "Организация" в момент обрезки базы. Но данное решение требует предварительной подготовки, которой посвещена данная публикация.
Как получить подобие партионного учета в устаревшей программе
Шаг №1. Заполняем партии товаров конкретной реализации, табличная часть реализации заполнена.
У нас есть конкретная реализация и задача - подобрать к ней неизрасходованные остатки поступлений и взять цены реализации из этих поступлений.
Под спойлерами я буду приводить примеры текстов запроса.
Данный текст запроса является идеальным примером, подобная (только с измерением Организация) структура регистра "себестоимость товаров" в ERP.
В данном случае, соответствующем скриншотам, все следующие тексты запросов создавались в конфигурации Рарус Торговый комплекс v8 (08.1.17.01).
Данный запрос используется для заполнения партий конкретной реализации в приложенной для скачивания обработке "Реализация с заполненными партиями (ВернутьПоПартиям)", в ней выбирается конкретная реализация. для заполнения партий.
Шаг №2. Отчет, иллюстрирующий корректировку поступления (в данном случае списание первой найденной партии товаров).
Иногда требуется решить задачу минимизации количества корректировочных документов, или выбрать поступление, в котором поступило максимальное количество остатков, которые сейчас требуется списать. Надо выбрать такое поступление и создать из остатков корректировку конкретного выбранного поступления.
В данном случае прилагается обработка, корорая находит поступления в которых содержится максимальное количество данных остатков и списывает их:
Организация | Номенклатура |
Общий Остаток |
Партия | Остаток Данной Партии | Цена Данной Партии | Общее Количество Реализуется | Реализуется Часть Остатка Партии | Осталось Не Реализовано |
ОРГАНИЗАЦИЯ№8 | 003** | 710 | Поступление товаров ПБ00078725 от 29.07.2019 0:00:01 | 52,000 | 425,20 | 10,000 | 10,000 | |
ОРГАНИЗАЦИЯ№8 | 001* | 438 | Поступление товаров ПБ00078725 от 29.07.2019 0:00:01 | 16,000 | 425,20 | 11,000 | 11,000 | |
ОРГАНИЗАЦИЯ№8 | 309 | 82 | Поступление товаров ПБ00078725 от 29.07.2019 0:00:01 | 1,000 | 270,38 | 1,000 | 1,000 | |
ОРГАНИЗАЦИЯ№8 | 105* | 311 | Поступление товаров ПБ00078725 от 29.07.2019 0:00:01 | 24,000 | 282,68 | 4,000 | 4,000 | |
ОРГАНИЗАЦИЯ№8 | 75* | 182 | Поступление товаров ПБ00078725 от 29.07.2019 0:00:01 | 2,000 | 472,50 | 4,000 | 2,000 | 2 |
ОРГАНИЗАЦИЯ№8 | 306** | 263 | Поступление товаров ПБ00078725 от 29.07.2019 0:00:01 | 1,000 | 270,38 | 2,000 | 1,000 | 1 |
ОРГАНИЗАЦИЯ№8 | 40** | 234 | Поступление товаров ПБ00078725 от 29.07.2019 0:00:01 | 1,000 | 472,50 | 2,000 | 1,000 | 1 |
ОРГАНИЗАЦИЯ№8 | 81* | 300 | Поступление товаров ПБ00078725 от 29.07.2019 0:00:01 | 1,000 | 281,93 | 3,000 | 1,000 | 2 |
Обработка "Формирование реализаций виртуального возврата" не отличается оптимальностью, но делает несколько итераций по созданию реализаций - от большего количества списываемых корректировкой поступления остатков каждого поступления к меньшему количеству.
Шаг №3. Остатки реализаторов номенклатуры. Как по быстрому оценить какому поставщику - реализатору сколько товаром можно вернуть?
Как правило работу с поставщиками в офисе розничной торговой сети делят между ответственными пользователями - логистами, каждый логист ведет ассортимент нескольких поставщиков. Для оценки ассортимента поставщиков можно использовать данное закрепление номенклатуры (в быту группы номенклатуры привязанные к поставщикам, то есть номенклатура поставщиков, еще называются коллекциями).
Увидеть примерно сколько товаров какого поставщика у нас имеется довольно просто.
Оценит остатки реализаторов таким образом довольно просто, но вернуть без учета партий (поступлений) все равно нельзя, так как возможно поставщик мог смениться или закупки делались у разных поставщиков. Однако для отладки и проверки примеров этот регистр и прилагаемый отчет "Остатки реализаторов номенклатуры" пригодится потому что остатки которые нам надо списать по количеству должны совпасть с нашими партионными отчетами и сформированными документами (на примере реализации).
Шаг №4. Разбираемся со списанием всех партий товаров в одном запросе.
Мы знаем, сколько товаров мы можем реализовать из какого поступления, но додумать запрос который закроет каждое поступление самостоятельно довольно сложно. Предлагаю обратить внимание на замечательную публикацию "ФИФО для любопытных" //infostart.ru/public/68225/ автора Игоря Исхакова, в которой подробно расписано, как это сделать. В данном случае логическим продолжением запроса из примера №2 будет следующая доработка в контексте "ФИФО для любопытных" (неизрасходованные остатки поступлений списываются в данном случае по методу "ФИФО" что подходит для поиска устаревших партий)
Прилагаемый отчет СКД "Остатки поступлений, пример получения данных партионного учета если его нет" восстанавливает всю цепочку партий от момента создания предприятия (или ввода начальных остатков, корректировки учетных данных, обрезки базы) и выводит разложение остатков по незакрытым партиям.
Следующий отчет "ТОРГ12" заполняет все колонки соответствующие форме ТОРГ 12 (добавляется НДС и т.д.) с группировкой по поступлению, чтобы поставщикам нагляднее было проверять возвратные накладные.
В данном случае разложить остатки по ЛИФО (так картина возврата всех остатков выглядит реалистичнее) нужно сделать маленькое изменение запроса из примера №4, поменять знак с больше или равно на меньше или равно как показано на следующем скрине:
Подводим итоги - что списалось по партиям (потому что есть в поступлениях), а что не списалось (потому что появилось каким-то другим способом, например с помощью корректировки учетных данных или ввода начальных остатков).