Почему Отчет о розничных продажах формирует некорректные проводки со счетом 42 после синхронизации?

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

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

Суть проблемы: Искажение учетной стоимости и ошибочные переоценки

Представим себе типичную ситуацию. Наш розничный магазин использует учет по продажным ценам. Это означает, что товары приходуются на счет 41 по фактической себестоимости, а торговая наценка отражается на счете 42.01. Все настроено корректно, документы поступления формируют нужные проводки, включая наценку.

Однако при формировании документа "Отчет о розничных продажах" (ОРП) мы обнаруживаем, что программа начинает делать странные вещи. Вместо того чтобы просто списать себестоимость и торговую наценку по реализованным товарам, она производит проводки, которые выглядят как переоценка, даже если цена продажи полностью совпадает с розничной ценой, установленной в системе. Это приводит к тому, что учетная стоимость товара на счете 41.11 искажается, и последующие документы, например, поступления, могут ругаться на несоответствие розничной и учетной цены.

Рассмотрим конкретный пример некорректных проводок, которые могут возникнуть при продаже:

  1. Допустим, на счете 41.11 у нас числится 5 штук товара на сумму 105 рублей (розничная цена 21 рубль за штуку).
  2. На счете 42.01 отражена торговая наценка в размере 30 рублей по этим 5 штукам.
  3. Предполагается продажа одной штуки по розничной цене 21 рубль.

Вместо ожидаемых проводок, программа может сформировать что-то подобное:


1. Дебет 90.02.1 Кредит 41.11 - на сумму 15 рублей (списание себестоимости проданного товара)
2. Дебет 41.11 Кредит 42.01 - на сумму 6 рублей (списание наценки)
3. Дебет 90.02.1 Кредит 41.11 - на сумму 6 рублей

В результате такой операции, на счете 41.11 останется 4 штуки товара на сумму 90 рублей. Если мы попытаемся рассчитать среднюю учетную цену, то получим 90 / 4 = 22,50 рубля за штуку. Изначально же цена была 21 рубль. Таким образом, учетная стоимость единицы товара "сбивается", что приводит к дальнейшим проблемам.

Особенности учета торговой наценки в 1С:Бухгалтерии 3.0

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

  1. Настройки учетной политики:

    Для ведения учета по продажным ценам необходимо установить соответствующие параметры в разделе "Главное" -> "Настройки" -> "Функциональность", а также указать способ оценки товаров в рознице в учетной политике вашего предприятия: "По продажной стоимости".

  2. Типы складов:

    Торговые точки (магазины, склады) создаются в системе с указанием типа: "розничный магазин (АТТ)" для автоматизированных торговых точек или "неавтоматизированная торговая точка (НТТ)" для неавтоматизированных. В АТТ учет ведется в разрезе номенклатуры с ежедневным отражением движения, в НТТ – данные отражаются обобщенно, без детализации по товарам. На счете 42 "Торговая наценка" могут быть открыты субсчета, например, 42.1.1 "Торговая наценка в автоматизированных торговых точках" и 42.2.2 "Торговая наценка в неавтоматизированных торговых точках".

  3. Списание торговой наценки:

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

    • В момент реализации товаров в рознице: Если в учетной политике выбрано списание наценки в момент реализации, то "Отчет о розничных продажах" формирует соответствующие проводки, списывая часть наценки со счета 42.01. Реализованная торговая наценка сторнируется проводкой Дебет 90.02 "Себестоимость продаж" Кредит 42 "Торговая наценка" (методом "красное сторно" или прямой проводкой). В АТТ при учете по продажным ценам документ "Отчет о розничных продажах" формирует проводки по списанию себестоимости и отражению выручки. Если в документе есть безналичные оплаты, то также формируются проводки по счету 57.03 и 62.Р.
    • В момент выполнения регламентной операции "Расчет торговой наценки по проданным товарам" в конце месяца: Если списание происходит в конце месяца, то ОРП не должен двигать счет 42, а лишь отражать выручку и списание себестоимости.

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

Диагностика и поиск причин некорректных проводок

