среда, 20 января 2016 г.

Альтернативные способы оздания РИБ

Альтернативный способ получить РИБ. Так как я не программист, описания в инете мне сразу было не понятно. На самом деле все просто, мне вообще не понятно, почему в 1с нет штанной такой процедуры, а предлагают штатно делать образ. Сделать образ из базы > 10ГБт – это просто безумие. Вы запускаете эту операцию реально часов на 7 (зависит от ПК) и не факт, что по окончании вы получите нужный результат. При чем надо понимать, что образ рекомендуется делать монопольно, а так как рабочая база и в ней в течении дня постоянно кто-то работает, то
эта процедура обещает вам интересную ночь. Меня например побудило разобраться с альтернативным вариантом создания РИБ, то что три попытки создать образ из базы 11 ГБт, после ~ 7часов ожидание, получения ошибки, чего-то там «указанная папка не была найдена, возможно ее удалила антивирусная программа»!
У меня файловый вариант программы, поэтому расскажу для него. Делаете копию вашей базы, любым способом, копируете базу в другую папку или делаете выгрузку/загрузку через конфигуратор. Вообщем время потраченное на эту процедуру и будет временем потраченным на создания РИБ ~ 1час 10 минут против ~ 7 часов использую штатную процедуру по созданию образа! Причем гарантировано, ни каких ошибок не вылетит! После того как сделали копию, если у вас в оригинале уже был план обмена, в копии необходимо изменить его, чтоб получить подчиненный узел. Заходите верхнее слева меню все функции, находите планы обменов, заходите в полный видите там, один предопределенный узел - Обмен с главным узлом и ваш узел из оригинала. Вам необходимо поменять код и название (на самом деле мне кажеться, что название можно и не менять, но так обычно во всех описаниях) у ваше плана обмена и код и название Обмен с главным узлом. Когда я первый раз делал это пытаясь поставить моему узлу код 000, то система ругнулась, что такой код уже зарегистрирован, тоже само. Если попытаться поменять код у Обмен с главным узлом на код плана вашего плана обмена. Решается этоJ так, надо например в начале у Обмен с главным узлом поменять код на 003 (он должен быть не занят), а потом поменять код у вашего узла на 000 и после этого поменять код Обмен с главным узлом на 002. Теперь Вы получили в планах обмена два плана, таких же как и в оригинале, но зеркальными кодами и названиями. То есть в оригинале у вас ВашПланОбмена код 002, а Обмен с главным узлом код 000, а в копии ВашПланОбмена код 000, а Обмен с главным узлом код 002. Теперь надо задать в копии ГлавныйУзел, то есть явно указать, что узел с кодом 002 является подчиненным узлу с кодом 000. Для этого берем простенькую обработку. Я не программист, так что прошу прощения, если, что кривовато написано, но главное, что работает. В форме на предварительно задать поле для выбора плана обмена.

НаКлиенте
Процедура УстановитьГлУзел(Команда) //это кнопка в форме устанавливает главный узел для выбранного плана обмена
   ПланОб = ПланОбмена;
   ГлавныйУзел(ПланОб);
КонецПроцедуры

&НаСервере
Процедура ГлавныйУзел  (ПланОб)
ПланыОбмена.УстановитьГлавныйУзел(ПланОб);
КонецПроцедуры

&НаКлиенте // здесь я сдела кнопку, чтоб можно было и отвязывать план обмена от главного
Процедура ОтвязатьОтУзла(Команда)
   Отвязать();
КонецПроцедуры

Процедура Отвязать  ()
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
КонецПроцедуры

&НаКлиенте //эта кнопка удаляет все зарегистрированные изменения на выбранном узле
Процедура СтеретьИзменения(Команда)
   Планоб= ПланОбмена;
   Стерание(Планоб);
КонецПроцедуры

&НаСервере
Процедура Стерание  (ПланОб)
   ПланыОбмена.УдалитьРегистрациюИзменений(ПланОб);
КонецПроцедуры


Важно! 
1)   При процедуре привязки в копии, конфигуратор должен быть закрыт, он станет не доступным для изменения.
2)   Обязательно сделайте удаления всех изменений на узлах участвующих в обмене, как в оригинале, так и в копии. Я первый раз не сделал это, хотя узлы вроде как предварительно удалял и думал, что там ни чего не должно быть, так вот обмен начал происходить корректно, но почти сразу, файлы сделались не понятными по объему, и обмен начал происходить по продолжительности ~1 час, при чем было не важно, только что он был сделан и делался после продолжительного промежутка времени.




Источник: здесь

Комментариев нет:

Отправить комментарий