Как в УТ 11.5 учесть дополнительные расходы для себестоимости, но не выгружать их в бухгалтерию

Программист 1С v8.3 (Управляемые формы) Управленческий учет Торговля и дистрибуция
← На главную

В практике торговых предприятий часто возникает ситуация, когда реальная себестоимость товара выше, чем подтвержденная официальными документами. Это могут быть неофициальные расходы на погрузку, логистику или прочие услуги, которые необходимо включить в расчет валовой прибыли для получения достоверной управленческой картины. Однако эти данные ни в коем случае не должны попасть в базу "1С:Бухгалтерия предприятия" при синхронизации.

В рамках данной статьи мы разберем, как правильно реализовать такой механизм в 1С:Управление торговлей 11.5, проанализируем возможные риски и выберем наиболее стабильные методы решения задачи.

Почему не стоит создавать новый вид документа

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

  1. Механизм партионного учета: В УТ 11.5 расчет себестоимости жестко завязан на определенные типы документов и регистры. Чтобы ваш новый документ начал влиять на стоимость товаров, его придется прописывать в модулях проведения по регистрам Стоимость товаров, Выручка и себестоимость продаж, Детализация себестоимости товаров и многих других.
  2. Поддержка: При каждом обновлении конфигурации вам придется проверять, не изменилась ли структура регистров накопления, иначе расчет себестоимости (ССТ) может начать выдавать ошибки или игнорировать ваши "серые" расходы.

Проанализируем более элегантные способы, которые позволяют использовать стандартные механизмы программы.

Решение 1: Использование дополнительного реквизита и управление регистрацией

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

Шаг 1. Создание дополнительного реквизита.

Для документа Приобретение услуг и прочих активов добавим дополнительный реквизит (через пользовательский интерфейс или расширение) с типом Булево, назовем его, например, ТолькоУпрУчет (или "Не выгружать в БП").

Шаг 2. Автоматическая отмена регистрации в плане обмена.

Чтобы документ не улетел в бухгалтерию, нам нужно исключить его из состава зарегистрированных объектов для обмена. Рассмотрим пример кода, который можно разместить в расширении в модуле менеджера или в подписке на событие ПриЗаписи:


Процедура ПередЗаписьюДокумента(Источник, Отказ) Экспорт
    // Проверяем значение нашего доп. реквизита
    Если Источник.ДополнительныеРеквизиты.Найти("ТолькоУпрУчет", "Свойство").Значение = Истина Тогда
        // Находим нужный план обмена (например, СинхронизацияДанныхЧерезУниверсальныйФормат)
        ПланыОбмена.УдалитьРегистрациюИзменений(УзлыОбменаБП, Источник.Ссылка);
    КонецЕсли;
КонецПроцедуры

Шаг 3. Корректировка правил выгрузки.

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

Решение 2: Использование отдельной управленческой организации

Если мы хотим обойтись без программирования, рассмотрим архитектурный подход. В УТ 11.5 создается фиктивная организация, например, "Управленческие расходы".

  1. Все "неофициальные" услуги оформляются на эту организацию документом Приобретение услуг и прочих активов.
  2. В настройках синхронизации с Бухгалтерией предприятия в фильтре по организациям мы просто не выбираем эту организацию.
  3. При этом в отчетах по валовой прибыли и себестоимости в УТ мы анализируем данные в целом по предприятию, включая расходы этой организации.

Важный нюанс: Чтобы расходы распределялись на товары, купленные на основную организацию, необходимо убедиться, что в настройках финансового результата включена опция "Учитывать себестоимость товаров по предприятию в целом", иначе система не даст распределить доп. расходы одной организации на запасы другой без документов перепродажи.

Решение 3: Фильтрация по статьям расходов

Разберем ситуацию, когда мы не хотим трогать регистрацию документов, но хотим отсечь конкретные затраты. Для этого мы можем завести специальную статью расходов (например, "Прочие расходы (УПР)").

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

Решение 4: Создание регистра исключений

Как предложили эксперты на форуме, можно создать отдельный регистр сведений ИсключенияВыгрузки. Это удобно, если логика "невыгрузки" будет применяться ко многим типам документов.

Проанализируем преимущества этого метода:

Пример проверки в коде обмена:


Функция ОбъектДолженБытьВыгружен(СсылкаОбъекта)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ 1 ИЗ РегистрСведений.ИсключенияВыгрузки ГДЕ Объект = &Объект";
    Запрос.УстановитьПараметр("Объект", СсылкаОбъекта);
    Возврат Запрос.Выполнить().Пустой();
КонецФункции

Заключение и рекомендации

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

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

← На главную