Необходимо: Удалить помеченные на удаление объекты в двух базах данных.
Вопрос: Как это правильно сделать?
Ответ: Надо проанализировать действительно ли объект помечен на удаление в двух базах и потом запустить обработку "Удаление помеченных объектов"
Рассмотрим случай, когда настроен двустронний обмен между базами.
1. Объект (элемент справочника, документ) может быть введен в любую из связанных баз. В процессе обмена между базами данный объект создается в другой базе. Таким образом можно сказать что при обмене есть база источник (из которой происходит выгрузка) база приемник (в которую загружабтся данные из базы источника) и одновременно какя-то из этих баз для объекта будет являться родительской базой (т.е. базой в которой этот объект был изначально создан пользователем).
2. При обмене данные переносятся только из родительской базы в базу приемник, а это значит, что редактировать объекты необходимо в той базе в которой они были созданы. Например: если в УТ создан документ «Расходный кассовый ордер», после обмена он создается в базе БП. Если обнаружена ошибка и РКО необходимо исправить, то это надо делать в базе УТ, и после очердного обмена исправления появятся в базе БП. Если исправления сделать в базе БП, то после обмена в базе УТ документ останется в «первозданном» виде (т.к. база БП не является родительской для данного документа и данные из нее не будут перенесены в базу примник), а в базе БП документ будет в исправленном состояниии (потому что там мы его отредактировали), т.е. данные в связанных базах данных будут в рассогласованном состоянии. Если теперь в базе УТ перепровести этот РКО или как то изменить, то он встанет в очередь на обмен и при последующем обмене, в базе БП РКО будет приведен в состояние как в базе УТ. Таким образом данные в двух базах данных придут в согласованное состоние, но наши изменения будут потеряны.
Остюда делаем простой вывод — Изменять (редактировать, помечать на удлаение) объекты надо в той базе в которой они созданы.
Теперь можно написать регламент как правильно помечать на удаление объекты:
1. Делаем резервные копии баз данных.
2. Помечаем на удаление объекты в той базе в которой они созданы.
3. Делаем обмен и получаем две базы данных, данные в которых согласованы.
4. Запускаем обработку «Удаление помеченных объектов».
Что делать если нет уверенности, что пользователи помечали на удаление объекты в соотвтествии с регламентом? Теоретически надо сравнить состояние объектов в двух базах и сделать выводы, что с ними делать. Для сравниения состояния помеченных на удлаение объектов написана обработка представленная в данной публикации.
Как пользоваться обратокой:
1. Запускаем обработку в базе УТ. На вкладке «Рассматривать объекты», галочками помечаем интересующие нас объекты.
2 Переходим на вкладку «Помеченные на удаление объекты». Кликаем по кнопке «Найти объекты», в результате заполнится таблица с помеченными на удаление объектами, в текущей базе (базе УТ).
3.Задаем имя файла и сохраняем таблицу в файл (кликаем по кнопке 3).
4. Запускаем обработку в базе БП. Переходим на вкладку «Помеченные на удаление объекты». Восстанавливаем из файла таблицу из базы УТ (задаем имя файла и кликаем по кнопке 4)
5. Переходим на вкладку «Помеченные на удаление объекты» и кликаем по кнопке «Сравнить». Заполняет ся таблица с результатами анализа.
Потом повторяем все шаги с начала, только наинаем с базы БП. Таким образом получаем две таблицы с резуьтатми поиска помеченных на удаление объектов. А дельше думаем что со всем этим делать 🙂
Удачи.
1. Делаем резервные копии баз данных.
2. Помечаем на удаление объекты в той базе в которой они созданы.
3. Делаем обмен и получаем две базы данных, данные в которых согласованы.
4. Запускаем обработку «Удаление помеченных объектов».
Очень часто Главбух = «Админ» в БП и пользователь/бухгалтер в УТ(где удалять документы может только «Админ»). Как тогда ваша обработка будет себя вести?
Добрый день.
Данная обработка не удаляет объекты, она только позволяет найти объекты которые помечены на удаление в одной из двух баз данных.
А в пункте:
4. Запускаем обработку «Удаление помеченных объектов».
Я имел ввиду запуск стандартной процедуры удаления помеченных объектов.