Компьютерные уроки для начинающих
  • Главная
  • Программы
  • Как найти ошибку при переносе данных. Пример правила конвертации объектов Не замещать найденные объекты при загрузке

Как найти ошибку при переносе данных. Пример правила конвертации объектов Не замещать найденные объекты при загрузке

Доброго времени суток, уважаемые читатели блога . Раньше на этом сайте уже была опубликована статья о конвертации
, в этой статье было показано,
как можно настроить обмен, используя конструкторы, с помощью которых создаются правила обмена.
Этот способ можно используется при конвертации баз из 1С версии 7.7 в 8.2.
Сейчас мы поговорим, как переносить данные между конфигурациями 1С 8.2, которые несколько отличаются друг от друга.

Основное внимание в этой статье будет уделено конвертации табличной части документа, а это значит, что
мы будем работать с правилами конвертации группы свойств — ПКГС .

Подготовка к настройке ПКГС — правил конвертации группы свойств

Мы будем переносить документ «ПоступлениеТоваровУслуг», который имеет отличия в реквизите СтавкаНДС табличной части «Товары»
в базе источнике и приёмнике. В базе источнике этот реквизит имеет тип «СправочникСсылка.СтавкиНДС»,
а в базе приёмнике — тип «ПеречислениеСсылка.СтавкиНДС».

Кстати, для удобства можно определить

Кроме того, в базе приёмнике нам необходимо заполнять реквизит «СчетУчетаБУ», который также находится
в табличной части «Товары» документа «ПоступлениеТоваровУслуг». Данные для заполнения мы возьмём из реквизита «СчетУчетаБУ»
справочника «Номенклатура» базы приёмника.

Ситуация осложняется тем, что мы будем работать с табличной частью, поэтому нужно настраивать
правила конвертации группы свойств — ПКГС . Нам нужно будет обращаться к текущей строке табличной части.

Создание правил конвертации группы свойств 1С

У нас уже разработаны правила конвертации для документа «ПоступлениеТоваровУслуг».

Но для табличной части «Товары» нет правила конвертации свойства «СтавкиНДС».
Нужно добавить новое правило конвертации свойств, нажав на кнопку «Синхронизация свойств…».

Появится диалог «Настройка правил конвертации свойств (ПоступлениеТоваровУслуг)».

Нужно повторить то, что сделано на изображении и нажать кнопку «ОК».

Хотя мы создали правило конвертации для группы свойств , но пока оно не готово.
Помните, что реквизиты табличной части «СтавкиНДС» отличаются типами значений.
В базе источнике этот реквизит имеет тип «СправочникСсылка.СтавкиНДС»,
а в базе приёмнике — тип «ПеречислениеСсылка.СтавкиНДС». Здесь нам не хватает правила
конвертации из справочника в перечисление.

Обработчики событий для правил конвертации группы свойств

Чтобы настроить конвертацию свойства правильно, нужно создать новое правило конвертации объектов.

В появившемся диалоге указываем, что справочник «СтавкиНДС» конвертируется в перечисление с таким же названием.

Никаких правил конвертаций свойств для этого правила не будет.
Поэтому при сохранении этого правила, в появившемся диалоге выберем «Нет».

В диалоге с вопросом «Создать правила выгрузки данных?» тоже выберем «Нет».

Двойным нажатием откроем диалог с настройкой правила конвертации объекта (ПКО) «СтавкиНДС».
Здесь на закладке «Обработчики событий» выберем событие «При выгрузке» и определим «Источник» и
«УзелСсылки», то есть то, что будет переносится.

Если Источник. Ставка = 0 Тогда
УзелСсылки = «Ставка0» ;
ИначеЕсли Источник. Ставка = 12 Тогда
УзелСсылки = «Ставка12» ;
ИначеЕсли Источник. Наименование = «без НДС» Тогда
УзелСсылки = «БезНДС» ;
КонецЕсли ;

После написания обработчика нажимаем кнопку «ОК».

В информации по обработчикам:

Источник — Произвольный — выгружаемый объект источник (ссылка или произвольные данные).
УзелСсылки — инициализированный xml-узел ссылки. Может использоваться,
например, для инициализации свойств других объектов.

Теперь явно укажем использование этого правила конвертации объекта при выгрузке реквизита «СтавкаНДС».
Преходим на закладку «Конвертация свойств (*)» документа «ПоступлениеТоваровУслуг» и открываем конвертацию
группы свойств «Товары», два раза щёлкаем на свойстве «СтавкиНДС» и в открывшемся диалоге, в поле «Правило»
выбираем правило конвертации объекта «СтавкаНДС».

Нажимаем кнопку «ОК».

Теперь нам осталось установить счета учёта в соответствии с теми значениями, которые определены для номенклатуры.
Перейдём на закладку «Правила конвертации объектов», найдём объект «ПоступлениеТоваровУслуг» и
двойным нажатием на нём откроем диалог правил конвертации объектов (ПКО).
Перейдём на закладку «Обработчики событий» на событие «После загрузки» и напишем следующее:

Для каждого СтрокаТЧ Из Объект. Товары Цикл
СтрокаТЧ. СчетУчетаБУ = СтрокаТЧ. Номенклатура. СчетУчетаБУ;
КонецЦикла ;

Теперь загрузим эти правила в источнике, используя внешнюю обработку «Универсальный обмен данными в формате XML» — «V8Exchan82.epf».
Выгрузим данные в xml-файл. Затем, откроем эту же обработку в базе приёмнике и выберем xml-файл выгрузки и загрузим данные.

