В практике автоматизации торговых предприятий на базе современных конфигураций 1С:Комплексная автоматизация (1С:КА) и 1С:ERP Управление предприятием специалисты часто сталкиваются с жестким архитектурным конфликтом. Бизнес-пользователи хотят видеть склад как «единый котел», продавать товары от имени любого юридического лица компании и получать красивую управленческую себестоимость в режиме реального времени. При этом оформлять официальные межфирменные продажи (механизм Интеркампани) владельцы бизнеса категорически отказываются — из-за налоговых рисков, специфики систем налогообложения (например, УСН и ОСНО) или просто нежелания усложнять документооборот.
Давайте подробно разберем, почему возникает эта проблема, почему популярные «костыли» программистов могут разрушить базу данных и какие есть реальные методические и архитектурные решения этой сложной задачи.
В системах 1С:ERP и 1С:КА расчет себестоимости фундаментально привязан к разрезу Организация. Это балансовое измерение. Когда одна организация продает товар, который юридически принадлежит другой организации, в системе происходит следующее:
Выясним, какие пути решения существуют и как обойти это ограничение без ущерба для стабильности системы.
---
В обсуждениях на форумах часто звучит предложение: «Давайте снимем флаг контроля остатков организаций, зайдем в ключи аналитики учета номенклатуры и уберем оттуда измерение Организация». Проанализируем, почему этот технический трюк является тупиковым.
Начиная с версий 1С:КА 2.4/2.5, расчет себестоимости базируется на математическом аппарате Системы Линейных Уравнений (СЛУ). Этот алгоритм зашит глубоко на уровне платформы и оптимизирован под жесткую структуру метаданных. СЛУ ожидает получить математически замкнутый контур по каждому балансовому измерению, главным из которых является Организация.
Если программно вмешаться в структуру регистров накопления СебестоимостьТоваров или ВыручкаИСебестоимостьПродаж и убрать или очистить это измерение, то:
---
Если классическая купля-продажа между собственными организациями невозможна из-за налоговых ограничений, оптимальным выходом будет использование договора комиссии. Это абсолютно штатный функционал 1С:КА, не требующий доработок кода.
Разберем этот процесс по шагам:
При такой схеме себестоимость рассчитывается идеально: продающая организация отражает свой доход в виде комиссионного вознаграждения, а организация-владелец списывает себестоимость проданного товара на основании отчета. И налоговая инспекция, и алгоритмы 1С остаются довольны.
---
Мало кто знает, но в 1С:ERP и 1С:КА заложено три независимых контура финансового учета:
Если в настройках финансового учета включен контур «Управленческий учет предприятия», система активирует механизм сквозной себестоимости. При формировании отчетов (например, популярного отчета Валовая прибыль предприятия) система автоматически элиминирует (исключает) внутренние наценки и перепродажи между собственными организациями.
Для руководства компании отчет покажет реальную «очищенную» маржинальность товара по складу в целом, даже если де-юре товар принадлежал разным фирмам.
---
Если бизнес-требования непреклонны и склад должен управляться как абсолютно единое безликое пространство, лучшим архитектурным решением будет разделение информационных систем на две сущности:
1. Управленческая база данных (например, копия 1С:КА или 1С:Управление торговлей)
В этой базе заводится только одна виртуальная организация — «Управленческая». Все закупки, складские перемещения и продажи ведутся только по ней. Складской учет и расчет себестоимости по методу FIFO или средней стоимости работают безупречно. Менеджеры работают в комфортной и простой среде.
2. Регламентированные базы данных (1С:Бухгалтерия)
Для каждого юридического лица создается отдельная база данных 1С:Бухгалтерия. На стыке систем настраивается интеграция. При выгрузке документов из управленческой базы правила обмена (например, через КнигаОбменаДанными или EnterpriseData) трансформируют документы. Продажи «чужого» товара автоматически перераспределяются по нужным организациям, либо там программно формируются необходимые перепродажи исключительно для сдачи отчетности.
---
Если менеджменту себестоимость нужна исключительно для оперативного контроля маржинальности (в печатных формах счетов, расходных накладных или в управленческих отчетах), а регламентированное закрытие месяца по этим организациям их не волнует, мы можем использовать динамический расчет.
Для этого мы не ломаем проведение документов в системе, а пишем внешний отчет (или дорабатываем печатную форму), который рассчитывает себестоимость виртуально. Напишем запрос, который будет собирать данные по регистру остатков, игнорируя измерение Организация:
ВЫБРАТЬ
СебестоимостьОстатки.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
СебестоимостьОстатки.АналитикаУчетаНоменклатуры.Склад КАК Склад,
СУММА(СебестоимостьОстатки.СтоимостьОстаток) КАК ОбщаяСтоимость,
СУММА(СебестоимостьОстатки.КоличествоОстаток) КАК ОбщееКоличество,
ВЫБОР
КОГДА СУММА(СебестоимостьОстатки.КоличествоОстаток) <> 0
ТОГДА СУММА(СебестоимостьОстатки.СтоимостьОстаток) / СУММА(СебестоимостьОстатки.КоличествоОстаток)
ИНАЧЕ 0
КОНЕЦ КАК СредняяСкладскаяСебестоимость
ИЗ
РегистрНакопления.СебестоимостьТоваров.Остатки(&Период, ) КАК СебестоимостьОстатки
ГРУППИРОВАТЬ ПО
СебестоимостьОстатки.АналитикаУчетаНоменклатуры.Номенклатура,
СебестоимостьОстатки.АналитикаУчетаНоменклатуры.Склад
Разберем этот код: мы обращаемся к виртуальной таблице остатков регистра СебестоимостьТоваров, группируем показатели только по номенклатуре и складу, полностью игнорируя организацию-владельца. Полученную среднюю складскую себестоимость мы можем динамически выводить в любые печатные формы менеджеров. При этом сама база данных остается типовой и закрывается без единой ошибки.
Попытки заставить 1С:Комплексную автоматизацию работать вопреки ее архитектурной логике всегда приводят к краху учета. Если бизнес требует продавать товары разных организаций без документов передачи, выберите один из безопасных путей: настройте комиссионную торговлю, используйте контур управленческого учета предприятия или разделяйте базы данных на управленческую и регламентированную. Это сохранит стабильность системы и обеспечит корректность финансовых результатов.