WS Black Hole by EvilGrym. Универсальный обмен через SOAP, вместо прямого соединения через COM, V83.Application и т.п.

15.10.17

Интеграция - Внешние источники данных

Сервис предназначен для организации взаимодействия с БД 1С посредством SOAP протокола. Позволяет хранить исходный функциональный код на вызывающей стороне. Предназначен для замены обмена данными через COM-соединения любого рода.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
WS Black Hole by EvilGrym. Универсальный обмен через SOAP, вместо прямого соединения через COM.:
.cf 513,47Kb ver:1.0.0.1
6 2 450 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Web-Сервис

Black Hole

by Evil Grym 

 

Назначение.

Сервис предназначен для организации взаимодействия с БД 1С посредством SOAP протокола. Позволяет хранить исходный функциональный код на вызывающей стороне.

 

Описание функций и способы их вызова.

Общие параметры функций:

Usr - Имя пользователя. Используется для дополнительной авторизации пользователя. Хранится в справочнике GTG_BlackHole_Users.

Pwd - Пароль пользователя. Используется для дополнительной авторизации пользователя. В БД не хранится. Сравнивается с отпечатком, хранящимся в справочнике GTG_BlackHole_Users.

Exec(Usr, Pwd, IncomingData) - выполняет произвольный код 1С переданный в параметрах вызова.

Параметры:

IncomingData - Структура в которой передается исполняемый код и дополнительные данные. Структура должна иметь обязательное поле ТекстПрограммы, в значении которого должен содержаться исполняемый код , написанный из расчета , что выполнение происходит в серверном контексте базы сервиса. Так же, структура может содержать произвольный набор полей, через которые можно передать дополнительные данные, требующиеся для выполнения текста программы. В передаваемых данных не должно быть ссылок. В тексте программы переданные дополнительные значения доступны через переменную типа структура ВхСтруктура.<имя_поля_IncomingData>

Возвращаемое значение:

Структура. Содержит обязательное поле СтатусВыполнения. Значения поля СтатусВыполнения  - Строка. При успешном выполнении "ОК", при ошибке - описание ошибки.

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

 

Query_to_TZ(Usr, Pwd, IncomingData)  - выполняет запрос  с параметрами переданный в параметрах вызова.

Параметры:

Вариант 1, для 1С:

IncomingData - Структура в которой передается запрос и его параметры. Структура должна иметь обязательное поле Запрос, в значении которого должен содержаться текст запроса , написанный из расчета , что выполнение происходит в контексте базы сервиса. Так же, структура может содержать парамметры запроса, передаваемые через поле ПараметрыЗапроса структуры IncomingData. Тип значения поля ПараметрыЗапроса - Структура, ключ которй соответствует имени параметра запроса , а значение - значению параметра запроса. В передаваемых данных не должно быть ссылок.

Также, можно преобразовать ссылочные данные, полученные в результате запроса в ГУИДы. Для этого в структуру IncomingData добавить поле СсылкиКакГУИДы со значением Истина. В этом случае, все ссылки , полученные в результате запроса будут преобразованы в ГУИДы.

 

IncomingData      
  Запрос Текст запроса  
  ПараметрыЗапроса    
    ИмяПараметра1 Значение параметра 1
    ИмяПараметра2 Значение параметра 2
  СсылкиКакГУИДы истина/ложь  

Вариант 2, для PHP:

IncomingData - Аналогично Варианту 1 , но т.к. в PHP наблюдается проблема при передаче вложенных структур при вызове функции веб-сервиса, то параметры нужно передавать следующим образом: параметры должны быть полями структуры IncomingData  , а к имени параметра нужно добавить "Парам_".

 

IncomingData      
  Запрос Текст запроса  
  Парам_ИмяПараметра1 Значение параметра 1  
  Парам_ИмяПараметра2 Значение параметра 2  
  СсылкиКакГУИДы истина/ложь  

