Перенос данных между базами с измененной структурой объектов в одной из них в связи с обновлением конфигурации.
Спойлер: Особенности
- Не помеха для обмена изменение состава реквизитов объекта (измерений, ресурсов)/состава табличных частей/реквизитов табличных частей/типов реквизитов;
- Возможность указания уровня выгрузки объектов по ссылкам как через файл, так и через COM;
- Система слежения за дублями предопределенных элементов при загрузке;
- Система поиска связей объектов для выгрузки;
- Отборы для каждого объекта конфигурации в отдельности;
- Динамическая замена произвольных ссылок при обмене;
- Сброс нумерации документов при загрузке;
- Выбор регистров движений для выгрузки.
Спойлер: Особенности
- 2 режима обмена - для объектов с ОДИНАКОВОЙ структурой в обменивающихся базах и ОТЛИЧАЮЩИХСЯ структурой (набором реквизитов/измерений/ресурсов, табличных частей, реквизитов табличных частей, типами реквизитов). Ранее, при обмене баз с одинаковой конфигурацией изменение хотя б одного реквизита (удаление/добавление/изменение имени) могло не дать загрузить данный объект. Например, в одной базе в документ добавили реквизит/удалили/добавили таб. часть/удалили таб часть/добавили тип. Стандартными обработками обмена между одинаковыми конфигурациями, обмен был не возможен при таких изменениях. Теперь все это в прошлом! Не нужно искать различия в объектах конфигураций после обновлений! Теперь загрузка пройдет успешно, а сопоставление данных будет выполнено по имени объекта и имени реквизита/табличных частей! Главное - это чтоб имена обменивающихся объектов конфигураций были одинаковы. Скорость при обмене объектами с одинаковой структурой выше по сравнению с отличающейся на 30%. Если Вы знаете, что структура одинакова объектов в конфигурациях, то смело выбирайте режим "Одинаковые конфигурации или объекты" - скорость будет максимальна. Если нет, то режим "Похожие конфигурации или объекты" - скорость будет ниже, но данные точно будут загружены. Стандартная обработка 1С "Выгрузка и загрузка XML" (2.1.8) таким функционалом не обладает! Если объем данных велик, то желательно его делить на порции, используя отбор и уровни ссылочности.
- НЕ создает дубли предопределенных элементов, счетов, при загрузке в конфигурациях, работающих на интерфейсе "такси" и платформе 8.3, за счет алгоритма обработки данных при загрузке, который практически не влияет на скорость загрузки (стандартная обработка 1С "Выгрузка и загрузка XML" (2.1.8) создает дубли).
- Малый размер файла выгрузки т.к. нет дублирования ссылок при выгрузке;
- Выгрузка 3х уровней ссылок - выгрузка выбранного объекта -> выгрузка реквизитов выбранного объекта -> рекурсивная выгрузка реквизитов объекта, полученного из реквизитов выбранного объекта; (например, если выбран справочник для выгрузки "Пользователи", а у него есть реквизит "Сотрудники" (справочник "Сотрудники"), а у справочника сотрудники есть реквизит "Подразделение" (Справочник "Подразделение"), то будут выгружена указанная в реквизите ссылка на справочник "Сотрудники" и указанная в реквизите справочника "Сотрудники" ссылка на справочник "Подразделение");
- Уровень выгрузки ссылок выставляется переключателем. Если выбран "1" - выгрузиться только сам объект, "2"- Выгрузиться сам объект и объекты из его реквизитов, "Все" - выгрузиться объект и реквизиты реквизитов объекта и прочие, для поддержания целостности данных.
- Для каждого объекта можно установить свой произвольный отбор, в том числе по реквизитам табличных частей. Выгрузка будет идти именно по данному отбору!. Если установлен период выгрузки, то данный период примениться как отбор ко ВСЕМ отборам объектов (если установлена галка "Для всех объектов").
- Если нужно выгрузить несколько видов документов с отбором по организации/подразделению и т.д., то можно установить отбор по организации/подразделению в одном документе, а затем нажав на элемент отбора правой клавишей мышки и выбрать из меню "Установить фильтр по данному полю для всех объектов". При это будет добавлен выбранный элемент отбора для каждого выбранного документа (выбранного в дереве галкой). Чтоб удалить данный элемент отбора во всех выбранных документах, нужно стать на элемент отбора и в контекстном меню выбрать "Удалить фильтр по данному полю для всех объектов".
- Есть возможность произвольной программной обработки каждого объекта перед выгрузкой/перед записью/после записи. Для этого имеются 3 обработчика с конструктором запроса для каждого вида объектов/объекта метаданных, который можно вызвать, выделив нужный запрос в тексте обработчика. Обработчики срабатывают при каждой выгрузке объекта/структуры объекта или набора записей. Если будет ошибка в обработчике - система остановит выгрузку/загрузку и выдаст сообщение об ошибке. Теперь вы можете выполнять самостоятельное заполнение реквизитов нужными значениями, очищать реквизиты, задавать новые номера, добавлять текстовые маяки в комментарии и многое другое.
- Возможность прямой выгрузки-загрузки через COM-соединение данных для файловых и серверных БД без использования файла XML. Для этого нужно указать путь к каталогу файловой БД или указать имя сервера и имя базы на сервере;
- Обработка одна из самых быстрых в своем классе! Быстрее типовых обработок 1С в несколько раз!;
- Динамическая подмена ссылок во время загрузки данных из файла или во время выгрузки через COM. Данная система нужна, например, когда нужно заменить контрагента и договор в определенных документах при загрузке. Список ссылок для подмены указывается на закладке "Данные для подмены" и для каждого выбранного объекта отдельно. Это позволяет при подмене ссылок, выполнять подмену именно в выбранных объектах метаданных замену, а не во всех выгружаемых данных! Так же, при указании данных для подмены для удобства, система будет отображать количество данных для каждого выбранного вида метаданных в виде "[Количество]" перед названием объекта.
- На закладке "Данные для подмены" указываем ссылку, которая используется в базе-источнике, указываем наименование и код элемента, который будет найден в базе-приемнике. Данная таблица при выгрузке передается в базу-приемник и система, на основании наименования и кода, пытается найти нужную ссылку в базе-приемнике для замены. Приоритет поиска без учета регистра: 1. Наименование+Код => 2. Код => 3. Наименование. Если система не находит ссылку по указанным данным в базе-приемнике, то такая строка удаляется из таблицы замены и больше не используется в данном сеансе загрузки. Для того, чтоб система подмены заработала при загрузке, обязательно нужно установить флаг, перед загрузкой из файла или выгрузке через COM, "Выполнять подмену выбранных ссылок при загрузке".
- Для упрощения добавления одинаковых ссылок для подмены в различные объекты метаданных, имеется команды "Копировать в буфер обмена" и "Вставить из буфера обмена" на закладке "Данные для подмены". При нажатии "Копировать в буфер обмена", система скопирует все строки, которые относятся к выбранному объекту метаданных, в буфер обмена для последующей вставки в другие объекты метаданных. При вставке идет проверка на наличие дублей ссылок для замены!
- Если выгружается документ с движениями, то замена будет выполнена и в движениях тоже.
- Замена возможна только ссылок справочников и планов видов характеристик!
- Данные, на которые будут заменяться ссылки уже должны существовать в базе!
- Имеется возможность изменять нумерацию новых документов при загрузке согласно порядку следования их в базе - приемнике. Регулируется флагом "Выполнять сброс нумерации документов при загрузке". Для того, чтоб система сработала, флаг должен быть установлен до ЗАГРУЗКИ данных или перед выгрузкой через COM!
- Есть возможность определять вхождение выбранного объекта конфигурации в другие объекты конфигурации. Найденные объекты в дереве помечаются на выгрузку. И при этом, если был установлен отбор на искомый объект в дереве, то он автоматически будет проставлен на реквизит найденных объектов связи, который ссылается на выбранный объект конфигурации. После, Вам остается только убрать галки с ненужных объектов в дереве. Это полезно когда Вы не знакомы со связями данных в конфигурации, и не можете точно определить какие данные выгружать. Данная процедура выполнятеся командами "Определить связанные объекты по реквизитам с текущим объектом" и "Определить связанные объекты по реквизитам/таб. частям с текущим объектом". Последняя команда выполняет поиск связей и в реквизитах табличных частей, а не только в реквизитах объекта.
- Данные регистров накопления, бухгалтерии, расчета выгружаются как движения выбранных документов, при указании галки "Выгружать движения документов". При этом в дереве объектов можно выбрать движения, которые будут выгружены, а каки нет. Галка "Выгружать движения документов" должна стоять.
- Движения выгружаются при любом уровне ссылок;
- Есть возможность просмотреть объекты, которые будут выгружены, регистры в том числе. Для этого выбираем галкой в дереве нужный вид объекта и переходим на закладку "Объекты, которые будут выгружены". Там будут указаны ссылки или ключи записей регистров сведений с учетом наложенных отборов на данный объект. Любую ссылку или ключ записи можно открыть.
- Для периодических регистров сведений можно выгрузить записи за период, срез первых на начало/конец периода, срез последних на начало/конец периода.
- При загрузке данных, поиск объектов идет по уникальному идентификатору и полям поиска. Если УИД не будет найден в базе-приемнике, и будут заданы поля поиска, то система будет пробовать получить нужный объект. Если не найдет, то будет создан объект из файла. Если установлен флаг "Записывать только новые объекты при загрузке", то система просто подставит ссылку, но не обновит данные объекта в базе-приемнике.
- Сохранение и восстановление всех настроек обработки(выбранных элементов,отборов для каждого вида объектов);
- Есть возможность загружать отборы по ссылкам из файла с расширением .xlsx определенного строения. В файле обязательно должны быть 3 колонки (с названиями точно как написано) : ЕстьВПриемнике (Да/Нет), ПолноеИмя (в виде Документ.АвансовыйОтчет), СсылкаКЗ (сериализованная ссылка функцией ЗначениеВСтрокуВнутр). Названия колонок должны присутствовать в файле в начале, расположение не критично в рамках файла. Для чего это нужно? Это позволяет выгружать единичные документы разного вида, например, не тратя время на задание какие документы брать. Так же эта функция дает возможность работать в паре с обработкой для сравнения данных моего производства (//infostart.ru/public/692252/). Из данной обработки вы сохраняете результат сравнения в файл с такими колонками, как указано выше. Далее, вы в этом файле оставляете то, что вам нужно, путем удаления не нужных строк. Этот файл загружаем на этапе выгрузки данных в базе-источнике, на странице выбора объектов для выгрузки, в меню "Операции с объектами" - "Загрузить список данных для отбора". Система прочитает данные и по полным имена объектов установит отборы по реквизиту "Ссылка". Отборы дополняются данными из файла, а не перезаписываются.
- Есть возможность при загрузке документов, делать их не проведенными, если они были проведенными в базе-источнике. При этом система снимает флаг ПРОВЕДЕН = ЛОЖЬ, но не выполняет запись с отменой проведения в угоду скорости записи объектов. Следовательно, очистка регистров не происходит. Поэтому, если выполняется перенос документов, то не нужно ставить флаг "Выгружать движения", а иначе в базе-приемнике будут не проведенные документы с движениями!
https://privatelink.de/?https://infostart.ru/public/149404/