Чтобы обнаружить каждую форму, имеющую настройки (по типу), можно взглянуть на базу данных. SQL будет выглядеть примерно так (я оставил точное выражение на сайте клиента и воссоздаю это по памяти):
SELECT DISTINCT s.Module, s.Name
FROM CustomVBA c
INNER JOIN Screen s ON c.ScreenId = s.Number
WHERE c.Sequence = 300
Union
SELECT DISTINCT s.Module, s.Name
FROM Custom2 c
INNER JOIN Screen s ON c.ScreenId = s.Number
WHERE c.Sequence = 300
«Sequence = 300» означает, что при этом будут возвращены номер экрана и имя, где есть изменение для «All Users» (500 будет для конкретного пользователя, а 100 - для сторонних надстроек)
Теперь в таблице CustomVBA хранятся настройки VBA, а в таблице Custom2 хранятся настройки BSL.
Кроме того, можно посмотреть список ЭКСПОРТ, хотя в нем отображаются изменения во всех последовательностях.
Теперь, когда у нас есть отдельный список форм, мы можем экспортировать эти изменения из Solomon в виде одного файла CST за модификацию (и эти файлы CST открываются в блокноте или любом другом текстовом редакторе). В верхней части этих файлов будет список элементов управления, которыми манипулирует модификация (ниже находится строка в двоичном коде, детализирующая модификации кода). Любые элементы управления, созданные с помощью настроек, будут иметь свойство «Created = True», прикрепленное к ним.
И теперь, когда мы знаем, какие экраны были изменены, и какие элементы управления созданы совершенно новыми (а также какие из них отключены или перемещены или что нет, поскольку CST перечисляет эти данные), мы можем теперь сравнить изменения между 6.5 и 7.0FP1 и убедитесь, что миграция приняла все настройки и все они функционируют должным образом.