Кстати, обработку «Универсальный обмен данными в формате XML» можно открыть через пункт меню
«Сервис» | «Прочие обмены данными» | «Универсальный обмен данными в формате XML». Об этом было немного написано в заметке о .

Печать (Ctrl+P)

Обработчик Перед Записью Полученных Данных

Процедура ПКО_<ИмяПКО>_ПередЗаписьюПолученныхДанных в общем модуле МенеджерОбменаЧерезУниверсальныйФормат содержит текст обработчика ПередЗаписьюПолученныхДанных для конкретного ПКО. Текст обработчика может быть пустым. Однако, на практике всегда используется при загрузке данных для реализации дополнительной логики, которую необходимо выполнить перед записью объекта в информационную базу. Например, нужно ли загрузить изменения в существующие данные ИБ либо следует загрузить их как новые данные.

Обработчик содержит следующие параметры;

  1. ДанныеИБ – Тип –СправочникОбъект, ДокументОбъект. Элемент данных информационной базы, соответствующий полученным данным. Если соответствующие данные не найдены, то этот параметр имеет значение Неопределено .
  2. ПолученныеДанные – Тип –СправочникОбъект или ДокументОбъект. Элемент данных, сформированный путем конвертации данных XDTO. Записывается в случае, если эти данные являются для информационной базы новыми (параметр ДанныеИБ содержит значение Неопределено ). В противном случае ПолученныеДанные замещают собой ДанныеИБ (все свойства из ПолученныеДанные переносятся в ДанныеИБ ). Если стандартное замещение данных ИБ полученными данными не требуется, следует прописать свою логику переноса, после чего установить ПолученныеДанные значение Неопределено
  3. КонвертацияСвойств . Тип –Таблица значений . Содержит правила конвертации свойств текущего объекта, инициализированные в рамках выполнения сеанса обмена.
  4. КомпонентыОбмена . Структура, которая содержит компоненты обмена: правила обмена и параметры обмена. Процедура инициализации компонентов обмена находится в модуле ОбменДаннымиXDTOСервер

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

Не замещать найденные объекты при загрузке

В правилах конвертации объектов редакции 3.0 в отличии от редакции 2.0 отсутствует свойство “Не замещать найденные объекты при загрузке” благодаря которому, найденные объекты в информационной базе приемника по значению синхронизирующих полей не будут изменяться.

В правилах конвертации объектов редакции 3.0 параметр ДанныеИБ имеет значение неопреднлено если обеъект не найден. Кроме того, если параметр ПолученныеДанные имеет занчение неопреднлено, то при выъоде из обработчика м не будут заменены.

Работадатель попросил, чтобы я изменил правила конвертации между типовыми конфигурациями УТ 11 и БП 3.0 таким образом, чтобы данные справочника организаций и складов в бухгалтерии не проподали при обмене с УТ. Особенно проподали дополнительные реквизиты этих справочников в бухгалтерри, каждый раз когда когда в УТ элементы этих справочников зарегистрировались для отправки в бухгалтерю.

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

Рис 3 Фрагмент программного кода в расширении конфигурации

Если объект справочника не найден, то параметр ДанныеИБ имеет значениеНеопределено и тогда я вызываю процедуру ПродолжитьВызов для продолжения вызова обработчика события из расширяемой конфигурации

Не отражать документы в регламентированном учете

Меня попросили, чтобы была возможность не отражать в бухгалтерии 3.0 некоторые документы отгрузки, которые создаются в управлении торговлей 11. С этой целю я ввел дополнительный реквизит документа реализации «Не отражать документы в регламентированном учете». Если флаг установлен, то этот документ дожжен быть помечен на удаление в базе приемника (БП 3.0). Сложность этой задачи заключается в том, что в бухгалтерии предприятия у документов нет дополнительных реквизитов. Я решил использовать поле комментарии. При отправке на стороне источника (УТ 11) я заполняю реквизит комментарии с соответствующей надписью, а на приемнике (БП) , в обработчике перед запиью полученных данных я устанавливаю пометку на удаление как показано на рис 2

Учебник по 1С Конвертации данных (редакция 2) Правила конвертации объектов

Как мы уже знаем, правила конвертации объектов используются для сопоставления объектов в конфигурациях источнике и приемнике. Естественно, что в правиле задается объект источник данных (то есть откуда брать данные) и объект - приемник данных (то есть куда переносить или записывать данные).

Кроме них имеется еще ряд свойств смысл которых постараемся раскрыть.

Искать объект приемника по внутреннему идентификатору объекта источника - флаг определяющий поиск объектов в приемнике для версии платформы V8. Если этот флажок взведен, то поиск объекта для модификации в базе приемнике осуществляется по внутреннему (уникальному) идентификатору объекта. Этот идентификатор не виден пользователю а средствами программы поддерживается уникальность идентификаторов в информационной базе, так что никакие два объекта информационной базы не имеют одинаковых идентификаторов.

Продолжить поиск по полям поиска, если по идентификатору объект приемник не найден - флаг определяет продолжать поиск объекта в информационной базе приемнике, если поиск по уникальному идентификатору не привел к положительному результату.

Не замещать существующие объекты в приемнике при загрузке, а только создавать новые и заполнять их * - флаг определяет нужно ли выполнять изменение реквизитов объекта в информационной базе приемнике, если объект был успешно найден по уникальному идентификатору или по полям поиска.

