Как получить данные из 1с в другую программу

Каждому программисту 1С рано или поздно приходится сталкиваться с задачами интеграции. «1С:Предприятие» предоставляет разнообразные возможности для обмена данными и интеграции прикладных решений. Возможно осуществить интеграцию «1С:Предприятия» практически с любыми внешними программами и оборудованием на основе общепризнанных открытых стандартов и протоколов передачи данных.

Для интеграции информационных систем на платформе «1С:Предприятие» с другими системами наиболее часто применяются:

  • Web-сервисы и HTTP-сервисы;
  • Подключение через ADO;
  • Обмен через файлы формата XML;
  • Обмен через файлы формата Excel;
  • Обмен через файлы формата DBF.

Внимание!

HTTP Services URL: обмен между базами 1с с помощью сервиса интерграции — создание и настройка

Бобков Олег

массив клиентов для отправки

Как загрузить или выгрузить данные из 1с в формате xml

На платформе 1C начиная от версии 8.3.5 и выше появилась новая возможность создания сервисов с уникальными HTTP services URL. Подобные системы позволяют не только осуществлять штатные задачи, как отправку, прием и корректировку данных, но и обладают куда более глубокими возможностями. Например, формирование простых, но действенных клиентских приложений. Плюс, что примечательно, общая нагрузка на сам сервер снижается, благодаря уменьшению объема сведений, а также их оптимизации. В результате мы получаем отличный инструмент, позволяющих реализовывать самые непростые задания даже на смартфонах, ведь вычислительная мощность потребуется относительно небольшая.

Шаблон создания HTTP сервиса 1С

В первую очередь нам понадобится сам веб-сервер. Отличным вариантом считается Apache, подходящий версией от 2.2 и выше. Конкретнее про установку мы поговорим дальше в представленным обзоре, пока же по вводным факторам. Для начала создаем сам serves. Вводим произвольное название, фактически роли это не играет.

HTTPА вот сам URL – это куда более важная часть. Именно по этому адресу будет доступен корневой каталог, поэтому заранее определите корректное наименование. Шаблоны URL и методы

Свойств у только что нами созданного URL немного, а именно одно – шаблон.

Это запись, по которой будет доступен путь до serves. Вы можете задавать параметры для сегментирования. То есть, градировать на неопределенное количество внутренних разделов. Выполняется это с помощью следующих настроек. Свойства шаблонаА вот у методов уже есть возможность присвоения множества свойств.

1С Конвертация данных: пошаговая инструкция по настройке первого обмена

Читайте также:
Программа для настройки руля artplays v 1200

Таких, как движение, удаление, блокирование, соединение, получение, путь и так далее. При обращении к системе автоматически будет сопоставлен введенный адрес с имеющимся шаблоном. И если они соответствуют, то в ответ выдается выбранный вами метод. Если же соответствия не произошло, то ответная реакция от HTTP сервиса 1С будет 404, что является кодом ошибки.

Публикация и проверка

публикация на веб-сервере

Завершающим шагом будет отправка нашего созданного шаблона в работу. Но на многих версиях этого не получится сделать, если сама программа не была запущена от имени администратора. Если не получилось опубликовать ваш вариант, просто закройте конфигуратор и откройте снова через щелчок правой кнопки мыши и выбор соответствующей опции. Итак, если мы все сделали верно, то в случае этого примера, он будет доступен по адресу – localhost/HTTPTest/hs/Obmen/test-parametr/Test/GetInfo?param=value. Разберем каждый сегмент этого пути:

  • Localhost – соответственно, сам адрес изначального сервера.
  • HTTPTest – как вы можете наблюдать из скрина, именно такой набор символов мы ввели в названии нашей тестовой публикации.
  • Hs – а вот это важнейшая часть. Это указатель, который дает понятие о том, что происходит именно обращение к 1С HTTP сервису.
  • Obmen – это название корневого каталога, который мы задавали ранее.
  • test-parametr – соответственно, указанный нами изначально метод определения, а точнее, его путь.
  • GetInfo – это уже наименование.
  • param=value – нестрогий вариант параметров.

При выполнении процедуры произойдет следующее.

get параметры

