Тип: ПеремещениеГраницыПриПроведении. Если это свойство установлено в значение Перемещать, то документ, зарегистрированный в этой последовательности, при своем проведении будет пытаться переместить границу этой последовательности. Если это свойство установлено в значение НеПеремещать, то документ не будет перемещать границу этой последовательности при своем проведении.
Полное описание, параметры и ограничения
ОбъектМетаданных: Последовательность.ПеремещениеГраницыПриПроведении (MetadataObject: Sequence.MoveBoundaryOnPosting)
ОбъектМетаданных: Последовательность (MetadataObject: Sequence)
ПеремещениеГраницыПриПроведении (MoveBoundaryOnPosting)
Доступен, начиная с версии 8.1.
Использование:
Только чтение.
Описание:
Тип: ПеремещениеГраницыПриПроведении.
Если это свойство установлено в значение Перемещать, то документ, зарегистрированный в этой последовательности, при своем проведении будет пытаться переместить границу этой последовательности.
Если это свойство установлено в значение НеПеремещать, то документ не будет перемещать границу этой последовательности при своем проведении.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Не путать настройку перемещения границы с командой восстановления
У исходной последовательности DontMove, автоматические блокировки и нет измерений. Читаем эти независимые свойства без изменения текущей границы.
Где и как запускать
Полный серверный модуль соответствующей учебной копии КА2 или УТ 10.3. Никаких операций перепроведения или изменения настроек.
Подготовка
Последовательность ПартионныйУчет взята из C:\claude\UT10_3\XML_UT_10_3\Sequences\ПартионныйУчет.xml. Используйте отдельную учебную копию именно этой УТ 10.3 на установленной платформе 8.5.1.1343, не рабочую базу.
Для первых двух уроков о режимах конфигурации используйте отдельную копию КА2 Progress. Для последующих пяти — копию указанной УТ 10.3. Не смешивайте имена и настройки разных конфигураций.
В серверном общем модуле УчебныеЗадачи разместите полный модуль одного урока и вызовите ВыполнитьПример() из своей серверной команды. В обычной конфигурации можно вызвать серверную процедуру из собственной учебной обработки.
Только чтение схемы и собственные значения в памяти: нет проведения, восстановления последовательности, изменения границ, назначения номеров или переключения совместимости.
Процедура ВыполнитьПример() Экспорт
Последовательность = Метаданные.Последовательности.Найти("ПартионныйУчет");
Если Последовательность = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует Последовательности.ПартионныйУчет";
КонецЕсли;
Варианты = Метаданные.СвойстваОбъектов;
Сообщить(Последовательность.ПеремещениеГраницыПриПроведении = Варианты.ПеремещениеГраницыПриПроведении.НеПеремещать);
Если Последовательность.ПеремещениеГраницыПриПроведении = Варианты.ПеремещениеГраницыПриПроведении.Перемещать Тогда
Сообщить("Зарегистрированный документ при проведении будет пытаться переместить границу");
Иначе
Сообщить("По этой настройке документ при проведении не перемещает границу");
КонецЕсли;
Сообщить(Последовательность.РежимУправленияБлокировкойДанных = Варианты.РежимУправленияБлокировкойДанныхПоУмолчанию.Автоматический);
Сообщить(Последовательность.Измерения.Количество() = 0);
Сообщить("Дополнительных индексов схемы: " + Строка(Последовательность.ДополнительныеИндексы.Количество()));
Сообщить("Действительная граница последовательности не читалась и не устанавливалась");
КонецПроцедурыРазбор по шагам
НеПеремещать взято из MoveBoundaryOnPosting=DontMove. Перемещать означало бы попытку документа передвинуть границу при проведении, а не отдельную команду полного восстановления.
РежимУправленияБлокировкойДанных=Автоматический взят из DataLockControlMode=Automatic. Он не является списком текущих блокировок.
В XML нет дочерних измерений, поэтому контролируем 0. Не читаем Измерения[0] у пустой коллекции.
ДополнительныеИндексы с 8.3.26 — коллекция описаний индексов. На установленной платформе 8.5 выводим фактическое количество, не создавая индекс СУБД.
Пример не вызывает менеджер последовательности, проведение или установку границы.
Как проверить результат
Три контрольные Истина в исходной учебной копии и фактическое число дополнительных индексов.
Настройки блокировки и текущая граница не изменены.
Ожидаемый результат
Получена карта политики последовательности без опасного смешения с восстановлением учёта.
На что обратить внимание
Флаг НеПеремещать не доказывает, что граница правильная или что учёт требует восстановления.
Метаданные дополнительных индексов не подтверждают состояние физических индексов СУБД.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Получить свой набор из нового документа и не спутать принадлежность с будущей ссылкой
Перед настройкой обработчика проверить собственную метаданную связь документа и последовательности, установить будущий идентификатор и снабдить связанный набор служебной пометкой, сохранив фактического регистратора и строки неизменными. Это подготовка собственного черновика, а не 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С здесь не запускалась.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.