Не создавать новый объект в приемнике, если он НЕ найден * - флаг определяет нужно ли создавать новый объект в информационной базе - приемнике, если он не был найден по уникальному идентификатору или по полям поиска.

При переносе объекта по ссылке НЕ создавать новый объект, а только переносить ссылку - флаг определяет нужно ли создавать новый объект в информационной базе - приемнике, если он не был найден по уникальному идентификатору или по полям поиска в том случае если объект переносится по ссылке. Если объект не находится и у него установлен поиск по уникальносу идентификатору то будет перенесена только ссылка на объект (без полей поиска - одна ссылка). Если же объект выгружается непосредственно (то есть выгружается не только ссылка на объект, но и все его реквизиты), то флаг ни на что не влияет.

Не выгружать объекты свойств источника по ссылкам - флаг определяет нужно ли выгружать все объекты на которые есть ссылки у объекта источника или достаточно выгрузить только информацию о ссылках на эти объекты. Допустим вы выгружаете справочник номенклатура. Если у соответствующего ПКО не взведен этот флажок, то кроме номенклатуры будут выгружены все объекты на которые она ссылается. Если же флаг взведен, то объекты на которые ссылается номенклатура выгружены не будут. Попробуйте поставить этот флажок и посмотреть результирующий файл выгрузки данных, а затем убрать его и сравнить результаты. Вам быстро станет понятен его смысл.

Не запоминать выгруженные объекты - флаг определяет нужно ли системе при выгрузке КЭШировать последние выгруженные объекты. КЭШирование позволяет ускорить процесс выгрузки и загрузки данных.

Использовать быстрый поиск объекта при выгрузке и загрузке - флаг определяет использовать ли быстрый поиск объектов для выгрузки. Имеет смысл применять для небольших по количеству записей справочников (Количество записей не более 1000 элементов). Эффект достигается в том случае, если у многих объектов установлен флаг Не выгружать объекты свойств по ссылкам. При такой схеме выгрузки и загрузке данных скорость возрастает в несколько раз.

Автоматически генерировать номер или код, если он не задан - флаг определяет нужно ли системе автоматически генерировать новый код или номер объекта, если перед записью он не заполнен.

On-line обмен

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

  1. По правилам выгрузки если объект уже выгружался, то выгружаем его как есть
  2. По правилам выгрузки если объект не выгружался, то не выгружаем
  3. При выгрузке по ссылке на объект выгружаем целиком

Например, если нужно переносить не всю номенклатуру из одной ИБ в другую, а только ту, на которую есть ссылки, то флажок подойдет.

Не замещать объект созданный в информационной базе приемнике при загрузке - настройка определяет нужно ли (обратно) переносить объект, который был создан в информационной базе, с которой организован обмен. То есть, если документ создан в информационной базе 1, при помощи обмена поступил в информационную базу 2, то стоит ли его при изменении в базе 2 переносить в базу 1. Настройка позволяет указать приоритет объекта при обмене по месту его создания. То есть изменения в информационной базе, где был создан объект распространяются везде, а изменения в других базах не влияют на этот объект в базе 1.

Приоритет объекта загрузки - настройка определяет приоритет объекта при загрузке в случае коллизии изменений. Значение по умолчанию и в случае незаполненного значения - Выше. Если произошла коллизия, программа анализирует приоритет объекта загрузки. Только в том случае, если приоритет объекта загрузки равен Выше он будет записан в информационную базу приемника. В случае если приоритет Совпадает или Ниже программа зафиксирует соответствующую информацию о коллизии в информационной базе, но объект менять при этом не будет.

Варианты настроек полей поиска - таблица с возможными вариантами настроек полей поиска для пользователя. Разработчик правил определяет возможные комбинации полей поиска, которые пользователь может выбирать при настройке обмена. Все настройки указанные разработчиком правил должны быть отработаны в коде обработчика "Поля поиска". Переменная НастройкаПоиска в обработчике определяет выбранный пользователем вариант сопоставления (ИмяНастройкиДляАлгоритма из соответствующей строки таблицы). Если пользователь не выбрал ни один вариант сопоставления, или ему ни один вариант не был предложен, то НастройкаПоиска - пустая строка.

На закладке "Дополнительно" можно редактировать наименование правила, вхождение его в определенную группу а так же описание правила.

Миграция данных между различными конфигурациями – задача не из тривиальных. Путей решения как всегда несколько, но не все они оптимальны. Попробуем разобраться в нюансах переноса данных и выбрать универсальную стратегию решения подобных вопросов.

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

За время развития платформы, компания представила ряд универсальных инструментов, а также технологий, упрощающих перенос данных. Они встроены во все типовые решения и проблема миграций между идентичными конфигурациями в целом решилась. Победу лишний раз подтверждает тесная интеграция типовых решений.

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

Рассмотрим некоторые из них:

  • обмен через текстовые файлы;
  • использование планов обмена;
  • и т.д.

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

Сложность, дороговизна сопровождения, подтолкнули компанию «1С» на создание универсального решения. Технологии, позволяющей максимально упростить разработку и поддержку миграций. В итоге идея реализовалась в виде отдельной конфигурации – «Конвертация данных».

Конвертация данных - типовое решение, самостоятельная конфигурация. Любой пользователь, обладающий подпиской “ИТС:Проф” может совершенно бесплатно загрузить этот пакет с сайта поддержки пользователей или диска ИТС. Установка выполняется стандартным способом - как и все остальные типовые решения от 1С.

