ОбъектМетаданных: Документ.Движения

Свойства · RegisterRecords

Тип: КоллекцияЗначенийСвойстваОбъектаМетаданных. Коллекция объектов метаданных, описывающих регистры. Для документа это те регистры, по которым документ может выполнять движения. Для последовательности это те регистры, записи в которых влияют на необходимость перепроведения документов последовательности.

Полное описание, параметры и ограничения

ОбъектМетаданных: Документ.Движения (MetadataObject: Document.RegisterRecords)

ОбъектМетаданных: Документ (MetadataObject: Document)

Движения (RegisterRecords)

Доступен, начиная с версии 8.1.

Использование:
Только чтение.
Описание:
Тип: КоллекцияЗначенийСвойстваОбъектаМетаданных.
Коллекция объектов метаданных, описывающих регистры. Для документа это те регистры, по которым документ может выполнять движения. Для последовательности это те регистры, записи в которых влияют на необходимость перепроведения документов последовательности.
Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.1.

Методическая информация

Практические примеры

Отличить разрешение проведения от наличия движений документа

УчебнаяЗаявка намеренно не проводится и не имеет регистров движения. Настройки читаются без попытки провести или перепровести объект.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

  5. Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.

  6. Документы → Добавить: имя УчебнаяЗаявка, тип номера Строка, длина 9, автонумерация включена. Проведение запретите: это только учебный документ без движений.

  7. Добавьте реквизит Комментарий (Строка, длина 100) и табличную часть Товары: Товар (СправочникСсылка.УчебныеТовары), Количество (Число, 9 цифр, 0 дробных, неотрицательное), Цена (Число, 12 цифр, 2 дробных, неотрицательное). Модуль документа пустой.

  8. Обновите конфигурацию базы данных. Эти имена существуют только в созданной учебной конфигурации, не подразумеваются в типовой базе.


Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;

Описание = Метаданные.Документы.Найти("УчебнаяЗаявка");
Если Описание = Неопределено Тогда
    ВызватьИсключение "Сначала создайте УчебнаяЗаявка по подготовке";
КонецЕсли;
Сообщить(Описание.Имя = "УчебнаяЗаявка");
Сообщить(Описание.ДлинаНомера = 9);
Сообщить(Описание.ТипНомера = Метаданные.СвойстваОбъектов.ТипНомераДокумента.Строка);
Сообщить(Описание.Автонумерация);
Сообщить(Описание.Проведение = Метаданные.СвойстваОбъектов.Проведение.Запретить);
Сообщить(Описание.Движения.Количество() = 0);
Сообщить("Контроль уникальности: " + Строка(Описание.КонтрольУникальности));
Сообщить("Периодичность номера: " + Строка(Описание.ПериодичностьНомера));
Сообщить("Допустимая длина: " + Строка(Описание.ДопустимаяДлинаНомера));
Сообщить("Оперативное проведение: " + Строка(Описание.ОперативноеПроведение));
Сообщить("Запись движений: " + Строка(Описание.ЗаписьДвиженийПриПроведении));
Сообщить("Удаление движений: " + Строка(Описание.УдалениеДвижений));
Сообщить("Заполнение последовательностей: " + Строка(Описание.ЗаполнениеПоследовательностей));
Сообщить("Привилегированное проведение: " + Строка(Описание.ПривилегированныйРежимПриПроведении));
Сообщить("Привилегированная отмена: " + Строка(Описание.ПривилегированныйРежимПриОтменеПроведения));
Если Описание.Нумератор = Неопределено Тогда
    Сообщить("Общий нумератор не назначен");
Иначе
    Сообщить("Нумератор: " + Описание.Нумератор.Имя);
КонецЕсли;
Сообщить(Описание.Родитель().Имя = "Учебная85");
Сообщить(Описание.ПолноеИмя());

Разбор по шагам

  1. Найти проверяет существование описания документа; нет необъявленной ссылки на типовую ЗаказКлиента.

  2. ТипНомера, ДлинаНомера, ДопустимаяДлинаНомера и ПериодичностьНомера относятся к нумерации, не к порядку проведения.

  3. Проведение определяет разрешение механизма, а Движения — список регистров, с которыми документ может работать. В подготовленной схеме оба аспекта явно ограничены.

  4. ЗаписьДвиженийПриПроведении, УдалениеДвижений и ЗаполнениеПоследовательностей читаем как настройки. У запрещённого проведения они не означают выполненных действий.

  5. Привилегированные флаги только наблюдаем: код не включает привилегированный режим и не изменяет права.

Как проверить результат

  1. Номер Строка/9, автонумерация включена, Проведение=Запретить и Движения имеет размер 0.

  2. В учебной схеме общий нумератор не назначен; описание имеет полное имя Документ.УчебнаяЗаявка.

  3. В списке документов после примера нет новых записей: экземпляр документа не создавался.

Ожидаемый результат

Возможности и настройки учебного документа прочитаны отдельно от фактической работы с его объектами.

На что обратить внимание

  1. Нельзя считать настройки движения доказательством правильности ОбработкаПроведения конкретной конфигурации.

  2. ОперативноеПроведение относится к режиму проведения, не к скорости выполнения.

  3. Эти значения не являются разрешением менять права или массово перепроводить рабочие документы.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Выяснить настройки проведения документа, не проводя его

Паспорт РеализацииТоваровУслуг: нумерация, проведение, удаление движений и список доступных регистров.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.

  2. Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.

  3. Для УТ/КА2 используйте РеализацияТоваровУслуг, если она есть. В другой конфигурации сначала выберите реальное имя документа продажи; не создавайте его ради этого примера.


Документ = Метаданные.Документы.Найти("РеализацияТоваровУслуг");
Если Документ = Неопределено Тогда
    ВызватьИсключение "Выберите фактический документ продажи из вашей конфигурации";
КонецЕсли;
Сообщить(Документ.ПолноеИмя());
Сообщить(Документ.Представление());
Сообщить(СтрШаблон("%1 (%2)", Документ.Имя, Документ.Синоним));
Сообщить(Документ.Комментарий);
Сообщить(СтрШаблон("Номер: длина %1; тип %2; периодичность %3",
    Документ.ДлинаНомера, Документ.ТипНомера, Документ.ПериодичностьНомера));
Сообщить(СтрШаблон("Автонумерация: %1; уникальность: %2", Документ.Автонумерация, Документ.КонтрольУникальности));
Сообщить(Документ.Проведение);
Сообщить(Документ.ОперативноеПроведение);
Сообщить(Документ.ЗаписьДвиженийПриПроведении);
Сообщить(Документ.УдалениеДвижений);
Сообщить(Документ.Нумератор);
Сообщить(СтрШаблон("Реквизитов: %1; табличных частей: %2; регистров движений: %3",
    Документ.Реквизиты.Количество(), Документ.ТабличныеЧасти.Количество(), Документ.Движения.Количество()));
Для Каждого Регистр Из Документ.Движения Цикл
    Сообщить(Регистр);
КонецЦикла;
Сообщить("Прочитаны только метаданные; документы не создавались и не проводились");

Разбор по шагам

  1. Получаем описание вида документа, не объект конкретной продажи.

  2. Настройки нумерации объясняют, почему формат и уникальность номера нельзя предполагать по внешнему API.

  3. Настройки проведения и записи движений описывают поведение платформы, но не содержат сам алгоритм расчёта.

  4. Перечисляем регистры из свойства Движения: это разрешённый состав, а не фактически записанные движения документа.

Как проверить результат

  1. Настройки совпадают с вкладками Нумерация, Движения и Основные выбранного документа в Конфигураторе.

  2. После запуска в базе не появляется новый документ и не меняются остатки.

  3. Пустой или отсутствующий общий Нумератор не является сам по себе ошибкой: документ может иметь собственную нумерацию.

Ожидаемый результат

Получены настройки документа и допустимый состав движений без проведения и изменения данных.

На что обратить внимание

  1. Наличие регистра в Движения не доказывает, что конкретное проведение запишет в него строки.

  2. По этим свойствам нельзя проверить правильность учёта: дополнительно нужны модуль объекта, подписки и тесты проведения в копии базы.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.