Тип: ФиксированнаяКоллекция. Предоставляет доступ к наборам записей последовательностей, в которых регистрируется документ. Представляет собой коллекцию значений типа ПоследовательностьНаборЗаписей.<Имя последовательности>. Свойства коллекции содержат наборы записей последовательностей. Имена свойств совпадают с именами последовательностей как они заданы в Конфигураторе.
Полное описание, параметры и ограничения
ДокументОбъект.<Имя документа>.ПринадлежностьПоследовательностям (DocumentObject.<Document name>.BelongingToSequences)
ДокументОбъект.<Имя документа> (DocumentObject.<Document name>)
ПринадлежностьПоследовательностям (BelongingToSequences)
Доступен, начиная с версии 8.0.
Использование:
Только чтение.
Описание:
Тип: ФиксированнаяКоллекция.
Предоставляет доступ к наборам записей последовательностей, в которых регистрируется документ. Представляет собой коллекцию значений типа ПоследовательностьНаборЗаписей.<Имя последовательности>. Свойства коллекции содержат наборы записей последовательностей. Имена свойств совпадают с именами последовательностей как они заданы в Конфигураторе.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Получить свой набор из нового документа и не спутать принадлежность с будущей ссылкой
Перед настройкой обработчика проверить собственную метаданную связь документа и последовательности, установить будущий идентификатор и снабдить связанный набор служебной пометкой, сохранив фактического регистратора и строки неизменными. Это подготовка собственного черновика, а не getter неизвестного объекта.
Где и как запускать
Полный серверный общий модуль УчебныеНаборыПоследовательности85 собственной новой конфигурации УчебныеПоследовательности85. Платформа 8.5.1.1343, тонкий/толстый управляемый клиент с серверным вызовом. Только собственные объекты памяти; 1С здесь не запускалась.
Подготовка
Создайте новую отдельную пустую базу 8.5.1.1343, не копию рабочей УТ/КА2. Имя конфигурации УчебныеПоследовательности85, язык встроенного языка Русский, ОсновнойРежимЗапуска=УправляемоеПриложение, режим совместимости Не использовать. Расширений, подписок и обработчиков записи нет.
В Документы создайте единственный документ УчебнаяРегистрация85: проведение запрещено, реквизитов и табличных частей нет, движения регистров не назначены, модули объекта и менеджера пусты. В уроке создаётся один собственный объект этого документа только в памяти; он не записывается.
В Последовательности создайте единственную УчебнаяОчередь85. В составе Документы выберите только свой УчебнаяРегистрация85. Измерений, зависимых регистров в составе Движения и дополнительных индексов нет. ПеремещениеГраницыПриПроведении=НеПеремещать. Модуль набора пуст. Структура записей поэтому содержит только Период и Регистратор.
Не создавайте в стенде справочников и регистров. Для учебного пользователя разрешите собственные метаданные, общую форму и команды. Обновите только эту новую конфигурацию. Проверка имени и состава схемы выполняется до создания набора; она не доказывает отсутствия записей базы и не делает рабочую базу безопасной.
В Общие → Общие модули создайте УчебныеНаборыПоследовательности85: Сервер=Истина, ВызовСервера=Истина, Глобальный=Ложь, клиентские флаги выключены. Полный основной модуль одного выбранного урока вставьте на верхнем уровне целиком. Все помощники предоставлены ниже в том же модуле.
В Общие → Общие формы создайте управляемую форму УчебныйЗапускПоследовательности85. Добавьте команду ВыполнитьУрок с действием ВыполнитьУрок, ИзменяетСохраняемыеДанные=Ложь и кнопку Выполнить урок. Полный модуль формы:
&НаКлиенте
Процедура ВыполнитьУрок(Команда)
ВыполнитьУрокНаСервере();
КонецПроцедуры&НаСервереБезКонтекста
Процедура ВыполнитьУрокНаСервере()
УчебныеНаборыПоследовательности85.ВыполнитьПример();
КонецПроцедурыВ Общие → Общие команды создайте ОткрытьНаборПоследовательности85 без параметра и включите в свой учебный раздел. Полный модуль общей команды:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОткрытьФорму("ОбщаяФорма.УчебныйЗапускПоследовательности85");
КонецПроцедуры
Откройте свою форму этой командой и выполните её кнопку. Два вспомогательных модуля не вставляйте в основной серверный модуль.Одна плановая ссылка создаётся ПолучитьСсылку на собственный новый UUID. Непустая ссылка не означает существующий документ; реквизиты ссылок не читаются. Это идентификаторы собственных незаписанных черновых строк, не готовые записи для сохранения в базу.
Здесь нет Прочитать, Записать, проведения, восстановления или изменения границы. Добавить/Загрузить/Удалить/Очистить действуют только на принадлежащий уроку экземпляр набора в памяти. Этот пример нельзя превращать в исправление последовательности добавлением Записать.
Статически проверены исходный код и установленная справка. Компиляция и выполнение в 1С здесь не проверялись; ожидаемые результаты далее нужно подтвердить самостоятельным запуском только в подготовленной новой учебной базе.
Для этого урока не используйте модуль ОбработкаПроверкиЗаполнения из другого примера: модуль набора своей последовательности остаётся пустым. Набор здесь получаем через ПринадлежностьПоследовательностям собственного нового документа, а не от неизвестного параметра. Никаких строк в этот связанный набор не добавляем.
Процедура ВыполнитьПример() Экспорт
Если Метаданные.Последовательности.Количество() <> 1 Или Метаданные.Документы.Количество() <> 1 Тогда
ВызватьИсключение "В своём стенде нужны ровно одна последовательность и один вид документа";
КонецЕсли;
МетаОчереди = Метаданные.Последовательности.Найти("УчебнаяОчередь85");
МетаДокумента = Метаданные.Документы.Найти("УчебнаяРегистрация85");
Если МетаОчереди = Неопределено Или МетаДокумента = Неопределено Тогда
ВызватьИсключение "Не подготовлена собственная схема урока";
КонецЕсли;
Если МетаОчереди.Измерения.Количество() <> 0 Или МетаОчереди.Движения.Количество() <> 0
Или МетаОчереди.Документы.Количество() <> 1 Тогда
ВызватьИсключение "Нужна собственная очередь без измерений и зависимых регистров";
КонецЕсли;
Участвует = Ложь;
Для Каждого МетаУчастника Из МетаОчереди.Документы Цикл
Участвует = МетаУчастника = МетаДокумента;
КонецЦикла;
Если Не Участвует Тогда
ВызватьИсключение "Единственный участник должен быть своим УчебнаяРегистрация85";
КонецЕсли;
Если МетаОчереди.ПеремещениеГраницыПриПроведении <> Метаданные.СвойстваОбъектов.ПеремещениеГраницыПриПроведении.НеПеремещать Тогда
ВызватьИсключение "Проверьте подготовку политики границы собственной очереди";
КонецЕсли;
Документ = Документы.УчебнаяРегистрация85.СоздатьДокумент();
Если ТипЗнч(Документ) <> Тип("ДокументОбъект.УчебнаяРегистрация85") Или Не Документ.ЭтоНовый() Тогда
ВызватьИсключение "Нужен собственный новый незаписанный документ";
КонецЕсли;
ПлановаяСсылка = Документы.УчебнаяРегистрация85.ПолучитьСсылку(Новый УникальныйИдентификатор);
Если ТипЗнч(ПлановаяСсылка) <> Тип("ДокументСсылка.УчебнаяРегистрация85") Или ПлановаяСсылка.Пустая() Тогда
ВызватьИсключение "Нужна собственная непустая плановая ссылка";
КонецЕсли;
Документ.УстановитьСсылкуНового(ПлановаяСсылка);
Если Документ.ПолучитьСсылкуНового() <> ПлановаяСсылка Или Не Документ.ЭтоНовый() Тогда
ВызватьИсключение "Плановая ссылка не установлена или документ перестал быть новым";
КонецЕсли;
Принадлежность = Документ.ПринадлежностьПоследовательностям;
Если ТипЗнч(Принадлежность) <> Тип("ФиксированнаяКоллекция") Тогда
ВызватьИсключение "Ожидалась коллекция наборов собственного документа";
КонецЕсли;
Набор = Принадлежность.УчебнаяОчередь85;
Если ТипЗнч(Набор) <> Тип("ПоследовательностьНаборЗаписей.УчебнаяОчередь85")
Или Набор.Метаданные() <> МетаОчереди Тогда
ВызватьИсключение "Из своего документа получен набор другой последовательности";
КонецЕсли;
СвязанныйРегистратор = Набор.Регистратор;
Если ТипЗнч(СвязанныйРегистратор) <> Тип("ДокументСсылка.УчебнаяРегистрация85") Тогда
ВызватьИсключение "Неверный тип фактического связанного регистратора";
КонецЕсли;
ИсходноеКоличество = Набор.Количество();
Набор.ДополнительныеСвойства.Вставить("УчебноеНазначение85", "Контроль принадлежности нового документа");
Если Не Набор.ДополнительныеСвойства.Свойство("УчебноеНазначение85", Назначение)
Или Назначение <> "Контроль принадлежности нового документа" Тогда
ВызватьИсключение "Не сохранена собственная служебная пометка экземпляра";
КонецЕсли;
Если Набор.Регистратор <> СвязанныйРегистратор Или Набор.Количество() <> ИсходноеКоличество
Или Набор.Метаданные() <> МетаОчереди Или Документ.ПолучитьСсылкуНового() <> ПлановаяСсылка
Или Не Документ.ЭтоНовый() Тогда
ВызватьИсключение "Служебная пометка изменила документ, связь или строки набора";
КонецЕсли;
Сообщить(Назначение);
Сообщить("Плановая ссылка: " + Строка(ПлановаяСсылка.УникальныйИдентификатор()));
Сообщить("Фактический регистратор набора: " + Строка(СвязанныйРегистратор.УникальныйИдентификатор()));
Сообщить("Исходное и конечное количество строк: " + Строка(ИсходноеКоличество));
Сообщить("Документ остаётся новым; плановая ссылка не объявляется записанным документом");
КонецПроцедурыРазбор по шагам
Сначала проверьте единственный свой документ и единственную последовательность без измерений и движений. Только после этого создаётся ДокументОбъект.УчебнаяРегистрация85.
СоздатьДокумент создаёт свой объект в памяти. ЭтоНовый должен дать Истина. Вызова Записать нет; этот объект не становится строкой базы.
ПолучитьСсылку формирует свою непустую ссылку нового UUID. УстановитьСсылкуНового задаёт план для будущей записи, а ПолучитьСсылкуНового проверяет точное равенство этому плану. Проверка уникальности при записи здесь не выполняется.
ПринадлежностьПоследовательностям возвращает ФиксированнаяКоллекция. Имя её свойства УчебнаяОчередь85 задаётся своей настройкой Документы последовательности. Проверьте конкретный тип набора и его Метаданные, а не сходство имени или представления.
Прочитайте фактический Регистратор набора и реальное число строк до изменений. Native не обещает, что назначенный план сразу стал регистратором связанного набора; урок не требует их равенства и выводит оба UUID отдельно. Исходное количество также наблюдается, а не выдумывается.
В ДополнительныеСвойства поместите конкретное назначение экземпляра и прочитайте его через Свойство. Это содержимое возвращённой Структура, а не присваивание нового readonly-свойства.
Повторно проверьте регистратора, количество строк, метаданную связь, будущую ссылку и ЭтоНовый. Все значения должны остаться исходными; поменялась только собственная служебная пометка.
Сообщения выводят точную пометку, реальный UUID будущей ссылки, реальный UUID регистратора и фактическое число строк. Не заменяйте наблюдаемые значения константами и не записывайте документ ради совпадения идентификаторов.
Как проверить результат
После штатного запуска назначение равно «Контроль принадлежности нового документа», будущая ссылка точно равна ПлановаяСсылка, ЭтоНовый=Истина. Регистратор имеет тип ДокументСсылка.УчебнаяРегистрация85 и совпадает со своим исходным значением; число строк совпадает с исходным наблюдением.
Для отрицательной проверки в новой учебной базе уберите свой документ из состава последовательности. Проверка Участвует должна остановить урок до СоздатьДокумент; это тест подготовки, не повод ослабить проверку.
Сопоставьте два напечатанных UUID. Их совпадение или различие наблюдается фактически и не подменяется выводом о существовании документа. Сравнение будущей ссылки проверяется только через ПолучитьСсылкуНового.
Ожидаемый результат
Один собственный незаписанный документ с проверенной плановой ссылкой и его собственный набор УчебнаяОчередь85 со служебной пометкой. Исходные регистратор и количество строк сохранены; конкретный UUID и начальное число строк выводятся из реального экземпляра, их default-поведение не приписывается native.
На что обратить внимание
Readonly-свойства Отбор, Регистратор и ОбменДанными нельзя заменить присваиванием. У возвращённого Отбор меняются его элементы, у ПараметрыОбменаДанными — разрешённый флаг Загрузка.
Отбор набора последовательности допустим только на равенство. Это условие будущего чтения или записи, а не команда удаления неподходящих строк уже заполненного экземпляра памяти.
Плановая непустая ссылка из ПолучитьСсылку не подтверждает существование документа. УстановитьСсылкуНового задаёт ссылку для будущей записи; ПолучитьСсылкуНового возвращает именно этот план, а не доказательство записи.
Регистратор набора — связь экземпляра с документом; Регистратор отдельной строки — поле этой строки. Не переносите автоматически значение одного свойства в другое и не меняйте readonly-регистратор набора.
Загрузка=Истина сокращает проверки при записи/удалении данных. Это не разрешение пропускать бизнес-проверки в рабочей базе и не проверка корректности импортируемой информации.
В уроках нет записи, чтения базы, обмена сообщениями, проведения, восстановления и переноса границ. Локальные строки и временный флаг нельзя объявлять результатом обмена или исправлением последовательности.
Флаг восстанавливается по реально прочитанному исходному значению, а не безусловно в Ложь. Ветвь исключения не превращается в успешный результат: после восстановления ошибка передаётся вызывающему коду.
Статические проверки не исполняют платформу. Код и ожидаемые результаты требуется отдельно подтвердить в собственной новой базе 8.5.1.1343; 1С здесь не запускалась.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.