Теперь немного о плюсах решения. Начнем с самого главного - универсальность. Решение не заточено на определенные конфигурации/версии платформы. Одинаково хорошо работает как с типовыми конфигурациями, так и самописными. Разработчики получают в распоряжение универсальную технологию и стандартизированный подход к созданию новых миграций. Универсальность решения позволяет подготавливать миграции даже для отличных от «1С:Предприятие» платформ.

Второй жирный плюс - визуальные средства. Простые миграции создаются без программирования. Да-да, без единой строчки кода! Только ради этого стоит один раз потратить время на изучение технологии, а потом использовать бесценные навыки многократно.

Третьим плюсов я бы отметил отсутствие ограничений на дистрибуцию данных. Разработчик сам выбирает способ доставки данных в конфигурацию приемник. Из коробки доступно два варианта: выгрузка в xml файл и прямое соединение с информационной базой (COM/OLE).

Изучаем архитектуру

Мы уже знаем, конвертация данных способна творить чудеса, но пока не совсем понятно, в чем же выражаются технические плюсы. Первое, что необходимо усвоить - в основе любой миграции данных (конвертации) лежат правила обмена. Правила обмена - обычный xml файл с описанием структуры, в которую будут выгружаться данные из ИБ. Сервисная обработка, осуществляющая выгрузку/загрузку данных, анализирует правила обмена и на их основании выполняет выгрузку. Во время загрузки происходит обратный процесс.

Конфигурация “КД” – своего рода визуальный конструктор, с помощью которого разработчик создает правила обмена. Выполнять выгрузку данных она не умеет. За это отвечают дополнительные внешние сервисные обработки, входящие в дистрибутив КД. Их несколько (XX в имени файла - номер версии платформы):

  • MDXXExp.epf - обработка позволяет выгружать описание структуры информационной базы в xml файл. Описание структуры загружается в КД для дальнейшего анализа и создания правил обмена.
  • V8ExchanXX.epf - осуществляет выгрузку/загрузку данных из информационной базы в соответствии с правилами обмена. В большинстве типовых конфигураций обработка присутствует из коробки (см. пункт меню “Сервис”). Обработка универсальна и не привязывается к каким-то определенным конфигурациям/правилам.

Хорошо, теперь на основании всего вышесказанного, определим этапы разработки новой конвертации:

  1. Определение задачи. Необходимо четко понимать какие данные требуется переносить (из каких объектов конфигурации) и самое главное куда переносить.
  2. Подготовка описания структур конфигураций (Источника/Приемника) для последующей загрузки в КД. Задача решается сервисной обработкой MDXXExp.epf.
  3. Загрузка подготовленных описаний структур в ИБ.
  4. Создание правил обмена при помощи визуальных средства КД.
  5. Выполнение выгрузки/загрузки по созданным правилам конвертации данных путем использования обработки V8ExchanXX.epf.
  6. Отладка правил обмена (при необходимости).

Простейшая конвертация

Для демонстрации нам потребуется две развернутые конфигурации. Я решил остановиться на варианте: “Управление торговлей” 10-й редакции и небольшим самописным решением. Задача будет заключаться в переносе данных из типовой конфигурации «УТ». Для краткости назовем самописное решение “Приемник”, а управление торговлей “Источником”. Решать задачу начнем с переноса элементов справочника «Номенклатура».

Первым делом взглянем на схему конвертации данных и перечитаем список действий, которые необходимо проделать. Затем запускаем конфигурацию “Источник” и открываем в ней сервисную обработку MD82Exp.epf.

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

Движение правильней формировать во время проведения документов в приемнике. Все движения будут сделаны документом самостоятельно после переноса. Второй аргумент в защиту настроек по умолчанию - сокращение размера файла с выгрузкой.

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

Итак, оставляем все настройки по умолчанию и делаем выгрузку описания конфигурации в файл. Аналогичную процедуру повторяем для второй базы.

Открываем КД и в главном меню выбираем “Справочники” -> “Конфигурации” . Справочник хранит описания структур всех конфигураций, которые помогут быть использованы для создания конвертаций. Мы один раз загружаем описание конфигурации, а потом можем использовать ее многократно для создания различных конвертаций.

В окне справочника нажмем кнопку “Добавить ” и в появившемся окне выберем файл с описанием конфигурации. Отмечаем флажок “Загрузить в новую конфигурацию” и кликаем по кнопке “Выполнить загрузку”. Аналогичные действия проделываем с описанием структуры второй конфигурации.

Теперь все готово для создания правил обмена. В главном меню КД выбираем “Справочники” -> “Конвертации”. Добавляем новый элемент. В окне создания новой конвертации требуется указать: конфигурацию источник (выбираем УТ) и конфигурацию приемник (выбираем «Приемник»). Далее открываем вкладку “Дополнительно” и заполняем следующие поля:

  • имя файла правил обмена - под таким именем будут сохраняться созданные правила обмена. Имя файла можно менять в любое время, но выгодней задать его сейчас. В будущем это сэкономит время. Правила для демонстрационного примера я назвал: «rules-ut-to-priemnik.xml».
  • наименование - название конвертации. Название может быть абсолютно любым, я ограничился “Демо. УТ в Приемник”.

Все, нажимаем “Ok”. Сразу же перед нами появляется окно с вопросом создать все правила автоматически. Согласие на столь заманчивое предложение даст мастеру команду автоматически проанализировать описание выбранных конфигураций и самостоятельно сгенерировать правила обмена.

Сразу расставим точки над “и”. Ничего серьезного мастер сгенерировать не сможет. Однако, со счетов эту возможность сбрасывать не стоит. Если необходимо наладить обмен между идентичными конфигурациями, то услуги мастера будут весьма кстати. Для нашего примере предпочтительней ручной режим.

Рассмотрим подробней окно “Настройки правил обмена”. Интерфейс может показаться слегка запутанным - большое количество вкладок, напичканных элементами управления. На самом деле все не так сложно, к этому безумству начинаешь привыкать через несколько часов работы с приложением.

На данном этапе нас интересуют две вкладки: “Правила конвертации объектов” и “Правила выгрузки данных”. На первой мы должны настраивать правила соответствия, т.е. сопоставлять объекты двух конфигураций. На второй же, определять возможные объекты, которые будут доступны пользователю для выгрузки.

Во второй половине вкладки “Правила конвертации объектов” расположена дополнительная панель с двумя вкладками: “Конвертация свойств” и “Конвертация значений ”. Первая будет отбирать свойства (реквизиты) выбранного объекта, а вторая необходима для работы с предопределенными значениями (например, предопределенные элементы справочников или элементы перечисления).

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

Для экономии места воспользуемся первым вариантом. В окне мастера снимаем флажки с группы “Документы ” (нас интересуют только справочники) и раскрываем группу “Справочники ”. Внимательно пролистываем список и смотрим названия справочников, которые можно сопоставить.

В моем случае таких справочников три: Номенклатура, Организации и Склады. Есть еще справочник Клиенты, выполняющий ту же самую смысловую нагрузку, что и “Контрагенты ” из конфигурации “УТ ”. Правда, мастер не смог их сопоставить в силу отличных имен.

Исправить эту недоработку мы можем самостоятельно. Находим в окне «Соответствия объектов » справочник «Клиенты », а в колонке «Источник» выбираем справочник «Контрагенты». Затем устанавливаем флажок в колонке «Тип» и нажимаем кнопку “Ok”.

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

Основа для правил обмена готова. Объекты для синхронизации выбрали мы, а правила для конвертации свойств и правила выгрузки были созданы автоматом. Сохраним правила обмена в файл, затем откроем ИБ “Источник” (в моем случае это УТ) и в ней запустим сервисную обработку V8Exchan82.epf .

Первым делом в окне обработки выбираем созданные нами правила обмена. На вопрос загрузки правил отвечаем положительно. Обработка проанализирует правила обмена и построит одноименное дерево объектов, доступных для выгрузки. Для этого дерева мы можем устанавливать всевозможные отборы или узлы обмена, по изменения которых требуется выбирать данные. Мы хотим выгрузить абсолютно все данные, поэтому в установке фильтров необходимость отсутствует.

После завершения процесса выгрузки данных в файл переходим в ИБ “Приемник ”. В ней также открываем обработку V8Exchan82.epf , только на этот раз переходим на закладку “Загрузка данных”. Выбираем файл с данными и нажимаем кнопку “Загрузить”. Все, данные успешно перенесены.

Задачи из реального мира

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

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

Задача №1. Заполняем отсутствующие реквизиты

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

Решений у задачи несколько. Мы рассмотрим вариант заполнения реквизита “Организация ” прямо в базе “Приемник ”, т.е. в момент загрузки данных. Текущая организация хранится в константе, следовательно, нет никаких преград в получении этого значения. Откроем правило конвертации объекта (далее ПКО) “Клиенты ” (двойной клик по объекту) и в мастере настройки правил перейдем до раздела “Обработчики событий”. В списке обработчиков найдем “После загрузки ”.

Опишем код получения текущей организации с последующим присвоением реквизиту. На момент срабатывания обработчика “После загрузки”, объект будет полностью сформирован, но еще не записан в БД. Никто не запрещает нам его изменять по своему усмотрению:

Если НЕ Объект.ЭтоГруппа Тогда Объект.Организация = Константы.ТекущаяОрганизация.Получить(); КонецЕсли;

Перед заполнением реквизита «Организация » обязательно необходимо проверить значение реквизита «ЭтоГруппа ». Для справочника «Клиенты » установлен признак иерархичности, поэтому проверка на группу необходима. Подобным образом выполняется заполнение любых реквизитов. Обязательно прочтите справку по другим параметрам обработчика «ПослеЗагрузки ». Например, среди них есть параметр «Отказ ». Если ему присвоить значение «Истина», то объект в базу записан не будет. Таким образом, появляется возможность ограничивать объекты для записи в момент загрузки.

Задача №2. Реквизиты в регистр сведений

В справочнике “Контрагенты ” конфигурации УТ, есть реквизиты “Покупатель ” и “Поставщик ”. Оба реквизита имеют тип “Булево ” и служат для определения типа контрагента. В ИБ “Приемник ”, у справочника “Клиенты ” аналогичных реквизитов нет, но есть регистр сведений “ВидыКлиентов ”. Он выполняет аналогичную функцию и может хранить для одного клиента несколько признаков. Наша задача заключается в переносе значений реквизитов в отдельные записи регистра сведений.

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

Следующим шагом сформируем правила выгрузки. Переходим на соответствующую вкладку и нажимаем кнопку “Добавить ”. В окне добавления правил выгрузки заполняем:

  • Способ выборки. Меняем на “Произвольный алгоритм”;
  • Правило конвертации. Выбираем регистр сведений “ВидыКлиентов”;
  • Код (имя) правила. Записываем как “ВыгрузкаВидовКлиентов”;

