Здравствуйте, уважаемые форумчане, любители 1С и все, кто имеет причастность к миру 1С технологий.
Сегодня хочу представить вашему вниманию мою обработку по переносу данных по технологии COM.
Всем известен типовой механизм по переносу данных "Конвертация данных", которым практически можно переносить все что угодно, откуда угодно и куда угодно.
НО, как показывает практика - порог входа в этот узкий круг специалистов очень высокий.
Моя цель - это создать более простой механизм переноса, естественно, с меньшими возможностями, находясь в базе приемнике, не переключаясь между окнами.
Давайте перечислим плюсы и минусы по сравнению с типовой КД.
Минусы:
- Технология COM имеет ограничения: нужно иметь разрешение на регистрацию dll
- Технология COM требует идентичности релизов платформы источника и приемника (8.3.18.1334 - 8.3.18.1335 уже не совпадение)
- Технология COM также ограничивает нас операционной средой семейства Windows.
- Нет других способов переноса: через файл, через веб технологии (планирую добавить в будущих релизах)
- Нет возможности переносить только измененные объекты (тоже планирую добавить в будущих релизах)
- Нет возможности поставить перенос на регламентное задание (тоже планирую добавить в будущих релизах)
Плюсы:
- Очень быстрая развертка для подготовки - всего лишь копируем файл обработки на диск и начинаем перенос
- Не надо переключаться между окнами - все действия делаем непосредственно в базе приемнике
- Запрос к источнику можно построить практически любой
- Большая часть настроек делается кликами мышью, но присутствует возможность ручного редактирования запроса и написания кода обработки модели поведения переноса
- Управляемые формы - вперед в светлое будущее 1с
- Нет привязки к БСП и какой либо конфигурации.
- Есть возможность отправлять уведомления в телеграмм об окончании переноса (вам не нужно следить за состоянием переноса)
С каким объектами умеет работать? С практически всеми:
- Справочники
- Документы
- Планы видов расчета
- Регистры бухгалтерии
- Регистры сведения
- Регистры накопления
- Регистры расчета
- Планы счетов
- Планы видов характеристик
- Перечисления
- Константы
- Планы обмена
Консоль кода используется с этой обработки //infostart.ru/1c/tools/1266087/ Monaco editor. Спасибо автору за замечательно проделанную работу!
Порядок работы:
- Качаем обработку
- Копируем в рабочую папку переноса
- Открываем базу, в которую переносим (база приемник). На ярлыке правой кнопкой "Запуск от имени администратора". Это нужно для первоначальной регистрации COM (если есть, то не обязательно).
- Через файл-открыть открываем обработку
- В верхней панели выбираем базу откуда переносим - (базу источник).Всплывет окошко создания новой базы посредника (база структура переноса) и параметры подключения к базе источникуЖмем "Зарегистрировать COM" (если необходимо), заблаговременно перед этим запустив 1с под администратором. Выбираем тип подключения(файл/клиент-серверный). Выбираем путь к файловой/адрес сервера - имя базы. Впечатываем пользователя и пароль. Сохранить!
- Ждем прогрузку метаданных, попутно убеждаемся, что в подготовленной папке переноса создалась папка "transfer structure" рядом с нашей обработкой.
- Далее указываем настройки по вкусу и желанию(подробнее в видеоинструкции). Рекомендованные настройки как на скрине.Сохраняем настройки.
- Если необходимо настраиваем глобальные отборы (подробнее в видеоинструкции).
- Итак мы сделали начальную подготовку. Теперь нам необходимо сопоставить объекты базы источника и базы приемника), у нас 3 варианта. Либо мы жмем "Заполнить все соответствия" (если структуры баз идентичны или схожи). Либо поочередно на каждой вкладке (справочники, документы и т.д.) жмем заполнить. Либо поочередно на каждой вкладке жмем добавить для ручного добавления сопоставления объектов.
- После сопоставления объектов нужно сделать сопоставление реквизитов, сопоставление значений, сопоставление движений для документов. Это делается двойным кликом на строке списка. Откроется редактор соответствий реквизитов + конструктор запроса к базе источнику. (подробнее в видео инструкции).
- Делая определенные настройки (сопоставление реквизитов, добавление условий) мы можем на закладке "Текст запроса" - нажать кнопку "Редактировать запрос" и посмотреть сгенерированный автоматически запрос. При желании можно построить свой запрос (планирую в будущем внедрить конструктор запроса к базе источнику) и использовать поля выбранные в вашем тексте запроса. (подробнее в видеоинструкции.)
- В качестве таблицы источника может выступать практически любая таблица, доступная в конструкторе запросов.
- Не забываем сделать сопоставление значений и сопоставление движений (для доков) и жмем сохранить.
- После этого мы можем попробовать сделать перенос нажатием на кнопку "Перенести данные". Советую для больших объектов для пробы установить значение "Выбрать первые" например 100.
Все выбранные настройки, сопоставленные объекты и реквизиты сохраняются во внешней файловой базе, расположенной в папке нахождения обработки опять же при помощи "любимой" COM технологии.
При желании можно заглянуть внутрь этой базы и увидеть все как есть, как сохранены настройки. Она добавляется автоматически с именем "Структура переноса" в общий список баз.
Внимание! Реквизиты типа "хранилище значений" на данный момент только binary типа.
Для переноса значений реквизитов, на которые есть ссылка в переносимом объекте служит опция "перенос по необходимости".
Какие планы на будущее?
- Добавить группировку условий в редакторе сопоставления реквизитов
- Добавить предупреждение о потере данных реквизитов в редакторе сопоставления реквизитов
- Добавить запоминание перенесенных объектов и версий объектов для того чтобы переносить только измененные объекты
- Перенос бизнес процессов, задач
- Вариант обмена через файл
- Конструктор запроса COM к базе источнику
- Управление кодом поиска объекта приемника (задать свой код)
Только управляемая форма! Нет привязки к БСП или какой либо конфигурации! Обработка прошла тест на модальность (исключены нерекомендуемые синхронные вызовы)!
Активно тестировалась на платформе 8.3.16,8.3.18.
Огромная просьба ко всем скачавшим! Напишите пожалуйста отзыв - какие функции вы считаете еще важным добавить, а какие лучше убрать. Конструктивная критика приветствуется!
Плейлист на youtube видеоинструкции: https://www.youtube.com/playlist?list=PLr4gJ6iKBumo2mToSI8vmGA23uzTHAhjG
Всем приятного переноса!
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.106.101