Пара универсальных веб-функций для получения данных из 1С

19.09.17

Разработка - Универсальные функции

Две универсальные веб-функции, позволяющие получить данные через веб-сервис в виде таблицы значений или массив таблиц значений.

Файлы

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

Наименование Скачано Купить файл
Текст функций
.zip 1,51Kb ver:1.0.0.0
5 2 500 руб. Купить

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

На практике, используя лишь эти функции, можно организовать взаимодействие с очень сложным сайтом, при этом от программиста 1С требуется всего лишь выдавать  веб-программисту тексты запросов. Что крайне положительно сказывается на скорости разработки комплексного решения.

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

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

Для сайтов используется плоская структура (почему-то проблематично сформировать сложную структуру на php,  поэтому параметры должны иметь имена построенные так Парам_Имяпараметравзапросе , Парам_ отрезается при парсинге структуры) , для 1С классическая структура 1С.

//*********  ПРИМЕР ИСПОЛЬЗОВАНИЯ ****************//
АдресWSDL="http://10.250.205.11:8080/skd/ws/buh_exchange.1cws?wsdl";       
    TargetNamespace="http://localhost/ave_skd"; 
    DefinitionsName="buh_exchange"; 
    PortName="buh_exchangeSoap12";    
    
    
    Определение=Новый WSОпределения(СокрЛП(АдресWSDL));  // без пароля
    
    Прокси = Новый WSПрокси(Определение,
    СокрЛП(TargetNamespace),//targetNamespace из WSDL
    СокрЛП(DefinitionsName),//definitions name из  WSDL 
    СокрЛП(PortName),       // port name из WSDL 
    0);

    
    ТекстЗапросаЧерезWS=  "    ВЫБРАТЬ
|        Города.Наименование,
|        Города.Код
|    ИЗ
|        Справочник.Города КАК Города
|    ГДЕ
|        (Города.Наименование ПОДОБНО &Параметр1
|                ИЛИ Города.Наименование ПОДОБНО &Параметр2)
 |"; // Сгенерировано в GtG's Консоль запросов. 13.07.2015 15:27:17


    
    Параметры=Новый Структура;
    
    Параметры.Вставить("Запрос",ТекстЗапросаЧерезWS);
    
    СтруктураПараметров=Новый Структура;
    СтруктураПараметров.Вставить("Параметр1","%ы%");
    СтруктураПараметров.Вставить("Параметр2","%э%");
    
    Параметры.Вставить("ПараметрыЗапроса",СтруктураПараметров);
    
    
    ХДТО_Параметры=СериализаторXDTO.ЗаписатьXDTO(Параметры);
    
    
    ХДТОРезТЗ=Прокси.Universal_Query_Function__TZ_Result(ХДТО_Параметры);
    
    ТЗ=СериализаторXDTO.ПрочитатьXDTO(ХДТОРезТЗ);
    
    Элементыформы.табзнач.значение=ТЗ;
    Элементыформы.табзнач.СоздатьКолонки();

 

//=============================== НА САЙТЕ ==========================//


$wsdl = new SoapClient(WSDL_URL);
$query = 'ВЫБРАТЬ первые 10 Гы.Наименование, Гы.Код ИЗ Справочник.контрагенты КАК Гы ГДЕ (Гы.Наименование ПОДОБНО &Параметр1 ИЛИ Гы.Наименование ПОДОБНО &Параметр2)';
$params = array(
    'Property' => array(
        array(
            'name' => 'Запрос',
            'Value' => $query
        ),
        array(
            'name' => 'Парам_Параметр1',
            'Value' => '%й%'
        ),
        array(
            'name' => 'Парам_Параметр2',
            'Value' => '%я%'
        )
    )
);
$products = $wsdl->Universal_Query_Function__TZ_Result(array('IncomingData' => $params));
print_r($products);

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

web веб-сервис обмен сайт

См. также

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    4825    Abysswalker    11    

47

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

Порой необходимо временно отключить расширение 1С, не удаляя его, чтобы не потерять данные. Но в этом случае при каждом запуске всем будет лезть уведомление о неактивном расширении, хотя очевидно, это техническая информация, которой не стоит лишний раз пугать пользователей.

14.05.2025    9027    DeerCven    15    

63

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    57915    dimanich70    85    

175

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    8138    7    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    72664    atdonya    31    

73

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    10112    ke.92@mail.ru    17    

68
Для отправки сообщения требуется регистрация/авторизация