Теперь необходимо написать код для отбора данных для выгрузки. Здесь нам поможет параметр “ВыборкаДанных ”. В него мы можем поместить коллекцию с подготовленным набором данных. Параметр “ВыборкаДанных ” может принимать различные значения - результат запроса, выборка, коллекции значений и т.д. Мы его инициализируем в виде таблицы значений с двумя колонками: клиент и тип клиента.

Ниже приведен код обработчика событий “Перед обработкой ”. В нем выполняется инициализация параметра “ВыборкаДанных ” с последующим заполнением данными из справочника “Контрагенты ”. Здесь стоит обратить внимание на заполнение колонки “ТипКлиента ”. В “УТ” у нас признаки имеют тип “Булево”, а в получателе перечисление.

На данном этапе мы их не можем привести к нужному типу (его же нет в УТ), поэтому пока оставим в виде строк. Этого можно и не делать, но мне сразу хочется показать, как приводить к отсутствующему типу в источнике.

ВыборкаДанных = Новый ТаблицаЗначений(); ВыборкаДанных.Колонки.Добавить("Клиент"); ВыборкаДанных.Колонки.Добавить("ТипКлиента"); ВыборкаДанныхИзСправочника = Справочники.Контрагенты.Выбрать(); Пока ВыборкаДанныхИзСправочника.Следующий() Цикл Если ВыборкаДанныхИзСправочника.ЭтоГруппа Тогда Продолжить; КонецЕсли; Если ВыборкаДанныхИзСправочника.Покупатель Тогда НоваяСтрока = ВыборкаДанных.Добавить(); НоваяСтрока.Клиент = ВыборкаДанныхИзСправочника.Ссылка; НоваяСтрока.ТипКлиента = "Покупатель"; КонецЕсли; Если ВыборкаДанныхИзСправочника.Поставщик Тогда НоваяСтрока = ВыборкаДанных.Добавить(); НоваяСтрока.Клиент = ВыборкаДанныхИзСправочника.Ссылка; НоваяСтрока.ТипКлиента = "Поставщик"; КонецЕсли; КонецЦикла;

Сохраним правило выгрузки данных и вернемся на вкладку “Правила конвертации объектов ”. Добавим для регистра сведений “ВидыКлиентов ” правила конвертации свойств: клиент и тип клиента. Источник оставим пустым, а в обработчике событий “Перед выгрузкой” пишем:

//Для свойства “Клиент” Значение = Источник.Клиент; //Для свойства “ТипКлиента” Если Источник.Клиент = "Покупатель" Тогда Выражение = "Перечисления.ТипыКлиентов.Покупатель" ИначеЕсли Источник.Клиент = "Поставщик" Тогда Выражение = "Перечисления.ТипыКлиентов.Поставщик"; КонецЕсли;

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

Все, правила обмена готовы Рассмотренный пример получился достаточно универсальным. Подобный подход частенько применяется при переносе данных из конфигураций, созданных на платформе 7.7. Яркий тому пример – перенос периодических реквизитов.

Задача №3. Трюки с табличными частями

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

Делаем правило выгрузки данных, указываем произвольный алгоритм и в обработчике “Перед выгрузкой” пишем запрос для получения данных из табличной части.

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

ВыборкаДанных = Новый ТаблицаЗначений(); //Здесь будет еще одна табличная часть ВыборкаДанных.Колонки.Добавить(“Товары”); //Здесь тоже будет табличная часть ВыборкаДанных.Колонки.Добавить(“Услуги”); ВыборкаДанныз.Колонки.Добавить(“Ссылка”);

Задача №4. Перенос данных в операцию

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

В конфигурации “БП ” есть универсальный документ “Операция ” и он идеально подходит для формирования большего количества проводок. Вот только одна не задача - документ сделан хитро, и так просто данные в него не перенести.

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

Задача №5. Синхронизация данных по нескольким реквизитам

Мы уже рассмотрели несколько примеров, но до сих пор не поговорили о синхронизации объектов во время переноса. Вот представим, что нам требуется перенести контрагентов и часть из них наверняка имеется в базе приемнике. Как перенести данные и не допустить появления дублей? На этот счет КД предлагает несколько способов синхронизации переносимых объектов.

Первый из них - по уникальному идентификатору. Многие объекты обладают уникальным идентификатором, который гарантирует уникальность в пределах таблицы. Например, в справочнике “Контрагенты ” не может быть двух элементов с одинаковыми идентификаторами. КД делает на это расчет и для всех создаваемые ПКО сразу по умолчанию включается поиск по идентификатору. Во время создания ПКО вы должны были обратить внимание на изображение лупы возле имени объекта.

Синхронизировать по уникальному идентификатору - способ надежный, но уместен он далеко не всегда. При объединении справочников “Контрагенты ” (из нескольких разных систем) он мало, чем поможет.

В таких случаях правильней синхронизировать объекты по нескольким критериям. Контрагентов правильней искать по ИНН, КПП, Наименованию или разбивать поиск на несколько этапов.

Конвертация данных не ограничивает разработчика в определении критерием поиска. Рассмотрим абстрактный пример. Пусть нам требуется синхронизировать справочники “Контрагенты ” из разных информационных баз. Подготовим ПКО и в настройках правил конвертации объекта установим флажок “Продолжить поиск полям поиска, если по идентификатору объект приемник не найден ”. Этим действием мы сразу определи два критерия поиска - по уникальному идентификатору и произвольным полям.

