При синхронизации категории "Первой Формы", в которой есть ДП "Таблица", рекомендуется создавать дополнительный (буферный) скрытый ДП "Таблица": при обновлении главного ДП "Таблица" с помощью смарт-автоматизации обновляется буферная таблица, и именно эта буферная таблица участвует в синхронизации с 1С.
Схема синхронизации ДП "Таблица"
Использование буферной таблицы позволяет решить следующие проблемы:
Не запускается лишняя синхронизация. Если синхронизация будет настроена на главный ДП "Таблица", она будет запускаться каждый раз при изменении какой-либо ячейки. На самом деле, не все ячейки таблицы могут быть важны для синхронизации. Буферную таблицу можно обновлять только при изменении значимых ячеек или при переводе задачи в определенный статус, в этом случае синхронизация будет запускаться только тогда, когда это действительно нужно.
Обеспечивается полнота и разделение данных. Исходная таблица может содержать вспомогательные ячейки (пояснения, изображения и т.п.) или расчетные ячейки, которые нужны пользователям, но не участвуют в синхронизации. Наоборот, буферная таблица будет содержать только данные, участвующие в синхронизации, включая техническую информацию, не нужную пользователям.
Правильная организация обмена данных — когда процесс начинается в одной системе, потом передается в другую и завершается там. Но иногда процесс требуется вернуть снова в исходную систему. Например, согласование заявки на оплату инициируется в "Первой Форме", затем передается в 1С, там проверяется по бюджету и частично согласуется, а затем возвращается в "Первую Форму" для завершающего согласования.
В таких случаях между системами передаются не только ДП, но и статус задачи. Для этого мы рекомендуем создавать в "Первой Форме" скрытый ДП, в котором будет храниться статус задачи. Он будет актуализироваться с помощью смарт-автоматизации на переходах. В 1С нужно создать виртуальный реквизит, который будет соответствовать статусу задачи и вычисляться по какой-то специфической логике. ДП, хранящий статус в "Первой Форме", должен синхронизироваться с этим виртуальным реквизитом.
Схема синхронизации статусов
Важно, чтобы в каждый момент времени задача менялась только в одной системе:
•когда процесс ведется в "Первой Форме", задача в 1С либо еще не существует, либо заблокирована для изменений;
•когда процесс передан в 1С, блокируется изменение задачи в "Первой Форме";
•в момент синхронизации проверяются условия, и если они соблюдены (т.е. происходит передача процесса из одной системы в другую), выполняется автоматизация, которая разблокирует задачу в одной системе и блокирует в другой.
Блокирование изменений при синхронизации
Переименование файлов, вложенных в ДП
При обмене файлами с 1С файлы должны иметь типовые имена — в имени не должно быть номера версии и должен быть ключ SyncFrom1F, примерно так:
SyncFrom1F ИмяФайла _ФотоРакурс2.jpeg
Когда пользователь вкладывает в ДП "Файл" файл для отправки в 1С, имя этого файла не соответствует требованиям обмена. Поэтому файл переименовывается нужным образом, под этим именем записывается в буферный ДП для отправки в 1С, а затем переименовывается обратно так, как изначально был назван пользователем.
Для автоматизации используется пакет действий, который состоит из трех смарт-действий:
1. Обновить параметры с помощью T-SQL вычислений
3. Обновить параметры с помощью T-SQL вычислений
В первом и третьем смарт-действии вызывается хранимая процедура Rename_File_In_DP. Скачать ее можно здесь.
Во втором смарт-действии вызывается смарт-выражение "Файл из измененного ДП":
Смарт-выражение "Файл из измененного ДП"