Получение данных от пользователя в рабочем процессе

Важно :  Данная статья переведена с помощью машинного перевода, см. Отказ от ответственности. Используйте английский вариант этой статьи, который находится здесь, в качестве справочного материала.

При проектировании рабочего процесса часто возникает необходимость получения данных у участника рабочего процесса и использования этих данных в последующем для принятия решений. Например, может потребоваться, чтобы рабочий процесс запросил у участника проверку документа, а затем выполнил различные действия, в зависимости от того, утвердит документ проверяющий или отклонит.

Блок-схема ветвей, зависящих от ответа пользователя

Для этого в рабочий процесс добавляется действие Получить данные у пользователя. Это действие назначает участнику задачу, запрашивая у него необходимые сведения с помощью настраиваемой формы задачи. Данные из последней сохраняются в элементе в списке "Задачи". Затем при принятии решения рабочий процесс обращается к сохраненным данным и оценивает их, чтобы выбрать ветвь для выполнения.

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

В этой статье

Действие, которое следует использовать для создания задачи

Что такое настраиваемой формы задач?

Что такое идентификатор элемента списка

Шаг 1: Получить данные от пользователя

Шаг 2: Задать переменную рабочего процесса

Шаг 3: Используйте переменную для принятия решений

Краткий справочник: Сводка действий

Выбор действия для создания задачи

Задачи представляют собой основной способ взаимодействия рабочего процесса с его участниками. Если необходимо, чтобы рабочий процесс получил от пользователей данные, он должен создать и назначить задачу. Всякий раз, когда рабочий процесс назначает задачу, его работа приостанавливается до завершения этой задачи. Рабочий процесс возобновляется, только когда участник нажмет в форме задачи кнопку Завершить задачу.

Есть три различных действия, которые создают задачи, и каждое из них предназначено для определенной ситуации.

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

  • Назначить форму группе     Это действие назначает формы для одного или нескольких пользователей и затем сохраняет ответы в виде значений в списке задач. В отличие от предыдущего действия это действие можно назначить задачу отдельно для нескольких пользователей и приостанавливает рабочий процесс до завершения каждого пользователя свои задачи, прежде чем он активируется файла. Также в отличие от предыдущего действия, это действие не возвращает идентификатор элемента задачи по одной из ответов, поэтому рабочий процесс не удается найти и использовать полученную информацию позже как основу для принятия решений или сравнения. С помощью этого действия можно также использовать мастер настраиваемые задачи для создания настраиваемой формы задач. Для получения дополнительных сведений обратитесь к статье назначить форму группе в рабочем процессе.

  • Назначить задание     В отличие от других действий две задачи это действие создает формы задач, нет полей формы для заполнения пользователями, но вместо этого использует форму, где просто нажатии кнопки Завершить задачу по завершении задачи. Эту задачу может назначаться отдельно несколькими пользователями и рабочий процесс приостанавливает до каждого человека помечает их задачу как завершенную. Это действие не возвращает идентификатор элемента задачи и не нужно действительно потому, что задача не собирает все сведения, может потребоваться ссылаться на более поздней версии. Для получения дополнительных сведений обратитесь к статье назначить задание в рабочем процессе.

Эти сведения кратко представлены в следующей таблице.

Действие

Возвращение идентификатора задачи для подстановки рабочего процесса

Создание нескольких задач

Возможность заполнения полей в форме задачи

Получить данные от пользователя

Да

Нет

Да

Назначить форму группе

Нет

Да

Да

Назначить задание

Нет

Да

Нет

Кроме того, на все этим три действиям распространяются некоторые ограничения, описанные ниже.

  • Когда рабочий процесс назначает задачу группе, которая определяется одним псевдонимом или адресом, он создает только одну задачу, которая затем совместно используется всей группой. Любой участник группы может изменить эту единственную форму задачи и нажать кнопку Завершить задачу. Чтобы назначить нескольким пользователям отдельные задачи (возможно только в случае действия Назначить форму группе или Назначить задание), введите в диалоговом окне Выбор пользователей всех пользователей по отдельности.

  • Чтобы рабочий процесс мог продолжаться, должны быть завершены все задачи, назначенные одним действием рабочего процесса. Например, если действие рабочего процесса назначает отдельные задания шести участникам, рабочий процесс не может продолжаться при завершении только трех из шести задач.

  • После назначения задачи рабочим процессом участнику эту задачу нельзя передать другим участникам (посредством делегирования, перенаправления и т. д.). Однако любой, у кого по умолчанию есть уровень полномочий "Участие" для списка "Задачи", может изменить задачу, что позволит продолжить выполнение рабочего процесса.

  • Рабочий процесс может использовать каждую задачу только один раз. После создания задачи с помощью мастера создания задач ее нельзя в последующем повторно использовать в рабочем процессе. Можно создать другую задачу, которая выполняет такую же функцию, но у задачи должно быть другое уникальное имя.

К началу страницы

Что такое настраиваемая форма задачи?

При каждом использовании одного из трех действий задач для создания задачи Microsoft Office SharePoint Designer 2007 автоматически создает для нее настраиваемую форму. Настраиваемая форма задачи — это страница, которая отображается участнику рабочего процесса, когда он изменяет задачу в обозревателе.

При создании задачи с помощью действия Получить данные от пользователя или Назначить форму группе у настраиваемой формы задачи может быть сколько угодно полей. В данном примере участник должен ввести сведения только в одно поле с именем "Состояние проверки".

Настраиваемая форма задачи в обозревателе

В Office SharePoint Designer 2007 настраиваемая форма задачи отображается в форме ASPX-страницы в папке для этого рабочего процесса. Имя файла настраиваемой формы задачи соответствует имени, присвоенному задаче в мастере создания задачи.

Настраиваемая форма задачи в списке папок

Настраиваемые формы задач присоединены к главной странице узла по умолчанию и для взаимодействия с рабочим процессом содержат веб-часть формы данных. Макет и внешний вид настраиваемой формы задачи можно настраивать — например, можно присоединять различные главные страницы или изменять стили. Однако для изменения полей, которые будут отображаться в форме, необходимо использовать мастер создания задач в конструкторе рабочих процессов. Поля формы нельзя изменять, редактируя непосредственно веб-часть формы данных. При внесении других изменений в веб-часть формы данных (влияющих на внешний вид, а не на функциональность) обратите внимание на то, что эти изменения теряются при каждой компиляции рабочего процесса. Настройки остальной части страницы сохраняются.

Чтобы изменить поля настраиваемой формы задачи, необходимо открыть рабочий процесс в Office SharePoint Designer 2007 (меню Файл, команда Открытие рабочего процесса). При открытии рабочего процесса и редактировании задачи с помощью мастера создания задач будет отображено предупреждение, приведенное ниже.

Предупреждение

Если изменить настраиваемую форму задачи и перекомпилировать рабочий процесс, все выполняющиеся экземпляры рабочего процесса продолжат работу с использованием новой формы. При удалении или изменении полей (например, посредством изменения их типа или переименования), если выполняющиеся экземпляры рабочего процесса обратятся не к тем данным, возникнет ошибка рабочего процесса. Например, выполняющийся рабочий процесс может выполнять подстановку и ожидать, что поле будет содержать данные (будет непустым), но в данный момент оно пустое или изменился его тип. Поэтому важно не вносить изменений, приводящих к удалению, переименованию или изменению иным образом полей формы, к которым могут пытаться обратиться выполняющиеся в данный момент экземпляры рабочего процесса.

Кроме настраиваемой формы задачи при каждом использовании одного из трех действий задач для создания задачи Office SharePoint Designer 2007 автоматически создает для последней в списке "Задачи" тип содержимого. Тип содержимого определяет доступные поля и используемый формат, определяемый в мастере создания задачи. Имя типа содержимого соответствует имени, присвоенному задаче в мастере создания задачи. Например, при создании задачи с именем "Проверка документа" на странице "Параметры" списка "Задачи" будет отображен тип содержимого с этим именем.