Возвращаемое значение:

Таблица значений.

Query_to_ArrayOfTZ(Usr, Pwd, IncomingData)  - выполняет пакетный запрос  с параметрами переданный в параметрах вызова.

Параметры:

Аналогично функции Query_to_TZ

Возвращаемое значение:

Массив таблиц значений.

Настройки.

Константы:

Логгировать ошибки доступа WS Black Hole - Включает/выключает запись ошибок авторизации в регистр сведений Лог ошибок доступа к WS "Black Hole".

Логгировать вызовы WS Black Hole- Включает/выключает запись параметров, переданных при вызове функций сервиса, в регистр сведений Лог вызовов к WS "Black Hole".

 

Справочники:

Пользователи WS "Black Hole" - Справочник пользователей сервиса для дополнительной авторизации выполняемых операций. Пароль пользователя не хранится в базе, поэтому не может быть восстановлен. В случае утраты пароля можно сгенерировать новый.

Примеры использования.

Подключение к сервису:

 АдресWSDL="http://localhost:8083/InfoBase/ws/gtg_bh.1cws?wsdl";
 TargetNamespace="GTG_BH_WS";
 DefinitionsName="GTG_BlackHole_WS";
 PortName="GTG_BlackHole_WSSoap12";
    Таймаут=30;
 
 // Если Web-сервис требует пароля:
  ИмяПользователя="BlackHoleUser";
  Пароль="123456";
  Определение=Новый WSОпределения(СокрЛП(АдресWSDL),ИмяПользователя,Пароль,Таймаут); 
 
 Прокси = Новый WSПрокси(Определение,
 СокрЛП(TargetNamespace),
 СокрЛП(DefinitionsName),
 СокрЛП(PortName),       
 0);
 
 // Если Web-сервис требует пароля:
  Прокси.Пользователь=ИмяПользователя;
  Прокси.Пароль=Пароль;

Использование функции Query_to_TZ:

ВСЗапрос="ВЫБРАТЬ
| GTG_BlackHole_Users.Ссылка КАК Ссылка,
| GTG_BlackHole_Users.ВерсияДанных КАК ВерсияДанных,
| GTG_BlackHole_Users.ПометкаУдаления КАК ПометкаУдаления,
| GTG_BlackHole_Users.Код КАК Код,
| GTG_BlackHole_Users.ДоступРазрешен КАК ДоступРазрешен,
| GTG_BlackHole_Users.Соль КАК Соль,
| GTG_BlackHole_Users.Предопределенный КАК Предопределенный,
| GTG_BlackHole_Users.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.GTG_BlackHole_Users КАК GTG_BlackHole_Users
|ГДЕ
| GTG_BlackHole_Users.Код ПОДОБНО &Код";

 
 
Usr = "РоботЧернодыр";
Pwd = "86e0-362aa800b1b0";

 ИнДата = Новый Структура();
 ИнДата.Вставить("Запрос",ВСЗапрос);
 
 ПараметрыИнЗапроса = Новый Структура();
 ПараметрыИнЗапроса.Вставить("Код","%Черно%");

 ИнДата.Вставить("Запрос",ВСЗапрос);
 ИнДата.Вставить("ПараметрыЗапроса",ПараметрыИнЗапроса);
 ИнДата.Вставить("СсылкиКакГУИДы",Истина);
 
 IncomingData = СериализаторXDTO.ЗаписатьXDTO(ИнДата);

 Результат=Прокси.Query_to_TZ(Usr, Pwd, IncomingData); // XDTO-объект, таблица значений
 
 ТЗ = СериализаторXDTO.ПрочитатьXDTO(Результат); // Таблица значений.