Чтобы найти корень проблемы, предлагаем последовательно выполнить следующие шаги.

  1. Проверка общих настроек учета:

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

    • Учетная политика: Убедитесь, что в вашей учетной политике для розничной торговли установлен способ оценки товаров "По продажной стоимости" и корректно выбран момент списания торговой наценки. Перейдите в раздел "Главное" -> "Учетная политика" -> вкладка "Запасы" и проверьте параметр "Способ оценки товаров в рознице".
    • Тип склада: Проверьте, что для вашего розничного магазина установлен правильный тип склада: "розничный магазин (АТТ)". Это важно для корректного ведения количественно-суммового учета.
    • Цены номенклатуры: Убедитесь, что розничные цены установлены для всех товаров и актуальны на дату продажи. Используйте регистр сведений "Цены номенклатуры" (раздел "Склад" -> "Цены номенклатуры"). Проанализируйте последнее значение цены к дате продажи.
    • Последовательность проведения документов: Всегда проверяйте последовательность проведения документов за период. Нарушение последовательности может привести к некорректным остаткам и, как следствие, к ошибочным расчетам. Попробуйте последовательно перепровести все документы от покупки до продажи.
    • Партионный учет: Проверьте, не включен ли у вас партионный учет (наличие субконто "Партии" на счете 41.11). В некоторых релизах этот алгоритм учета мог давать сбои.
  2. Тестирование и исправление информационной базы (Т1ИБ):

    Иногда причиной "блуждающих" ошибок могут быть повреждения данных в регистрах, например, развалившиеся остатки бухгалтерского регистра. Такое может произойти при изменении плана счетов или обновлениях. Запустите тестирование и исправление информационной базы через конфигуратор или с помощью утилиты chdbfl. Обратите внимание на сообщения о "пустых" или "неопределенных" значениях, которые могут быть установлены вместо NULL в неиспользуемых признаках.

  3. Ключевое наблюдение: Разница между ручным вводом и синхронизацией:

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

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

  4. Основная гипотеза: Скрытые реквизиты в табличной части "Товары":

    Чаще всего, при синхронизации из сторонних программ (например, 1С:Розница) в табличной части "Товары" документа "Отчет о розничных продажах" могут заполняться скрытые или служебные реквизиты, которые не видны пользователю, но влияют на алгоритмы проведения. Наиболее вероятным виновником является реквизит Себестоимость.

    Если поле Себестоимость в табличной части товаров документа ОРП заполнено (даже если оно невидимо), программа будет пытаться списать товар именно по этой указанной себестоимости, а не по стандартному алгоритму (например, среднескользящей или ФИФО), который она применяет для товаров на счете 41.11. Это может приводить к расхождениям и "ломать" учетную стоимость, вызывая эффект "переоценки" и ошибочное движение по счету 42, когда его не должно быть.

Как проверить и устранить проблему со скрытыми реквизитами

Чтобы подтвердить гипотезу о некорректном заполнении скрытых реквизитов, выполним следующие действия:

  1. Использование консоли запросов:

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

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

    
    ВЫБРАТЬ
        Док.Ссылка,
        Док.Номер,
        Док.Дата,
        Товары.Номенклатура,
        Товары.Количество,
        Товары.Цена,
        Товары.Сумма,
        Товары.Себестоимость  // Этот реквизит особенно важен
    ИЗ
        Документ.ОтчетОРозничныхПродажах КАК Док
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.Товары КАК Товары
            ПО Док.Ссылка = Товары.Ссылка
    ГДЕ
        Док.Ссылка В (&СсылкаДокументаИзОбмена, &СсылкаДокументаРучного)
            И Товары.Номенклатура = &НужнаяНоменклатура
            // Можно добавить другие условия, если нужно
    

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

  2. Отладка проведения документа:

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

Решение проблемы

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

  1. Настройка правил обмена:

    Наиболее правильным решением является корректировка правил обмена данными между 1С:Розница и 1С:Бухгалтерия. Необходимо изменить или дополнить правила таким образом, чтобы при выгрузке документа "Отчет о розничных продажах" из Розницы и загрузке его в Бухгалтерию, реквизит Себестоимость (или любые другие, которые не должны влиять на автоматический расчет себестоимости в БП) в табличной части "Товары" оставался незаполненным или был очищен.

    В типовых конфигурациях 1С для обмена используются объекты конфигурации "Конвертация данных", "Универсальный обмен данными XML". Вам потребуется доступ к этим правилам (файлам формата .xml) и, возможно, помощь специалиста, если вы не знакомы с их редактированием.

  2. Пост-обработка загруженных документов:

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

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

    Пример кода для очистки реквизита в табличной части документа (в рамках обработки):

    
    &НаСервере
    Процедура ОчиститьСебестоимостьВДокументах()
    
        Запрос = Новый Запрос;
        Запрос.Текст = 
            "ВЫБРАТЬ
            |    ОтчетОРозничныхПродажах.Ссылка
            |ИЗ
            |    Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
            |ГДЕ
            |    ОтчетОРозничныхПродажах.Проведен = ЛОЖЬ
            |    И ОтчетОРозничныхПродажах.Комментарий ПОДОБНО ""%Загружен из Розницы%"" // Пример фильтрации по комментарию обмена";
    
        Выборка = Запрос.Выполнить().Выбрать();
    
        Пока Выборка.Следующий() Цикл
            ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект();
    
            // Проверяем, есть ли табличная часть Товары
            Если ДокументОбъект.Метаданные().ТабличныеЧасти.Найти("Товары") <> Неопределено Тогда
                Для Каждого СтрокаТЧ Из ДокументОбъект.Товары Цикл
                    // Проверяем, есть ли реквизит Себестоимость в строке табличной части
                    Если СтрокаТЧ.Метаданные().Реквизиты.Найти("Себестоимость") <> Неопределено Тогда
                        // Очищаем значение себестоимости
                        СтрокаТЧ.Себестоимость = 0; 
                    КонецЕсли;
                КонецЦикла;
            КонецЕсли;
    
            Попытка
                ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
            Исключение Как Искл
                Сообщить("Не удалось провести документ " + ДокументОбъект.Номер + " от " + ДокументОбъект.Дата + ": " + Искл.Описание);
            КонецПопытки;
    
        КонецЦикла;
    
    КонецПроцедуры
    

    Важно: Всегда делайте резервные копии базы перед внесением изменений в правила обмена или код конфигурации.

Дополнительные рекомендации

Для предотвращения подобных ситуаций и обеспечения стабильного учета рекомендуем:

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

← На главную