Тип содержимого задачи в обозревателе

Типы содержимого рабочего процесса рекомендуется изменять только путем открытия рабочего процесса в Office SharePoint Designer 2007, но не посредством изменения столбцов или других параметров типа содержимого в обозревателе. Изменение типа содержимого в обозревателе может нарушить настраиваемую форму задачи, с которой оно связано.

К началу страницы

Что такое идентификатор элемента списка?

Идентификатор элемента списка — это уникальный номер строки. Когда участник рабочего процесса нажимает в настраиваемой форме задачи кнопку Завершить задачу или Сохранить черновик, введенные в форму данные сохраняются в элементе списка "Задачи". Тип содержимого для этой задачи определяет столбцы, а идентификатор элемента списка определяет конкретный элемент или строку. У каждого элемента в списке "Задачи" (или любого списка или библиотеки) есть уникальный код. В обозревателе в любое представление списка или библиотеки можно добавить столбец "Код".

Столбец "Код" добавлен в представление по умолчанию

Кроме того, при просмотре элемента списка на странице обозревателя — например, если щелкнуть Свойства представления для просмотра сведений об элементе в DispForm.aspx — код этого элемента списка входит в URL-адрес в виде части строки запроса. Все стандартные формы SharePoint содержат параметр "Код" в части строки запроса URL-адреса.

Код элемента списка, выделенный в URL-адресе задачи

Когда рабочий процесс запускает действие Получить данные от пользователя, он запускает одну задачу и сохраняет код элемента списка этой задачи в переменной. В последующем рабочий процесс может использовать эту переменную для подстановки определенной задачи.

К началу страницы

Этап 1. Получение данных от пользователя

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

В данном примере группа загружает документы в библиотеку под названием "Документы на проверку". При добавлении документа в библиотеку рабочий процесс создает задачу под названием "Проверка документа". При редактировании задачи пользователь, которому она назначается, должен выбрать в раскрывающемся меню один из двух вариантов: "Утверждено" или "Отклонено".

