При этом можно заранее задать, какие объекты выгружать, что ускорит формирование образа, поэтому может работать даже быстрее штатной выгрузки.
Обработка проверена многократно на практике.
При выгрузке фильтры по именам объектов задаются через точку с запятой, без пробелов! Используются полные названия объектов.
Пример отбора ссылочных данных:
Если
МД <> Метаданные.Справочники.ФизическиеЛица
И МД <> Метаданные.Справочники.Склады
Тогда
Если МД.Реквизиты.Найти(«Магазин») <> Неопределено Тогда
Условие = «Магазин В (&Магазины)»;
Параметры.Вставить(«Магазины», Узел.Магазины.Выгрузить(,»Магазин»));
КонецЕсли;
КонецЕсли;
Пример инициализации объекта плана обмена:
Объект.ДополнительныеСвойства.Вставить(«ВыгружатьВсеБонусы», истина);
Перед выгрузкой очищайте всю регистрацию изменений по узлу, т.к. туда перейдут все объекты.
Обработка позволяет создать начальный образ узла РИБ без монопольного доступа к базе.
При этом можно заранее задать, какие объекты выгружать, что ускорит формирование образа, поэтому может работать даже быстрее штатной выгрузки.
Перейти к публикации
Спасибо! Возьмём на вооружение
(1) берите, берите. 😉
У меня база 300гб. Насколько быстро при помощи этого средства получится создать новый образ риб?
(3) а сколько в этой базе узлов? У меня база 45 Гб (40 узлов), дочка размером 1,5 Гб формируется 6-7 часов. Штатная выгрузка длится примерно столько же, но монопольно. Тут рядом на ИС еще есть методика удаления лишних объектов из копии базы, если для вас мой метод не подходит, можете юзать этот.
(4)Количество узлов по-моему в этом случае не влияет на время выгрузки. Увы но когда нужно сделать еще один узел приходится копировать всю базу целиком. Это до 2 ух часов. Дальше подключение к обмену. Единственный момент вырубка лишних данных, но эту работу можно проводить в иное время, когда база уже работает. Ваш метод очень хорош для открытия нового магаза.
(5) не совсем так. справочники, возможно копируются и целиком, но документы отбираются предварительными фильтрами по метаданным, написанными на языке 1С. Короче, этот процесс можно ускорить.
Согласен, если у вас выгрузка длится 12 часов, то, возможно имеет смысл скопировать за 2 часа, а потом прочистить базу от лишнего.
Но, т.к. у меня она идет 6 часов, мне проще создать пустую базу и выгружать туда, чем делать полное копирование базы, во время которого опять же, никто не может работать. 😉
Кстати, можно попробовать выгружать базу в три параллельных потока через 3 ком-соединения — справочники, документы, регистры. Не знаю, будет ли это быстрее и получится ли из-за транзакционных конфликтов.
Ок. Будем посмотреть.
Как раз в тему обработка, спс…
(8) Вот ради таких душевных спасибо и делюсь
(9) Наивный… это они такими комментариями себе стартмани зарабатывают
Да интересно… как раз сейчас актуально
ну подскажите лопуху, пожалуйста, — почему обработка выдает у меня ошибку «{ВнешняяОбработка.ГенерацияУзлаРИБ.МодульОбъекта(6)}: Ошибка при вызове конструктора (COMОбъект)
V8 = Новый COMОбъект(«V81.COMConnector»);
по причине:
Недопустимая строка с указанием класса»
где я тупанул? com-соединение я не настраиваю
(12) видимо, у вас стоит 82, а не 81, надо будет поправить код, чтобы генерировался 81 объект, а потом 82, если 81 нет.
Извините уж, что дергаю. Вот что мы сделали в коде:
Функция Установить1СCOMСоединение(BaseConnectionString, Base1sUser, Base1sPassword) Экспорт
//Устанавливаем быстрое COM-соединение с 1С8
//V8 = Новый COMОбъект(«V81.COMConnector»);
V8 = Новый COMОбъект(«V82.Application»);
Попытка
//ConnectionString = ‘File=»‘ + Base1sPath + ‘»;Usr=»‘ + Base1sUser + ‘»;Pwd=»‘ + Base1sPassword + ‘»‘;
ConnectionString =BaseConnectionString + ?(Прав(СокрЛП(BaseConnectionString),1) = «;», «», «;») +» Usr=»»» + Base1sUser + «»»;Pwd=»»» + Base1sPassword + «»»»;
Base1s = V8.Connect(ConnectionString);
Исключение
Предупреждение(«Не удалось создать com-соединение! » + ОписаниеОшибки() + »
» + BaseConnectionString);
Возврат Неопределено;
КонецПопытки;
return Base1s;
КонецФункции
Все равно ругается на неверные параметры соединения с базой
(14) а с чего вы ком-коннектор заменили на аппликатион?
я не уверен, что вы правильно парсите строку соединения. Попробуйте в явном виде прописать имя зверя и пароль, каталог и т.п.
Я так понял, что эта обработка для 1с81. А на 1с82 не заработает?
Что-то не выходит, затыкается на справочнике банков.
ВызватьИсключение «Ошибка при проверке необходимости отправки объекта » + Объект + » в узел: » + ОписаниеОшибки();
(17) Mastekor, в плане обмена заведи обработчик события ПриОтправкеДанныхПодчиненному или не ставь галку, что нужно вызывать функции плана обмена.
Добавил версию обработки для 8.2, умеет выгружать в формате для универсальной выгрузки-загрузки.», которая умеет работать без COM, просто выгружает данные в файл, откуда их можно считать или универсальной обработкой загрузки-выгрузки от 1С или моей обработкой «Чтение XML-выгрузки».
Понадобилось как-то, когда базу недовыгрузили и отправили в таком виде на точку. Чтобы заново не выгружать, довыгрузил регистры в файл и там загрузил, быстро работает.
Можно использовать для повторной выгрузки регистра, например, быстрее чем через РИБ.
(4) Здравствуйте! У меня вопрос к комменту «а сколько в этой базе узлов? У меня база 45 Гб (40 узлов), дочка размером 1,5 Гб формируется 6-7 часов. Штатная выгрузка длится примерно столько же, но монопольно. Тут рядом на ИС еще есть методика удаления лишних объектов из копии базы, если для вас мой метод не подходит, можете юзать этот.»
У меня база 70 гигов, 80 узлов. Штатная выгрузка просто физически не выгружает. В комменте есть ссылка «Тут рядом на ИС еще есть методика удаления лишних объектов из копии базы, если для вас мой метод не подходит, можете юзать этот» дайте плиз ссылку. буду проверять оба метода.
(20) не, ну сами поищите. Это же банально.
(21) В какой тип файла выгружается, xml, dt, 1cd?
К сожалению, данный вариант формирования узла УРИБ у меня не сработал. Узел с 0, как таковой не создался и судя по коду обработки и не мог создаться.
Зря качал файл. Обработка оказалась бесполезна.
(22) он обменивается по COM
(23) А что именно у Вас не получилось?
Сергей, здравствуйте! Спасибо за очень полезную обработку!
Чувствую себя в замешательстве…
В вопросах РИБ очень полезны ваши публикации, пользуюсь второй раз уже.
Обработка очень полезная. Небольшое замечание — константы необходимо выгружать так:
вместо
нужно писать через менеджера:
а то в конфигурациях с БСП не прокатывало.
Добрый день. Попробовал воспользоваться обработкой, т.к. штатная перестала работать (останавливается с сообщением о нехватке памяти).
Выдает вот такую ошибку:
{ВнешняяОбработка.ГенерацияУзлаРИБ.МодульОбъекта(589)}: Ошибка при вызове метода контекста (ПрочитатьXML)
Возврат Соединение.ПрочитатьXML(ЧтениеXML);
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.2.19.130): Значения данного типа не могут быть представлены в XML
База Розница версии 1. Платформа 8.2.19.130
Падает на справочнике дисконтных карт.
(29) не могу сказать, почему. Вы ж программист, разберитесь. 😉
судя по ошибке, ловит несериализуемое значение, может Хранилище, хотя должна его нормально распиливать.