-
Notifications
You must be signed in to change notification settings - Fork 73
Библиотека интеграции с 1С загрузка данных из CouchDB
Библиотека интеграции с 1С предоставляет три принципиальных способа загрузки данных из CouchDB:
- автоматическая загрузка по расписанию;
- ручная массовая загрузка объектов одного типа (класса);
- ручная загрузка произвольного объекта.
Автоматическая загрузка выполняется регламетным заданием "Сессии легкого клиента" в 1С, по умолчанию интервал загрузки равен 71 секунде. Расписание работы регламентного задания можно изменить через соответствующую форму. Например, в Заказе дилера это обработка "Регламентные и фоновые задания", доступная через меню "Все функции". При острой производственной необходимости регламентное задание можно выключить на время, но стоит понимать последствия - кроме загрузки, перестанет работать асинхронная выгрузка.
Загрузке из CouchDB подлежат все объекты из базы doc
, для которых в панели администрирования, на закладке "Метаданные", в колонке "Загружать" выбран любой тип загрузки, кроме not_upload
.
За один такт загрузки обрабатывается 20 объектов. Если на загрузку 20 объектов ушло менее 15 секунд, то выполняется еще один такт загрузки. Загрузка малыми порциями не создает проблем производительности и наложения регл.заданий.
Если у вас инфраструктура проекта такова, что лимит в 20 объектов необходимо изменить, то сделать это можно в значениях параметров по умолчанию процедуры CouchDB_ЗагрузитьИзменения
общего модуля ИнтеграцияСериализацияСервер
.
Мы такой способ не рекомендуем, т.к. модуль придется снять с поддержки, что приведет к трудностям с обновлением библиотеки интеграции.
Автоматическую загрузку данных можно вызвать принудительно, без использования регламентного задания. Выполняется такая операция через панель администрирования.
Ключевое отличие ручного старта загрузки в том, что появляется возможность загрузить данные из базы ram
(регламентное задание читает только из doc
).
Разумеется, нужно четко понимать цель своих действий, загружая данные из ram
. Технически эта база для CouchDB - такая же, как doc
, но методически предполагается, что в ram
данные только записываются, а обратно не читаются.
Исключения встречаются во время внедрения, когда для объекта метаданных была указана база ram
, но в процессе внедрения потребовалось изменение места хранения - например, на doc
, и нужно сделать перенос данных.
Хотя, конечно, лучше воспользоваться обработкой ручной массовой загрузки объектов одного типа.
Обработка "Интеграция: массовая загрузка из CouchDB" позволяет получить все объекты определенного класса (например, конкретный справочник), сравнить их с соответствующими в 1С, и выборочно записать в ИБ.
Для загрузки необходимо указать базу (ram
или doc
), в которой находятся объекты, и имя класса - так, как он называется в CouchDB (например, cat.partners
).
Флаг Учитывать настройки предварительной загрузки
говорит о том, что если для загружаемого класса установлен тип загрузки preload
, то объекты будут загружены в спец.приемник предварительной загрузки.
Если флаг снят, то загрузка выполнится непосредственно в ИБ.
Флаг Такт после чтения
включает выполнение переопределяемых обработчиков после загрузки объекта.
Чтение объектов из CouchDB выполняется по кнопке Прочитать
. Будут получены все объекты соответствующего класса из CouchDB, и появятся в табличной части формы.
Обработка автоматически определит, отличается ли загружаемый объект от существующего в ИБ 1С - в этом случае будет установлен флаг Есть изменения
.
Дополнительно обработка поставит флаг Новый
, если в ИБ 1С нет соответствующего объекта.
При нажатии на строку табличной части с объектом, для которого взведен флаг Есть изменения
, внизу будет показана табличка с изменениями - какой реквизит отличается, какое значение было в 1С, какое пришло из CouchDB.
Будет объект загружен или нет, зависит от флага Загрузить
. По умолчанию этот флаг устанавливается у всех новых и измененных объектов.
Кнопка Загрузить изменения
запишет изменения выбранных объектов в ИБ 1С.
Ручная загрузка доступна в панели администрирования. Такой способ загрузки позволяет получить произвольный объект из CouchDB, зная его идентификатор.
Основное отличие данного инструмента в том, что можно не записывать объект сразу, а увидеть его до записи в виде 1Сного объекта. Например, если загружается элемент некоего справочника, то изменения из CouchDB будут внесены в объект 1С, и будет открыта форма объекта 1С. Дальше пользователь сам решает, записывать объект 1С или нет.
Также, ручная загрузка позволяет игнорировать настройки предварительной загрузки объектов, записывая в ИБ, миновав спец.приемник предварительной загрузки.
Предварительная загрузка объектов - это тип загрузки, при котором объект из CouchDB не сразу записывается в ИБ 1С, а сначала помещается в спец.приемник - регистр сведений Интеграция: предварительная загрузка объектов
.
Регистр сведений хранит информацию о:
- идентификаторе объекта из CouchDB;
- дате записи (т.е. моменте, в который объект попал в предварительную загрузку);
- дате обновления (т.е. моменте, когда из CouchDB пришли изменения для объекта, который уже есть в предварительной загрузке);
- представлении объекта (например, наименовании элемента справочника);
- имени метаданных (например, Справочник.Валюты);
- ссылке (если объект уже есть в 1С, ссылка поможет принять решение о загрузке);
- изменениях реквизитов (детали отличий объекта в 1С от объекта в CouchDB).
Примечание: изменения реквизитов видно только в форме записи регистра, т.е. нужно дважды щелкнуть на записи, чтобы их увидеть
Информация о датах записи и обновления - справочная, ни на что не влияет, но позволяет построить систему управления загрузкой, если таковая требуется на конкретном внедрении. Например, если просмотр объектов перед загрузкой - обязанность человека - то с помощью этих дат можно проверять, насколько ответственно и своевременно человек свою обязанность выполняет.
Действий с объектом в предварительной загрузке всего два:
-
Принять изменения
- объект будет записан в ИБ 1С, запись предварительной загрузки удалится; -
Проигнорировать изменения
- объект не будет записан в 1С, запись предварительной загрузки удалится.
Принять или проигнорировать изменения можно массово - выделить в списке нужные строки и нажать понравившуюся кнопку. Такой сценаний удобен, если нужно, например, принять или игнорировать изменения по конкретному типу метаданных.