Как рассчитать себестоимость в 1С:Управление торговлей 11.4 при отрицательных остатках и отключенном Интеркампани?

Бизнес-аналитик 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет
← На главную

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

В этой статье мы подробно проанализируем, почему архитектура УТ 11 принципиально отличается от УТ 10.3 в вопросах расчета себестоимости, выясним причины возникновения системных ошибок и разберем по шагам несколько практических вариантов решения этой проблемы.

Почему в УТ 11 невозможно рассчитать себестоимость при «минусах»?

Рассмотрим ситуацию с технической точки зрения. В старой версии 1С:Управление торговлей 10.3 партионный учет велся по простой схеме: если товар списывался в минус, система фиксировала отрицательное количество без суммы в регистре ПартииТоваровНаСкладах, но при этом позволяла формировать отчет по валовой прибыли на основе тех партий, которые были оприходованы корректно.

В УТ 11.4 / 11.5 (а также в 1С:Комплексная автоматизация 2 и 1С:ERP) архитектура учета затрат кардинально изменилась:

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

Проанализируем основные пути выхода из этой ситуации в зависимости от целей вашей компании.

Решение 1. Отказ от многофирменного учета (упрощение структуры)

Если в вашей базе ведется учет по нескольким организациям, но эти организации являются исключительно внутренними (управленческими) и детальный баланс по каждому юридическому лицу внутри базы УТ вам не нужен, мы можем рассмотреть вариант отказа от многофирменного учета.

Для этого выполним следующие действия:

  1. Переведем роли организаций на механизм Подразделений или Направлений деятельности. Мы можем создать дополнительный реквизит для подразделений и связать его с реальными юрлицами для вывода в печатные формы.
  2. Все торговые операции будем проводить по одной-единственной управленческой организации. Взаиморасчеты с контрагентами при этом можно детализировать с помощью договоров и соглашений, не задействуя разные организации в шапке документов.
  3. Этот способ потребует изменения печатных форм (чтобы реквизиты продавца подтягивались динамически в зависимости от выбранного подразделения), однако он навсегда решит проблему межфирменных перепродаж и зависших отрицательных остатков.

Решение 2. Автоматическая генерация документов передачи (Интеркампани)

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

Посмотрим на пример автоматизации этого процесса:

  1. Настроим стандартную схему «Интеркампани» в разделе Финансовый результат и контроллинг -> Настройки межфирменных продаж. Укажем, какая организация имеет право продавать товары другой организации.
  2. Вместо ручного заполнения документов воспользуемся штатным рабочим местом «Оформление передач и выкупов».
  3. Чтобы автоматизировать этот процесс и актуализировать данные ежедневно, мы можем написать внешнюю обработку и запускать ее по расписанию через регламентные задания. Обработка должна автоматически анализировать регистр Товары организаций на наличие отрицательных остатков и программно создавать документы передачи.

Приведем пример структуры кода, который может использоваться в обработке для автоматического создания документов передачи между организациями:


// Пример программного создания документа передачи товаров
НовыйДокумент = Документы.ПередачаТоваровМеждуОрганизациями.СоздатьДокумент();
НовыйДокумент.Дата = КонецДня(ТекущаяДата());
НовыйДокумент.Организация = ОрганизацияОтправитель;
НовыйДокумент.ОрганизацияПолучатель = ОрганизацияПолучатель;
НовыйДокумент.Склад = ВыбранныйСклад;
НовыйДокумент.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаТоваровМеждуОрганизациями;

// Заполнение табличной части Товары на основании выявленных минусов
Для Каждого СтрокаМинуса Из ТаблицаОтрицательныхОстатков Цикл
    НоваяСтрока = НовыйДокумент.Товары.Добавить();
    НоваяСтрока.Номенклатура = СтрокаМинуса.Номенклатура;
    НоваяСтрока.Количество = СтрокаМинуса.КоличествоМинус;
    // Определение цены по трансфертному виду цен
    НоваяСтрока.Цена = ПолучитьТрансфертнуюЦену(СтрокаМинуса.Номенклатура, ВидЦены);
    НоваяСтрока.Сумма = НоваяСтрока.Количество * НоваяСтрока.Цена;
КонецЦикла;

НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);

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

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

Рассмотрим по шагам этот алгоритм:

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

Решение 4. Обход проверок при закрытии месяца (технический хак для разработчиков)

Что делать, если руководство требует рассчитать себестоимость прямо сейчас «как есть», несмотря на имеющиеся минусы, чтобы увидеть хотя бы предварительные и финансовые показатели по тем позициям, где приход был оформлен корректно? Решить эту задачу штатными средствами невозможно, однако программисты могут использовать механизм расширений для обхода жестких проверок платформы.

Выясним причину блокировки алгоритма закрытия месяца. Программа осуществляет проверку в общем модуле ЗакрытиеМесяцаСервер (или в специализированных процедурах проверки отрицательных остатков организаций). Программа собирает временные таблицы ошибок и, если они не пусты, вызывает исключение или прерывает расчет.

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


&Вместо("ПроверитьНаличиеОтрицательныхОстатковТоваровОрганизаций")
Процедура Искл_ПроверитьНаличиеОтрицательныхОстатковТоваровОрганизаций(ПараметрыПроверки, АдресРезультата, Отказ) Экспорт
    // Блокируем стандартную проверку, возвращая пустой результат ошибок
    // Это позволяет алгоритму распределения СЛАУ попытаться рассчитать себестоимость
    // по всем корректным позициям номенклатуры, проигнорировав проблемные
    Отказ = Ложь;
КонецПроцедуры

Важное предупреждение: Использование данного метода является крайней мерой. При расчете себестоимости с проигнорированными минусами по некоторым позициям номенклатуры могут возникнуть некорректные стоимостные показатели (например, копеечные зависания сумм при нулевом количестве или колоссальные скачки себестоимости на единицу товара). Используйте этот метод только для оперативного анализа упр. баланса, но не для регламентированной отчетности.

Важный нюанс: Управленческая и Регламентированная себестоимость при Интеркампани

Разберем еще один важный момент, с которым сталкиваются пользователи при настройке межфирменных продаж. Часто финансисты жалуются: «Мы настроили передачу товаров между Организацией 1 и Организацией 2 с наценкой в 20%. Почему в отчете "Валовая прибыль" себестоимость у Организации 2 все равно показывается по исходной цене закупки у внешнего поставщика?»

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

Резюме

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

← На главную