---
title: Работа с классификаторами
slug: bsp/работа-с-классификаторами
---


## ОбновитьКлассификаторы
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Выполняет загрузку обновления классификатора и обработку данных.
//
// Параметры:
//  Идентификаторы - Массив из Строка - идентификаторы классификаторов в сервисе,
//                   обновление которых необходимо загрузить.
//
// Возвращаемое значение:
//  Структура - содержит результат обновления классификатора:
//    * КодОшибки - Строка - строковый код возникшей ошибки, который
//                  может быть обработан вызывающим функционалом:
//                    - <Пустая строка> - обновление выполнено успешно;
//                    - "ОбновлениеНеТребуется" - обновление не обнаружено;
//                    - "НеверныйЛогинИлиПароль" - неверный логин или пароль;
//                    - "ПревышеноКоличествоПопыток" - превышено количество попыток
//                      получения обновления с некорректным логином и паролем;
//                    - "ОшибкаПодключения" - ошибка при подключении к сервису;
//                    - "ОшибкаСервиса" - внутренняя ошибка сервиса;
//                    - "НеизвестнаяОшибка" - при получении информации возникла
//                      неизвестная (не обрабатываемая) ошибка;
//                    - "НеОбработан" - файл классификатора успешно загружен, но не обработан.
//                      Ошибка может возникнуть, если отсутствуют алгоритмы обработки файла
//                      см. процедуру РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора
//                      и ИнтеграцияПодсистемБИП.ПриЗагрузкеКлассификатора;
//                    - "СервисВременноНеДоступен" - на сервер ведутся регламентные работы;
//                    - "НеизвестныйКлассификаторИлиПрограмма" - классификатор или программа
//                      в сервисе не обнаружен по переданному идентификатору;
//                    - "ФайлНеЗагружен" - при загрузке файлов классификатора возникли ошибки;
//                    - "НетДоступаКПрограмме" - отсутствует доступ к программе на Портале 1С:ИТС;
//    *СообщениеОбОшибке  - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
//    *ИнформацияОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора.
//
Функция ОбновитьКлассификаторы(Идентификаторы) Экспорт
```

Пример вызова
```bsl
Результат = РаботаСКлассификаторами.ОбновитьКлассификаторы(Идентификаторы) 
```
</details>

## ДоступныеОбновленияКлассификаторов
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Проверяет наличие доступных обновлений классификаторов в Сервисе классификаторов
// или в кэше поставляемых данных. При работе в модели сервиса информация о
// актуальных версиях классификаторов будет сохранена в кэше опционально, т.е.
// в зависимости от настройки классификатора в переопределяемом методе
// РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов и в методе
// ИнтеграцияПодсистемБИП.ПриДобавленииКлассификаторов(Классификаторы). Если
// в настройках классификатора установлено значение СохранятьФайлВКэш равным Истина
// получение файлов актуальных версий будет доступно, в противно случае метод вернет
// пустую таблицу ДоступныеВерсии.
//
// Параметры:
//  Идентификаторы - Массив из Строка - идентификаторы классификаторов в сервисе,
//                   обновление которых необходимо загрузить.
//
// Возвращаемое значение:
//  Структура - информация о доступных обновлениях:
//    * КодОшибки - Строка - строковый код возникшей ошибки, который
//                  может быть обработан вызывающим функционалом:
//                    - <Пустая строка> - обновление выполнено успешно;
//                    - "НеверныйЛогинИлиПароль" - неверный логин или пароль;
//                    - "ПревышеноКоличествоПопыток" - превышено количество попыток
//                      получения обновления с некорректным логином и паролем;
//                    - "ОшибкаПодключения" - ошибка при подключении к сервису;
//                    - "ОшибкаСервиса" - внутренняя ошибка сервиса;
//                    - "НеизвестнаяОшибка" - при получении информации возникла
//                      неизвестная (не обрабатываемая) ошибка;
//                    - "СервисВременноНеДоступен" - на сервер ведутся регламентные работы;
//                    - "НеизвестныйКлассификаторИлиПрограмма" - классификатор или программа
//                      в сервисе не обнаружен по переданному идентификатору;
//                    - "НетДоступаКПрограмме" - отсутствует доступ к программе на Портале 1С:ИТС;
//                    - "ОбновлениеНеТребуется" - загружены актуальные версии классификаторов;
//    *СообщениеОбОшибке  - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
//    *ИнформацияОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора;
//    *ДоступныеВерсии - Массив - содержит информацию о доступных обновлениях
//      **Идентификатор      - Строка - идентификатор классификатора в сервисе;
//      **Версия             - Строка - номер актуальной версии;
//      **ОписаниеВерсии     - Строка - описание изменений в версии;
//      **ИдентификаторФайла - Структура - описание файла классификатора файла для загрузки
//                             РаботаСКлассификаторами.ПолучитьФайлыКлассификаторов;
//      **ИдентификаторФайла - Строка - идентификатор файла, который будет использован для загрузки;
//      **Размер             - Строка - размер файла;
//      **Наименование       - Строка - наименование классификатора;
//
Функция ДоступныеОбновленияКлассификаторов(Идентификаторы) Экспорт
```