Поля мы вправе выбирать сами. Отметив ИНН, КПП, Наименование мы сразу укажем несколько критериев поиска. Удобно? Вполне, но опять же этого бывает мало. А что ели мы захотим изменять критерии поиска? Например, сначала ищем по связке ИНН+КПП, а если ничего не находим, то начинаем пытать счастье с наименованием.

Подобный алгоритм реализовать вполне по силам. В обработчике события “Поля поиска ” мы можем указать до 10 критериев поиска и для каждого из них определить свой состав полей поиска:

Если НомерВариантаПоиска = 1 тогда СтрокаИменСвойствПоиска = “ИНН, КПП”; ИначеЕсли НомерВариантаПоиска = 2 Тогда СтрокаИменСвойствПоиска = “Наименование”; КонецЕсли;

Решений всегда несколько

Любая задача имеет несколько решений и перенос данных между различными конфигурациями не исключение. Каждый разработчик вправе выбирать свой путь решения, но если вам постоянно приходится разрабатывать сложные миграции данных, то настоятельно рекомендую обратить внимание на конфигурацию “”. Пусть вначале придется инвестировать ресурсы (время) в обучение, но они с лихвой окупятся на первом более-менее серьезном проекте.

На мой взгляд, компания 1С незаслуженно обходит тему применения конвертации данных. За все время существования технологии, по ней вышла всего одна книга: “1С:Предприятие 8. Конвертация данных: обмен между прикладными решениями ”. Книга достаточно старая (2008 г.), но ознакомиться с ней все же желательно.

Знание платформ все же необходимо

» - универсальный инструмент, но если вы планируете применять его для создания миграций данных с конфигураций, разработанных для платформы 1С:Предприятие 7.7, то вам придется потратить время на знакомство со встроенным языком. Синтаксис и идеология языка сильно отличается, поэтому придется потратить время на изучение. В остальном принцип остается тем же.

Известно, что программы фирмы 1С - удобный и многофункциональный инструмент для автоматизации учета, подходящий для предприятий самых разных отраслей и направлений деятельности. Однако инструмент это сложный и в работе с ним, к сожалению, не редко возникают разного рода ошибки. В этой статье мы расскажем, как найти и устранить ошибку, возникшую при переносе данных с использованием правил, созданных по Технологии конвертации данных 2.0 . Что делать, если выгрузка завершается ошибкой или не получается загрузить данные в базу-приемник? Наша статья призвана ответить на эти вопросы.

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

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

Как посмотреть, для каких релизов предназначены правила? Просто откройте файл правил любым редактором (по умолчанию это может быть Internet Explorer или Блокнот) и посмотрите на первые строчки - в них записаны версии источника и приемника.

Рис.1. Просмотр правил

Что делать? Если у Вас есть такая возможность - обновите программу-источник до релиза, указанного в правилах конвертации. Если Вы не можете обновить программу, значит и с этими правилами работать не сможете.

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

Алгоритм действий при поиске ошибок мы продемонстрируем на примере переноса данных из КА 1.1 в БП 3.0 .

Действуйте следующим образом: отключите все правила переноса и поочередно выгружайте отдельные группы правил. Т.е. сперва попробуйте выгрузить только Учетную политику , затем только Входящие остатки , только Справочники и т.д. (рис.2). Чаще всего проблемы возникают при выгрузке документов, тогда как остальные виды объектов выгружаются нормально, так что на их примере и рассмотрим дальнейшие действия. Теперь Вам нужно повторить процесс с поочередной выгрузкой с каждым правилом конвертации документов. Т.е. по очереди выгружать только авансовые отчеты, только аккредитив переданный и т.д. по списку, как показано на рис.3.

Рис.2. Поочередная выгрузка групп объектов

Рис.3. Поочередная выгрузка видов объектов

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

Что делать? Если Вам удалось найти конкретный документ, вызывающий ошибку и Вы видите, в чем, вероятнее всего, заключается проблема - отлично. Исправьте документ, если это возможно, или просто не переносите его - гораздо проще восстановить один документ, чем выполнять весь перенос вручную. Чтобы выполнить перенос, исключив только один документ, воспользуйтесь отбором в соседнем окне. В колонке "Тип сравнения" установите "Не равно", в "Значение" выберите проблемный документ, и продолжайте выгрузку как обычно.

Рис.4. Отбор документа при выгрузке

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

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

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

Рассмотрим на примере выгрузки из КА 1.1 . Пользователь выгружает из базы-источника Входящие остатки на начало 2018 года. Процесс выгрузки прерывается и программа выдает несколько служебных сообщений, среди которых имеется следующее:

Ошибка в обработчике события ПередОбработкойПравилаВыгрузки
ПВД = Остатки_Материалы
Обработчик = ПередОбработкойВыгрузкиДанных
ОписаниеОшибки = Ошибка получения значения свойства объекта (по имени свойства источника)
ПКО = Номенклатура (Справочник: Номенклатура)
ПКС = 15 (Артикул --> Артикул)
Объект = Сварочный аппарат инвертор ВДИ 160Р (Основные средства)
СвойствоПриемника = Артикул (Строка)
ОписаниеОшибки = Поле объекта не обнаружено (Артикул)
ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8283)
КодСообщения = 13
ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1694)
КодСообщения = 31