Использование функции Exec:

 ТекстПрограммы="
 |
 | А = (10 + ВхСтруктура.Параметр1)*ВхСтруктура.Параметр2;
 | СтруктураВозврата.Вставить(""Результат_А"",А);
 | 
 | МассивБ = Новый Массив;
 | Для Ы=1 по А Цикл
 |  МассивБ.Добавить(Ы);
 | КонецЦикла;
 | 
 | СтруктураВозврата.Вставить(""Результат_Б"",МассивБ);
 |
 | Спр = Справочники.GTG_BlackHole_Users.НайтиПоКоду(""РоботЧернодыр"");
 | СтруктураВозврата.Вставить(""Результат_Х"",XMLСтрока(Спр.Ссылка));
 |";

 
 
Usr = "РоботЧернодыр";
Pwd = "86e0-362aa800b1b0";

 ИнДата = Новый Структура();
 ИнДата.Вставить("ТекстПрограммы",ТекстПрограммы);
 ИнДата.Вставить("Параметр1",10);
 ИнДата.Вставить("Параметр2",1);
 
 
 IncomingData = СериализаторXDTO.ЗаписатьXDTO(ИнДата);

 Результат=Прокси.Exec(Usr, Pwd, IncomingData); // XDTO-объект, структура
 
 РезСтруктура = СериализаторXDTO.ПрочитатьXDTO(Результат); // структура.
 
 Сообщить("Статус выполнения: "+РезСтруктура.СтатусВыполнения);
 Сообщить("А = "+РезСтруктура.Результат_А);
 Сообщить("Содержимое массива Б: ");
 Для Каждого Элем Из РезСтруктура.Результат_Б Цикл
  Сообщить("  "+Элем);
 КонецЦикла;
 Сообщить("Х = "+РезСтруктура.Результат_Х);

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Розничная торговля Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Бухгалтерский учет 1С:Бухгалтерия 3.0 Фармацевтика, аптеки Россия Бухгалтерский учет Платные (руб)

Внешняя обработка загрузки данных из файла-выгрузки, сформированного в программе F3 TAIL версии 3.4 (и выше) или еФарма версии 2.1, в базу конфигурации 1С: Бухгалтерия предприятия 8, ред. 3.0 (базовая, ПРОФ, КОРП, ФРЕШ).

13200 руб.

19.12.2016    49620    101    106    

74

Производство готовой продукции (работ, услуг) Внешние источники данных 1С v8.3 1С:Управление нашей фирмой 1.6 Лесное и деревообрабатывающее хозяйство Россия Управленческий учет Платные (руб)

Обработка предназначена для загрузки файлов, выгруженных из системы Базис-мебельщик, в справочник 1С "Спецификации" для последующих процессов учета и диспетчирования полуфабрикатов и изделий.

10200 руб.

24.06.2021    22744    58    55    

40

Внешние источники данных Программист Бизнес-аналитик Пользователь 1С v8.3 Управляемые формы Анализ и прогнозирование 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    25081    27    49    

42

Внешние источники данных Пользователь 1С v8.3 1C:Бухгалтерия 1С:Розница 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Платные (руб)

Быстро и легко. Выгрузка всех элементов и групп номенклатуры (с их иерархией), кроме помеченных на удаление. Без использования COM-объектов.

4800 руб.

16.08.2023    2275    6    8    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. depresnjak 3 23.10.17 12:55 Сейчас в теме
Есть ли требования к платформе?
2. Evilgrym 194 23.10.17 23:59 Сейчас в теме
Нет, работает там, где есть веб сервисы.
3. Пользователь 1С 3 06.06.18 23:38 Сейчас в теме
Подскажите, у меня есть две базы. Одна самописка, другая БП 3.0, которая лежит на вэб-сервере. Задача - загрузить в самописку справочники из БП, а также получить бухгалтерские данные (обороты счета и пр) за период (т.е. выполнить запрос на БП 3.0) и вернуть его результат в самописку. Данная обработка решает такую задачу?
4. Evilgrym 194 14.08.18 11:30 Сейчас в теме
(3) Разумеется. Для подобных ситуаций и предназначена.
Оставьте свое сообщение