"Буфер обмена" через web-сервис

Обмен - Интеграция с WEB

Перенос объектов (табличных частей, элементов справочников и т.д.) из одной конфигурации в другую при помощи web-сервисов.

В типовых конфигурациях был добавлен удобный функционал копирования табличной части между документами. Недостаток данного механизма в том, что применять его можно внутри только одной конфигурации. Возникла необходимость переноса объектов / табличных частей из одного документа в другой, находящихся в разных конфигурациях. Притом, перенос необходим был не просто между разными конфигурациями, а между конфигурациями, находящимися на разных серверах, пользователи которых находятся на разных терминалах. 

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

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

getData(id, erase);
Возвращает данные типа строка. Данные которые были ранее скопированы (добавлены) в виде строки.
    • id, строка – ИД записи для считывания;
    • erase,  булево – признак необходимости удаления записи после передачи

getLastData (erase);
Возвращает данные типа строка. Самые последние данные, которые были ранее скопированы (добавлены) в виде строки.
    • erase,  булево – признак необходимости удаления записи после передачи

putData(dataType, data,  dataName, id);
Возвращает значение типа строка (id сохранения данных). Помещает данные для хранения.
    • dataType, строка – Тип данных хранения (см. тестовые конфигурации);
    • data,  строка – сохраняемые данные;
    • dataName, строка – представление хранимых данных;
    • id, строка – необязательный – присвоить собственный id для хранения.

getStoreList ();
Возвращает данные типа строка. Сериализованное значение типа «Таблица значений». См. тестовые конфигурации. Получает текущий состав сохраненных данных.

eraseData(id);
Возвращает данные типа булево (успех). Удаляет запись по id.
    • id, строка – ИД записи для удаления;

eraseLastData ();
Возвращает данные типа булево (успех). Удаляет самую последнюю добавленную запись.

Во вложении 2-е БД клиенты для проверки и БД с сервисом. В doc файле описана установка.

Может кому-нибудь пригодится.

Тестировалось на платформа 1С 8.3.9.

Скачать файлы

Наименование Файл Версия Размер
"Буфер обмена" через web-сервис:
.rar 615,35Kb
26.03.18
2
.rar 615,35Kb 2 Скачать

См. также

Комментарии
1. Сергей Епифанов (Gizmo_esu) 42 27.03.18 00:47 Сейчас в теме
Интересно.
Пользователь видит только свой буфер?
Т.к. буфер собирает их нескольких баз, то мне кажется надо больше инфы для выбора объекта вставки - хотя бы видеть из какой базы лежит и, возможно, предварительный просмотр самих вставляемых данных...
2. Евгений Кузнецов (eugenevk) 110 27.03.18 07:49 Сейчас в теме
(1) Любое описание данных можно сформировать для буфера. В методе putData - 3 параметр. Для примера упростил.
Оставьте свое сообщение