Пример вызова
```bsl
Результат = РаботаСКлассификаторами.ДоступныеОбновленияКлассификаторов(Идентификаторы) 
```
</details>

## ОбработатьОбновлениеКлассификатора
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Выполняет загрузку файла обновления классификатора и его обработку.
// Необходимо использовать совместно с функцией РаботаСКлассификаторами.ДоступныеОбновленияКлассификаторов.
//
// Параметры:
//  Идентификатор      - Строка - идентификатор классификатора в сервисе;
//  Версия             - Строка - номер актуальной версии;
//  ИдентификаторФайла - Строка - идентификатор файла, который будет использован для загрузки.
//                       см. функцию РаботаСКлассификаторами.ДоступныеОбновленияКлассификаторов;
//
// Возвращаемое значение:
//  Структура - результат обновления классификатора:
//    * КодОшибки - Строка - строковый код возникшей ошибки, который
//                  может быть обработан вызывающим функционалом:
//                    - <Пустая строка> - обновление выполнено успешно;
//                    - "НеверныйЛогинИлиПароль" - неверный логин или пароль;
//                    - "ПревышеноКоличествоПопыток" - превышено количество попыток
//                      получения обновления с некорректным логином и паролем;
//                    - "ОшибкаПодключения" - ошибка при подключении к сервису;
//                    - "ОшибкаСервиса" - внутренняя ошибка сервиса;
//                    - "НеизвестнаяОшибка" - при получении информации возникла
//                      неизвестная (не обрабатываемая) ошибка;
//                    - "НеОбработан" - файл классификатора успешно загружен, но не обработан.
//                      Ошибка может возникнуть, если отсутствуют алгоритмы обработки файла
//                      см. процедуру РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора
//                      и ИнтеграцияПодсистемБИП.ПриЗагрузкеКлассификатора;
//                    - "СервисВременноНеДоступен" - на сервер ведутся регламентные работы;
//                    - "НеизвестныйКлассификаторИлиПрограмма" - классификатор или программа
//                      в сервисе не обнаружен по переданному идентификатору;
//                    - "ФайлНеЗагружен" - при загрузке файлов классификатора возникли ошибки;
//                    - "НетДоступаКПрограмме" - отсутствует доступ к программе на Портале 1С:ИТС.
//    *СообщениеОбОшибке  - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
//    *ИнформацияОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора;
//
// Пример:
//	Идентификаторы = Новый Массив;
//	Идентификаторы.Добавить(Параметры.Идентификатор);
//
//	РезультатПроверки = РаботаСКлассификаторами.ДоступныеОбновленияКлассификаторов(Идентификаторы);
//	Если ЗначениеЗаполнено(РезультатПроверки.КодОшибки) Тогда
//		ПоказатьПредупреждение(, РезультатПроверки.СообщениеОбОшибке);
//	ИначеЕсли РезультатПроверки.ДоступныеВерсии.Количество() = 0 Тогда
//		Возврат;
//	Иначе
//		РаботаСКлассификаторами.ОбработатьОбновлениеКлассификатора(
//			РезультатПроверки.ДоступныеВерсии[0].Идентификатор,
//			РезультатПроверки.ДоступныеВерсии[0].Версия,
//			РезультатПроверки.ДоступныеВерсии[0].ИдентификаторФайла)
//	КонецЕсли;
//
Функция ОбработатьОбновлениеКлассификатора( Экспорт
```

Пример вызова
```bsl
Результат = РаботаСКлассификаторами.ОбработатьОбновлениеКлассификатора();
```
</details>

## ПолучитьФайлыКлассификаторов
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает актуальные версии файлов классификаторов из сервиса классификаторов
// или из кэша поставляемых данных. При работе в модели сервиса информация о
// актуальных версиях классификаторов будет сохранена в кэше опционально, т.е.
// в зависимости от настройки классификатора в переопределяемом методе
// РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов и в методе
// ИнтеграцияПодсистемБИП.ПриДобавленииКлассификаторов(Классификаторы). Если
// в настройках классификатора установлено значение СохранятьФайлВКэш равным Истина
// получение файлов актуальных версий будет доступно, в противно случае метод вернет
// пустую таблицу ДанныеКлассификаторов.
//
// Параметры:
//  Идентификаторы - Массив из Строка - идентификаторы классификаторов в сервисе,
//                   файлы которых необходимо загрузить.
//
// Возвращаемое значение:
//  Структура - информация о доступных обновлениях:
//    *КодОшибки - Строка - строковый код возникшей ошибки, который
//                  может быть обработан вызывающим функционалом:
//                    - <Пустая строка> - обновление выполнено успешно;
//                    - "ОбновлениеНеТребуется" - обновление не обнаружено;
//                    - "НеверныйЛогинИлиПароль" - неверный логин или пароль;
//                    - "ПревышеноКоличествоПопыток" - превышено количество попыток
//                      получения обновления с некорректным логином и паролем;
//                    - "ОшибкаПодключения" - ошибка при подключении к сервису;
//                    - "ОшибкаСервиса" - внутренняя ошибка сервиса;
//                    - "НеизвестнаяОшибка" - при получении информации возникла
//                      неизвестная (не обрабатываемая) ошибка;
//                    - "НеОбработан" - файл классификатора успешно загружен, но не обработан.
//                      Ошибка может возникнуть, если отсутствуют алгоритмы обработки файла
//                      см. процедуру РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора
//                      и ИнтеграцияПодсистемБИП.ПриЗагрузкеКлассификатора;
//                    - "СервисВременноНеДоступен" - на сервер ведутся регламентные работы;
//                    - "НеизвестныйКлассификаторИлиПрограмма" - классификатор или программа
//                      в сервисе не обнаружен по переданному идентификатору;
//                    - "ФайлНеЗагружен" - при загрузке файлов классификатора возникли ошибки;
//                    - "НетДоступаКПрограмме" - отсутствует доступ к программе на Портале 1С:ИТС;
//    *СообщениеОбОшибке     - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
//    *ИнформацияОбОшибке    - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора;
//    *ДанныеКлассификаторов - ТаблицаЗначений, Неопределено - содержит информацию о доступных обновлениях
//      **Идентификатор    - Строка - идентификатор классификатора в сервисе;
//      **Версия           - Строка - номер актуальной версии;
//      **АдресФайла       - Строка - адрес файла во временном хранилище;
//      **ОписаниеВерсии   - Строка - описание изменений в версии;
//      **КонтрольнаяСумма - Строка - описание изменений в версии;
//      **Размер           - Строка - описание изменений в версии;
//
Функция ПолучитьФайлыКлассификаторов(Идентификаторы) Экспорт
```

Пример вызова
```bsl
Результат = РаботаСКлассификаторами.ПолучитьФайлыКлассификаторов(Идентификаторы) 
```
</details>

## ОписаниеКлассификатора
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Создает описание классификатора, который используется в программе.
//
// Возвращаемое значение:
//   Структура - содержит перечень значений необходимых для  подключения тестового периода:
//     *Наименование               - Строка - пользовательское представление классификатора.
//                                   Длина не более 150 символов;
//     *Идентификатор              - Строка - идентификатор классификатора в сервисе классификаторов.
//                                   Поле обязательно для заполнения, если передана пустая строка,
//                                   при переходе на новую версию будет вызвано исключение. Длина не более
//                                   50 символов;
//     *ОбновлятьАвтоматически     - Булево - настройка которая включает/отключает автоматическое
//                                   обновления данных из сервиса;
//     *ОбщиеДанные                - Булево - регулирует способ обработки поставляем данных.
//                                   Если Ложь, загрузка данных классификатора будет произведена
//                                   в каждую область базы данных. Параметр используется только при работе
//                                   в модели сервиса, в обычном режиме игнорируется;
//     *ОбработкаРазделенныхДанных - Булево - указывает на необходимость дополнительной обработки данных
//                                   областей после загрузки классификатора. Настройка используется только
//                                   при работе в модели сервиса для общих классификаторов, т.е. если свойство
//                                   ОбщиеДанные = Ложь, настройка игнорируется. Если значение настройки
//                                   равно Истина, после обработки обновления классификатора для каждой
//                                   области данных будет вызван переопределяемых метод
//                                   РаботаСКлассификаторамиВМоделиСервисаПереопределяемый.ПриОбработкеОбластиДанных
//                                   и метод ИнтеграцияПодсистемБИП.ПриОбработкеОбластиДанных.
//                                   Обработка областей выполняется в асинхронно регламентным заданием
//                                   (см. подсистемы ОчередьЗаданий), которое создается после обработки
//                                   неразделенных данных;
//     *СохранятьФайлВКэш          - Булево  - указывает на необходимость сохранения файла в кэше.
//                                   Если установлено значение Истина, после обработки данных классификатора
//                                   файл будет сохранен в кэше. Данные из кэша получаются при вызове метода
//                                   программного интерфейса РаботаСКлассификаторами.ПолучитьФайлыКлассификаторов.
//                                   Так как файлы физически хранятся в информационной базе, не следует использовать
//                                   кэш для хранения больших классификаторов. Если классификатор имеет значительный
//                                   размер, лучше создать для хранения его данных отдельный объект метаданных.
//
Функция ОписаниеКлассификатора() Экспорт
```

Пример вызова
```bsl
Результат = РаботаСКлассификаторами.ОписаниеКлассификатора() 
```
</details>

## УстановитьВерсиюКлассификатора
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Изменяет номер загруженной версии классификатора. Процедуру следует использовать,
// если выполняется обновления данных не из сервиса классификаторов. При работе в модели
// сервиса будет автоматический определена доступность общих данных. Если общие данные
// не доступны, изменение версии регистрируется для области данных.
//
// Параметры:
//  Идентификатор - Строка - идентификатор классификатора в сервисе классификаторов;
//  Версия        - Число - новый номер версии, который необходимо установить.
//
Процедура УстановитьВерсиюКлассификатора(Идентификатор, Версия) Экспорт
```

Пример вызова
```bsl
РаботаСКлассификаторами.УстановитьВерсиюКлассификатора(Идентификатор, Версия) 
```
</details>

## УстановитьДатуОбновленияКлассификатора
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Устанавливает дату обновления файла классификатора. Процедуру необходимо вызывать
// после очередного обновления данных классификатора или если обновление не требуется,
// т.е. в информационную базу загружены актуальные данные. При вызове процедуры в монопольном
// обработчике обновления, следует учитывать, что информация о классификаторе будет зарегистрирована
// после выполнения обновления подсистемы "Работа с классификаторами".
//
// Параметры:
//  Идентификатор  - Строка - идентификатор классификатора в сервисе классификаторов;
//  ДатаОбновления - Дата - дата обновления классификатора.
//
Процедура УстановитьДатуОбновленияКлассификатора(Идентификатор, ДатаОбновления) Экспорт
```

Пример вызова
```bsl
РаботаСКлассификаторами.УстановитьДатуОбновленияКлассификатора(Идентификатор, ДатаОбновления) 
```
</details>

## ВерсияКлассификатора
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает номер версии загруженного из сервиса классификатора. Если номер версии
// по идентификатору не найден, выполняет обновление данных регистра сведений
// ВерсииКлассификаторов.
//
// Параметры:
//  Идентификатор      - Строка - идентификатор классификатора в сервисе классификаторов;
//  ВызыватьИсключение - Булево - если Истина и идентификатор классификатора не найден, будет вызвано исключение.
//
// Возвращаемое значение:
//   Число, Неопределено - номер версии классификатора.
//
Функция ВерсияКлассификатора(Идентификатор, ВызыватьИсключение = Ложь) Экспорт
```

Пример вызова
```bsl
Результат = РаботаСКлассификаторами.ВерсияКлассификатора(Идентификатор, ВызыватьИсключение);
```
</details>

## ДатаОбновленияКлассификатора
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает дату последнего обновления классификатора. Если дата обновления
// по идентификатору не найдена, выполняет обновление данных регистра сведений
// ВерсииКлассификаторов.
//
// Параметры:
//  Идентификатор      - Строка - идентификатор классификатора в сервисе классификаторов;
//  ВызыватьИсключение - Булево - если Истина и идентификатор классификатора не найден, будет вызвано исключение.
//
// Возвращаемое значение:
//   Дата, Неопределено - дата обновления классификатора.
//
Функция ДатаОбновленияКлассификатора(Идентификатор, ВызыватьИсключение = Ложь) Экспорт
```

Пример вызова
```bsl
Результат = РаботаСКлассификаторами.ДатаОбновленияКлассификатора(Идентификатор, ВызыватьИсключение);
```
</details>

## ИнтерактивнаяЗагрузкаКлассификаторовДоступна
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Определяет доступность использования обработки интерактивной загрузки
// классификаторов.
//
// Возвращаемое значение:
//  Булево - определяет возможность использования обработки ОбновлениеКлассификаторов
//           Если Истина, обработку можно использовать.
//
Функция ИнтерактивнаяЗагрузкаКлассификаторовДоступна() Экспорт
```

Пример вызова
```bsl
Результат = РаботаСКлассификаторами.ИнтерактивнаяЗагрузкаКлассификаторовДоступна() 
```
</details>

---

© 2024, **ООО 1С-Софт**  
Все права защищены. Эта программа и сопроводительные материалы предоставляются  
в соответствии с условиями лицензии [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/legalcode).

---
