Перейти к содержанию

Типовые сценарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. Изменить маршрут движения документа в "Первой Форме". Доработайте маршрут таким образом:

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

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 ).

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

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

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

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

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

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

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

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

Таким образом, бухгалтер будет автоматически оповещен в "Первой Форме" о том, что ему необходимо проконтролировать в 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") в справочнике "Договоры".