При проведении документа Отчет о розничных продажах (ООРП) в конфигурации 1С:Управление торговлей 11 разработчики и пользователи иногда сталкиваются с неприятной ситуацией: в управленческих регистрах накопления (таких как Товары на складах и Свободные остатки) характеристики товаров отражаются корректно, а в регистрах финансового и регламентированного учета (Товары организаций, Товары организация к передаче, Выручка и себестоимость продаж) подставляются ошибочные или разнящиеся характеристики.
Разберем подробно причины возникновения этой проблемы, механизм работы ключей аналитики и табличной части видов запасов, а также алгоритм действия для исправления ситуации.
Для понимания причин расхождения движений проанализируем разницу в архитектуре хранения данных управленческого и финансового учета:
Товары на складах и Свободные остатки используют прямые измерения Номенклатура и Характеристика. При проведении документа система напрямую записывает значения из табличной части «Товары».Товары организаций и Выручка и себестоимость продаж работают через свернутое косвенное измерение — справочник Ключи аналитики учета номенклатуры. Ключ аналитики представляет собой уникальную комбинацию номенклатуры, характеристики, серии и назначения.При формировании движений по финансовым регистрам программа рассчитывает и заполняет скрытую табличную часть Виды запасов. Данные из этой табличной части используются в запросах формирования движений в модуле менеджера документа (в частности, в процедуре ИнициализироватьДанныеДокумента).
Выясним причину, по которой отчет о розничных продажах подставляет разные характеристики при проведении. В типовой конфигурации распределение видов запасов базируется на остатках регистра накопления Товары организаций.
Однако при наличии кастомных доработок конфигурации или неверно внесенных изменений в модуль менеджера документа алгоритм подбора видов запасов может нарушиться. Рассмотрим частый случай из практики:
Если сторонний программист переписал запрос алгоритма заполнения видов запасов (или выборки ключей аналитики) так, что выборка происходит с ограничением ПЕРВЫЕ 1 без явного отбора по разрезу Характеристика, система будет случайно подхватывать первый попавшийся ключ аналитики для данной номенклатуры. В результате складские регистры спишут номенклатуру с верной характеристикой, а финансовые регистры — с той характеристикой, которая оказалась в выбранном ключе аналитики.
Разберем по шагам, какие действия необходимо предпринять для устранения расхождения в регистрах:
Перейдем в модуль менеджера документа ОтчетОРозничныхПродажах и найдем процедуру ИнициализироватьДанныеДокумента. Проверим пакет запросов, отвечающий за формирование видов запасов и выборку из справочника Ключи аналитики учета номенклатуры. Убедимся, что во всех связях и условиях ГДЕ присутствует жесткий отбор по характеристике:
// Пример правильного связывания таблиц по характеристикам
ИЗ ДокументТабличнаяЧасть КАК ТЧ
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
ПО ТЧ.Номенклатура = Аналитика.Номенклатура
И ТЧ.Характеристика = Аналитика.Характеристика
В документах продажи табличная часть ВидыЗапасов сохраняется физически. Если документ уже был проведен с ошибкой, простое перепроведение может не перезаполнить табличную часть, так как система посчитает ее вручную отредактированной или кэшированной. Для решения необходимо включить видимость табличной части «Виды запасов» (или выполнить программную очистку) и запустить механизм перерасчета видов запасов.
Проверим справочник Ключи аналитики учета номенклатуры. Если ранее выполнялся поиск и удаление дублей номенклатуры или характеристик без объединения ключей аналитики, в системе могли образоваться битые ссылки или дублирующие ключи. В таком случае требуется запустить стандартную обработку поиска и замены дублей ключей аналитики или выполнить регламентную процедуру обслуживания элементов аналитики в рамках закрытия месяца.
Проанализируем, не менялась ли опция «Использовать характеристики» в карточке вида номенклатуры задним числом. Изменение этого реквизита после ввода документов приводит к тому, что старые документы начинают некорректно искать ключи аналитики при перепроведении.
Таким образом, для полного исправления проблемы с движениями документа ООРП необходимо устранить ошибки в коде запросов модуля менеджера, проверить полноту группировок по характеристикам, откорректировать дубли ключей аналитики и перезаполнить табличную часть видов запасов в проблемных документах.