Задачи 1С

500 рублей Издательство: 1C-Паблишинг
ISBN_978_5_9677_1387_3 Купить

Авторы: А.П. Габец, Д.В. Козырев, Д.С. Кухлевский, Е.Ю. Хрусталева

Данная книга посвящена углубленному изучению вопросов создания и модификации прикладных решений на платформе системы «1С:Предприятие 8.2». Она является частичной переработкой популярной книги «Профессиональная разработка в системе «1С:Предприятие 8».
В книгу включены лишь те материалы, которые описывают основные прикладные механизмы платформы, позволяющие решать задачи оперативного, бухгалтерского учета и расчета заработной платы. Рассматривается структура и реализация этих механизмов, значительное внимание уделяется организации хранения данных.
Другие вопросы разработки будут рассмотрены в следующих книгах, выпускаемых в серии «Профессиональная разработка».
Все рассматриваемые в книге примеры адаптированы для использования с версией платформы «1С:Предприятие 8.2» в режиме управляемого приложения. Кроме этого, описание механизмов дополнено новыми возможностями, появившимися в версиях платформы 8.1 и 8.2.
Книга рассчитана на разработчиков, обладающих некоторым навыком создания и модификации прикладных решений в системе «1С:Предприятие 8.2» и желающих повысить свой профессиональный уровень.
Также книга будет интересна IT-специалистам, не занимающимся разработкой, но желающим получить представление о возможностях системы, ее идеологии, архитектуре и реализации конкретных механизмов.
В помощь разработчикам прикладных решений книга содержит компакт-диск с демонстрационными конфигурациями, используемыми в книге. Все конфигурации созданы на версии платформы 8.2.12.87.
Книга выпущена под редакцией Максима Радченко.

Издательство «1С-Паблишинг», ISBN 978-5-9677-1387-3, 714 стр.

Назад в раздел

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

Карта маршрута

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

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

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

Точка действия

Точки этого вида описывают отдельную операцию (единицу работы), соответствующую определенному этапу (шагу) в жизненном цикле бизнес-процесса:

Точка действия содержит информацию кто и что должен сделать на данном этапе, например:

  • бухгалтер — принять оплату наличными;
  • кладовщик — выдать товар со склада по накладной;
  • системный администратор — зарегистрировать нового сотрудника в сети и электронной почте.

Формулировка задания обычно составляется из глаголов и отглагольных существительных. Исполнитель может определяться персонально (Иванов), или с учетом ролевой маршрутизации («Кладовщик», «Руководитель отдела продаж»). При переходе бизнес-процесса на точку действия он автоматически формирует задачи, устанавливая в них реквизиты адресации, предусмотренные в точке действия.

Групповая и коллективная маршрутизация

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

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

Персональная и ролевая маршрутизация

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

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

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

Условная маршрутизация

Механизм бизнес-процессов в 1С:Предприятии 8 позволяет автоматизировать не только последовательные цепочки работ, но и осуществлять условную маршрутизацию, управляя выбором заранее предусмотренных маршрутов, на основе описанной разработчиком карты маршрута.

Условная маршрутизация обеспечивается точками маршрута двух видов:

  • условный переход;
  • выбор варианта.

Условный переход предоставляет возможность выбора одного из двух возможных вариантов дальнейшего маршрута (да/нет, больше/меньше, запрещено/разрешено и т. д.):

Точка выбора варианта предоставляет возможность выбора дальнейшего маршрута из неограниченного количества вариантов:

Использование в прикладных решениях

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

Задача 1С – это объект 1С. Задача 1С является информационным сообщением (напоминалкой) для пользователя о необходимости выполнить определенную «задачу».

Система или начальник или «кто-то» ставит задачу 1С пользователю (т.е. создает задачу 1С). Пользователь видит задачу 1С и что ему надо сделать. Когда он это сделал, он отмечает, что задача 1С выполнена и соответственно больше не видит ее в списке.

Как это работает?

Задачи 1С

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

