При работе в программе «1С:Управление торговлей» версии 11 (а также в аналогичных конфигурациях «1С:ERP» и «1С:Комплексная автоматизация 2») пользователи часто сталкиваются с крайне странным поведением системы при оформлении документа «Передача товаров между организациями». Программа при проведении документа начинает списывать номера грузовых таможенных деклараций (ГТД) со склада, который вообще не участвует в перемещении, игнорируя реальные остатки ГТД на складе-отправителе.
В этой статье мы подробно разберем, почему так происходит, выясним внутреннюю логику работы алгоритмов распределения видов запасов в 1С, проанализируем последствия этой проблемы для учета и рассмотрим все возможные пути решения — от штатных настроек системы до написания программной заплатки.
Для того чтобы понять логику программы, нам необходимо обратиться к архитектуре современных конфигураций ERP-линейки 1С. Начиная с редакции УТ 11.2, разработчики отказались от классического партионного учета в режиме реального времени в пользу механизма «Видов запасов». Этот шаг был продиктован необходимостью ускорить проведение документов оперативного контура и перенести тяжелые расчеты себестоимости на регламентный этап закрытия месяца.
Когда вы оформляете документ передачи товаров, система обращается к регистру накопления ТоварыОрганизаций. Алгоритм подбора видов запасов распределяет номера ГТД и страны происхождения по следующему принципу:
С точки зрения методологии разработчиков 1С, ГТД — это свойство партии товара, принадлежащей конкретному юридическому лицу (организации). Поскольку внутри одной организации перемещение товаров между складами не меняет собственника, программа считает, что физическое местонахождение импортного товара вторично по сравнению с хронологией его закупки организацией.
Такой глобальный подход к распределению ГТД неизбежно накладывает отпечаток на корректность ведения учета. Проанализируем основные проблемы, с которыми сталкивается бизнес:
ТоварыОрганизаций образуется пересортица: на одном складе ГТД уходит в «минус», а на другом зависает «плюсовой» остаток по этому же ГТД.Рассмотрим по шагам четыре практических способа борьбы с этой проблемой, начиная от самых простых пользовательских и заканчивая программными.
Фирма 1С знает о существовании этой архитектурной особенности и предлагает решать её при закрытии месяца. В системе предусмотрен специальный инструмент выравнивания остатков.
Разберем, как это работает:
ИсправлениеРазвернутогоСальдоТоваровОрганизаций.Минусы способа: Если в вашей базе активно ведется работа «задним числом», цепочки документов постоянно перепроводятся, что приводит к регулярному сбросу распределения видов запасов. Регламентный документ исправления может не справиться с запущенными случаями, а сама база данных замусоривается огромным количеством корректирующих документов.
Если вам требуется жестко зафиксировать конкретный номер ГТД непосредственно в момент оформления передачи товаров между организациями, вы можете сделать это вручную.
Рассмотрим этот процесс подробнее:
Минусы способа: Этот метод абсолютно не подходит для компаний с интенсивным документооборотом из-за колоссальных трудозатрат. Кроме того, при случайном автоматическом перепроведении документов виды запасов могут перезаполниться по умолчанию, если предварительно не заблокировать их изменение программно.
Если для вашей организации критически важно иметь жесткий, прозрачный и безошибочный складской учет ГТД без программных доработок, стандартным и наиболее правильным методологическим решением является использование механизма серий.
Давайте разберем по шагам, как настроить эту схему:
ВидыНоменклатуры для требуемых позиций настройте политику учета серий.При такой настройке серия (содержащая номер ГТД) становится жестким аналитическим разрезом учета наравне с самой номенклатурой. Система физически не позволит провести документ передачи или реализации со склада, на котором отсутствует данная серия, и механизм распределения видов запасов больше не сможет произвольно выбирать ГТД с других складов.
Если внедрение серийного учета по каким-то причинам невозможно (например, из-за нежелания усложнять складские операции для кладовщиков), проблему можно решить написанием небольшого расширения конфигурации.
Проанализируем программную суть доработки. За распределение видов запасов отвечает общий модуль, подготавливающий запросы к остаткам товаров организаций. Наша задача — принудительно добавить в условия сопоставления и подбора видов запасов разрез по складу.
Посмотрим на концептуальный пример кода, который необходимо внедрить в расширение для переопределения стандартного поведения системы:
&Вместо("СформироватьЗапросДляПодбораВидовЗапасов")
Процедура Моя_СформироватьЗапросДляПодбораВидовЗапасов(ПараметрыЗапроса, ТекстЗапроса)
// Вызываем оригинальный метод для построения базового запроса
ПродолжитьВызов(ПараметрыЗапроса, ТекстЗапроса);
// Внедряем жесткую связь по складу в текст сформированного запроса
// Нам необходимо найти в тексте запроса соединения с таблицами остатков
// и дополнить их условием сравнения по измерению "Склад"
ТекстЗапроса = СтрЗаменить(
ТекстЗапроса,
"ПО ВидыЗапасов.Организация = Остатки.Организация",
"ПО ВидыЗапасов.Организация = Остатки.Организация И ВидыЗапасов.Склад = Остатки.Склад"
);
КонецПроцедуры
Применение такой доработки заставит алгоритмы распределения видов запасов анализировать остатки строго локально, в пределах склада отгрузки, указанного в документе перемещения или передачи. Это полностью ликвидирует появление «виртуальных» минусов по ГТД на одних складах и плюсов на других.
Мы проанализировали специфику работы механизма видов запасов в «1С:Управлении торговлей 11». Подводя итоги, дадим несколько рекомендаций:
ЗапасыСервер.