Общий реквизит используется в качестве разделителя данных.
Полное описание, параметры и ограничения
РазделениеДанныхОбщегоРеквизита.Разделять (CommonAttributeDataSeparation.Separate)
РазделениеДанныхОбщегоРеквизита (CommonAttributeDataSeparation)
Разделять (Separate)
Доступен, начиная с версии 8.2.
Описание:
Общий реквизит используется в качестве разделителя данных.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Подготовить строковое значение учебного разделителя
Для собственного числового общего реквизита задаём строковое значение 1 в описании пользователя. Разделение данных текущего сеанса не переключается.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Используйте отдельную учебную базу с именем конфигурации Учебная85. Работайте под учебным администратором, которому доступно чтение и создание описаний пользователей.
Создайте серверный общий модуль УчебныеЗадачи. Фрагмент вставьте в тело своей экспортной процедуры и запустите учебной командой.
СоздатьПользователя создаёт описание, не запись списка пользователей. В коде намеренно отсутствуют Записать и Удалить: права, пароли и аутентификация существующих людей не меняются.
Не добавляйте Записать к этим черновикам: для реального создания учётной записи нужны отдельная проверка ролей, способов входа и действующих политик.
Только в отдельной учебной конфигурации создайте общий реквизит УчебныйРаздел: тип Число (целое), РазделениеДанных=Разделять. Выполните обновление своей учебной базы до запуска.
УчебноеИмя = "Черновик_" + Строка(Новый УникальныйИдентификатор);
Если ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) <> Неопределено Тогда
ВызватьИсключение "Учебное имя уже занято: черновик не создаётся";
КонецЕсли;
Черновик = ПользователиИнформационнойБазы.СоздатьПользователя();
Черновик.Имя = УчебноеИмя;
Черновик.ПолноеИмя = "Учебный незаписанный пользователь";
Черновик.ПоказыватьВСпискеВыбора = Ложь;
Черновик.АутентификацияСтандартная = Ложь;
Черновик.АутентификацияОС = Ложь;
Разделитель = Метаданные.ОбщиеРеквизиты.Найти("УчебныйРаздел");
Если Разделитель = Неопределено Тогда
ВызватьИсключение "Создайте собственный числовой разделитель УчебныйРаздел";
КонецЕсли;
Если Разделитель.РазделениеДанных <> Метаданные.СвойстваОбъектов.РазделениеДанныхОбщегоРеквизита.Разделять Тогда
ВызватьИсключение "Общий реквизит не настроен как разделитель";
КонецЕсли;
Если Не Разделитель.Тип.СодержитТип(Тип("Число")) Тогда
ВызватьИсключение "У учебного разделителя нет числового типа";
КонецЕсли;
ЗначенияРазделителей = Черновик.РазделениеДанных;
ЗначенияРазделителей.Вставить("УчебныйРаздел", "1");
Черновик.РазделениеДанных = ЗначенияРазделителей;
ЗначениеРаздела = Неопределено;
Сообщить(ЗначенияРазделителей.Свойство("УчебныйРаздел", ЗначениеРаздела));
Сообщить(ЗначениеРаздела = "1");
Сообщить(ТипЗнч(ЗначениеРаздела) = Тип("Строка"));
Сообщить(ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) = Неопределено);
Сообщить(Черновик.УникальныйИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"));Разбор по шагам
В метаданных проверяем точное имя, режим Разделять и числовой тип общего реквизита.
РазделениеДанных пользователя — Структура. Ключом служит имя разделителя, значением — его строковое представление, поэтому здесь именно "1", не число 1.
Свойство позволяет проверить наличие ключа и получить значение. Структуру явно присваиваем черновику: по справке при присвоении РазделениеДанных проверяется правильность структуры.
Текущий сеанс, параметры сеанса и строки данных не меняются. Применение разделителя и фактическая изоляция требуют отдельной проверки записанного пользователя.
Как проверить результат
Три проверки Истина: ключ существует, значение равно строке 1, тип Строка.
Никакие документы или записи регистра не перемещаются между разделами.
Две последние проверки Истина: имя не появилось в списке, UUID черновика остался нулевым.
Ожидаемый результат
Подготовлено корректное строковое значение собственного числового разделителя.
На что обратить внимание
Значение описания пользователя не равно текущему значению разделителя сеанса.
Такой черновик не доказывает изоляцию данных или корректность прав в рабочей конфигурации.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.