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