И вот на одном из очередных собраний руководства было решено разделить на отдельные базы, так как могут быть проверки
В итоге написана небольшая обработка по разделению базы бухгалтерии 3.0 по организациям
Алгоритм такой:
1. Сделать архив базы. Восстанавить этот архив в новой базе.
2. Пометить на удаление Организации, которые должны быть удалены. А организация, которая остается, помечается Основной.
3. Открыть внешнюю обработку «Удалении организации», выбрать организацию, которая остается, и нажать на кнопку «Пометить на удаление».
Обработка пробегает по Справочникам, Документам, Регистра сведений и помечает на удаление объекты, которые связаны с удаляемыми организациями.
Сразу скажу, что обработка работает долго, в зависимости от объема данных.
4. Удаляем объекты. Открываем меню Все функции — Обработки — Удаление помеченных объектов.
Через обработку удобнее, чем через стандартную функцию удаление помеченных объектов.
5. Если Организация не удалилась, то нужно повторить пункты 3-4.
Все.
Тут ключевой момент — это обработка документов Корректировки регистров, в нем могут быть движения по разным организациям. Ваша обработка это предусматривает?
Я делал проще — Администрирование — Выгрузить даные для перехода в сервис. потом в чистой базе там же ЗАгрузка данных из сервиса. Повторить 4 раза
Да там столько нюансов. РС.АналитикаУчетаНоменклатуры. и все с ним и подобным связанное, где нет явной отсылки к организации.
Я так понимаю что 3-4 раза запускать именно по этому. Т.е. там такие неявные ссылки сразу не обрабатываются. А почему тогда 3-4 итерации их обрабатывают.? Что-то в хранилище помещается и при последующих «прогонках» это хранилище анализируется?
«4. Удаляем объекты. Открываем меню Все функции — Обработки — Удаление помеченных объектов.
Через обработку удобнее, чем через стандартную функцию удаление помеченных объектов.»
Это вообще как понять? Обработка Ваша только помечает на удаление же. Не? Через обработку не удалить никак вроде.
Кажется мне, что все завязано исключительно на НайтиПоСсылке…
По мне так проще использовать встроенный обмен по организациям )))
(4) vadim1011985, Не всегда возможно. Например база данных большая, документооборот г-хцать тыс. документов в секунду, сервер 4 гб памяти (контора развалилась, всё, что успели вынести). Обмен завалится с нехваткой памяти, а вот такие обработки могут временно (ненадолго) отсрочить покупку нового сервера. Естественно если реализовано без транзакции или с минимальным количеством данных в них, дабы оперативка их «прожевала»
(5) &rew, Опять же организация удаления тоже ресурсоемкая , а теперь ситуация в одной базе ведется 6 баз что по вашему проще удалить 5 баз или организовать обмен по одной из них ? Сам в том году разделял базы с приличным документооборотом — ушло не мало времени , но гемороя было немного — поставил на обмен — а дальше занимайся своими делами — да делал вечером когда нагрузка на сервер была минимальная.
(6) vadim1011985, Да речи нет, что проще по одной перенести в общем случае. Я пример привел из собственной практики (обычное приложение было и другая обработка). Опять же GUIDы могут быть завязаны на какой то функционал. Я к тому что данная обработка (скорее концепция) тоже имеет право на жизнь.
Ребята, главное обработка работает, пусть 2 итерации, но это из-за регламентных отчетов, 4 базы разделены и перенесены на разные сервера, руководство довольно и спит спокойно ))
Не понимаю что делаю не так. Вроде все по инструкции, но во время удаления объектов программа ругается,удаление не происходит, и что самое интересное, компания которую отделяю — тоже становится помеченной на удаление!
Попробуйте снять пометку удаления с нужной организации и повторить итерацию, также пришлите версию программы бухгалтерии
Хм, открываю обработку через файл-открыть, пустой экран. Добавляю во внешние обработки, пишет «евозможно подключить дополнительную обработку из файла.
Возможно, она не подходит для этой версии программы.»
Версия конфигурации (3.0.57.10)
Думаю в коде не лишним будет добавить
Чтобы проверки всякие не выполнялись и т.п.
А чего сразу не удалять непосредственно?
Есть метод ускорения записи объектов — включать порциями (например, по 1000 объектов) в одну внешнюю транзакцию.
Одна жирная транзакция будет быстрее обрабатываться СУБД, чем 1000 мелких.