gifts2017

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

Опубликовал Андрей А. (Amras) в раздел Обмен - Перенос данных из 1C8 в 1C8

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

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

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

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

- Была создана публикация (Администрация >> Публикация на веб-сервере), которая получила имя sotrudniki.1cws (C:\Inetpub\wwwroot\ws\sotrudniki.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-сервиса.

 

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

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

Наименование Файл Версия Размер
Пакет XDTO, процедуры и функции для ЗУП и БП 52
.zip 106,49Kb
26.06.12
52
.zip 106,49Kb Скачать
Web сервисы.dt 13
.dt 28,70Kb
29.06.12
13
.dt 28,70Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Доржи Балбаров (Angeros) 27.06.12 08:31
Опишите скорость обмена данными. Сколько времени будут ехать 1000 сотрудников?! Это я к тому чтобы сравнить с привычным com соединением.
2. Андрей А. (Amras) 27.06.12 08:57
(1) Angeros,

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