Перенос объектов по OLE из идентичной конфигурации



Перенос по OLE справочников, документов и пользователей из базы источника с идентичной конфигурацией без использования правил обмена, поиск по реквизитам, замена ГУИД, сохранение настроек в файл

Внимание!!! Не забывайте делать резервные копии перед началом работы с обработкой!

Хочу представить обработку по импорту данных из одной базы в другую через ОЛЕ.

Некоторые скажут — да такого софта пруд пруди. Возможно, но…

Кому может пригодиться обработка

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

Преимущества данной обработки

  1. Скорость. Загрузка справочников и документов происходит в базе приемнике, при этом база источник совершенно не напрягается. 
  2. Альтернативный бэкап. Эту обработку можно использовать как бэкап данных. При этом бэкапом можно пользоваться он-лайн, ведь пользователи тоже перегружаются. Например запускать бэкап каждые 10 минут во фронт-офисной системе.
  3. Простота. Настройка объектов выгрузки, равно как и выбор методики поиска объекта в базе приемнике производится с помощью нажатия галочек, а не с помощью программирования.
  4. Замена ГУИД. Одновременно с импортом информации из базы-источника, если в настройке справочника или документа стоит галочка «Заменять ГУИД базы-источника» обработка исправляет все объекты, которые были найдены по коду или наименованию или реквизиту и у которых ГУИД не совпадает с ГУИД в базе источнике. Таким же образом устраняются дубли справочников.
  5. Есть дополнительный режим замены ГУИД у произвольного объекта.
  6. Результат настроек можно надежно сохранить в файле, при этом доступны настроки нескольких пресетов. Сохранение и загрузка настроек сделаны через сериализацию объектов метаданных обработки.
  7. Обработка может быть использована для любой конфигурации 1С 8.2-8.3, в том числе и для самописной.
  8. После замены у элементов нового ГУИД, последовательности , в которых участвовал этот объект остаются прежними и не «слетают».

Поставляется только в неуправляемой форме.

Работает как в серверном, так и в файловом вариантах.

Код открыт.

Отредактировано 14.09.16

8 Comments

  1. WellMaster

    Шикарный инструмент. И как раз вовремя, думал писать что-то свое.

    Вопрос: типовой отбор работает только по периоду. Если нужно перенести конкретный документ/справочник, то видимо для этого есть поле Текст запроса.

    Однако, как им пользоваться — информации нет.

    Да и было бы неплохо сделать какие-нибудь стандартные отборы на подобие универсального отчета.

    Reply
  2. slava_1c

    (1) WellMaster, Спасибо!

    По поводу поля «Текст запроса» — да все верно это дополнительное поле, в которое можно вписать произвольный текст на языке запросов 1С (слово «ГДЕ» само добавляется в тексте программы), но классический отбор в виде объекта Отбор как в универсальном отчете здесь не получится, по причине того, что запрос на самом деле исполняется на стороне COM объекта и все объекты отбора — тоже COM объекты.

    Пример как можно выгрузить конкретный элемент справочника:

    В базе источнике есть элемент справочника Контрагенты с кодом «0000002346»

    В поле «Текст запроса» пишем в строке со справочником «Контрагенты» пишем

    Контрагенты.Код = «0000002346»

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

    Для документа «Реализация товаров и услуг 00007637 от 14.07.2016 17:00:50» в поле «Текст запроса» нужно написать:

    РеализацияТоваровУслуг.Номер = «00007637» И РеализацияТоваровУслуг.Дата = ДАТАВРЕМЯ(2016,07,14,17,0,50)
    Reply
  3. pentanom

    Обработку скачал …

    1. Хотелось бы хоть немного описания обработки.

    2. Нажал «Проверить подключение» и получил в сообщении «ИнформацияОбОшибке» и больше ничего. И как это понимать ?

    Reply
  4. Shura2000

    Аналогичная проблема с подключением к базе источнику: «ИнформацияОбОшибке».

    За два месяца автор так и не ответил.

    Reply
  5. Shura2000

    (4) Shura2000,

    Удалил старые ненужные платформы и перерегистрировал одну dll

    regsvr32 «C:Program Files (x86)1cv88.3.8.2027incomcntr.dll»

    Reply
  6. slava_1c

    (5) Shura2000, пардон муа.

    Вероятно, у подключаемого пользователя есть пробел, например «Иванов Иван».

    Решение:

    1. Можно зайти под пользователем у которого нет пробела, например, под Администратором

    2. В модуле формы в строках 219 и 233 засунуть пользователя в кавычки «»»

    бд=Connection.Connect(СтрокаСоединения+» Usr=»»»+СокрЛП(Пользователь)+»»»; Pwd=»+СокрлП(Пароль));

    сейчас там

    [1C-CODE]бд=Connection.Connect(СтрокаСоединения+» Usr=»+СокрЛП(Пользователь)+»; Pwd=»+СокрлП(Пароль));[1C-CODE]

    Reply
  7. Asenka

    Добрый день!

    На управляемых формах такая обработка у вас есть?

    Reply
  8. slava_1c

    Добрый день.

    Нет, на управляемых формах эту обработку не делал, но пробовал переносить справочники из/в Розница 2.2 (управляемые формы) — все отлично переносится, если запустить 1С в режиме обычные формы/толстый клиент.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *