Импорт физлица из ЗУП в БП (web-сервисы)







Импорт ФизЛица из ЗУП в БП (web-сервис).

Дело было давно. Как-то раз бухгалтерам понадобилось переносить информацию о физических лиц из ЗУП в БП.

Попробую кратко описать как все делалось:

— На сервере 1С был поднят web-сервер (локальный) IIS.

— Была создана публикация (Администрация >> Публикация на веб-сервере), которая получила имя sotrudniki.1cws (C:Inetpubwwwrootwssotrudniki.1cws).

— Структура файла (в архиве представлены два варианта: без авторизации и с авторизацией). Не забудьте прописать Логин, Пароль, Имя базы, Имя сервера.

— Дальше немного картинок, т.к. описывать все долго, да и не каждому нужны все поля будут (рис.1-5).

— После был написан модуль web-сервиса (в справочнике ФизЛица убраны группы). Можно скачать в архиве с xdto-пакетом.

— Теперь вернусь к XDTO пакету. Попробую описать структуру полей (кому лень писать пакет, может его скачать и не забудьте подключить пакет к web-сервису):

1. Для каждого поля задаем тип (строка, число и т.д.) — например для поля Код — string (http://www.w3.org/2001/XMLSchema).

2. Заполним остальные параметры (Возможно пустое: Истина/Ложь, Фиксированное: Истина/Ложь) — например для поля Ссылка «Возможно пустое» и «Фиксированное» = Ложь.

 

 Часть работы в ЗУП выполнена. Стоит перейти ко второй конфигурации (БП).

 

— В справочник «Физические лица» добавляем кнопку «Заполнить» и добавляем форму заполнения (это все можно и в обработку вынести при желании). В архиве будет представлена процедура для этой кнопки.

— Создадим новую форму «ВыборЗагрузкиЗУП» и табличную часть «ДанныеФизлиц». Поля ТЧ:

1. Наименование (строка, неограниченная длина).

2. ДатаРождения (дата).

3. АдресПредставление (строка, неограниченная длина).

— В форме «ВыборЗагрузкиЗУП» при выборе строки в ТЧ «ДанныеФизлиц», установим событие «При выборе»:

Процедура ДанныеФизлицВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    Наименование = ВыбраннаяСтрока.Наименование;
    мИндекс = ВыбраннаяСтрока.НомерСтроки 1;
    ЭтаФорма.Модифицированность = Ложь;
    ЭтаФорма.Закрыть();
КонецПроцедуры

— Создадим новый общий модуль (назовем его WSService) и пропишем там новую функцию:

//Функция получения данных из удаленной БД
Функция ПолучитьДанныеОтгрузкиУдаленно(Знач АдресВебСервиса, Знач Наименование) Экспорт
    Определения = Новый WSОпределения(АдресВебСервиса + «?wsdl»);
    Прокси = Новый WSПрокси(Определения, «http://www.sample-package.org», «Сотрудники», «СотрудникиSoap»);
        
    Возврат Прокси.ПолучитьСписокСотрудников(Наименование);
КонецФункции

 

Вот вроде и все. Работы не так много и в свое время было интересно поиграться с этими вещами.

 

29/07/2012

 

Для пущей наглядности добавил мини демо-базу. Но прописать все остальное в ЗУП все же надо, как и поднять IIS (или ему подобный сервер). В базе один справочник «ФизическиеЛица», перечисление «ПолФизическихЛиц», общий модуль «WSService», пакет XDTO (упрощенный), и Web-сервис «Сотрудники» (упрощенный).

Не забудьте в процедуре «Процедура ДействияФормыЗаполнить(Кнопка)» формы «ФормаЭлемента» справочника  «ФизическиеЛица» отредактировать строку, заменив <Ваш_Сервер> на требуемое значение (имя вашего сервера IIS):

ДанныеОтгрузки = ПолучитьДанныеОтгрузкиУдаленно(«http://Ваш_Сервер/ws/sotrudniki_auth.1cws«, СправочникОбъект.Наименование);

 

П.С.

Это первая публикация. Может корявенькая, не совсем понятная. Но идея в 2009 году была в обмене информацией ЗУП и БП средствами web-сервиса.

 

Навеяло воспоминания о былом: //infostart.ru/public/140728/

2 Comments

  1. Angeros

    Опишите скорость обмена данными. Сколько времени будут ехать 1000 сотрудников?! Это я к тому чтобы сравнить с привычным com соединением.

    Reply
  2. Amras

    (1) Angeros,

    Там не идет пакетный обмен. Чтобы сделать пакетно, надо идти иным путем сопоставления данных. В данном случае скорость зависит от сервера. В среднем на получение данных сотрудника уходит порядка 10 секунд (это тот вариант что на картинке про Абрамова). Иногда и мгновенно проходит. В нашей базе на текущий момент 9000 записей в справочнике.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *