Как исправить ошибку «Объект не найден» в поле «Тип цен» при выгрузке поступлений из 1С:Розница в 1С:Бухгалтерию?

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

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

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

---

Почему возникает ошибка: анализируем механизм обмена

Для начала разберемся, откуда в 1С:Бухгалтерии берется значение типа цен, если в исходном документе в 1С:Рознице его нет. При типовом обмене конфигурация-источник («Розница») пытается передать в базу-приемник информацию, необходимую для заполнения всех обязательных реквизитов.

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

  1. В 1С:Рознице за каждым магазином закреплено определенное Правило ценообразования.
  2. Внутри этого правила ценообразования указан конкретный вид цен (например, «Розничная цена магазина»).
  3. При выгрузке документа поступления обработка обмена обращается к магазину, берет из его правила ценообразования ссылку на этот вид цен и пытается передать её в БП.
  4. В 1С:Бухгалтерии эта ссылка должна сопоставиться с элементом справочника Типы цен номенклатуры.

Если на стороне БП соответствующий тип цен еще не создан, или если при выгрузке передается только уникальный идентификатор (GUID) без самого объекта, БП записывает в поле документа «битую» ссылку. Документ без правильно заполненного типа цен провести невозможно.

Еще одна частая причина сбоев — рассинхронизация версий правил обмена. Конфигурации 1С:Розница и 1С:Бухгалтерия обновляются с разной периодичностью. Если в одной из баз используются устаревшие правила конвертации, в процессе загрузки могут возникать ошибки формата:

Поле объекта не обнаружено (РедактированиеТолькоВДиалоге) ---

Способ 1. Обновление и выравнивание правил обмена (Рекомендуемый способ)

Самое простое и правильное решение, не требующее изменения программного кода, — актуализация правил конвертации данных. Программа «1С:Бухгалтерия» обычно содержит в себе наиболее свежие и доработанные правила для обмена со смежными конфигурациями.

Выполним следующие шаги для выравнивания правил:

  1. Найдем актуальные файлы правил обмена. Они находятся в каталоге шаблонов установленной конфигурации 1С:Бухгалтерия на вашем компьютере. Обычно путь выглядит так:
    .../1c/Accounting/[Номер_Текущей_Версии_БП]/Обмены данными/Обмен с конфигурацией Розница, ред. 2/.... Нам понадобится файл правил конвертации (обычно с расширением .xml).
  2. Откроем информационную базу 1С:Розница.
  3. Перейдем в раздел Администрирование -> Синхронизация данных -> Настройки синхронизации.
  4. Выберем нашу настройку обмена с БП, откроем ее и найдем пункт загрузки правил обмена (в зависимости от версии это может быть меню «Параметры синхронизации данных» -> «Загрузить правила конвертации»).
  5. Укажем путь к сохраненному файлу .xml из каталога шаблонов БП и выполним загрузку.
  6. Сохраним настройки и повторим обмен данными.

После обновления правил в БП автоматически создастся тип цен, имя которого будет соответствовать правилу ценообразования из Розницы. Этот тип цен корректно подставится в документ Поступление товаров, и документ проведется.

---

Способ 2. Проверка учетной политики и цен номенклатуры

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

В этом случае БП при проведении поступления обязана рассчитать торговую наценку. Для этого ей жизненно необходима розничная (продажная) цена товара. Если в Рознице цена на поступивший товар не была установлена, или эти данные не передались при обмене, проведение заблокируется.

Выполним проверку по шагам:

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

---

Способ 3. Изменение правил обмена в Конвертации Данных (Для программистов)

Если вам требуется, чтобы в документы поступления в БП всегда жестко подставлялся один и тот же тип цен (например, «Закупочная»), вне зависимости от правил ценообразования в Рознице, можно точечно доработать правила обмена с помощью конфигурации 1С:Конвертация данных 2.1.

Рассмотрим алгоритм изменения правил:

  1. Загрузим правила обмена в базу «Конвертация данных».
  2. Найдем Правило Конвертации Свойств (ПКС) для реквизита ТипЦен документа ПоступлениеТоваровУслуг.
  3. В обработчике события Перед выгрузкой закомментируем стандартный код, который пытается вытащить вид цены через магазин: // Значение = Источник.Магазин.ПравилоЦенообразования;
  4. В обработчике события После выгрузки (или непосредственно переопределив значение) пропишем поиск конкретного типа цен по наименованию в БП:
    
    Значение = СправочникСсылка.ТипыЦенНоменклатуры.НайтиПоНаименованию("Закупочная", Истина);
    
  5. Сохраним измененные правила, выгрузим их в файл и загрузим в настройку синхронизации в 1С:Рознице, как описано в Способе 1.

Обратите внимание: Перед проведением обмена с измененными правилами рекомендуется протестировать их работу на копиях баз или на одном тестовом документе, предварительно создав резервную копию (бэкап) исходных правил обмена.

← На главную