Почему в 1С:УТ 11.4 отсутствуют движения по регистру «Себестоимость товаров» в документе «Возврат от клиента»?

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

При работе в связке 1С:Розница 2.2/2.3 и 1С:Управление торговлей 11.4 пользователи часто сталкиваются с неприятной ситуацией. После выполнения обмена данными документ Возврат товаров от клиента создается в УТ, успешно проводится и делает движения по складским регистрам (товар снова появляется на остатках). Однако при попытке закрытия месяца система выдает ошибку об отрицательных остатках в суммовом выражении или о невозможности рассчитать себестоимость. При детальном анализе выясняется, что документ возврата не сделал записей в регистр накопления Себестоимость товаров.

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

Выясним причину: почему движения по себестоимости отсутствуют?

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

Проанализируем три основных способа, которые заложены в логику программы:

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

Проблема при обмене заключается в том, что в Рознице возврат часто привязан к документу Чек ККМ. В УТ же Чек ККМ является «эфемерным» объектом: после закрытия смены чеки архивируются, а данные попадают в Отчет о розничных продажах. Если правила обмена не находят актуальную ссылку на документ продажи в УТ, поле ДокументПродажи остается пустым, а СпособОпределенияСебестоимости не заполняется корректно. В результате документ «не видит» источника стоимости и не делает записей в регистр Себестоимость товаров.

Способ 1. Ручное исправление и переинициализация документа

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

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

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

Способ 2. Программная автоматизация через расширение

Если возвраты прилетают из обмена регулярно и в больших объемах, ручная правка невозможна. Проанализируем, как можно автоматизировать процесс. Лучшим решением будет создание расширения, которое будет заполнять нужные реквизиты в процедуре ПередЗаписью или ОбработкаПроведения.

Рассмотрим пример кода, который проверяет заполнение способа определения себестоимости и, если он пуст, устанавливает его принудительно. Это позволит избежать «пустых» движений.


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

Важный момент: использование способа РавныйСтоимостиВЭтомДокументе требует, чтобы в документе была указана цена. В розничных возвратах она обычно заполнена, поэтому система сможет взять её за основу себестоимости.

Способ 3. Проверка регистров и влияние закрытия месяца

Разберем ситуацию, когда движения в регистре Себестоимость товаров вроде бы есть, но только количественные. Это нормальное поведение для УТ 11.4, если в учетной политике настроен «ФИФО (скользящая оценка)» или если расчет себестоимости выполняется раз в месяц.

Проанализируем связь регистров:

Если при закрытии месяца возникает ошибка «Отрицательный остаток по регистру Себестоимость товаров (Раздел учета: Товары на складах)», это означает, что система не нашла, по какой стоимости «приходовать» возврат. Именно заполнение реквизита СпособОпределенияСебестоимости решает эту проблему, так как оно явно указывает алгоритму расчета, откуда брать цифры.

Рекомендации по обновлению и правилам обмена

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

Если вы столкнулись с этой проблемой, мы рекомендуем:

  1. Обновить 1С:Розница до актуального релиза (ветка 2.3). Пользователи отмечают, что в новых правилах обмена ссылка на ДокументОснование (в виде Отчета о розничных продажах) передается корректно.
  2. Проверить настройки обмена. Убедитесь, что Отчеты о розничных продажах перегружаются раньше или одновременно с возвратами.
  3. Если обновление невозможно, используйте вышеописанный код в расширении для автоматического заполнения Способа определения себестоимости.

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

← На главную