gifts2017

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

Опубликовал Glory S (slava_1c) в раздел Обмен - Перенос данных из 1C8 в 1C8

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

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

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

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

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

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

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

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

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

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

Код открыт.

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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Загрузка данных по OLE из идентичной конфигурации
.epf 31,05Kb
10.07.16
46
.epf 3.206 31,05Kb 46 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. WellMaster (WellMaster) 14.07.16 16:23
Шикарный инструмент. И как раз вовремя, думал писать что-то свое.
Вопрос: типовой отбор работает только по периоду. Если нужно перенести конкретный документ/справочник, то видимо для этого есть поле Текст запроса.
Однако, как им пользоваться - информации нет.
Да и было бы неплохо сделать какие-нибудь стандартные отборы на подобие универсального отчета.
2. Glory S (slava_1c) 14.07.16 20:42
(1) WellMaster, Спасибо!

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

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

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

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


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

Для документа "Реализация товаров и услуг 00007637 от 14.07.2016 17:00:50" в поле "Текст запроса" нужно написать:
РеализацияТоваровУслуг.Номер = "00007637" И РеализацияТоваровУслуг.Дата = ДАТАВРЕМЯ(2016,07,14,17,0,50)
WellMaster; +1 Ответить
3. Ильдар Тагиров (pentanom) 20.07.16 11:08
Обработку скачал ...
1. Хотелось бы хоть немного описания обработки.
2. Нажал "Проверить подключение" и получил в сообщении "ИнформацияОбОшибке" и больше ничего. И как это понимать ?
4. Shura2000 Никишин (Shura2000) 13.09.16 17:32
Аналогичная проблема с подключением к базе источнику: "ИнформацияОбОшибке".
За два месяца автор так и не ответил.
5. Shura2000 Никишин (Shura2000) 13.09.16 18:40
(4) Shura2000,
Удалил старые ненужные платформы и перерегистрировал одну dll
regsvr32 "C:\Program Files (x86)\1cv8\8.3.8.2027\bin\comcntr.dll"
6. Glory S (slava_1c) 14.09.16 04:04
(5) Shura2000, пардон муа.

Вероятно, у подключаемого пользователя есть пробел, например "Иванов Иван".
Решение:
1. Можно зайти под пользователем у которого нет пробела, например, под Администратором
2. В модуле формы в строках 219 и 233 засунуть пользователя в кавычки """
бд=Connection.Connect(СтрокаСоединения+" Usr="""+СокрЛП(Пользователь)+"""; Pwd="+СокрлП(Пароль));

сейчас там
[1C-CODE]бд=Connection.Connect(СтрокаСоединения+" Usr="+СокрЛП(Пользователь)+"; Pwd="+СокрлП(Пароль));[1C-CODE]
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа