Show/Hide Toolbars

Руководство администратора

Типовые сценарии и приемы настройки документооборота

Ссылки Назад Вверх Вперед

Отмена подписки на несинхронизируемые объекты

При установке продукта обмена в базе "1С:Предприятие" создается глобальная подписка на изменения объектов, и при любом изменении объекта выполняется проверка необходимости синхронизации изменений. Если в базе есть большое количество несинхронизируемых объектов, то такие проверки будут создавать непродуктивную нагрузку на сервер. Для высоконагруженных систем рекомендуется отключать ненужные подписки.

Зная, какие именно объекты синхронизируются в конкретной базе данных "1С:Предприятие", вы можете в режиме конфигуратора в подписках "rgПередЗаписьюСправочников" и "rgПриЗаписиОбъектов" отключить глобальное использование подписок и оставить подписки только на нужные объекты (справочники, отмеченные на иллюстрации ниже, выбраны для примера). После этого необходимо обновить базу.

Кликните для просмотра изображения в полном размере

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

Использование входящего и исходящего фильтров

Входящий фильтр

Если в "Первую Форму" нужно загружать не все задачи, которые приходят из "1С:Предприятие", то можно использовать один из двух вариантов:

1 способ (рекомендуемый)

Настройте в "1С:Предприятие" правила выгрузки (они настраиваются там же, где и виртуальные реквизиты).

1c_recomendations_scenarios_filters

Настройка виртуальных реквизитов и правил выгрузки

Перед записью объектов в "Первую Форму" происходит вычисление правил выгрузки:

если Выгружать = Ложь, то текущий объект не будет выгружаться в "Первую Форму";

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

2 способ (не рекомендуемый)

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

warning_icon  При таком способе в модуле обмена создается очередь, которую потом необходимо чистить

Исходящий фильтр

Если не все задачи из "Первой Формы" необходимо выгружать в "1С:Предприятие" можно создать исходящий фильтр. Для этого в категории, связанной с "1С:Предприятие", создайте смарт-фильтр. В XML-настройках синхронизации "1С:Предприятие" для соответствующего документа/справочника в теге <Record> пропишите атрибут SmartFilterID, равный ID созданного смарт-фильтра. После этого в "1С:Предприятие" будут отправляться только задачи, удовлетворяющие условию смарт-фильтра.

Односторонний обмен данными из "1С:Предприятие" в "Первую Форму"

Предположим, что необходимо организовать простейший импорт данных из справочника "1С:Предприятие" в категорию "Первой Формы". Помимо передачи данных необходимо также импортировать из "1С:Предприятие" факт пометки записи на удаление.

Для реализации этой задачи после создания категории с помощью Мастера добавления справочников выполните следующие действия:

1. Изменить маршрут движения документа в "Первой Форме". Доработайте маршрут таким образом:

1C_recomendations_scenarios_sync_

Маршрут категории

Здесь статусу "Действует" соответствует нормальное состояние записи справочника "1С:Предприятие", а статусу "Отклонена" соответствует пометке на удаление.

2. Указать стандартный шаг при постановке задачи:

1C_recomendations_scenarios_sync2

Параметр настройки категории

3. Добавить блок обработки событий в настройку справочника:

(1)        <SyncEvents1C>

(2)                <Event1C Event="Create" Action="ChangeTask" IsAllowed="true" CanBeDeclined="true" RefreshExtParams="true" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false" MessageOnSuccess="1Ф Новая запись Объект" />

(3)                <Event1C Event="Modify" Action="ChangeTask" IsAllowed="true" CanBeDeclined="true" RefreshExtParams="true" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false" MessageOnSuccess="Обновлена запись" />

(4)                <Event1C Event="Post" Action="ChangeTask" IsAllowed="true" CanBeDeclined="true" RefreshExtParams="true" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false" MessageOnSuccess="Обновлена запись" />

(5)                <Event1C Event="MarkDelete" Action="ChangeToStatus" Status="43" IsAllowed="true" CanBeDeclined="true" RefreshExtParams="true" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false" MessageOnSuccess="Объект помечен на удаление" />

(6)                <Event1C Event="UnmarkDelete" Action="ChangeToStatus" Status="44" IsAllowed="true" CanBeDeclined="true" RefreshExtParams="true" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false" MessageOnSuccess="Снята поментка на удаление" />

(7)        </SyncEvents1C>

Рассмотрим указанные выше настройки более подробно, по строкам:

(1) заголовок блока событий со стороны "1С:Предприятие". Указывается всегда.

(2) реакция на событие "Создана новая запись справочника" в "1С:Предприятие". В качестве ответного действия в "Первой Форме" указано действие ChangeTask, которое создаст задачу, если такой задачи нет. Если указано RefreshExtParams="true", то действие также обновит реквизиты задачи. Таким образом, в ответ на создание записи в "1С:Предприятие" в "Первой Форме" также будет создана задача в соответствующей категории. Поскольку в категории настроен "Шаг при постановке" (см. выше п.2), после создания задачи в "Первой Форме" она сразу перейдет в статус "Действует в 1С".

(3) реакция на событие "Изменена запись справочника". В "Первую Форму" также будет передано действие ChangeTask.

(4) реакция на событие "Документ проведен". В "Первую Форму" также будет передано действие ChangeTask.

(5) реакция на пометку записи справочника на удаление. Событие MarkDelete вызовет в "Первой Форме" действие ChangeToStatus — переход задачи к статусу, указанному в Status (в данном примере значение 43 соответствует статусу "Отклонена").

(6) действие, обратное удалению: событие UnmarkDelete (снятие пометки удаления) в "1С:Предприятие" вызывает в "Первой Форме" действие ChangeToStatus — переход задачи к статусу, указанному в Status (в данном примере значение 44 соответствует статусу "Действует в 1С").

По аналогии с рассмотренной настройкой для отражения факта пометки документа на удаление настраивается реакция на проведение документа в "1С:Предприятие" (для тех документов, у которых в "1С:Предприятие" есть механизм проведения):

<Event1C Event="Post" Action="ChangeToStatus" Status="…" IsAllowed="true" CanBeDeclined="true" RefreshExtParams="true" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false" MessageOnSuccess="Обновлена запись"/>

<Event1C Event="ClearPost" Action="ChangeToStatus" Status="…" IsAllowed="true" CanBeDeclined="true" RefreshExtParams="true" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false" MessageOnSuccess="Обновлена запись"/>

Здесь Post – это реакция на проведение документа в "1С:Предприятие", а ClearPost – на снятие признака проведения. Понятно, что для работы такой настройки обмена в маршруте документа должен присутствовать статус, соответствующий состоянию проведенного документа, а также два перехода: в такой статус и из него.

Односторонний обмен данными из "Первой Формы" в "1С:Предприятие"

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

Для реализации этой задачи после создания категории с помощью Мастера добавления справочников выполните следующие действия:

1. Изменить маршрут движения документа в "Первой Форме". Доработайте маршрут таким образом:

1C_recomendations_scenarios_sync_2_

Маршрут категории

Здесь видно, что на шаге "Согласовать" запрашиваются подписи ответственных лиц, а статусу "Оплачено" должно соответствовать конечное состояние проведенного документа в "1С:Предприятие". Ниже представлен тот  же маршрут в виде таблицы:

1C_recomendations_scenarios_sync_22_

Настройка переходов по маршруту в категории

2. Настройте доступ к документу в "Первой Форме" таким образом, чтобы в статусе "Оплачено" он был доступен пользователям только для чтения (чтобы предотвратить попытки изменить проведенный документ в "1С:Предприятие").

3. Добавьте блок обработки событий в настройку документа:

(1)        <SyncEventsTC>

(2)                <EventTC Event="MakeStep" Step="40819" Action="Create" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false"/>

(3)                <EventTC Event="ChangeTask" Action="Modify" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false" />

(4)                <EventTC Event="MakeStep" Step="40820" Action="Post" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false" />

(5)                <EventTC Event="MakeStep" Step="40821" Action="ClearPost" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false" />

(6)                <EventTC Event="MakeStep" Step="40822" Action="MarkDelete" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false" />

(7)                <EventTC Event="MakeStep" Step="40823" Action="UnmarkDelete" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false" />

(8)        </SyncEventsTC>

Рассмотрим указанные выше настройки более подробно, по строкам:

(1) заголовок блока событий со стороны "1С:Предприятие". Указывается всегда.

(2) переход по маршруту "Согласовать" в "Первой Форме" (Event="MakeStep" Step="40819") приведет к созданию документа (Action="Create") в "1С:Предприятие".

(3) при изменении доп. параметров документа в "Первой Форме" (Event="ChangeTask") эти изменения будут переданы в "1С:Предприятие" и отразятся в виде изменения реквизитов (Action="Modify") соответствующего документа.

(4) переход в статус "Оплачено" в "Первой Форме" (Event="MakeStep" Step="40820") приведет к проведению документа (Action="Post") в "1С:Предприятие". Таким образом, статус "Оплачено" в "Первой Форме" будет соответствовать проведенному документу в "1С:Предприятие", что и требовалось.

(5) переход по маршруту "Отменить оплату" в "Первой Форме" (Event="MakeStep" Step="40821") приведет к отмене проведения документа (Action="ClearPost") в "1С:Предприятие".

(6) переход по маршруту "Анулировать" в "Первой Форме" (Event="MakeStep" Step="40822") приведет к пометке документа на удаление (Action=" MarkDelete ") в "1С:Предприятие". Таким образом, статус "Отклонена" в "Первой Форме" будет соответствовать помеченному на удаление документу в "1С:Предприятие", что и требовалось.

(7) переход по маршруту "Восстановить" в "Первой Форме" (Event="MakeStep" Step="40823") приведет снятию пометки удаления с документа (Action=" UnmarkDelete ") в "1С:Предприятие".

Вместо действия MakeStep также можно использовать ChangeToStatus (см описание XML тегов для EventTC).

Двусторонний обмен данными на базе единственного документа

Предположим, что необходимо организовать двусторонний обмен данными для справочника "Договоры". Договор изначально создается в "Первой Форме", там же проходит его согласование, после чего он передается в "1С:Предприятие". Далее бухгалтер контролирует и при необходимости меняет параметры Договора в соответствующем справочнике "1С:Предприятие" (например, переносит его в определенную папку справочника). Изменения, внесенные бухгалтером, должны быть переданы в "Первую Форму".

Для реализации этой задачи после создания категории с помощью Мастера добавления справочников выполните следующие действия:

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

1C_recomendations_scenarios_sync_31_

Маршрут категории

Здесь статусу "Действует" соответствует нормальное состояние договора в "1С:Предприятие", а статусу "Отклонена" — пометке на удаление.

2. Настройте права доступа к доп. параметрам документа так, чтобы на статусах "Действует в 1С" и "Отклонена" права на изменение документа были только у технической учетной записи, от имени которой работает модуль обмена: 1C_recomendations_scenarios_sync_32_

Настройка прав доступа к ДП

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

1C_recomendations_scenarios_sync_33_

Настройка смарт-действия

Таким образом, бухгалтер будет автоматически оповещен в "Первой Форме" о том, что ему необходимо проконтролировать в 1С новый импортированный договор.

4. Таким образом, бухгалтер будет автоматически оповещен в "Первой Форме" о том, что ему необходимо проконтролировать в "1С:Предприятие" новый импортированный договор.

5. Добавьте блок обработки событий в настройку справочника:

(1)        <SyncEvents1С>

(2)                <Event1С Event="Modify" Action="ChangeTask" IsAllowed="true" CanBeDeclined="true" RefreshExtParams="false" ActionNotificationsAddCommentOnSuccess="false" />

(3)                <Event1С Event="MarkDelete" Action="ChangeToStatus" Status=" НомерСтатусаОтклонен" IsAllowed="true" CanBeDeclined="false" RefreshExtParams="true" ActionNotificationsAddCommentOnSuccess="false" />

(4)                <Event1С Event="UnmarkDelete" Action="ChangeToStatus" Status="НомерСтатусаДействует" IsAllowed="true" CanBeDeclined="false" RefreshExtParams="true" ActionNotificationsAddCommentOnSuccess="false" />

(5)        </SyncEvents1С>

(6)        <SyncEventsTC>

(7)                <EventTC Event="MakeStep" Step="НомерШагаВвестиВДействие" Action="Create" ActionOnError="Cancel" NotificationsOnError="Both" AddCommentOnSuccess="false" />

(8)        </SyncEventsTC>

Рассмотрим указанные настройки более подробно, по строкам:

(1) заголовок блока событий со стороны "1С:Предприятие". Указывается всегда.

(2) при изменении реквизитов договора (Event="Modify") бухгалтером в "1С:Предприятие" изменения будут переданы в "Первую Форму" (Action="ChangeTask") и станут видны всем заинтересованным пользователям.

(3) при пометке договора на удаление в "1С:Предприятие" (Event="MarkDelete") документ Договор в "Первой Форме" перейдет в статус "Отклонена" (Action="ChangeToStatus"  Status="НомерСтатусаОтклонен").

(4) при снятии с договора пометки удаление в "1С:Предприятие" (Event="UnmarkDelete") документ Договор в "Первой Форме" вернется в статус "Действует в 1С" (Action="ChangeToStatus"  Status="НомерСтатусаДействует").

(5) завершение секции событий "1С:Предприятие".

(6) заголовок блока событий со стороны "Первой Формы".

(7) когда документ Договор в "Первой Форме" совершит переход в статус "Ввести в действие" (Event="MakeStep" Step="НомерШагаВвестиВДействие"), его данные будут переданы в "1С:Предприятие", и там будет создан соответствующий элемент (Action="Create") в справочнике "Договоры".