Show/Hide Toolbars

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

Настройка правил синхронизации (мастер добавления справочников)

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

Настройка правил синхронизации в соответствии с бизнес-процессом выполняется с помощью Мастера добавления справочников. Запустить его можно в разделе "Синхронизация с 1С" в меню "Система" в режиме администратора "Первой Формы".

1C_master

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

warning_icon  Перед запуском Мастера либо откройте профиль настроек, который вы хотите дозаполнить (выберите его в выпадающем списке "Имя настроек" и нажмите кнопку Получить настройки по имени), либо создайте новый профиль настроек (выберите пункт "Сгенерировать шаблон настроек" в выпадающем списке "Прочие действия"), заполните тег SyncSettings и нажмите кнопку Записать настройки.

Советы по работе с Мастером добавления справочников

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

При добавлении уже настроенной категории через Мастер лучше предварительно, по возможности, удалить из нее ДП, не участвующие в обмене.

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

Если вы работаете с уже созданным ранее профилем настроек, то перед тем, как настраивать синхронизацию какой-то категории с помощью Мастера, проверьте, не была ли она настроена ранее. Для этого попробуйте поиском найти в xml-файле настроек название этой категории. Обратите внимание: на странице "Настройки синхронизации с 1С" поиск по xml-тегам (с помощью Ctrl+F) не всегда работает корректно, поэтому лучше скопировать настройки в отдельный файл и запустить поиск там.

Шаг 0

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

Заполните все доступные поля и нажмите кнопку Создать автоматически.

1C_domain_logic_settings_sync_rules_0

Подготовительный шаг Мастера добавления справочников

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

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

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

ДП типа "Текст", в котором будет храниться GUID для каждой базы "1С:Предприятие", (его ID нужно будет прописать в настройках синхронизации в теге SyncSettings в атрибуте GUIDExtParamID). Для каждой базы "1С:Предприятие", с которой будет синхронизироваться "Первая Форма", нужен отдельный ДП для хранения GUID.

Шаг 1

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

1C_domain_logic_settings_sync_rules_1

Шаг 1 Мастера добавления справочников

Шаг 2

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

На данном этапе необходимо как минимум определиться с реквизитами, которые будут синхронизироваться из "1С:Предприятие". В левом окне Мастера отображается дерево подсказок, в котором приведены все возможные теги, атрибуты и значения XML. По наведению на узел дерева отображается подсказка, по клику – элемент добавляется в XML справа от текущего положения курсора.

Если категория уже настроена и в ней есть ДП, то их ID придется вручную проставлять в настройках, подготовленных Мастером, т.к. Мастер указывает все ExtParamID=0.

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

1C_domain_logic_settings_sync_rules_2_

Шаг 2 Мастера добавления справочников

Простейший пример настройки секции событий

Шаг 3

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

1C_domain_logic_settings_sync_rules_3

Шаг 3 Мастера добавления справочников

Шаг 4

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

Если в системе уже есть ДП нужного типа с таким же названием, Мастер будет использовать их, если таких ДП нет — создаст новые.

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

1C_domain_logic_settings_sync_rules_4

Шаг 4 Мастера добавления справочников

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

 

1C_domain_logic_settings_sync_rules_5_

Дополнительная настройка синхронизации для отдельной категории

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

1C_domain_logic_settings_sync_rules_6_

Настройка категории, необходимая для корректной синхронизации

Настройка синхронизации ДП Lookup

В "Первой Форме" в ДП Lookup хранится ID задачи, на которую ссылается ДП. Но при синхронизации с 1С используется не ID задачи, а ее GUID. Поэтому для каждого ДП Lookup, участвующего в синхронизации, необходимо создавать в категории еще один скрытый текстовый ДП, который будет хранить GUID задачи (обычно их называют так же, как и сам ДП Lookup, но к имени прибавляют суффикс link: например, Контрагент и Контрагент_link).

ID этого дополнительного текстового ДП указывается в теге Property в атрибуте TCLookupGUIDEPID.

Настройка синхронизации вложенных файлов

warning_icon  Данный раздел носит информационный (ознакомительный) характер и не содержит полного описания необходимых настроек. Данный функционал должен настраиваться специалистами "Первой Формы" по запросу клиента. Стоимость настройки для каждого клиента определяется индивидуально. Если вам требуется настройка данного функционала, обратитесь к своему клиентскому менеджеру или в службу поддержки "Первой Формы".

Синхронизация вложенных файлов настраивается независимо для каждого типа документа/справочника. Настройка происходит в интерфейсе администрирования "Первой Формы", в разделе "Синхронизация с 1С" (пункт меню "Система" – "Синхронизация с 1С"), и на стороне 1С.

Настройка на стороне "Первой Формы"

Чтобы в определенном справочнике начался обмен файлами, необходимо в блоке <Record> добавить секцию <Files></Files> (или <Files />) в XML-настройки для этого справочника.

Общая структура будет выглядеть так:

<SyncRecords ...>
  <Record...>  
  <Files ...></Files>
  <SyncProperties>
      ...
  </SyncProperties>
  </Record>
</SyncRecords>

Секция Files должна иметь указанными следующие атрибуты:

 

Атрибут

Описание

Правильное значение

CatalogName

Имя справочника в "1С:Предприятие", содержащего вложенные файлы для конкретного типа документов


OwnerProperty

Имя реквизита в CatalogName, в котором находится ссылка на родительский документ (к которому файл считается "приложенным")

"ВладелецФайла"

SendContent

Отправлять непосредственно файл в виде двоичных данных. Если необходимо передавать файл, а не только его название то необходимо устанавливать как True


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

 

Атрибут

Описание

SyncDirections

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

ActionOnError

Действие при сетевой ошибке при передаче файлов (ошибки приложения не относятся к такому роду – только обрывы связи и пр.). По умолчанию – не назначено

NotificationsOnError

Способ уведомления пользователя об ошибке. По умолчанию Both — пользователь по возможности уведомляется и комментарием к задаче/документу, и сообщением на экран

 

Пример корректно заполненной секции

Настройка на стороне 1С

При передаче файлов в 1С, "Первая Форма" вызывает метод веб-сервиса UploadFile со следующими параметрами:

Параметр

Описание

Filename

Имя передаваемого файла

FileNameProperty

GUID документа, к которому прикрепляется файл

ParentDocName

Имя документа, к которому прикрепляется файл

FileData

Файл в формате двоичных данных.

Если необходимо передать только наименование без данных файла, необходимо установить признак SendContent="false"

Чтобы 1С сохранила себе файл, необходимо дописать код на языке 1С, в котором будет осуществляться сохранение. Для этого необходимо добавить Виртуальные реквизиты (в нашем примере для справочника ОрганизацииПрисоединенныеФайлы). При загрузке файла 1С по умолчанию получает виртуальный реквизит для указанного в настройках справочника, и для этого реквизита ищет данные по имени BinFileProperty. Реквизит FileNameProperty не участвует в выгрузке и загрузке данных, а используется для пометки файлов на удаление в 1С.

1C_domain_logic_settings_sync_files

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

warning_icon  Дополнительный справочник для вложенных файлов должен быть заранее создан заказчиком на стороне 1С (например, для справочника "ФизическиеЛица" — "ФизическиеЛицаПрисоединенныеФайлы"). Без этого синхронизация файлов работать не будет.

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

Алгоритм вычисления: данный алгоритм срабатывает при выгрузке из 1С и получает файл по ссылке для дальнейшей отправки.

Если Найти(ТипЗнч(Источник),"объект:")>0 Тогда

 Отбор=Источник.Ссылка;

Иначе

 Отбор=Источник;

КонецЕсли;

 

НаборЗаписей=РегистрыСведений.ПрисоединенныеФайлы.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.ПрисоединенныйФайл.Установить(Отбор);

НаборЗаписей.Прочитать();

Если НаборЗаписей.Количество()>0 Тогда

 ДанныеФайла = НаборЗаписей[0].ХранимыйФайл.Получить();

КонецЕсли;

Алгоритм записи: данный алгоритм срабатывает при загрузке в 1С. Он обрабатывает входящий файл и сохраняет его в 1С с переданным наименованием.

// Готовим файл и помещаем его в хранилище

ВременноеХранилище = ПоместитьВоВременноеХранилище(FileData);

// Подготоваливаем описание файла заполнив все необходимые параметры

ПараметрыФайла = РаботаСФайлами.ПараметрыДобавленияФайла();

ПараметрыФайла.Автор = ИмяПользователя();

ПараметрыФайла.ВладелецФайлов = ВладелецФайла;

ПараметрыФайла.ИмяБезРасширения = Лев(Filename, Найти(Filename, ".")-1);

ПараметрыФайла.РасширениеБезТочки = Прав(Filename, СтрДлина(Filename) - Найти(Filename, "."));

// Используем функцию БСП и добавляем файл к объекту

РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, ВременноеХранилище);

Настройка синхронизации ДП "Таблица" (колонки "только для чтения" и скрытые)

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

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

1c_table

Один из вариантов синхронизации ДП "Таблица"

Настройка синхронизации по произвольному событию

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

Пример

Добавление ДП для обмена вручную

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

1. Запустите заново мастер добавления справочника для нужного типа документа и на шаге 2 найдите в XML-настойках описание нужного реквизита.

2. Скопируйте текст описания, ограниченного тегом <Property>.

3. Вручную создайте в "Первой Форме" доп. параметр нужного типа (см. тег <Type>) с требуемым наименованием. В случае Lookup-поля обратите внимание на то, что оно требует создания не одного, а двух ДП.

4. В скопированном участке текста укажите правильный ID созданного ДП в теге <ExtParamID> (и дополнительно <TCLookupGUIDEPID> для ссылочных полей).

5. В разделе "Синхронизация с 1С" выберите имя настроек и нажмите кнопку Получить настройки по имени. Добавьте отредактированный текст в общие XML-настройки, нажмите кнопку Записать настройки, а затем — кнопку Отправить XML настройки в 1С.

Первичная выгрузка данных

Если в Мастере добавления справочников на шаге 4 флажок "Выгрузить первичные данные из 1С для новых элементов" был снят, то созданные в "Первой Форме" категории остались пустыми. Чтобы наполнить их данными, выберите имя настроек (1), нажмите кнопку Получить настройки по имени (2), а затем — кнопку Произвести первичную выгрузку по текущим настройкам (3) и отметьте нужные категории (4).

1C_get_data

Первичная выгрузка данных из 1С

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

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

Порядок выгрузки

Если в категории А есть ДП Lookup, который настроен на категорию В, то при получении данных сначала должны загружаться задачи из категорию В, чтобы при загрузке данных в категорию А ДП Lookup мог на них ссылаться. Если порядок загрузки данных нарушен, ДП Lookup не заполнится.

Чтобы данные заполнились корректно, выгрузку необходимо произвести дважды: в первый раз ДП Lookup останутся пустыми, а при второй загрузке они заполнятся соответствующими ссылками. Сопоставление задач производится по GUID-ам (именно для этого в настройках синхронизации в теге SyncSettings указывается параметр GUIDExtParamID).

Полезные ссылки