ОБРАБОТКА "Выгрузка загрузка всей БД файлы JSON" (Управляемые формы)
Автор Обухов Михаил. 2021г.
1.НАЗНАЧЕНИЕ
1.1 Обработка предназначена для любых конфигураций 1С (Тестировалась на 1С:ERP Управление предприятием 2 (2.4.6.174), Зарплата и управление персоналом, редакция 3.1 (3.1.16.108) ) и служит для выгрузки/загрузки объектов из/в конфигурации с аналогичной структурой.
1.2 Обработка может как запускаться с помощью "Файл"-"Открыть" так и добавляться в режиме "Предприятие" как дополнительная обработка.
1.3 Для выгрузки и загрузки используются методы стандартного объекта СериализаторXDTO.
1.4 Обработка предназначена только для УПРАВЛЯЕМЫХ ФОРМ 1С.
2. ПОРЯДОК РАБОТЫ. ВЫГРУЗКА ДАННЫХ.
2.1 В режиме "Предприятие" в той базе 1с из которой производим выгрузку объектов делаем "Файл" - "Открыть", выбираем файл обработки "Выгрузка загрузка всей БД файлы JSON". Открывается стартовое окно программы
2.2. Необходимо выбрать каталог выгрузки/загрузки. Рекомендуется создавать отдельный каталог для каждой операции выгрузки/загрузки, чтобы не смешивались файлы разных выгрузок.
2.3. Необходимо заполнить отборы. Период - если не заполнен, то отбираются документы за без ограничения по периоду. Если заполнен, то все документы будут отобраны в границах установленного периода (с начала дня даты начала периода по окончание дня даты окончания периода). Отборы в таблице можно добавить любые, имея ввиду, что отборы работают только по логике "И". На примере со скриншота ниже
для выгрузки будут отобраны все объекты базы, имеющие реквизиты "Организация" И "ПометкаУдаления" и имеющие указанные значения этих реквизитов - т.е. в данном случае все объект с организацией "ВЕКТОР" и не помеченные на удаление.
Особо отметим регистры сведений. Если в измерении регистра сведений будет имя измерения "Организация" и значение "ВЕКТОР" - то выгрузятся только такие записи. К сожалению, отбор по периоду для периодических РС пока не работает - будут отобраны все записи такого регистра. Все записи РС выгружаются в 1 файл.
2.4. Когда установлены каталог и отборы, можно нажать "Заполнить для выгрузки". В нижней половине формы заполнится дерево значений с объектами, которые отобраны для выгрузки. Если установлен флажок "Считать число элементов", то будет посчитано число элементов для выгрузки. Для регистров сведений считается число записей (при этом все записи будут выгружены так: один регистр - один файл).
2.5. В правой части окна с деревом объектов нужно установить флажки только для объектов, которые решено выгружать.
2.6. Теперь можно нажать кнопку "Выгрузить" и дожаться окончания процесса выгрузки. В процессе выгрузки индикатор прогресса показывает состояние, процент выполненния задачи.
2.7. Весь процесс логгируется в файл log, который расположен в каталоге, указанном при выполнении п.2.1. Пример лога выгрузки ниже. Не рекомендуется открывать файл log во время выполнения задачи из-за возможной ошибки совместного доступа к файлу!
2.8. По окончании выгрузки в выбранном для выгрузки каталоге будет сформирована иерархия подкаталогов с выгруженными файлами.
3. ПОРЯДОК РАБОТЫ. ЗАГРУЗКА ДАННЫХ.
3.1. В режиме "Предприятие" в той базе 1с в которую нужно загрузить данные делаем "Файл" - "Открыть", выбираем файл обработки "Выгрузка загрузка всей БД файлы JSON". Открывается стартовое окно программы, аналогично п.2.1
3.2. Необходимо указать тот же каталог, что был указан обработке для выгрузки.
3.3. Нажать "Заполнить для загрузки". Дерево объектов заполнится сведениями об именах и количестве объектов, выгруженных ранее в файлы.
3.4. В правой части дерева можно флажками указать только необходимые к загрузке объекты. Отборы на загрузку никак не влияют, загружены будут все объекты из файлов, отмеченных флажками.
3.5. Теперь доступна кнопка "Загрузить". При нажатии её начинается операция загрузки. Индикатор прогресса показывает состояние, процент выполненния задачи.
3.4. Весь процесс логгируется в файл log, который расположен в каталоге, указанном при выполнении п.3.1. Не рекомендуется открывать файл log во время выполнения задачи из-за возможной ошибки совместного доступа к файлу!
4. ПОРЯДОК РАБОТЫ. ДОПОЛНИТЕЛЬНО.
4.1. В случае сбоя при выгрузке и аварийного завершения обработки можно по логам выгрузки/загрузки определить, какие объекты были выгружены/загружены, чтобы, если объектов много, не начинать всю операцию сначала, а отметить для работы только те обхъекты, операция по которым не проводилась.
4.2. Предопределенные элементы спраовчников и других типов будут заменены объектами из базы-источника с присвоением имени предопределённого. Таким образом ссылки предопределённых объектов в источнике и приёмнике будут совпадать.
ЗАКЛЮЧЕНИЕ
Обработка распространяется "Как есть", все операции с базами рекомендуется делать сначала в тестовом режиме, не на рабочих базах. И только убедившись в правильном выполнении, переносить на рабочие.
Код обработки открыт. Можете дорабатывать/адаптировать для своих задач. Упоминание автора желательно :)