Примечание : Данный рабочий процесс — это настраиваемый рабочий процесс утверждения, но в нем не используется компонент "Утверждение содержимого" изWindows SharePoint Services и не изменяется поле документа "Состояние утверждения". Компонент "Утверждение содержимого" в Windows SharePoint Services предполагает два различных уровня разрешений: один, который не включает разрешение "Утверждение элементов" (для пользователей, передающих содержимое на утверждение), и второй, который включает разрешение "Утверждение элементов" (для пользователей, утверждающих содержимое). Однако рабочий процесс, разработанный в Office SharePoint Designer 2007, всегда олицетворяет уровень разрешений пользователя, который запустил рабочий процесс. Если пользователь, у которого нет разрешения "Утверждение элементов", запускает настраиваемый рабочий процесс, который пытается обновить поле "Состояние утверждения" текущего элемента, выполнение рабочего процесса прекратится из-за отсутствия у пользователя прав на утверждение элементов.

  1. В меню Файл выделите пункт Создать и выберите команду Рабочий процесс.

  2. На первой странице конструктора рабочих процессов присвойте рабочему процессу имя, выберите список или библиотеку, к которой будет присоединен рабочий процесс, а затем установите флажки нужных начальных параметров.

    Первая страница окна «Конструктор рабочих процессов»

  3. Нажмите кнопку Далее.

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

    Если это действие отсутствует в списке, чтобы просмотреть список целиком, выберите пункт Другие действия.

  5. В действии щелкните ссылку данные.

  6. На первой странице мастера создания задачи нажмите кнопку Далее.

  7. В поле Имя введите имя задачи.

    Примечание : Имя задачи должно быть уникальным для текущего узла.

  8. В поле Описание введите любые общие инструкции для получателя задачи.

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

    Вторая страница мастера создания задач

  9. Нажмите кнопку Далее.

  10. Чтобы определить настраиваемое поле для этой задачи, нажмите кнопку Добавить.

  11. В поле Имя поля введите имя данного поля.

  12. В поле Описание введите вопрос, ответ на который будет храниться в поле.

  13. В списке Тип сведений выберите вариант, который форматирует поле в соответствии с типом получаемых сведений.

    Первая страница диалогового окна "Добавление поля"

  14. Нажмите кнопку Далее.

  15. Следующая страница мастера зависит от типа сведений, выбранного на предыдущей странице. Укажите нужные параметры.

    В данном примере введите текст Утверждено, нажмите клавишу ВВОД, а затем введите текст Отклонено.

  16. В списке Выводить как выберите вариант Раскрывающееся меню.

  17. Снимите флажок Разрешить пустые значения, поскольку проверяющий должен выбрать один из двух вариантов.

    Вторая страница диалогового окна "Добавление поля"

  18. Дважды нажмите кнопку Готово.

    На приведенном рисунке показано, как эта задача будет отображаться участнику рабочего процесса в обозревателе, когда он редактирует задачу. Это настраиваемая форма задачи — Проверка документа.aspx — которая только что была создана с помощью мастера создания задач.

    Настраиваемая форма задачи в обозревателе

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

  19. В действии щелкните ссылку пользователь.

  20. В диалоговом окне Выбор пользователей введите имя или адрес электронной почты либо выберите в списке существующего пользователя или группу и нажмите кнопку Добавить.

    Примечания : 

    • С помощью этого действия Получить данные от пользователя созданным в рабочем процессе только одну задачу, которой можно назначить только один пользователь или группа. Для получения дополнительных сведений обратитесь к разделу предыдущих действие, которое следует использовать для создания задачи?

    • Вместо указания имени или адреса электронной почты какого-либо пользователя можно сохранить такие сведения в отдельном списке, а затем воспользоваться для их получения подстановкой рабочего процесса. Таким образом в качестве участников рабочего процесса можно настраивать различных пользователей без необходимости изменения самого рабочего процесса. Также можно создать группу SharePoint и добавить в нее пользователей, которые должны быть участниками процесса. Например, можно создать группу "Утверждающие", добавить в нее одного или нескольких пользователей, а затем настроить эту группу в составе действия Получить данные от пользователя (помня о том, что создана только одна задача, которую может редактировать только один пользователь).

  21. Нажмите кнопку ОК.

  22. В действии щелкните третий параметр и выберите пункт Создать новую переменную.

    Если в рабочем процессе несколько переменных, вместо использования имени по умолчанию (Переменная: сбор), необходимо создать переменную с более описательным именем.

    Вариант "Создание новой переменной"

  23. В диалоговом окне Изменение переменной введите имя, которое описывает значение, хранящееся в переменной.

    Диалоговое окно "Изменение переменной"

    Для этой переменной Идентификатор элемента списка отображается только элемент в списке Тип. Дополнительные сведения о идентификаторы элементов списка, обратитесь к разделу предыдущих что такое идентификатор элемента списка?

  24. Нажмите кнопку ОК.

    Теперь действие должно выглядеть так, как показано ниже.

    Действие "Получение данных от пользователя"

К началу страницы

Этап 2. Настройка переменной рабочего процесса

В данный момент в рабочем процессе участник последнего вводит готовую задачу, а состояние утверждения, введенное пользователем, сохраняется в поле или столбце списка "Задачи", как показано ниже.

Состояние проверки в завершенном элементе задачи

Как получить доступ к этим данным, чтобы воспользоваться ими на следующем шаге рабочего процесса? Для подстановки значения поля "Состояние проверки" для задачи, измененной пользователем, используется действие Задать переменную рабочего процесса, а значение этого поля сохраняется в новой переменной — в данном примере с именем Состояние проверки.

