Есть много различных вариантов (групповая обработка документов и справочников — да, работает, но медленно, у клиента в базе 460 000 документов проведенных — неделю будет удалять). Перенос данных — через ВыгрузкаЗагрузкаДанныхXML82.epf — можно, но тоже долго и требует определенных навыков.
Мне в голову пришел другой вариант.
Нужно было срочно решить вопрос (по "гуглил" — вроде не нашел такого примера, или все достаточно просто, или не было желания описать).
Итак, стояла задача — сохранить всю Номенклатуру (около 25000), все справочники, константы и самое главное — сохранить бонусную и дисконтную систему в конфигурации MAGAZKA — лучшая программа для розничного магазина — это регистры сведений — база работала около трех лет (48000 клубных карт)
В базе 460 000 документов проведенных.
База файловая.
Затраченное время : ~ 1 час
Решение :
1. В ЦБ (центральная база) план обмена полный (если не использовался РИБ, ничего страшного) создаем узел и запоминаем код узла (например :00000022)
но — ВАЖНО ! не нажимаем кнопку меню "СОЗДАТЬ НАЧАЛЬНЫЙ ОБРАЗ"
2. Открываем обработку "Регистрация изменений для обмена" — снимаем Всю регистрацию (хоть по умолчанию ее нет, но лучше сделать) и дальше регистрируем для обмена — нужные нам объекты — справочники, константы, регистры сведений и т.д.
3. В плане обмена для узла : 00000022 — меню — Записать изменения — получаем файл выгрузки в XML (538 мб) в zip около 20 мб. (время выгрузки около 14 минут)
4. В ЦБ — заходим в конфигуратор — меню — Конфигурация — Сохранить конфигурацию в файл — получаем файл с расширением *.cf
5. Создаем пустую базу — заходим в конфигуратор — меню — Конфигурация — Загрузить конфигурацию из файла.
6. Заходим в эту базу в пользовательском режиме — План обмена полный — создаем два узла 00000001 и 00000022
7. Вот теперь маленькая хитрость — меняем узлы местами — т.е. превращаем нашу базу в ПБ (периферийную)
ПланыОбмена.УстановитьГлавныйУзел((<ГлавныйУзел>));
8. Планы обмены — меню — прочитать изменения — указываем наш файл — загрузка прошла успешно ~ 11 минут
9. Заключительный момент — удаляем признак периферийной базы — ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
10. Делаем ТИИ (тестирование и исправление ИБ…) на всякий случай.
Все, можно работать.
Итог: решили задачу с минимальными затратами, средствами платформы — качественно и быстро
Может, кому-нибудь когда-нибудь и пригодится.
А узлы обязательно менять местами? Простой Универсальный обмен данными в формате XML разве не может загрузить данные в любую базу с этим CF? Просто пользовался раньше похожей методикой — через узел все таскать — таких проблем с заменой узла не помню.
(1)А узлы обязательно менять местами?
да. чтобы на время сделать базу Перифирийной
Простой Универсальный обмен данными в формате XML разве не может загрузить данные в любую базу с этим CF?
Нет , ИМЕННО ЭТУ выгрузку он не «кушает» — «Неверный формат выгрузки»
я же написал — АЛЬТЕРНАТИВА
Просто пользовался раньше похожей методикой — через узел все таскать — таких проблем с заменой узла не помню.
а как таскал ? если узла у тебя не было — а если его инициализировать — штатным способом очень долго …
(можно скопировать ЦБ — и также подменить узлы места — лишние удалить)
(2) Подробностей не помню уже, помню, что сделал узел и на него все кидал, что в тестовую надо было выгружать. Но это было в подсистеме с интегрированными Инструментами Разработчика, может местной встроенной обработкой просто читалось, там допил какой-то был на форматы и нечеткое чтение, не помню.
А так — идея хорошая, да, взял на заметку.
Разве через «Выгрузку загрузку данных XML» не будет проще? Также выбрали нужные объекты, выгрузили, создали новую базу, загрузили.
(4) Дмитрий , может и проще , но однозначно дольше , а во вторых я же указал в заголовке «АЛЬТЕРНАТИВА»
добавить в базу знаний , еще одни способ.
Вот представь себе ты случайно оказался у клиента (ну нет у него интернета, поверь такое бывает) и нет у него и у тебя обработки «»Выгрузку загрузку данных XML»
а сделать нужно — ты же профессионал ! Как быть тогда ?
Пригодиться этот метод — минимум программирования — платформа все сделает самостоятельно.
не вник, но идея через распределёнку шикарная
Если на платформе 8.3 и в справочниках есть предопределенные элементы, то они задублируются )
Тут либо отключать авто создание предопределенных элементов в новой базе до загрузки CF.
Либо не регать на узел предопределенные элементы
(6) Спасибо ! Это статья , как раз на тему «Голь на выдумки хитра»
в одном моменте мысль пришла — есть задача, нужно сделать, а для клиента -важен только результат.
Просто, доступно, понятно и главное надежно работает.
(7) Нет, дублей не выявлено было — в Номенклатуре — 10 предопределенных элементов — все «штатно скушало»
Можно проще сделать удалить документы обработкойhttps://infostart.ru/public/795917/ и сделать тест… проверено работает
(5) Чем дольше выгрузка загрузка?)
(10) Вам не кажется, что Ваша обработка по сравнению с приведенными способами (выгрузкаXML и способ в статье) работает гораздо медленнее ? Наверняка вы обходите метаданные циклами, и также в цикле удаляете документы… На каком количестве документов пробовали? И сколько времени заняло?
MS SQL truncate table
либо ClearSQL(1.3.4).epf
автор не работал с базами у которой в регистре накопления 111 000 000 записей ?
(13) Ответа с моей стороны не было, только предположение, мои вопросы без ответа — На каком количестве документов пробовали? И сколько времени заняло? Никакого троллинга 🙂
И кстати я обращался не к Вам, а к коллеге из (10)
(18) Вадик, ты из цикла то выйди …
по
— ОбработкаПрерыванияПользователя();
или по
— Прервать;
и сходи на страничку разработки ТОГО автора и там ему задай свой вопрос (а то он там тоже в шоке от твоего поста)
тут то зачем задавать — где логика в твоих действиях ?
А то присвою тебя в переменную в неопределено….
Авот это прямое нарушение политики данного сервиса
(19) Хорошая работа 😀 эх гугл гугл
В ERP все предопределенные элементы задублировались (справочники и планы видов характеристик)