Почему при обмене из УТ 10.3 в БП 3.0 не заполняются склад, счета учета и виды номенклатуры?

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

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

Проблема 1. Не заполняется поле Склад в документах поступления

Первым делом проанализируем настройки самой программы 1С:Бухгалтерия предприятия 3.0. Если в базе ведется учет только по одному складу, поле Склад может быть скрыто или игнорироваться. Проверьте в разделе Настройки — Параметры учета — Настройки методологии учета, установлен ли флаг «Вести складской учет» и «По нескольким складам».

Если настройки верны, но склад всё равно не переносится, проблема кроется в правилах конвертации данных (КД 2.0). В типовых правилах 1С объекты сопоставляются по внутренним идентификаторам (GUID). Если вы меняли правила (например, настраивали поиск контрагентов по ИНН), вы могли случайно нарушить логику поиска других объектов.

Выясним причину на уровне правил конвертации. В конфигурации Конвертация данных 2.0 найдем ПКО (Правило конвертации объекта) для документа ПоступлениеТоваровУслуг. Часто в БП 3.0 для корректной работы требуется заполнение не только основного реквизита Склад, но и дополнительного — СкладОрдер (особенно если используется ордерная схема или специфические виды операций).

Решение: Добавьте в ПКО документа ПоступлениеТоваровУслуг соответствие для реквизита СкладОрдер, направив в него данные из источника Склад. Это гарантирует, что при загрузке механизм БП подхватит значение склада вне зависимости от режима документа.

Проблема 2. Не заполняются счета учета расчетов и номенклатуры

Это одна из самых распространенных проблем. При загрузке данных через механизм обмена устанавливается флаг ОбменДанными.Загрузка = Истина. Это отключает стандартные обработчики событий «ПриИзменении» на формах и в модулях объектов, которые в обычном режиме (при ручном вводе) отвечают за подстановку счетов учета из регистров сведений.

Для решения этой задачи нам необходимо принудительно вызвать процедуру заполнения счетов в обработчике события ПослеЗагрузки в правилах конвертации объекта (ПКО) документа.

Разберем программный код, который нужно добавить в ПКО документа ПоступлениеТоваровУслуг (событие ПослеЗагрузки):


// Устанавливаем признак необходимости заполнения счетов перед записью
Объект.ДополнительныеСвойства.Вставить("ЗаполнитьСчетаУчетаПередЗаписью", Истина);

// Вызываем стандартный механизм заполнения счетов для БП 3.0
СчетаУчетаВДокументах.ЗаполнитьПередЗаписью(Объект, РежимЗаписиДокумента.Запись);

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

Проблема 3. Вид номенклатуры остается пустым

Посмотрим на ситуацию, когда в справочнике Номенклатура в БП 3.0 поле Вид номенклатуры остается незаполненным. В УТ 10.3 вид номенклатуры — это важный справочник, который определяет, является ли позиция товаром, услугой или набором. В БП 3.0 от вида номенклатуры напрямую зависят счета учета (41.01, 10.01, 20.01 и т.д.).

Проанализируем причины:

  1. Несовпадение наименований. Если в правилах настроен поиск вида номенклатуры по наименованию, то даже лишний пробел или разный регистр букв («Товар» и «товар») приведет к тому, что объект не будет найден и поле останется пустым.
  2. Отсутствие выгрузки объекта. Иногда в правилах ПКС (Правила конвертации свойств) для реквизита ВидНоменклатуры не стоит галочка «Выгружать объект целиком».

Что нужно сделать: Во-первых, приведите наименования видов номенклатуры в обеих базах к идентичному виду. Во-вторых, в ПКО Номенклатура для свойства ВидНоменклатуры в событии ПередВыгрузкой можно прописать принудительную выгрузку:

ВыгрузитьОбъект = Истина;

Также проверьте ПКО самого справочника ВидыНоменклатуры. Убедитесь, что поиск настроен правильно — по наименованию, если GUID-ы в базах заведомо разные.

Проблема 4. Заполнение способа зачета авансов

В конфигурации Управление торговлей 10.3 в документах поступления отсутствует реквизит СпособЗачетаАвансов, так как там логика расчетов строится иначе. В Бухгалтерии 3.0 этот реквизит обязателен для корректного формирования проводок. Если он не заполнен, программа может не зачесть аванс поставщику автоматически.

Поскольку в источнике данных нет, мы должны установить его значение по умолчанию при загрузке в БП 3.0. В ПКО документа в обработчике ПослеЗагрузки добавим следующую строку:


Если Объект.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.ПустаяСсылка() Тогда
    Объект.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически;
КонецЕсли;

Подведем итоги

Для корректного обмена между УТ 10.3 и БП 3.0 недостаточно просто сопоставить поля. Необходимо учитывать специфику «движка» Бухгалтерии, который сильно опирается на автоматическое заполнение при записи. Основные инструменты решения проблем:

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

← На главную