2) Галочка «Выполнена»
Определяет выполнена ли задача 1С или нет.
Кстати, галочку можно снять и тогда задача 1С снова становится невыполненной.

Адресация 1С

Адресация задач 1С – это автоматическое определение платформой 1С кому эту задачу 1С нужно показывать в списке.

Простая адресация

Обычно одна задача 1С предназначена для выполнения одному конкретному сотруднику. Значит список задач 1С должен фильтроваться по сотруднику. Тогда адресат – конкретное ФИО.

На закладке Адресация в объекте Задача 1С в конфигураторе необходимо:

  • Добавить реквизит адресации, традиционно он называется Исполнитель и имеет тип – Справочник.Пользователи
  • Указать в качестве основного реквизита адресации данный реквизит
  • Создать параметр сеанса ТекущийПользователь, обычно он есть во всех типовых конфигурациях
  • Указать в качестве текущего исполнителя – данный параметр сеанса.

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

С помощью запроса такие задачи 1С можно отобрать не из таблицы Задача.ИмяЗадачи, а из доп. таблицы Задача.ИмяЗадачи.ЗадачиПоИсполнителю.

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

Сложная адресация

Усложним ситуацию – если одна задача 1С может быть выполнена любым сотрудником из определенной группы лиц. Тогда адресат – эта группа лиц (например, отдел или подразделение).

Для этого необходимо:

  • Создать регистр сведений (не периодический)
  • Добавить в этот регистр сведений измерение с таким же именем и типом, как основной реквизит адресации в задаче
  • Добавить с одним и тем же наименованием другие варианты адресации
    o В этот регистр добавить их как измерения
    o В эту задачу 1С добавить их как реквизиты адресации.

Например, измерение и реквизит адресации Должность, Подразделение.

  • Указать в задаче 1С этот регистр в свойстве Адресация на одноименной закладке.

После этих манипуляций пользователь увидит в списке следующие задачи 1С:

  • Если в задаче 1С указан исполнитель, то по исполнителю (т.е. простая адресация осталась)
  • Если в задаче 1С не указан исполнитель, то:
    o В регистре адресации будут отобраны все строки, в которых все колонки совпадают с заполнением с реквизитами адресации (кроме исполнителя)
    o Будут взяты исполнители из этих отобранных строк
    o Задача 1С будет видна всем этим исполнителям.

При сложной адресации нужно понимать, что начать выполнять ее могут несколько человек, а установит галочку Выполнена – первый. Поэтому нужно продумывать самостоятельно механизм «Один из пользователей взял задачу 1С на исполнение».

Процедура УсловиеПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат) Результат = ОплатаНаличными; КонецПроцедуры

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

Создание форм бизнес-процесса

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

Для этого сформируйте форму справочника по умолчанию. Затем в реквизиты формы добавьте реквизит с типом «ГрафическаяСхема». Этот реквизит перенесите на форму:

И последнее для формы — процедура отображения бизнес-процесса:

Процедура ОбновитьКарту() БП = РеквизитФормыВЗначение(«Объект»); ЭтаФорма.Карта = БП.ПолучитьКартуМаршрута(); КонецПроцедуры

Ее нужно выполнять при открытии элемента бизнес-процесса и назначить на команду «Обновить карту».

Форма списка задач бизнес-процесса

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

Достаточно создать форму списка задач по умолчанию. После этого в динамическом списке выбрать Основную таблицу — Задача.Задача.ЗадачиПоИсполнителю. Эта настройка позволит указать отбор по исполнителю задач:

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

Настройка адресации в пользовательском режиме 1С 8.2

Последний этап, но не последний по значимости — настройка адресации в пользовательском режиме в регистре «Адресации».

В этом регистре необходимо указать всех участников бизнес-процесса и прописать членов того или иного подразделения, должности и т.д:

Вот и всё! Настройка бизнес-процесса готова!

Другие статьи по 1С:

  • Администрирование
  • Программирование 1С
  • Обучение 1С

