@inviziblll

Как правильно написать модуль логирования данных highload-блоков?

Модуль должен "запомнить" изменения, которые произошли с элементами highload-блоков при работе сайта, он должен фиксировать количество добавленных/измененных/удаленных элементов. Так чтобы эти изменения можно было перенести в выгружаемом файле на другой сайт.

Например админ может в интерфейсе выгружает изменения по справочнику в файл ( CSV или JSON) на сайте где установлен модуль и затем на другой сайте где также есть данный модуль делать экспорт изменений.

Как лучше организовать запоминание изменений, при событиях OnBeforeUpdate/OnBeforeAdd делать дамп данных из данного highload-блока в файл и и далее при импорте брать самый последний файл в котором самая последняя версия highload-блока? Но как быть с удаленными элементами их тоже надо логировать, делать это по ID ?
Второй вопрос, как при экспорте на другой сайт лучше делать проверку?
Думаю просто сопоставлять ID и Код highload-блока если такой highload-блок не будет найден на сайте, то создавать его со всеми данными.

А вот что делать если загружаемый highload-блок уже есть на сайте как лучше поступить? Проверить есть ли у его элементов те же поля что и файле дампа, если нет просто делать исключение и выводить сообщение, а если структура данных одинакова обновлять и добавлять элементы (брать ID и имя элемента ) и вот тут не могу понять как построить обновление ведь ID элементов могут отличаться, либо обновлять только те элементы у которых ID совпадают?
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 1
smilingcheater
@smilingcheater
Чем вам не подходит уже существующее решение для миграций?
marketplace.1c-bitrix.ru/solutions/sprint.migration
Умеет переносить структуру и элементы хайлоадов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы