Sv translation | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||
Информация про интеграцию с 1С в том числе рассказана в видео:
Общие объектыОбщие модули
Планы обмена
Подписки на события
Регламентные задания
XDTO-пакеты
Регистры сведений
Обработки
Работа со схемой данныхДля каждого объекта метаданных, для которого необходим обмен с порталом требуется описать свойство в типе AgoraMessage: Имя свойства должно совпадать с именем метаданных объекта, локальное имя может использоваться, если для портала требуется изменить имя свойства при выгрузке. Имя типа свойства должно совпадать с именем метаданных. Для объектов также должны быть заданы свойства для выгруки на портал + свойство "ВремяИзменения". При выгрузке по умолчанию заполняется текущей датой. Табличные части объектов описываются свойством вида <Имя табличной части>_add_<Имя объекта-владельца> и имеют одно свойство вида <Имя табличной части>Строка_add_<Имя объекта-владельца>, с заданным локальным именем "Строка": Если для определения значения свойства требуется дополнительные преобразования или вызов кода 1С, то в имени свойства добавляется префикс "f_" и задается локальное имя: В таком случае в общем модуле АгораAPI должна быть описана экспортная функция с именем, совпадающим с именем свойства, которая возвращает значение свойства для выгрузки в XML. Параметр процедуры - Структура с ключами ИмяОбъекта, Объект, ОбъектСтруктура. Регистрация данныхРегистрация происходит в подписках на события при записи объектов. Для некоторых объектов применяются фильтры при регистрации: Справочник "Контрагенты"Для выгрузки регистрируются только те контрагенты, для которых присутствует запись в регистре "АгораКонтрагенты". Запись автоматически добавляется при загрузке контрагента с портала. Справочник "Номенклатура", Справочник "ХарактеристикиНоменклатуры"Для выгрузки регистрируются только та номенклатура, для которой присутствует запись в регистре "АгораНоменклатура" и ресурс "Вид флажка" равен 1. Регистрация характеристик происходит аналогично, с проверкой по номенклатуре. Документ "ЗаказКлиента", Документ "СверкаВзаиморасчетов"Для выгрузки регистрируются только те документы, для которых есть запись в регистре "АгораЗаказы". Запись автоматически добавляется при загрузке документа с портала. Регистр сведений "ЦеныНоменклатуры", Регистр накопления "СвободныеОстатки"При изменениях в этих регистрах создаются записи в регистре сведений "АгораИзмененияЦенОстатков" и регистрируются для выгрузки Автоматический обмен по расписаниюРегламентное задание запускается каждые 60 сек. Для каждого из узлов плана обмена "АгораОбмен" запускается отдельное фоновое задание по загрузке/выгрузке данных. Загрузка и выгрузка выполняются последовательно. При начале работы каждого задания проверятся строка соединения информационной базы - если строка не соответствует сохраненной в регистре "АгораПараметры", то процедура завершается без выполнения каких-либо действий. Обмен с порталомФайлы обмена получаются с портала по протоколу HTTP и сохраняются в регистре "АгораПакетыОбменаДанными". При выгрузке на портал выбираются записи регистра с направлением обмена "исходящее" и без флагов "Обработано" и "Карантин". При успешной обработке файла устанавливается флаг "Обработано". При возникновении ошибок устанавливается флаг "Карантин" и поле "Комментарий" запоняется описанием ошибки. Формирование исходящего XML-файлаФормирование запускается в процедуре "АгораВыгрузка.ВыгрузитьИзменения(УзелОбмена, ТекстСообщения="")". В процедуре, в свою очередь запускаются фоновые задания "АгораВыгрузка.СформироватьMessage" для каждой очереди обмена (от 0 до 3). Каждое задание формирует файл обмена с различным набором объектов. Распределение объектов по очередямВыгружаемые объекты задаются в функции "ПолучитьМассивОбъектовПоНомеруОчереди(НомерОчереди)". Функция возвращает структуру из имени очереди (имя конечной точки при выгрузке на портал) и список объектов метаданных. При добавлении новых объектов для выгрузки необходимо внести изменения в эту функцию. Распределение по умолчанию:
Выборка данныхДля каждого объекта метаданных вызывается функция ВыбратьИзменения. Результат вызова - таблица значений с колонками "Объект" и "ДополнительныеПараметры". Объект - объект данных выборки, дополнительные параметры - структура с дополнительными данными, которые могут потребоваться при выгрузке. Формирование объекта XDTO "АгораMessage"Для каждого выгружаемго объекта формируется структура данных, которая содержит все его реквизиты и таб. части, а так же иные данные, необходимые для выгрузки. Формирование структуры происходит в функции "АгораAPI.ПодготовитьСтруктуруОбъекта". В этой функции в структуру добавляются все реквизиты и ТЧ. Добавление дополнительных данных или переопределение значений реквизитов производится в процедуре "АгораAPI.ОбработкаОбъекта1CЭкспорт". Для каждой строки таблицы выборки вызывается процедура "АгораВыгрузка.ДобавитьОбъектВСообщениеОбмена". В процедуре происходит формирование одиночного XDTO-объекта и добавление его в общий АгораMessage. Формирование одиночных XDTO-объектовДля выгрузки произвольных данных, без объекта данных, вместо объекта необходимо передать имя типа XDTO. Для объектов имя типа XDTO определяется по метаданным. При необходимости переопределить имя типа это необходимо делать в процедуре "АгораВыгрузка.ПолучитьИмяОбъектаXDTO". Далее осуществляется поиск свойства объекта АгораMessage с полученным именем. Если свойство не найдено, то выгрузка не производится. Если найдено, то создается объект XDTO. Для полученного объекта XDTO проихводится перебор всех его свойств и получение значения для выгрузки по следующему алгоритму:
Если значение получено, то происходит его запись в объект XDTO в зависимости от типа значения:
После завершения формирования объекта XDTO вызывается доп. процедура обработки "АгораAPI.ОбработкаОбъектаXDTOЭкспорт" для внесения доп. изменений в сформированный объект. Если выгружается объект, а не удаление объекта, то дополнительно вызывается процедура для постобработки объекта: "АгораAPI.ПостОбработкаОбъекта1CЭкспорт". При постобработке справочника номенклатуры в файл обмена дополнительно выгружаются значения дополнительных свойств и реквизитов номенклатуры. Сформированный АгораMessage Выгруженные объекты сохранются в отдельный массив и при успешном формировании объекта АгораMessage удаляются из регистрации изменений. Загрузка входящего файла обменаДля загрузки выбираются записи регистра "АгораПакетыОбменаДанными" без признаков "Обработано" и "Карантин". Содержимое пакета считывается в объект АгораMessage, после чего формируется таблица объектов XDTO для загрузки в функции "АгораЗагрузка.ПолучитьТаблицуОбъектовXDTO". Процедуры загрузки: АгораAPI.ОбработкаОбъектаXDTOИмпорт - для изменения объекта XDTO перед загрузкой АгораЗагрузка.ОбработкаОбъектаXDTO - обарботка загрузки удаления, запроса данных АгораЗагрузка.ЗагрузкаОбъектаXDTO - заполнение объекта по совпадающим именам свойств объекта XDTO АгораAPI.ОбработкаОбъекта1СИмпорт - дополнительная обработка объекта ИБ до записи - пересчет ТЧ, заполнение отсутствующих в XDTO реквизитов и т.д. АгораОбщий.ЗаписатьОбъект - запись объекта в ИБ. Если тип объекта документ и есть флаг "проведен" в XDTO - документ проводится АгораAPI.ОбработкаОбъекта1СИмпортПослеЗаписи - постобработка объекта 1С после записи в ИБ |
...