Решил написать статью (себе памятку) по решению очередной нетиповой задачи, может, кому-нибудь пригодится. Итак, начнем. Обратился клиент с желанием перейти из «текущего облака» в 1С фреш. Простая, на первый взгляд, задача «Но…» если бы не «но». Клиент захотел посмотреть, получится ли быстро и беспроблемно перейти в новое место расположения, при этом не ставя в известность арендодателя. Поэтому доступа к конфигуратору у нас нет. Есть только пользовательский режим под логином и паролем клиента, с немного ограниченными правами. Конфигурация «текущего облака» немного доработана (добавлен ряд объектов). Пользователю эти доработки не нужны, которые арендодатель добавил, к типовому учету они никакого отношения не имеют… Поизучав доступные методы получения базы в пользовательском интерфейсе клиента, понял, что доступна возможность выгрузить базу только через стандартный метод «Переноса данных приложения» - прекрасно описанный на общедоступном ресурсе https://1cfresh.com/articles/data_fromservice .
Обычно если одна конфигурация доработана немного и есть ее data_dump, а стоит задача загрузить эти данные из сервиса, и нет на руках ее конфигурации, то при попытке загрузить стандартным способом выходит ошибка и загрузка невозможна:
Выгрузили таким способом базу, получили архив data_dump, развернули локальную пустую БД того же релиза конфигурации, что и «донер». Далее в конфигурацииПриемник выполняем вышеописанный метод «Переноса данных приложения» - для получения «Стандартной» схемы конфигурации. Здесь остановимся подробнее и все по порядку.
Опишу 2 способа: первый это решение задачи своими силами, второй это можно скачать готовое расширение, имитирующее ряд действий, которые будут описаны в первом способе.
Первый способ
1. Получение типовой схемы
1.1 Запускаем пользовательский режим пустой базы в режиме отладки, выполняем «Перенос данных приложения» https://1cfresh.com/articles/data_fromservice в результате получаем - пример имени выгружаемого файла - data_dumpТиповойСхемыКонфигурации.
1.2 Далее выполняем загрузку этого data_dumpТиповойСхемыКонфигурации в эту же пустую базу, из которой только что его выгрузили.
1.3 В конфигураторе устанавливаем точку останова как на скриншоте ниже
1.4 Находим и сохраняем копированием себе файл "tmp" типовой схемы по выделенному значению
1.4.1 Также можно написать обработку с примерно следующим кодом, которая сохранит схему текущей конфигурации:
1.5 Схему получили, отлично. Завершаем отладку(закрываем пользовательский режим). Точку не убираем, она нам еще пригодится.
2. Доработка обработки загрузки
2.1 В дереве объектов конфигурации находим обработку «ВыгрузкаЗагрузкаДанныхПотокЧтенияДанныхИнформационнойБазы» открываем модуль объекта и находим экспортную функцию «ПрочитатьОбъектДанныхИнформационнойБазы» тут (или в созданном расширении «вместо») закомментируем все вызовы процедуры //ВызватьИсключениеОшибкаПриЧтенииДанных(), в блоке работы с артефактами вместо этого вызова напишем Прервать;
2.2 Сохраняемся и запускаем пользовательский режим в режиме отладки. (Установленная нами ранее точка останова должна быть активна).
2.3 выполняем пункт 1.2 только с основным data_dump загружаемой базы. В пункте 1.4 мы уже получим (по нашей точке) путь схемы загружаемой конфигурации. Далее в файловой системе компьютера находим этот "tmp" открываем его блокнотом и заменяем весь текст текстом из ранее сохраненного "tmp" файла типовой схемы пункта 1.4 или 1.4.1. Сохраняем файл. Продолжаем отладку.
2.4 После всех проделанных манипуляций выполнится загрузка данных. Задача решена.
Второй способ
3.1 Скачиваем и устанавливаем расширение в БазуПриемника
3.2 Запускаем пользовательский режим и выполняем пункт 1.1
3.3 В форме загрузки данных из сервиса нажимаем «Дополнительные параметры» устанавливаем галочки «получения типовой схемы», закрываем доп. параметры, выбираем data_dumpТиповойСхемыКонфигурации (пример сохраненного ранее файла в 1.1)
3.4 потом повторно заходим в «Дополнительные параметры» и видим, что установилась «схема», убираем галочку «получения типовой схемы» и устанавливаем новую «Заменить на типовую схему», закрываем доп. параметры выбираем основной data_dump загружаемой базы.
3.5 После всех проделанных манипуляций выполнится загрузка данных. Задача решена.
Проверка данных
4.1 Тестирование
-
После завершения импорта проверьте корректность данных. Убедитесь, что все записи перенесены и выглядят правильно.
4.2 Сравнение
-
Сравните данные в облачной базе и локальной базе, чтобы убедиться в их целостности.
Заключение
Перенос нетиповой базы 1С из облака в локальную типовую версию без доступа к конфигуратору может быть непростой задачей, но, следуя приведенным шагам, вы сможете успешно осуществить этот процесс. Основное внимание следует уделить корректному экспорту и импорту данных, а также не запутаться со схемами.
Проверено на следующих конфигурациях и релизах:
- Зарплата и кадры государственного учреждения КОРП, редакция 3, релизы 3.1.30.57