Здесь мы обратились к методу, получили соответствующий ответ. При этом для работы нам в любом случае понадобится авторизация. И решить возникшее затруднение в принципе несложно. Потребуется просто задать новый логин и пароль. А после авторизоваться по введенным опциям.

Но есть и другая методика реализации этой функции, если обратиться к 1С HTTP сервис vrd. Мы напрямую можем изменить файл default, добавив в блокнот следующую запись – Usr=Логин; Pwd=Пароль. В результате надобности в авторизации как таковой не будет. И наша публикация будет доступна свободно.

Источник: www.cleverence.ru

COM соединение в 1С 8.3

Анна Викулина

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

Подключаемся через COM к базе 1С

Для реализации COM соединения в 1С используется специальный механизм под названием COMConnector. Этот объект устанавливается вместе с платформой и применяется для связи информационных баз. Следует учесть, что для версий 8.2 и 8.3 используются разные по наименованию объекты – «V82.COMConnector» и «V83.COMConnector» соответственно.

Читайте также:
Как написать вирусную программу в блокноте

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

Чтобы иметь возможность подключиться к другой базе и запросить нужную информацию вы должны знать следующие данные:

  1. Какого она типа – файловая или клиент-серверная;
  2. Где она располагается;
  3. Под каким именем и паролем в нее можно зайти;
  4. Какие данные вас интересуют.

Из первых трех пунктов для реализации COM соединения необходимо сформировать строку параметров. В зависимости от типа ИБ она будет отличаться внешним видом. Используя полученную строку, происходит подключение, с помощью которого можно собирать для анализа и обработки данные из другой базы любыми методами.

ПараметрыПодключенияФайловойИБ = «Filе=»»Путь_к_базе»»; Usr=»»Имя_пользователя»»;Pwd=»»Пароль»»»; ПараметрыПодключенияКлиентСервернойИБ = «Srvr=»»Имя_Сервера»»; Ref=»»Имя_базы»»; Usr=»»Имя_пользователя»»; Pwd=»»Пароль»»»;

Функция подключения проста и не должна вызвать вопросов, если все параметры указаны верно. Для ускорения отладки и анализа возможных ошибок лучше заключить подключение в конструкцию «Попытка». Возвращать функция будет значение типа «COM объект», с которым и предстоит работать, получая нужные данные.

Filе=»»Е:базы 1сЕRР»»; Usr=»»Администратор»»;Pwd=»»1″»»; V83COMCon= Новый СОMОбъект(«V83.COMConnector»); Попытка Возврат V83COMCon.Connect(ПараметрыПодключенияИБ); Исключение Сообщить(ОписаниеОшибки()); Возврат Неопределено; КонецПопытки; КонецФункции

Через COM соединение вы можете не только выбирать данные, но и добавлять их в базу, к которой подключаетесь. Помните, что передавать через COM объект мы можем 4 примитивных типа данных. Другие типы придется задавать с помощью встроенных в платформу функций поиска. Учтите, что глобальные функции платформы вызываются тоже через COM-соединение.

Получаем данные из базы 1С

После того как получили нужный объект, необходимо прочитать данные из другой базы. Для этого мы применяем запрос через COM соединение в 1С 8.3 с помощью полученного значения типа «COM объект» из функции. Важно сначала подключиться к базе, а затем уже выполнять запрос. Выполнение происходит через метод NewObject с указанием в качестве параметра типа объекта в строковом виде – «Запрос».

Если ТипЗнч(Соединение) <> Тип(«Неопределено») Тогда ЗапросБПЗО = Соединение.NewObject(«Запрос»); ЗапросБПЗО.Текст = «ВЫБРАТЬ первые 15 | СправочникПольз.Наименование КАК Наименование |ИЗ | Справочник.пользователи КАК СправочникПольз»; Выборка = ЗапросБПЗО.Выполнить().выбрать(); Пока Выборка.следующий() цикл Сообщить(Выборка.Номер); КонецЦикла; КонецЕсли; КонецПроцедуры

Читайте также:
Как составить кс 2 без программы