Если Вам всё же не понятно, рекомендую следующее видео:

В процессе работы пользователей, зачастую возникает необходимость создать задачу другому пользователю ИБ и проконтролировать ее выполнение.
К примеру, существует следующая задача:
Автоматизируемая компания занимается торговлей оборудованием. Специфика отгрузки оборудования заключается в том, что в основном она сопровождается оказанием услуг по монтажу закупленного оборудования. Исходя из этого, при оформлении заказа покупателя необходимо кроме ответственного за данный заказ указывать ответственного сотрудника по монтажу (в случае если это услуга не предусмотрена, реквизит не виден).
Если услуга по монтажу оборудования предусмотрена, то автоматически должно сформироваться два напоминания (события):
— Для ответственного менеджера на дату и время напоминания
— Для сотрудника ответственного за монтаж за сутки до напоминания ответственному менеджеру.
Когда срабатывает напоминание у ответственного менеджера, он должен видеть отработано ли напоминание сотрудника по монтажу оборудования.
Сформировать отчет, показывающий состояние согласования (когда сотрудник, ответственный за монтаж отработал напоминание) по незакрытым заказам покупателей (в случае оказание услуги по монтажу).
Решим ее следующим способом:
Создаем три реквизита документа Заказ покупателя: М_Монтаж (булево), М_Монтажник (Справочник пользователи) и М_ДатаМонтажа. Размещаем их на форме. Для того что бы сами реквизиты и их надписи были не видимы добавим процедуру:
Код 1C v 8.х Процедура М_МонтажПриИзменении(Элемент)
ЭлементыФормы.М_Монтажник.Видимость = М_Монтаж;
ЭлементыФормы.М_ДатаМонтажа.Видимость = М_Монтаж;
ЭлементыФормы.НадписьМ_Монтажник.Видимость = М_Монтаж;
ЭлементыФормы.НадписьМ_ДатаМонтажа.Видимость = М_Монтаж;
КонецПроцедуры
При открытии формы документа тоже надо проверять можно ли отображать на форме новые реквизиты. Процедура УстановитьВидимость() вызывается из процедуры ПриОткрытии(). Именно здесь продублируем код процедуры М_МонтажПриИзменении(Элемент). Существуют, конечно, варианты. Например, можно управление видимостью организовать только в процедуре УстановитьВидимость() а в МонтажПриИзменении() обращаться к ней, или в процедуре УстановитьВидимость() вызывать МонтажПриИзменении(), однако, в первом варианте при каждом изменении значения реквизита «М_Монтаж» будет происходить установка видимости всех реквизитов в форме, что негативно скажется на производительности. Второй вариант не совсем корректен с точки зрения логики расположения программного кода, по этому сделаем наш код слегка избыточным, но зато логичным и не замедляющим работу программы.
При проведении документа следует создавать Задачу пользователя с взведенным флагом «Напоминание» и установленной датой напоминания. Лучше всего располагать создание задач после проверки на корректность заполнения всех полей документов (ведь документ может не провестись, а задачи создадутся)
Код 1C v 8.х // Движения по документу
Если Не Отказ Тогда
ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоУслугам, ТаблицаПоТаре, Отказ, Заголовок);
Если М_Монтаж тогда
РаботаСДиалогами.ПроверитьЗадачиПоОбъекту(Ссылка);
КонецЕсли;
КонецЕсли;
Создавать задачи лучше с помощью немного доработанной процедуры РаботаСДиалогами.ПроверитьЗадачиПоОбъекту(Ссылка);
Во-первых, она проверит, есть ли введенные на основании этого документа задачи, и если обнаружит их, выдаст диалоговое окно пользователю с предложением не создавать новые. Этим мы исключим вероятность создания большого числа напоминаний при перепроведении документа. В самой функции ПроверитьЗадачиПоОбъекту() напишем:
Код 1C v 8.х Процедура ПроверитьЗадачиПоОбъекту(ОбъектЗадачи) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = »
|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| *
|ИЗ
| Задача.ЗадачиПользователя.ЗадачиПоИсполнителю(
| &ТекПользователь,
| Выполнена = ЛОЖЬ И Объект = &ОбъектЗадачи)
|»;
Запрос.УстановитьПараметр(«ТекПользователь», ПараметрыСеанса.ТекущийПользователь);
Запрос.УстановитьПараметр(«ОбъектЗадачи» , ОбъектЗадачи);
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
Выполнение = Вопрос(«Обнаружены незавершенные задачи по заданному объекту!» + Символы.ПС + » Желаете просмотреть список этих задач вместо создания новой?», РежимДиалогаВопрос.ДаНет, 0);
Если Выполнение = КодВозвратаДиалога.Да Тогда
ОткрытьЗадачиТекущегоПользователя(ОбъектЗадачи);
Возврат;
КонецЕсли;
КонецЕсли;
// Сознание Задачи
НоваяЗадача = Задачи.ЗадачиПользователя.СоздатьЗадачу();
НоваяЗадача.Объект = ОбъектЗадачи;
НоваяЗадача.Оповещение = Истина;
Если ТипЗнч(ОбъектЗадачи) = Тип(«ДокументСсылка.ЗаказПокупателя») тогда
Если ОбъектЗадачи.М_Монтаж тогда
НоваяЗадача.Наименование = «Напоминание менеджеру о сборке комплекта по: » + ОбъектЗадачи.Метаданные().Синоним;
НоваяЗадача.Дата = ТекущаяДата();
НоваяЗадача.СрокОповещения = ОбъектЗадачи.М_ДатаМонтажа;
НоваяЗадача.Инициатор = ОбъектЗадачи.Ответственный;
НоваяЗадача.Исполнитель = ОбъектЗадачи.Ответственный;
НоваяЗадача.Записать();
// Напоминание мастеру
НоваяЗадача = Задачи.ЗадачиПользователя.СоздатьЗадачу();
НоваяЗадача.Дата = ТекущаяДата();
НоваяЗадача.Объект = ОбъектЗадачи;
НоваяЗадача.Инициатор = ОбъектЗадачи.Ответственный;
НоваяЗадача.Оповещение = Истина;
НоваяЗадача.Исполнитель = ОбъектЗадачи.М_Монтажник;
НоваяЗадача.Наименование = «Напоминание мастеру о сборке комплекта по: » + ОбъектЗадачи.Метаданные().Синоним;
НоваяЗадача.СрокОповещения = ОбъектЗадачи.М_ДатаМонтажа — 24 * 60 * 60;
НоваяЗадача.Записать();
КонецЕСли;
Иначе
НоваяЗадача.Наименование = «Напоминание по объекту: » + ОбъектЗадачи.Метаданные().Синоним;
ФормаНовой = НоваяЗадача.ПолучитьФорму();
ФормаНовой.Открыть();
КонецЕсли;
КонецПроцедуры
Обратите внимание на реквизит «Инициатор» двух создаваемых нами задач. В форме списка задач существует возможность переключаться в режим просмотра заданий выданных текущим пользователем. Именно с помощью такого определения инициатора выполняется условие задачи: «В окошке напоминания менеджера должно быть видно, отработано ли событие монтажником»
Отчет в задании совсем не сложный, правда, могут возникнуть сомнения какой заказ считать закрытым. Как известно, заказ покупателя делает два движения. Одно по регистру «Заказы покупателя» где в разрезе номенклатуры, ведется учет по отгруженным товарам, второе по регистру «Расчеты с контрагентами» и здесь контролируется оплата по заказу. Думаю, что закрытым можно считать заказ, которого нет в остатках ни по одному, ни по второму регистру. Соединив их полным соединением, а так же присоединив таблицу Задач пользователя, получим отчет по незакрытым заказам пользователя.
Максим Нечистяк
Информация взята с сайта http://helpf.pro

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *