Дело было давно. Как-то раз бухгалтерам понадобилось переносить информацию о физических лиц из ЗУП в БП.
Попробую кратко описать как все делалось:
- На сервере 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-сервиса.
Навеяло воспоминания о былом: //infostart.ru/public/140728/