Нахождение и сохранение состояния проверки в новой переменной позволяет в будущем использовать эту переменную для сравнения. Это рекомендуется делать потому, что рабочий процесс позволяет узнать происхождение данных, которые в последующем можно будет использовать более простым способом — при необходимости несколько раз.

  1. Нажмите кнопку Действия и выберите пункт Задать переменную рабочего процесса.

    Если это действие отсутствует в списке, чтобы просмотреть список целиком, выберите пункт Другие действия.

  2. В действии щелкните ссылку переменная, а затем выберите пункт Создать новую переменную.

    Первый параметр варианта "Задать переменную рабочего процесса"

  3. В диалоговом окне Изменение переменной введите имя, которое описывает значение, хранящееся в переменной.

  4. В списке Тип выберите тип данных, которые сохраняются в переменной.

    В данном примере выберите тип строка, поскольку в этой переменной будет храниться состояние проверки Утверждено или Отклонено, а эти параметры являются текстовыми строками.

    Диалоговое окно "Изменение переменной"

  5. Нажмите кнопку ОК.

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

  7. В диалоговом окне Определение подстановки в рабочем процессе задайте параметры, указанные ниже.

    • Источник: Задачи    Если доступно более одного списка задач, выберите список, который содержит настраиваемое поле задачи, созданное в предыдущем разделе.

    • Поле: Состояние проверки    Выберите настраиваемое поле задачи, созданное в предыдущем разделе.

    • Поле: Задачи:код

    • Значение: нажмите кнопку Показать привязку данных  Изображение кнопки .

  8. Во втором диалоговом окне Определение подстановки в рабочем процессе задайте параметры, указанные ниже.

    • Источник: Данные рабочего процесса

    • Поле: Переменная: код из задачи "Проверка документа"

      Диалоговое окно «Определение подстановки в рабочем процессе»

  9. Нажмите кнопку ОК.

    Окончательный поиск в рабочем процессе будет напоминать следующее: "Перейти к полю „Состояние проверки" в списке „Задачи“. Затем перейти в списке „Задачи“ к строке, чей код совпадает с кодом, сохраненным в переменной для данного экземпляра рабочего процесса". Если рабочий процесс выполняется и создает задачу с кодом 3, данная подстановка извлекает значение столбца "Состояние проверки" из третьей строки списка "Задачи". При следующем запуске рабочего процесса этот код может быть равен 4, поэтому поиск переходит к четвертой строке, и так далее.

    Диалоговое окно «Определение подстановки в рабочем процессе»

  10. Нажмите кнопку ОК.

    Теперь правило должно выглядеть так, как показано ниже.

    Правило в конструкторе рабочих процессов

К началу страницы

Этап 3. Использование переменной для принятия решений

На этапе 1 была создана настраиваемая форма задачи для получения данных от пользователя и сохранения идентификатора задачи в переменной. На этапе 2 переменная с кодом задачи использовалась для поиска ответа пользователя и сохранения этого ответа в новой переменной. Теперь, когда есть эта переменная — в данном примере Переменная: Состояние проверки — ее можно использовать для принятия решений в рабочем процессе. Для этого воспользуйтесь условием Сравнить любой источник данных.

Например, можно добавить действие в рабочем процессе, указано, что если переменной: равноредакцияросмотр состояниеУтверждено, выполнить следующие действия. Но если переменной: проверка состояния равно Отклонено, выполнить различные действия.

Создание первой условной ветви

Первая условная ветвь сравнивает значение, сохраненное в переменной Переменная: Состояние проверки. Если значение равно Утверждено, рабочий процесс выполнит все действия, связанные с этим условием.

  1. В конструкторе рабочих процессов в пункте Шаги рабочего процесса нажмите кнопку Добавление шага рабочего процесса.

  2. Выберите Условия, а затем выберите пункт Сравнить любой источник данных.

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

  4. В диалоговом окне Определение подстановки в рабочем процессе задайте параметры, указанные ниже.

    • Источник: Данные рабочего процесса

    • Поле: Переменная: Состояние проверки.

      Диалоговое окно «Определение подстановки в рабочем процессе»

  5. Нажмите кнопку ОК.

  6. В условии в качестве значения второго параметра оставьте вариант равно.

  7. Щелкните в условии вторую гиперссылку значение, введите текст Утверждено и нажмите клавишу ВВОД.

    Условие в конструкторе рабочих процессов