Можно было бы пойти сложным путем и поочередно выгружать разные виды остатков (остатки основных средств, остатки нематериальных активов и т.д.) и найти, что ошибка возникает при выгрузке по правилу Остатки_Материалы . А можно сразу посмотреть имя правила в сообщении об ошибке. Посмотрите, в самой первой строчке в расшифровке ошибки в сообщении говорится именно об этом. ПВД - правило выгрузки данных . Правило выгрузки данных равняется Остатки_Материалы . Нам не нужно ничего искать, программа сама сообщает место возникновения ошибки.

Рис. 5.1. Служебное сообщение об ошибке

Так же легко мы можем найти и причину. В строке ОписаниеОшибки написано . Не очень понятное сообщение для пользователя. Однако мы можем понять что ошибка заключается в каком-то свойстве объекта. Какого объекта? Того, который указан в строке Объект в этом сообщении. В данном случае этим объектом является Сварочный аппарат инвертор ВДИ 160Р (Основные средства) . Уже в данный момент можно заметить расхождение. Правило выгрузки данных называется Остатки Материалы , в строке Правило конвертации объекта (ПКО) написано Номенклатура , почему же тип объекта записан как Основные средства ? Давайте заглянем в базу-источник и проверим, действительно ли мы нашли правильный объект.

В остатках по счету 10.09 "Инвентарь и хозяйственные принадлежности" находим наш проблемный объект - субконто Сварочный аппарат инвертор ВДИ 160Р (см. рис. 5.2)

Рис. 5.2. Оборотно-сальдовая ведомость по счету 10.09 за 2018 г.

Если открыть это субконто, то можно сразу увидеть, что Сварочный аппарат инвертор ВДИ 160Р действительно является основным средством, а не номенклатурой (см. рис. 5.3). То, что остатки по Сварочному аппарату инвертор ВДИ 160Р оказались на счете 10.09 совершенно очевидная ошибка, которую необходимо исправить.

Рис. 5.3. Карточка основного средства Сварочный аппарат инвертор ВДИ 160Р

Ошибка при выгрузке в данном случае возникает из-за неверного типа объекта. По правилу выгрузки остатков материалов должна выгружаться именно Номенклатура - материалы, топливо, инвентарь и т.д.. У таких объектов есть определенный набор свойств, который переносится в другую базу по правилу конвертации. У объектов с типом Основное средство набор свойств будет совсем другим. Такой объект никак не получится выгрузить по правилу для выгрузки материалов. Программа идентифицирует объект как Номенклатуру но не находит у него необходимых свойств и соответственно не может конвертировать его для записи в файл. Об этом и говорило сообщение Ошибка получения значения свойства объекта (по имени свойства источника) .

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

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

Пример ошибки.

Рассмотрим пример еще одной ошибки, обнаруженной при переносе данных.

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

Рис.6.1. Сообщение об ошибке

Итак, проблемный документ нам сообщает сама программа - это Счет покупателю ИПБП-000008, значит мы сразу переходим к документу и пытаемся выяснить, в чем заключается ошибка.

Как Вы можете видеть на рисунке 6.2, в этом документе в табличной части "Товары и услуги" в одной из строк установлена группа номенклатуры, а не сама номенклатура, что само по себе является ошибкой. Разумеется, в правилах конвертации для этого документа не прописано как из этой табличной части конвертировать объект группа номенклатуры , это элемент совсем другого типа, нежели сама номенклатура , и у программы нет сведений о том, как перенести другой элемент, отличный от указанного в правилах. Следовательно, процесс конвертации не распознает его, не может его конвертировать и выдает ошибку.

Рис.6.2. Документ с ошибкой

Как и зачем это было установлено нас, в данный момент, не интересует. Мы решаем не переносить документ, а значит, исключаем его из списка переносимых объектов. Находим правило выгрузки документа Счет на оплату покупателю , выбираем его, переходим к отбору, устанавливаем Поле - Ссылка, Вид сравнения - Не равно, Значение - наш проблемный документ. Таким образом мы исключим данный документ из списка переносимых объектов и выгрузка должна пройти нормально.

Рис.6.3. Установка настроек для исключения документа

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

Здесь необходимо отметить, что возможности отбора объектов существуют в обработках УниверсальныйОбменДаннымиXML не во всех типовых конфигурациях. Точнее такой функционал отсутствует в режиме управляемого приложения. В частности, в типовой конфигурации Комплексная автоматизация ред.1.1 можно работать как в режиме обычного приложения, так и в режиме управляемого приложения, или, как еще говорят, в режиме управляемых форм. В первом случае отборы в типовой обработке возможны (см. рис.4), во втором - нет. Тогда нужно воспользоваться доработанным версиями обработки (см. рис. 6.3). Если конфигурация используется в режиме совместимости с платформой 8.2 (это в частности КА 1.1 и УПП 1.3 ), то необходима обработка УниверсальныйОбменДаннымиXML версии 2.1.7 . Если же режим совместимости не используется, как например в конфигурации Бухгалтерия предприятия редакции 3.0 , то нужно работать с обработкой версии 2.1.8 . Эти обработки обладают также дополнительными возможностями по заполнению отборов из журнала регистрации (подробнее ), поэтому входят не во все варианты поставок, но их всегда можно приобрести либо в составе пакетов, помеченных как с отбором по ЖР , либо отдельно.

Вот так, в общем виде, выглядит процесс поиска и устранения ошибки, возникшей при переносе данных 1С.

Ознакомиться с другими полезными материалами можно в разделе Статьи или основном нашем сайте.

© Анна Балясникова, последние изменения апрель 2018г.

Лучшие статьи по теме