При сопровождении типовых обменов на базе Конвертации данных 2.1 специалисты часто сталкиваются с ситуацией, когда после очередного обновления конфигурации-приемника (чаще всего это 1С:Бухгалтерия предприятия 3.0) отлаженный годами обмен начинает давать сбои. Типичный симптом: документ (например, Поступление (акт, накладная, УПД)) создается в базе, но выглядит совершенно пустым, либо в нем отсутствует Организация, хотя в файле выгрузки данные присутствуют. Рассмотрим подробно, почему это происходит и как исправить правила конвертации.
Проанализируем ситуацию: часто загрузка документа инициируется не напрямую, а «по ссылке». Например, сначала загружается Счет-фактура полученный, который содержит ссылку на Документ-основание (наше Поступление). Механизм Конвертации данных видит ссылку, ищет соответствующее Правило конвертации объекта (ПКО) и начинает загрузку документа.
Если в процессе заполнения реквизитов объекта происходит критическая ошибка (несоответствие типов данных или неудачная попытка записи зависимого справочника), платформа может создать «пустую болванку» объекта. Выясним причину, по которой стандартные механизмы заполнения 1С не срабатывают в этот момент. При загрузке через КД 2.1 всегда устанавливается признак DataExchange.Load = True. Это отключает большинство проверок и стандартный обработчик ОбработкаЗаполнения. Рассмотрим фрагмент кода, который часто пытаются использовать для отладки в модуле объекта:
Если ЕстьРеквизитОрганизация И НЕ ЗначениеЗаполнено(ДокументОбъект.Организация) Тогда
ОсновнаяОрганизация = БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию("ОсновнаяОрганизация");
Справочники.Организации.ПроверитьНаличиеОрганизацииПриОднофирменномУчете(ОсновнаяОрганизация);
ДокументОбъект.Организация = ОсновнаяОрганизация;
КонецЕсли;
Этот код не сработает автоматически при загрузке, так как событие заполнения игнорируется. Если Организация не пришла из файла или не была найдена по полям поиска, она останется пустой.
Разберем основной «подводный камень» последних релизов 1С:Бухгалтерия предприятия 3.0. Фирма «1С» провела рефакторинг метаданных в части учета НДС. Ранее во всех объектах использовалось перечисление СтавкиНДС. В новых версиях в справочнике Номенклатура реквизит СтавкаНДС теперь ссылается на новое перечисление — ВидыСтавокНДС.
В то же время, в табличных частях документов реквизиты могут по-прежнему использовать старое перечисление СтавкиНДС. Рассмотрим, как это ломает обмен:
Поступление система начинает заполнять табличную часть Товары.Номенклатура.СтавкиНДС в СтавкиНДС), то при попытке записать значение в поле, которое теперь ожидает тип ВидыСтавокНДС, происходит тихая ошибка или подстановка пустого значения.Для решения проблемы нам необходимо внести изменения в настройки ПКС в конфигурации Конвертация данных 2.1. Выполним следующие действия:
Номенклатура.СтавкаНДС.ПеречислениеСсылка.ВидыСтавокНДС, нам нужно создать новое ПКО для этого перечисления.СтавкиНДС, Приемник — ВидыСтавокНДС. Настроим соответствие значений (например, «18%» -> «НДС18», «20%» -> «НДС20» и так далее).Важный момент: не путайте ставку в справочнике и ставку в документе. В табличной части документа (например, Поступление.Товары.СтавкаНДС) тип может оставаться прежним. Проверьте это в конфигураторе приемника перед правкой правил.
Если после исправления ставок НДС организация всё равно не заполняется, проанализируем порядок следования свойств в ПКС. В КД 2.1 свойства заполняются строго сверху вниз.
Посмотрим на пример настройки свойств документа:
ДатаНомерОрганизация (должна быть в начале, так как от нее зависят другие реквизиты)СкладДоговорКонтрагента (зависит от организации, поэтому должен стоять ниже)Если ДоговорКонтрагента загружается раньше Организации, и в ПКО договора настроен поиск, это может вызвать коллизии. Рекомендуем переместить Организацию выше в списке свойств. Также убедитесь, что в ПКО Организации включены флаги «Поиск по коду» или «Поиск по ИНН/КПП», и эти данные идентичны в обеих базах.
После внесения изменений выполним следующие шаги для проверки:
Универсальный обмен данными в формате XML (или в соответствующий узел обмена).Организация и корректно ли установилась СтавкаНДС в карточке Номенклатуры.Таким образом, внимательный анализ метаданных обновленной конфигурации и своевременная коррекция типов перечислений в правилах КД 2.1 позволяют быстро восстановить работоспособность обмена без перехода на сложные механизмы EnterpriseData.