Skip to content
лого - блог 1с программиста

Блог 1С программиста

Наработки, заметки и другая информация по 1С

  • Главная
  • ЗУП 3.1
    • Разработка
      • Обработки
      • Отчеты
      • Печатные формы
      • Расширения
    • Инструкции
    • Ответы техподдержки 1С
    • Общие вопросы
  • УХ 3.2
  • ДО 2.1
  • Интеграции и обмены
  • Шаблоны и заготовки
    • Типовые приемы
    • Отчеты
    • Печатные формы
    • Расширения
  • Платформа 1С
  • Контакты
  • Toggle search form

Пример интеграции с ДО 2.1 через веб-сервис

Posted on 30 мая 23 г.31 мая 23 г. By admin Комментариев к записи Пример интеграции с ДО 2.1 через веб-сервис нет

Содержание:

  • Файлы материала
  • Как устроена интеграция с ДО
  • Примеры по работе с веб-сервисом DMService используя БИД
    • 1. Подключение к ДО
    • 2. Создание контрагента в ДО
    • 3. Получение контрагента в ДО по ID
    • 4. Поиск контрагента в ДО по имени
    • 5. Получение контрагента ДО с чтением в форму
    • 6. Очистка связи контрагента в ДО
Файлы материала
Обработка “Примеры по работе веб-сервисов ДО”Скачать

Обработка содержит примеры команд по работе с веб-сервисом DMService, которые описаны в данной статье.

Как устроена интеграция с ДО

Для интеграции с документооборотом через веб-сервисы существует специальная библиотека, которая так и называется “Библиотека интеграции с документооборотом” (БИД), ее можно скачать с сайта 1С и развернуть в виде конфигурации с предустановленными примерами. Последняя версия библиотеки содержит возможности, как для интеграции с ДО 2.1 (веб-сервис DMService), так и ДО 3 (веб-сервис DMILService, который кстати в отличии от DMService нужно публиковать с обоих сторон обмена). Более подробно из официальных источников можно почитать в статьях: БИД 1.1.18, БИД 3.0.1, Механизм интеграции. Так же, полный перечень веб-сервисов с подробным описанием можно посмотреть в разделе Главное -> Описание веб-сервисов 1С: Документооборота данных библиотек.

Описание веб-сервисов в библиотеки интеграции с документооборотом

Кроме того, БИД уже встроена в большинство типовых конфигурации (Например ЗУП 3.1 и БП 3.0). Для примера в конфигураторе ЗУП поставим фильтр по подсистемам и посмотрим, какие объекты метаданных входят состав библиотеки. Видим, что они делятся на ДО2 и ДО3.

Объекты метаданных по интеграции с документооборотом

В данной статья будут рассмотрены некоторые возможности веб-сервиса DMService, которые были использованы на практике. Кроме того, примеры можно найти на ИТС в описании БИД по ссылкам приведённым выше.

Примеры по работе с веб-сервисом DMService используя БИД

Обращение к веб-сервисам ДО 2 в примерах тестировалось из конфигурации ЗУП 3.1. Для работы примеров, необходимо в разделе Администрирование -> Интеграция с 1С:Документооборотом указать URL опубликованного веб-сервиса “Документооборота”.

Настройки интеграции с документооборотом
1. Подключение к ДО

Пример подключения к ДО с запросом логина и пароля при первом запуске. Полученные данные сохранятся в параметрах сеанса и будут использованы в дальнейшем.

