При переходе на использование характеристик в конфигурации 1С:Управление производственным предприятием (УПП) ред. 1.3 пользователи часто сталкиваются с неприятной ситуацией: старые партии товаров, которые были оприходованы без характеристик, а затем «наделены» ими через корректировки, перестают принимать на себя дополнительные расходы. Система выдает жесткую ошибку о том, что товар с указанной характеристикой не найден в исходном документе поступления. Разберем детально, почему так происходит, и какие пути решения существуют для исправления этой ситуации в рамках типового функционала и небольших доработок.
Проанализируем механизм работы документа Поступление доп. расходов. В 1С:УПП, если используется партионный учет, этот документ выполняет проверку не только по регистрам накопления (остаткам), но и проводит логическую сверку с табличной частью документа, который указан в колонке Документ партии. Выясним причину ошибки:
Корректировка серий и характеристик товаров, система делает движения по регистру Партии товаров на складах: она списывает количество без характеристики и приходует то же количество, но уже с характеристикой.Поступление товаров и услуг) остается прежним. В его табличной части характеристика как была пустой, так и осталась.Поступление доп. расходов программа «заглядывает» внутрь этого первичного документа. Видя там пустую характеристику, она не может сопоставить её с той характеристикой, которую вы указали в доп. расходах, и выдает ошибку: «Не найден в документе... товар... х-ка: [Ваша характеристика]».Таким образом, мы видим конфликт между актуальным состоянием регистра (где характеристика есть) и историческим состоянием первичного документа (где её нет). Для системы УПП это является нарушением целостности партионного учета.
Рассмотрим наиболее корректный с точки зрения методологии 1С способ решения проблемы. Если нам нужно изменить аналитику товара (добавить характеристику) так, чтобы на него можно было вешать доп. расходы, мы должны использовать документ, который сам является партиообразующим.
Проанализируем шаги выполнения этой операции:
Корректировка серий и характеристик товаров используем документ Комплектация номенклатуры.Партии товаров на складах появляется новая партия, где документом-источником выступает сама Комплектация номенклатуры.Поступление доп. расходов в качестве документа партии мы выбираем именно эту Комплектацию.В этом случае проверка пройдет успешно, так как в табличной части комплектации характеристика заполнена, и система увидит полное соответствие аналитики. Это «чистый» способ, не требующий программирования, однако он увеличивает количество документов в базе.
Если «Комплектация» по каким-то причинам не подходит (например, при очень больших объемах данных), рассмотрим вариант с инвентаризацией. Посмотрим на алгоритм:
Списание товаров для позиций без характеристик.Оприходование товаров для тех же позиций, но уже с указанием характеристик.Поступление доп. расходов указываем в качестве партии документ Оприходование товаров.Важный нюанс: при оприходовании важно правильно указать себестоимость (цену), чтобы не исказить финансовый результат. Этот метод удобен, если переход на характеристики осуществляется глобально в рамках инвентаризации склада.
Если документов очень много и период еще не закрыт (или есть возможность его открыть), некоторые администраторы баз данных прибегают к «силовому» методу. Выясним, в чем он заключается.
С помощью групповой обработки или небольшого скрипта характеристики проставляются непосредственно в старые документы Поступление товаров и услуг. Рассмотрим пример логики обработки на языке 1С:
// Пример упрощенной логики для обработки
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.ПоступлениеТоваровУслуг ГДЕ Дата МЕЖДУ &Начало И &Конец";
// ... установка параметров ...
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
ОбъектДок = Результат.Ссылка.ПолучитьОбъект();
Для Каждого СтрокаТЧ Из ОбъектДок.Товары Цикл
Если СтрокаТЧ.Номенклатура = ИскомаяНоменклатура И ЗначениеНеЗаполнено(СтрокаТЧ.ХарактеристикаНоменклатуры) Тогда
СтрокаТЧ.ХарактеристикаНоменклатуры = НужнаяХарактеристика;
КонецЕсли;
КонецЦикла;
ОбъектДок.Записать(РежимЗаписиДокумента.Проведение);
КонецЦикла;
Внимание! Этот метод крайне опасен. Перепроведение старых документов может «развалить» последовательность партионного учета, изменить суммы НДС в прошлых периодах и привести к непредсказуемым результатам в расчете себестоимости. Используйте его только в крайнем случае на копии базы и только в открытом периоде.
В ходе обсуждения часто возникает вопрос: «А почему бы не использовать механизм Качества (Новое, Брак, Б/У)?». Проанализируем разницу:
Корректировка качества) не создает новую партию в классическом понимании для доп. расходов, если учет ведется по средней. Но главное — у серий и качества себестоимость в УПП часто общая (в зависимости от настроек), а характеристики позволяют жестко разделить себестоимость.Подведем итоги нашего анализа. Проблема в УПП 1.3 заключается в жесткой привязке документа Поступление доп. расходов к содержимому табличных частей документов партий.
Для решения задачи рекомендуем придерживаться следующей стратегии:
Корректировка серий и характеристик в тех случаях, когда планируется последующее распределение затрат на эти товары, так как этот документ предназначен для изменения аналитики остатков, а не для трансформации партии.Помните, что архитектура УПП 1.3 была спроектирована более 15 лет назад, и многие проверки в коде (ОбщегоНазначения.ПроверитьСоответствиеАналитики...) написаны с расчетом на неизменность первичного документа партии.