К примеру, чтобы получить информацию о пользователях определенного подразделения, зададим условие в запрос через параметры. Один параметр будет простого типа – строка, а подразделение – ссылкой элемента справочника «Структура предприятия». Результат запроса является таблицей с перечисленными полями того типа, какого они существуют в базе, к которой произошло COM соединение. Если необходимо их преобразовать в другие типы – воспользуйтесь стандартными функциями платформы:

ЗапросБПЗО = Соединение.NewObject(«Запрос»); ЗапросБПЗО.Текст = «ВЫБРАТЬ первые 15 | СправочникПольз.Наименование КАК Наименование |ИЗ | Справочник.Пользователи КАК СправочникПольз I ГДЕ | СправочникПольз.Подразделение = «%»» + «%»»»; ЗапросБПЗО.УстановитьПараметр(«НужноеПодразделение»,Соединение.Справочники.СтруктураПредприятия.НайтиПоКоду(«00-000023»)); ЗапросБПЗО.УстановитьПараметр(«НужноеИмя»,»Екатерина»); Выборка = ЗапросБПЗО.Выполнить().выбрать(); Пока Выборка.следующий() цикл Сообщить(Выборка.Наименование); КонецЦикла;

Если нужно передать в базу массив для отбора по нескольким параметрам, например, подразделениям, тоже используется команда NewObject. Аналогично можно передавать список или таблицу значений, заполняя их элементами другой базы через соединение. Для поиска вам доступны все существующие методы объектов и механизмов платформы.

ЗапросБПЗО = Соединение.NewObject.(«Запрос»); ЗапросБПЗО.Текст = «ВЫБРАТЬ первые 15 | СправочникПольз.Наименование КАК Наименование | ИЗ | Справочник.Пользователи КАК СправочникПольз I ГДЕ | СправочникПольз.Подразделение В («%»» + «%»»»; МассивПодразделений = Соединение.NewObject(«Массив»); МассивПодразделений.Добавить(Соединение.Справочники.СтруктураПредприятия.НайтиПоКоду(«00-000023»)); МассивПодразделений.Добавить(Соединение.Справочники.СтруктураПредприятия.НайтиПоКоду(«00-000038»)); МассивПодразделений.Добавить(Соединение.Справочники.СтруктураПредприятия.НайтиПоКоду(«00-000046»)); ЗапросБПЗО.УстановитьПараметр(«НужноеПодразделение», МассивПодразделений); ЗапросБПЗО.УстановитьПараметр(«НужноеИмя»,»Екатерина»); Выборка = ЗапросБПЗО.Выполнить().выбрать(); Пока Выборка.следующий() цикл Сообщить(Выборка.Наименование); КонецЦикла;

При переносе документов или элементов справочников всегда возникает вопрос о контроле переноса определенного объекта. С помощью COM соединений можно решить подобные проблемы через уникальный идентификатор. Нужно найти объект в подключаемой базе по идентификатору из текущей ИБ с помощью функции «ПолучитьСсылку», используя идентификатор в виде строки. Если такового не нашлось, вы можете создать его с помощью COM соединения.

СтрИдент = Строка(Справочники.Пользователи.НайтиПоКоду(«00-0000313»).УникальныйИдентификатор()); Если НЕ ЗначениеЗаполнено(Соединение.Справочники.Пользователи.ПолучитьСсылку(Соединение.NewObject(«УникальныйИдентификатор», СтрИдент))) тогда НовыйПользователь = Соединение.Справочники.Пользователи.СоздатьЭлемент(); НовыйПользователь.Наименование = Справочники.Пользователи.НайтиПоКоду(«00-0000313»).Наименование; НовыйПользователь.ФизическоеЛицо = Справочники.Пользователи.НайтиПоКоду(«00-0000313»).ФизическоеЛицо; НовыйПользователь.Записать(); КонецЕсли;

Также COM соединение имеет право использовать процедуры и функции из общих модулей 1С с включенным свойством «Внешнее соединение». Кроме этого условия, вызываемая функция или процедура должна быть экспортная и не включать интерактивные действия, выполняемые на сервере. В противоположном случае вы увидите ошибку о недопустимости операции.

Рис.1 Внешнее соединение

Соединение..; ПеременнаяИзФункции = Соединение..;

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

Источник: wiseadvice-it.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru