Считывает данные бизнес-процесса из базы данных.
Синтаксис
Прочитать()Примеры платформы
БизнесПроцесс.Прочитать();Полное описание, параметры и ограничения
БизнесПроцессОбъект.<Имя бизнес-процесса>.Прочитать (BusinessProcessObject.<Business process name>.Read)
БизнесПроцессОбъект.<Имя бизнес-процесса> (BusinessProcessObject.<Business process name>)
Прочитать (Read)
Доступен, начиная с версии 8.0.
Синтаксис:
Прочитать()
Описание:
Считывает данные бизнес-процесса из базы данных.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Примечание:
Позволяет прочесть данные заново. Недопустим для нового объекта.
Пример:
БизнесПроцесс.Прочитать();
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Перечитать свои временные процесс и задачу, не запуская маршрут
В отменяемой транзакции записываем собственную пару, читаем версии данных и отбросим только несохранённые комментарии. Запись процесса не равна его старту.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.
Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.
Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.
Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.
Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.
В этой отдельной пустой конфигурации Учебная85 добавьте Задачи → УчебнаяЗадача: длина номера 9, тип Строка, автонумерация; наименование длиной 100. Добавьте реквизит Комментарий (Строка, 100), без проверки заполнения.
Добавьте Бизнес-процессы → УчебныйПроцесс: длина номера 9, тип Строка, автонумерация, реквизит Комментарий (Строка, 100), без проверки заполнения. В свойстве Задача выберите УчебнаяЗадача.
Карта маршрута: одна точка старта Старт → одна одиночная точка действия ПодготовитьКнигу → одна точка завершения Финиш. Соедините их стрелками; в представлении точки действия укажите Подготовить учебную книгу.
Адресацию задач, групповые/условные/вложенные точки и обработчики маршрута для этой задачи не добавляйте. Модули задачи и процесса, подписки и внешние действия должны быть пустыми. Обновите конфигурацию базы данных.
Все имена здесь относятся к новым учебным объектам, не к рабочей КА2/УНФ/УТ/БП. Каждый фрагмент запускайте отдельно на сервере в ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи.
Если Метаданные.БизнесПроцессы.Найти("УчебныйПроцесс") = Неопределено
Или Метаданные.Задачи.Найти("УчебнаяЗадача") = Неопределено Тогда
ВызватьИсключение "Сначала создайте учебные процесс, задачу и карту маршрута";
КонецЕсли;
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Нельзя запускать внутри чужой транзакции";
КонецЕсли;
СсылкаПроцесса = БизнесПроцессы.УчебныйПроцесс.ПолучитьСсылку(Новый УникальныйИдентификатор);
НачатьТранзакцию();
Попытка
Процесс = БизнесПроцессы.УчебныйПроцесс.СоздатьБизнесПроцесс();
Процесс.УстановитьСсылкуНового(СсылкаПроцесса);
Процесс.Дата = Дата(2026, 10, 3, 10, 0, 0);
Процесс.Комментарий = "Записанный учебный процесс";
Процесс.Записать();
СсылкаЗадачи = Задачи.УчебнаяЗадача.ПолучитьСсылку(Новый УникальныйИдентификатор);
Задача = Задачи.УчебнаяЗадача.СоздатьЗадачу();
Задача.УстановитьСсылкуНового(СсылкаЗадачи);
Задача.Наименование = "Самостоятельная учебная задача";
Задача.Дата = Процесс.Дата;
Задача.БизнесПроцесс = СсылкаПроцесса;
Задача.Комментарий = "Записанная учебная задача";
Задача.Записать();
Процесс.Комментарий = "Несохранённая правка процесса";
Задача.Комментарий = "Несохранённая правка задачи";
Сообщить(Процесс.Модифицированность());
Сообщить(Задача.Модифицированность());
Процесс.Прочитать();
Задача.Прочитать();
Сообщить(Процесс.Комментарий = "Записанный учебный процесс");
Сообщить(Задача.Комментарий = "Записанная учебная задача");
Сообщить(Не Процесс.Модифицированность());
Сообщить(Не Задача.Модифицированность());
Сообщить(ТипЗнч(Процесс.ВерсияДанных) = Тип("Строка"));
Сообщить(ТипЗнч(Задача.ВерсияДанных) = Тип("Строка"));
Сообщить(Не Процесс.Стартован);
Сообщить(Не Задача.Выполнена);
ОтменитьТранзакцию();
Исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
Сообщить(Не ТранзакцияАктивна());
Сообщить(СсылкаПроцесса.ПолучитьОбъект() = Неопределено);
Сообщить(СсылкаЗадачи.ПолучитьОбъект() = Неопределено);Разбор по шагам
Запись разрешена только в изолированной новой Учебная85 с пустыми модулями/подписками. Проверяем отсутствие чужой транзакции.
Каждому новому объекту назначена собственная UUID-ссылка. Процесс записывается до связанной учебной задачи.
Меняем комментарии только в памяти и вызываем Прочитать. Записанные комментарии восстанавливаются, локальная модифицированность сбрасывается.
ВерсияДанных — непрозрачная строка; не форматируем её как дату или номер конфигурации.
Все записи откатываем. Ни Старт, ни ВыполнитьЗадачу не вызывались.
Как проверить результат
Десять сравнений в транзакции Истина; после неё ещё три: транзакция закрыта, обе собственные записи отсутствуют.
В учебных списках не осталось созданной пары.
Ожидаемый результат
Проверены запись, чтение и откат двух собственных объектов без исполнения маршрута.
На что обратить внимание
Самостоятельное ручное связывание показано для упражнения чтения, не для проектирования рабочего маршрута.
Откат базы не отменяет внешние действия обработчиков. Поэтому рабочую конфигурацию здесь использовать нельзя.
После отката состояние объекта в памяти не доказывает наличие строки в базе: проверяем по ссылке.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Пройти собственный учебный маршрут и отменить весь опыт
Старт порождает задачу точки действия. Находим её только по своему новому процессу, выполняем и перечитываем завершённый процесс. Всё происходит внутри отменяемой учебной транзакции.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.
Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.
Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.
Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.
Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.
В этой отдельной пустой конфигурации Учебная85 добавьте Задачи → УчебнаяЗадача: длина номера 9, тип Строка, автонумерация; наименование длиной 100. Добавьте реквизит Комментарий (Строка, 100), без проверки заполнения.
Добавьте Бизнес-процессы → УчебныйПроцесс: длина номера 9, тип Строка, автонумерация, реквизит Комментарий (Строка, 100), без проверки заполнения. В свойстве Задача выберите УчебнаяЗадача.
Карта маршрута: одна точка старта Старт → одна одиночная точка действия ПодготовитьКнигу → одна точка завершения Финиш. Соедините их стрелками; в представлении точки действия укажите Подготовить учебную книгу.
Адресацию задач, групповые/условные/вложенные точки и обработчики маршрута для этой задачи не добавляйте. Модули задачи и процесса, подписки и внешние действия должны быть пустыми. Обновите конфигурацию базы данных.
Все имена здесь относятся к новым учебным объектам, не к рабочей КА2/УНФ/УТ/БП. Каждый фрагмент запускайте отдельно на сервере в ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи.
Если Метаданные.БизнесПроцессы.Найти("УчебныйПроцесс") = Неопределено
Или Метаданные.Задачи.Найти("УчебнаяЗадача") = Неопределено Тогда
ВызватьИсключение "Сначала создайте учебные процесс, задачу и карту маршрута";
КонецЕсли;
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Нельзя запускать внутри чужой транзакции";
КонецЕсли;
СсылкаПроцесса = БизнесПроцессы.УчебныйПроцесс.ПолучитьСсылку(Новый УникальныйИдентификатор);
НачатьТранзакцию();
Попытка
Процесс = БизнесПроцессы.УчебныйПроцесс.СоздатьБизнесПроцесс();
Процесс.УстановитьСсылкуНового(СсылкаПроцесса);
Процесс.Дата = Дата(2026, 10, 3, 10, 0, 0);
Процесс.Комментарий = "Только собственный учебный маршрут";
Процесс.Записать();
Процесс.Старт(БизнесПроцессы.УчебныйПроцесс.ТочкиМаршрута.Старт);
Процесс.Прочитать();
Сообщить(Процесс.Стартован);
Сообщить(Не Процесс.Завершен);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| УчебныеЗадачи.Ссылка КАК Ссылка
|ИЗ Задача.УчебнаяЗадача КАК УчебныеЗадачи
|ГДЕ УчебныеЗадачи.БизнесПроцесс = &Процесс";
Запрос.УстановитьПараметр("Процесс", СсылкаПроцесса);
Найденные = Запрос.Выполнить().Выгрузить();
Если Найденные.Количество() <> 1 Тогда
ВызватьИсключение "Ожидается ровно одна собственная задача одиночной точки; проверьте учебную карту и адресацию";
КонецЕсли;
СсылкаЗадачи = Найденные.Получить(0).Ссылка;
Задача = СсылкаЗадачи.ПолучитьОбъект();
Если Задача = Неопределено Тогда
ВызватьИсключение "Порождённая учебная задача не найдена";
КонецЕсли;
Если Задача.БизнесПроцесс <> СсылкаПроцесса Тогда
ВызватьИсключение "Нельзя выполнять задачу чужого процесса";
КонецЕсли;
Сообщить(Не Задача.Выполнена);
Сообщить(Задача.ТочкаМаршрута = БизнесПроцессы.УчебныйПроцесс.ТочкиМаршрута.ПодготовитьКнигу);
Задача.ВыполнитьЗадачу();
Задача.Прочитать();
Процесс.Прочитать();
Сообщить(Задача.Выполнена);
Сообщить(Процесс.Завершен);
ОтменитьТранзакцию();
Исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
Сообщить(Не ТранзакцияАктивна());
Сообщить(СсылкаПроцесса.ПолучитьОбъект() = Неопределено);
Сообщить(СсылкаЗадачи.ПолучитьОбъект() = Неопределено);Разбор по шагам
Перед запуском точно выполните подготовку карты: один Старт, одна одиночная точка действия, один Финиш, без адресации и обработчиков.
Назначаем новый UUID процессу, записываем внутри своей транзакции и вызываем Старт с конкретной точкой, не устанавливаем флаг вручную.
Запрос параметризован ссылкой только что созданного процесса. Чужие задачи не выбираются; при количестве не 1 выполнение останавливается.
ПолучитьОбъект проверяется на отсутствие, а принадлежность процессу проверяется ещё раз перед ВыполнитьЗадачу.
ВыполнитьЗадачу записывает выполнение и уведомляет процесс. Прочитать обновляет оба экземпляра, затем транзакция намеренно отменяется.
Как проверить результат
Шесть сравнений в транзакции Истина: старт, ожидание, невыполненная собственная задача нужной точки, выполненная задача, завершённый процесс.
После отката ещё три Истина: транзакция закрыта, процесс и порождённая задача отсутствуют.
В этом упражнении нет фиксации, отправки письма, файла или доступа к рабочим задачам.
Ожидаемый результат
На собственной последовательной карте показано, чем реальные Старт и ВыполнитьЗадачу отличаются от присваивания флагов.
На что обратить внимание
Только отдельная пустая учебная база. В рабочем процессе события могут записывать другие данные и обращаться во внешние системы.
ПроверитьВыполнение предназначен для проверки условий автоматизированного исполнения; без обработчиков он Ложь. Здесь явно выполняется учебная задача, а не реализуется производственный робот.
Откат не отменяет внешние действия. Пустые модули и отсутствие подписок — обязательная часть подготовки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.