1С 8.3 Проверка расширения на изменения структуры данных
Данные > Примеры кода 1С > 1С 8.3 Расширения
Перейти в раздел примеры кода 1С 8.3:
Функция создана для отладки расширений в разных версиях 8.3. В метод МенеджерРасширенийКонфигурации.Создать() в версии 8.3.22 добавлен необязательный параметр "Данные" (тип - ДвоичныеДанные). В этот параметр передается содержимое файла расширения. Для расширения, не установленного в конфигурацию, доступны свойства: Имя, Версия, Назначение, Синоним, ОсновныеРоли и ХешСумма.
Метод ИзменяетСтруктуруДанных() вернет "Истина", если после установки расширение будет влиять на структуру данных конфигурации.
В модуле можно определить функцию для проверки расширения на изменения структуры данных:
Функция ПроверкаРасш1НаИзмененияСтруктурыДанных() Экспорт // как проверка
СистемнаяИнформация = Новый СистемнаяИнформация;
ВерсияПриложения = СистемнаяИнформация.ВерсияПриложения;
//Например Лев(ВерсияПриложения, 6) = "8.3.22"
Если Число(Сред(ВерсияПриложения, 5, 3)) > 21 Тогда // "8.3.22.xxx" выше 21 релиза, можно по-новому
//Проверка не потребует перевода конфигурации в монопольный режим и реструктуризации данных.
РасширениеКонф = РасширенияКонфигурации.Создать(Новый ДвоичныеДанные("Раcш1.cfe"));
ИзменяетСтруктуруДанных = РасширениеКонф.ИзменяетСтруктуруДанных();
Иначе // по старому
РасширениеКонф = РасширенияКонфигурации.Создать();
РасширениеКонф.Записать(Новый ДвоичныеДанные("Раcш1.cfe"));
ИзменяетСтруктуруДанных = РасширениеКонф.ИзменяетСтруктуруДанных();
РасширениеКонф.Удалить();
КонецЕсли;
Возврат ИзменяетСтруктуруДанных;
КонецФункции
СистемнаяИнформация = Новый СистемнаяИнформация;
ВерсияПриложения = СистемнаяИнформация.ВерсияПриложения;
//Например Лев(ВерсияПриложения, 6) = "8.3.22"
Если Число(Сред(ВерсияПриложения, 5, 3)) > 21 Тогда // "8.3.22.xxx" выше 21 релиза, можно по-новому
//Проверка не потребует перевода конфигурации в монопольный режим и реструктуризации данных.
РасширениеКонф = РасширенияКонфигурации.Создать(Новый ДвоичныеДанные("Раcш1.cfe"));
ИзменяетСтруктуруДанных = РасширениеКонф.ИзменяетСтруктуруДанных();
Иначе // по старому
РасширениеКонф = РасширенияКонфигурации.Создать();
РасширениеКонф.Записать(Новый ДвоичныеДанные("Раcш1.cfe"));
ИзменяетСтруктуруДанных = РасширениеКонф.ИзменяетСтруктуруДанных();
РасширениеКонф.Удалить();
КонецЕсли;
Возврат ИзменяетСтруктуруДанных;
КонецФункции
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник