В 1С:Документооборот, как и в любой современной системе автоматизации, эффективная работа с бизнес-процессами требует глубокого понимания их структуры и связей между ключевыми объектами. Мы рассмотрим, как правильно связать объекты "Задача" и "БизнесПроцесс" в запросах, и проанализируем специфическую проблему, связанную с отсутствием поля "БизнесПроцесс" при работе с расширениями.
Давайте начнем с того, что объекты "Задача" в 1С:Документооборот являются неотъемлемой частью "Бизнес-процессов". Они не могут существовать сами по себе, а всегда генерируются в рамках какого-либо процесса. Бизнес-процесс — это предопределенная последовательность задач, выполняемых различными сотрудниками для достижения конкретного бизнес-результата. После завершения одной задачи система автоматически формирует следующую для участника процесса, основываясь на маршрутной карте.
В типовой конфигурации 1С:Документооборот связь между задачей и родительским бизнес-процессом реализуется через специальный реквизит самой задачи. Наиболее распространенное название этого реквизита — БизнесПроцесс. Этот реквизит содержит прямую ссылку на экземпляр соответствующего бизнес-процесса.
Для получения этой связи в запросе, мы можем использовать следующую конструкцию:
ВЫБРАТЬ
Задачи.Ссылка,
Задачи.БизнесПроцесс
ИЗ
Задача.ЗадачаИсполнителя КАК Задачи
ГДЕ
Задачи.БизнесПроцесс.Ссылка ЕСТЬ НЕ NULL
Здесь Задачи.БизнесПроцесс напрямую дает нам доступ к родительскому бизнес-процессу. Важно отметить, что имя реквизита может варьироваться в зависимости от конкретного вида задачи (например, Задача.ЗадачаСогласования, Задача.ЗадачаРассмотрения) или версии конфигурации. Всегда полезно проверить структуру метаданных через конфигуратор.
Теперь рассмотрим ситуацию, когда при работе с расширением вы обнаруживаете, что поле БизнесПроцесс, которое присутствует в типовой конфигурации, недоступно в вашем запросе. Мы выясним, почему это может происходить и как с этим справиться.
Существует несколько основных причин такого поведения:
Задача (или конкретный вид задачи, с которым вы работаете) был заимствован в расширение не полностью или некорректно. При заимствовании объектов в расширение важно убедиться, что все необходимые поля, включая системные ссылки на родительские объекты, также становятся доступными для модификации или использования.БизнесПроцесс в зависимости от конкретного типа задачи или бизнес-процесса в вашей версии 1С:Документооборот. Например, может использоваться реквизит, ссылающийся на конкретный вид бизнес-процесса (например, Согласование, Исполнение) или даже составной тип.Теперь давайте разберем конкретные шаги, которые мы можем предпринять для решения этой проблемы и успешного использования поля БизнесПроцесс в наших запросах через расширение.
Задача (или тот конкретный вид задачи, с которым мы работаем, например, ЗадачаИсполнителя).БизнесПроцесс (или аналогичный) не появился или его тип некорректен, мы можем добавить его вручную.ЗадачаИсполнителя (или другом), создадим новый реквизит.БизнесПроцесс (или так, как он называется в типовой конфигурации).БизнесПроцесс.Согласование, БизнесПроцесс.Ознакомление, БизнесПроцесс.Исполнение и т.д., а также БизнесПроцесс.ТиповойБизнесПроцесс, если он используется как общий тип).ЗадачаИсполнителя (или нужный вид задачи).БизнесПроцесс. Запомним его точное название и тип.БизнесПроцесс к нашей задаче в расширении. Теперь мы можем использовать его в запросе так же, как и в типовой конфигурации:
ВЫБРАТЬ
ЗадачиРасширение.Ссылка КАК СсылкаЗадачи,
ЗадачиРасширение.ДатаСоздания,
ЗадачиРасширение.БизнесПроцесс.Ссылка КАК СсылкаБизнесПроцесса,
ЗадачиРасширение.БизнесПроцесс.Наименование КАК НаименованиеБизнесПроцесса,
ЗадачиРасширение.Исполнитель
ИЗ
Расширение.Задача.ЗадачаИсполнителя КАК ЗадачиРасширение
ГДЕ
ЗадачиРасширение.Выполнена = ЛОЖЬ
И ЗадачиРасширение.БизнесПроцесс.Ссылка ЕСТЬ НЕ NULL
Расширение. перед именем объекта метаданных Задача.ЗадачаИсполнителя. Это указывает, что мы обращаемся к объекту из нашего расширения.Согласование, и мы хотим получить специфические данные этого процесса, мы можем сделать соединение:
ВЫБРАТЬ
ЗадачиРасширение.Ссылка КАК СсылкаЗадачи,
БизнесПроцессыСогласования.Ссылка КАК СсылкаСогласования,
БизнесПроцессыСогласования.Предмет
ИЗ
Расширение.Задача.ЗадачаИсполнителя КАК ЗадачиРасширение
ЛЕВОЕ СОЕДИНЕНИЕ БизнесПроцесс.Согласование КАК БизнесПроцессыСогласования
ПО ЗадачиРасширение.БизнесПроцесс = БизнесПроцессыСогласования.Ссылка
ГДЕ
ЗадачиРасширение.Выполнена = ЛОЖЬ
И ЗадачиРасширение.БизнесПроцесс.Ссылка ЕСТЬ НЕ NULL
БизнесПроцесс.Согласование по ссылке, что позволяет нам получить доступ к его специфическим реквизитам, таким как Предмет.При работе с 1С:Документооборот и расширениями мы можем столкнуться с различными нюансами. Давайте рассмотрим их подробнее.
БизнесПроцесс имеет составной тип, включающий несколько видов бизнес-процессов, всегда учитывайте это при написании запросов и, при необходимости, используйте соединения с конкретными видами бизнес-процессов для получения их специфичных данных.Таким образом, для успешной связи задач и процессов в запросах через расширения в 1С:Документооборот нам необходимо внимательно анализировать структуру метаданных, корректно заимствовать объекты и, при необходимости, вручную добавлять или модифицировать реквизиты, учитывая особенности версии платформы и конфигурации. Это позволит нам строить гибкие и информативные отчеты и обработки, соответствующие нашим бизнес-требованиям.