При установке коробочного пакета ITSM для Protected конфигурации изменённой клиентом не возникают коллизии

:speech_balloon: Описание
При установке коробочного пакета ITSM для Protected конфигурации изменённой клиентом не возникают коллизии.

Например, в апреле была создана коробочная версия Protected бизнес правила в приложении ITSM.
В мае версия была импортирована на целевой экземпляр. После импорта бизнес правило было скопировано и деактивировано.
В августе коробочная версия бизнес правила была изменена и собрана в очередной релиз ITSM. При импорте релиза на экземпляр, майские изменения будут проигнорированы т.к. у актуальной версии по прежнему Policy = Protected и поставляемая версия более новая.

:heavy_check_mark: Обходное решение

Для решения проблемы при установке коробочного релиза, после загрузки пакета (перед выполнением импорта) необходимо запустить скрипт, для поиска изменений коробочной функциональности:

На форме импортируемого пакета вызвать пункт бургер меню Open in script и дополнить скрипт следующими строками:

let initMessage = 'Конфликтов с изменениями Protected версий нет\n\n';
const conflictMessages = [];
const previewLog = new SimpleRecord('sys_vcs_preview_log');
previewLog.addQuery('retrieved_pack_id', current.sys_id);
previewLog.addQuery('record_policy', 'Protected');
previewLog.selectAttributes(['record_document_id']);
previewLog.query();

let instanceUrl = ss.getProperty('simple.instance.uri');
instanceUrl = (!instanceUrl.includes("https://")) ? `https://${instanceUrl}` : instanceUrl;

while (previewLog.next()) {
    const currentVersion = new SimpleRecord('sys_vcs_record');
    currentVersion.addQuery('is_current', true);
    currentVersion.addQuery('record_document_id', previewLog.record_document_id);
    currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.4.0');
    currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.3.5');
    currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.3.4');
    currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.3.3');
    currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.3.2');
    currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.3.1');
    currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.2 [full version]');
    currentVersion.addQuery('local_pack_id.name', 'notlike', 'Simple Application build');
    currentVersion.selectAttributes(['sys_id', 'table_name', 'record_id', 'local_pack_id']);
    currentVersion.setLimit(1);
    currentVersion.query();

    if (currentVersion.getRowCount() === 1) {
        currentVersion.next();
        initMessage = 'Поставляемые версии конфликтуют с изменениями:\n\n';
        conflictMessages.push(`${instanceUrl}/record/${currentVersion.table_name}/${currentVersion.record_id}\n`);
    }
}
print(initMessage);
conflictMessages.forEach(message => print(message));

и запустить выполнение скрипта по кнопке Run.