Версия классификатора. Получает номер версии загруженного из сервиса классификатора. Если номер версии
// Получает номер версии загруженного из сервиса классификатора. Если номер версии
// по идентификатору не найден, выполняет обновление данных регистра сведений
// ВерсииКлассификаторов.
//
// Параметры:
// Идентификатор - Строка - идентификатор классификатора в сервисе классификаторов;
// ВызыватьИсключение - Булево - если Истина и идентификатор классификатора не найден, будет вызвано исключение.
//
// Возвращаемое значение:
// Число, Неопределено - номер версии классификатора.
//
Функция ВерсияКлассификатора(Идентификатор, ВызыватьИсключение = Ложь) Экспорт
// Версии классификаторов не являются секретной информацией
// и могут быть получены любым пользователем ИБ.
УстановитьПривилегированныйРежим(Истина);
ОбщиеДанные = Не (ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных());
ИмяРегистра = ?(ОбщиеДанные,
"ВерсииКлассификаторов",
"ВерсииКлассификаторовОбластейДанных");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РегВерсииКлассификаторов.Версия КАК Версия
|ИЗ
| РегистрСведений.%1 КАК РегВерсииКлассификаторов
|ГДЕ
| РегВерсииКлассификаторов.Идентификатор = &Идентификатор";
Запрос.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
Запрос.Текст,
ИмяРегистра);
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат ВыборкаДетальныеЗаписи.Версия;
КонецЕсли;
// Возможно, не выполнено обновление настроек классификатора РС ВерсииКлассификаторов
// из-за нарушения порядка подключения подсистем к прикладной конфигурации. Если классификатор
// используется в конфигурации, будет выполнено частичное обновление настроек подсистемы.
Если ОбщиеДанные Тогда
Классификаторы = Новый Массив;
ПриДобавленииКлассификаторов(Классификаторы);
Для Каждого Описатель Из Классификаторы Цикл
Если Описатель.Идентификатор = Идентификатор Тогда
Запись = РегистрыСведений.ВерсииКлассификаторов.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(Запись, Описатель);
Запись.Записать();
Возврат 0;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ВызыватьИсключение Тогда
ТекстИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Классификатор %1 не зарегистрирован.'"),
Идентификатор);
ВызватьИсключение ТекстИсключения;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПолучитьФайлыКлассификаторов (БСП)
УстановитьВерсиюКлассификатора (БСП)
ОбработатьНачальнуюВерсиюКлассификатора (БСП)
ПриОпределенииНачальногоНомераВерсииКлассификатора (БСП)
ВерсияЗагруженныхКалендарей (БСП)