1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
&НаКлиенте
Процедура ПодключитьсяКДО(Команда)
// Установка подключение к ДО с запросом Логина и Пароля от пользователя
ОписаниеОповещения = Новый ОписаниеОповещения("ПодключениеКДОЗавершение", ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ПроверитьПодключение(ОписаниеОповещения, ЭтотОбъект, Истина);
КонецПроцедуры
 
&НаКлиенте
Процедура ПодключениеКДОЗавершение(Результат, Параметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Сообщить("Подключение установлено");  
КонецПроцедуры

Так же можно прописать данные логина и пароля напрямую в параметры сеанса, без запроса данных от пользователя.

1С (Код)
1
2
3
ПараметрыСеанса.ИнтеграцияС1СДокументооборотИмяПользователя = "Администратор";
ПараметрыСеанса.ИнтеграцияС1СДокументооборотПароль = "";
 
2. Создание контрагента в ДО

Упрощённый пример по созданию контрагента в ДО 2 из другой конфигурации

1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
&НаСервере
Процедура СоздатьКонтрагентаВДОНаСервере()
ВнешнийОбъект = Объект.Контрагент;
Прокси = ИнтеграцияС1СДокументооборотБазоваяФункциональностьПовтИсп.ПолучитьПрокси();
// Создаем объект XDTO (DMCorrespondent - описывает "Контрагента" в документообороте)
ОбъектXDTO = ИнтеграцияС1СДокументооборотБазоваяФункциональность.СоздатьОбъект(Прокси, "DMCorrespondent");  
 
// Заполниение свойств объекта XDTO
ИнтеграцияС1СДокументооборот.ЗаполнитьСвойствоXDTOизСтруктурыРеквизитов(Прокси, ОбъектXDTO, "name", ВнешнийОбъект, "Наименование");
ИнтеграцияС1СДокументооборот.ЗаполнитьСвойствоXDTOизСтруктурыРеквизитов(Прокси, ОбъектXDTO, "fullName", ВнешнийОбъект, "НаименованиеПолное");
ИнтеграцияС1СДокументооборот.ЗаполнитьСвойствоXDTOизСтруктурыРеквизитов(Прокси, ОбъектXDTO, "inn", ВнешнийОбъект, "ИНН");
ИнтеграцияС1СДокументооборот.ЗаполнитьСвойствоXDTOизСтруктурыРеквизитов(Прокси, ОбъектXDTO, "kpp", ВнешнийОбъект, "КПП");
 
ID = "";
Если ЗначениеЗаполнено(ID) Тогда
// Обновление существующего объекта
Иначе  
// Создание нового описания контрагента в документообороте
ОбъектXDTO.objectID = ИнтеграцияС1СДокументооборотБазоваяФункциональность.СоздатьObjectID(Прокси, ID, "DMCorrespondent");
ОбъектXDTO.name = ВнешнийОбъект.Наименование;        
// externalObject - заполняется для устновления связей на стороне ДО
ВнешнийОбъектXDTO = ИнтеграцияС1СДокументооборотБазоваяФункциональность.СоздатьОбъект(Прокси, "ExternalObject");
ВнешнийОбъектXDTO.ID = Строка(ВнешнийОбъект.УникальныйИдентификатор());
ВнешнийОбъектXDTO.type = ВнешнийОбъект.Метаданные().ПолноеИмя();
ВнешнийОбъектXDTO.name = Строка(ВнешнийОбъект);
ОбъектXDTO.externalObject = ВнешнийОбъектXDTO;
// DMCreateRequest - создает новый объект Документооборота и записывает его
Запрос = ИнтеграцияС1СДокументооборотБазоваяФункциональность.СоздатьОбъект(Прокси, "DMCreateRequest");
Запрос.object = ОбъектXDTO;
 
Результат = ИнтеграцияС1СДокументооборотБазоваяФункциональность.ВыполнитьЗапрос(Прокси, Запрос);
// Проверка результата
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПроверитьВозвратВебСервиса(Прокси, Результат);
    Сообщить("Контрагент создан в ДО");
КонецЕсли;
КонецПроцедуры

Данный пример не учитывает существующие связи объектов ДО с внешними системами (которые для ДО 2.1 хранятся в регистре сведений “ОбъектыИнтегрированныеСДокументооборотом” на стороне ДО 2).

3. Получение контрагента в ДО по ID
1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
&НаСервере
Процедура ПолучитьКонтрагентаВДОНаСервере()
ВнешнийОбъект = Объект.Контрагент;
Прокси = ИнтеграцияС1СДокументооборотБазоваяФункциональностьПовтИсп.ПолучитьПрокси();  
// Вариант 1
ОбъектXDTO = ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПолучитьОбъект(Прокси, "DMCorrespondent", Строка(ВнешнийОбъект.УникальныйИдентификатор()));
// Вариант 2 - более подробно
//Запрос = ИнтеграцияС1СДокументооборотБазоваяФункциональность.СоздатьОбъект(Прокси, "DMRetrieveRequest");
//СписокОбъектов = Запрос.objectIDs; // СписокXDTO
//
//ОбъектИд = ИнтеграцияС1СДокументооборотБазоваяФункциональность.СоздатьObjectID(Прокси, Строка(ВнешнийОбъект.УникальныйИдентификатор()), "DMCorrespondent");
//СписокОбъектов.Добавить(ОбъектИд);
//
//Результат = ИнтеграцияС1СДокументооборотБазоваяФункциональность.ВыполнитьЗапрос(Прокси, Запрос);
//ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПроверитьВозвратВебСервиса(Прокси, Результат);
//
//ОбъектXDTO = Результат.objects[0];
Сообщить("Получен ОбъектXDTO - "+ОбъектXDTO.name);
 
КонецПроцедуры
4. Поиск контрагента в ДО по имени
1С (Код)
1
2
3
4
5
6
7
8
9
10
11
&НаСервере
Процедура НайтиКонтрагентаВДОНаСервере()
ВнешнийОбъект = Объект.Контрагент;
Прокси = ИнтеграцияС1СДокументооборотБазоваяФункциональностьПовтИсп.ПолучитьПрокси();  
ОбъектXDTO = ИнтеграцияС1СДокументооборотБазоваяФункциональностьВызовСервера.НайтиОбъектВДОПоИмени("DMCorrespondent", ВнешнийОбъект.Наименование);
Сообщить("Найден ОбъектXDTO - "+ОбъектXDTO.name);
КонецПроцедуры
5. Получение контрагента ДО с чтением в форму

Если в конфигураторе найти обработку “ИнтеграцияС1СДокументооборот” и раскрыть ветку “Формы”, то можно увидеть, что все основные формы документооборота, так же существуют и в конфигурации с БИД.

Связь с контрагентом ДО

Пример получения контрагента ДО 2 при помощи встроенных форм. При записи формы будет автоматически установлена связь контрагентов.

1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
&НаКлиенте
Процедура ПолучитьКонтрагентаДОВФорму(Команда)
ВнешнийОбъект = Объект.Контрагент;
ДополнительныеПараметры = Новый Структура;
ОписаниеОповещения = Новый ОписаниеОповещения("СоздатьКонтрагентаЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ID", Строка(ВнешнийОбъект.УникальныйИдентификатор()));  
ОткрытьФорму("Обработка.ИнтеграцияС1СДокументооборот.Форма.Контрагент", ПараметрыФормы,,ВнешнийОбъект.УникальныйИдентификатор(),,,ОписаниеОповещения);
КонецПроцедуры
 
&НаКлиенте
Процедура СоздатьКонтрагентаЗавершение(Результат, Параметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Сообщить("Контрагент записан");
КонецПроцедуры
6. Очистка связи контрагента в ДО

Удаление связи контрагента текущей конфигурации с контрагентом ДО 2

1С (Код)
1
2
3
4
5
6
7
8
9
10
&НаКлиенте
Процедура УдалитьСвязьВДО(Команда)
ВнешнийОбъект = Объект.Контрагент;
ИнтеграцияС1СДокументооборотБазоваяФункциональностьВызовСервера.УдалитьСвязь(Строка(ВнешнийОбъект.УникальныйИдентификатор()), "DMCorrespondent", Объект.Контрагент);
Сообщить("Связь удалена");
КонецПроцедуры

Рекомендации

  • Работа с Web-сервисами 1С на примерах
  • Работа с XML через механизм XDTO с примерами
ДО 2.1, Интеграции и обмены Tags:web-сервис, БИД

Навигация по записям

Previous Post: Не синхронизируется флаг “Отражено в бухучете” резервов по оплате труда
Next Post: Шаблон отчета СКД с получением данных из ТаблицыЗначений

Добавить комментарий Отменить ответ

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

ДзенTelegram

MDM web-сервис БИД Бухучет КД 2.0 Командировки НДФЛ П-4 ПВХ Подбор персонала Резервы отпусков СЗВ-ТД СКД СТД-Р СЭДО ФСС ФСС НС ЭЛН больничные листы взносы выплаты вычеты диалог длительная операция интерфейс кадровая история кадровые данные кадровые переводы контактная информация легкий труд макет мастер-данных менеджер расчета зарплаты обмен данными оповещения отпуска представление прием на работу связь параметров связь по типу синхронизация ЗУП и БП средний заработок табель таблица периодов фотография

Рубрики

  • Без категории (1)
  • ДО 2.1 (1)
  • ЗУП 3.1 (41)
    • Инструкции (4)
    • Общие вопросы (14)
    • Ответы техподдержки 1С (10)
    • Разработка (8)
      • Обработки (3)
      • Отчеты (1)
      • Печатные формы (1)
      • Расширения (3)
  • Интеграции и обмены (7)
  • Платформа 1С (1)
  • УХ 3.2 (3)
  • Шаблоны и заготовки (23)
    • Отчеты (12)
    • Печатные формы (6)
    • Расширения (2)
    • Типовые приемы (7)
Top.Mail.Ru

© 2022-2023 myblog-1c.ru