Создание второй условной ветви

Вторая условная ветвь обрабатывает случай, когда значение, сохраненное в переменной Переменная: Состояние проверки, равно Отклонено.

  1. Щелкните ссылку Добавление условной ветви "Else If".

  2. Щелкните ссылку Условия и выберите пункт Сравнить любой источник данных.

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

  4. В диалоговом окне Определение подстановки в рабочем процессе задайте параметры, указанные ниже.

    • Источник: Данные рабочего процесса

    • Поле: Переменная: Состояние проверки.

      Диалоговое окно «Определение подстановки в рабочем процессе»

  5. Нажмите кнопку ОК.

  6. В условии в качестве значения второго параметра оставьте вариант равно.

  7. Щелкните в условии вторую гиперссылку значение, введите текст Отклонено и нажмите клавишу ВВОД.

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

    Условная ветвь "Else If" в конструкторе рабочих процессов

  8. Для завершения данного шага в рабочем процессе нажмите кнопку Действия и добавьте в каждую из условных ветвей необходимые действия.

К началу страницы

Памятка: краткое описание этапов

Для напоминания ниже приведено краткое описание этапов, представленных в предыдущих трех разделах.

  1. Добавление действия Получение данных от пользователя.

    • В случае первой ссылки воспользуйтесь мастером создания задач, чтобы создать настраиваемую форму задачи.

    • Для второй ссылки выберите одного пользователя или группу, которым будет назначена задача.

    • Для третьей ссылки создайте переменную с типом "Идентификатор элемента списка", чтобы сохранить идентификатор задачи, изменяемой пользователем.

  2. Добавление действия Задать переменную рабочего процесса:

    • Для первой ссылки создайте переменную для хранения фактического значения (а не только кода) определенного поля определенной строки в списке "Задачи".

    • Для второй ссылки найдите поля, значения которых должны быть занесены в список "Задачи". Воспользуйтесь для этого значением переменной "Идентификатор элемента списка". Значения этих полей используются для извлечения определенного элемента (или строки) списка.

      Такой поиск в рабочем процессе будет напоминать следующее: "Перейти к полю „Состояние проверки" в списке „Задачи“. Затем перейти в списке „Задачи“ к строке, чей код совпадает с кодом, сохраненным в переменной для данного экземпляра рабочего процесса". Если рабочий процесс выполняется и создает задачу с кодом 3, данная подстановка извлекает значение столбца "Состояние проверки" из третьей строки списка "Задачи". При следующем запуске рабочего процесса этот код может быть равен 4, поэтому поиск переходит к четвертой строке и т. д.

      Диалоговое окно «Определение подстановки в рабочем процессе»

  3. Создание шага рабочего процесса.

  4. Добавление условия Сравнить любой источник данных:

    • Для первой ссылки выберите переменную, которой на этапе 2 было присвоено фактическое значение.

    • Для второй ссылки выберите сравнение.

    • Для третьей ссылки введите значение, которое требуется сравнить со значением, сохраненным в переменной.

  5. Добавьте любые действия, которые должны выполняться при соблюдении данного условия.

  6. Для создания дополнительных ветвей щелкните ссылку Добавление условной ветви "Else If" и повторите этапы 4 – 5.

К началу страницы

Примечание : Отказ от ответственности относительно машинного перевода. Данная статья была переведена с помощью компьютерной системы без участия человека. Microsoft предлагает эти машинные переводы, чтобы помочь пользователям, которые не знают английского языка, ознакомиться с материалами о продуктах, услугах и технологиях Microsoft. Поскольку статья была переведена с использованием машинного перевода, она может содержать лексические,синтаксические и грамматические ошибки.

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×