При ведении учета в конфигурации «1С:Управление торговлей 11» переход на новую версию партионного учета (с версии 2.1 на версию 2.2) нередко сопровождается некорректным расчетом финансовых показателей. Типичная ситуация: в месяце, непосредственно предшествующем дате перехода, документ Расчет себестоимости товаров формирует заниженную стоимость списания в регистре ВыручкаИСебестоимостьТоваров (или ВыручкаИСебестоимостьПродаж). В результате в отчете по валовой прибыли себестоимость продаж оказывается заниженной (например, в два раза), а расчетная прибыль — завышенной, тогда как по количественным остаткам расхождений не наблюдается. Разберем детально, почему это происходит и как правильно нормализовать учетные данные.
Для понимания природы сбоя проанализируем, как механизм расчета себестоимости распределяет затраты и партии:
Расчет себестоимости товаров больше не аккумулирует все суммовые проводки внутри себя. Он производит расчет узлов СЛАУ (системы линейных уравнений) и выполняет прямую запись сумм в первичные документы (РеализацияТоваровУслуг, ПеремещениеТоваров и др.) с установкой служебного признака РасчетСебестоимости = Истина. Если пересчитывать предшествующий период без предварительной очистки этих расчетных движений, старые записи накладываются на новые, вызывая искажение себестоимости.ВидыЗапасов. Если наименование вида запасов содержит поставщика, но ссылка на партнера/контрагента в реквизите Поставщик пуста или содержит «битую» ссылку, система не может изолировать партию. Стоимостной остаток размывается между документами расхода, что приводит к кратному занижению себестоимости списания.Перед исправлением документов необходимо выяснить масштаб проблемы. Рассмотрим, какие шаги проверки следует выполнить:
СебестоимостьТоваров, ПартииТоваровОрганизаций и ВыручкаИСебестоимостьТоваров. Если в регистрах остатков списание прошло по корректной учетной цене, а в регистре выручки стоимость закупки уменьшена, проблема кроется в распределении по ключам видов запасов.ВидыЗапасов. Выявим дубли, помеченные на удаление элементы и строки с незаполненным реквизитом поставщика при включенном раздельном учете.Разберем регламент исправления данных, позволяющий вернуть корректный расчет себестоимости и валовой прибыли.
Расчет себестоимости товаров и Распределение доходов и расходов за все месяцы, начиная с месяца перехода на партионный учет 2.2 и далее до текущей даты.СтоимостьТоваров и движениям документов реализации, чтобы исключить наложение старых суммовых остатков.ВидыЗапасов, исключив дубли и восстановив соответствие реквизита Поставщик. Если обособление по поставщикам фактически не требуется, отключим соответствующую опцию в настройках номенклатуры и запасов.Для локализации проблемных позиций при расчете себестоимости разработчики могут использовать служебный параметр ПараметрыОтладки, который передается в процедуру РасчетСебестоимости.РассчитатьВсе().
Важно помнить: расчет себестоимости в 1С выполняется интегральным методом для всей базы за расчетный месяц целиком через решение СЛАУ, поэтому изолировать расчет ровно по одной номенклатурной позиции в штатном алгоритме невозможно. Однако через структуру ПараметрыОтладки можно переопределить поведение процедуры для удобства анализа в конфигураторе:
ПараметрыОтладки = Новый Структура;
// Отключаем фоновое выполнение для пошаговой отладки в одном потоке:
ПараметрыОтладки.Вставить("МаксимальноеКоличествоФЗ", 1);
ПараметрыОтладки.Вставить("ВыполнятьВФоне", Ложь);
// Указываем каталог для выгрузки расчетных матриц и СЛУ:
ПараметрыОтладки.Вставить("КаталогДляСохраненияДанныхСЛУ", "C:\Temp\CostDebug\");
// Передаем параметры в общий модуль расчета себестоимости
РасчетСебестоимости.РассчитатьВсе(ПараметрыРасчета, ПараметрыОтладки);
Выгрузка данных СЛУ позволяет в текстовом виде проанализировать узлы графа товародвижения, весовые коэффициенты распределения стоимости и выявить, на каком именно этапе узлы распределения видов запасов получают искаженные коэффициенты.