Работа с внешними источниками данных в 1С 8.3
Меню

Работа с внешними источниками данных в 1С 8.3

Содержание статьи
  1. Внешние источники данных
  2. Использование внешних источников данных

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

Внешние источники данных

Раньше разработчикам 1С, чтобы достать эту информацию, приходилось писать собственные инструменты с нуля и разрабатывать процедуры импорта. В платформе под номером 8.2.14 появился стандартный аналог этих механизмов – внешние источники данных. И теперь стало намного проще получать необходимые данные из основных объектов:

  • Таблицы из баз данных SQL;
  • Excel;
  • Access;
  • Файлы формата DBF, TXT,CSV;
  • Других баз 1С.

Данный механизм может применяться для следующих задач:

  • Хранение в 1С ссылки на поля стороннего ресурса с данными;
  • Выполнение команд или функций объекта, к которому подключаются;
  • Составление отчетов по данным извне информационной базы 1С;
  • Получение и выгрузка данных во внешние источники данных.

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

Рассмотрим на примере задачу получения из таблицы SQL данных по номенклатуре на складе через механизм подключения внешнего источника данных. Настройка нового объекта в 1С 8.3 происходит через режим конфигуратора. Находим в структуре конфигурации последний пункт – «Внешние источники данных» и видим все существующие в базе связи. Добавляем новый объект с помощью стандартной кнопки добавить и дать ему «говорящее» название.

Добавляем новый объект с помощью стандартной кнопки добавить и дать ему «говорящее» название
Добавляем новый объект с помощью стандартной кнопки добавить и дать ему «говорящее» название

Затем нам надо в разделе «Данные» добавить таблицы, из которых мы будем брать информацию. Разработчики 1С предусмотрели достаточно удобный конструктор, в котором мы можем указать лишь строку соединения и тип СУБД. Для типового подключения к таблице MS SQL используется строка по следующему шаблону: «DRIVER={SQL Server};SERVER=_NameServ_;Trusted_Connection=yes;DATABASE=_NameBase_;LANGUAGE=русский». Вместо «_NameServ_» и «_NameBase_» необходимо вставить имя сервера и базы данных, соответственно.

В разделе «Данные» добавим таблицы, из которых мы будем брать информацию
В разделе «Данные» добавим таблицы, из которых мы будем брать информацию

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

Использование внешних источников данных

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

  1. Открываем в меню «Все функции» раздел «Стандартные», а далее форму «Управление внешними источниками данных». Перед нами откроется список всех созданных в конфигурации объектов;
    Список всех созданных в конфигурации объектов
    Список всех созданных в конфигурации объектов
  2. К сожалению, на этом этапе вам придется повторно занести строку соединения в настройки. Откройте меню «Администрирование» и выберите «Изменить общие параметры». Скопируйте из конфигуратора строку соединения и вставьте ее в соответствующий реквизит на форме. После подтверждения изменения общих параметров нажмите «Подключиться»;
  3. В результате вы увидите зеленую галку, подтверждающую, что все сделано правильно. Такому алгоритму необходимо следовать при каждом подключении, что не слишком удобно;
    Управление внешними источниками данных
    Управление внешними источниками данных
  4. Чтобы работать с данными из внешнего источника данных, откройте таблицу из раздела «Внешние источники данных», входящего в меню «Все функции».

Все функции
Все функции

Но существует и еще один способ подключиться к внешнему источнику данных – программный. Использовать его можно в любой модуле, где предполагается работа с данными из внешних источников. Рассмотрим пример алгоритма:


Параметры = ВнешниеИсточникиДанных.НоменклатураНаСкладе.ПолучитьОбщиеПараметрыСоединения() ;
Заполняем параметры;
Параметры.АутентификацияСтандартная = Истина;
Параметры.ИмяПользователя = «admin»;
Параметры.Пароль = «password»;
Параметры.СтрокаСоединения = «строка_соединения»;
Параметры.СУБД = «MSSQLServeг»;
Устанавливаем соединение с внешним источником.
ВнешниеИсточникиДанных.НоменклатураНаСкладе.УстановитьОбщиеПараметрыСоединения(Параметры);
ВнешниеИсточникиДанных.НоменклатураНаСкладе.УстановитьПараметрыСоединенияПользователя(ИмяПользователя(), Параметры);
ВнешниеИсточникиДанных.НоменклатураНаСкладе.УстановитьПараметрыСоединенияСеанса(Параметры);
ВнешниеИсточникиДанных.НоменклатураНаСкладе.УстановитьСоединение();

  1. Указываем, к какому объекту произойдет подключение;

    
    		Параметры = ВнешниеИсточникиДанных.НоменклатураНаСкладе.ПолучитьОбщиеПараметрыСоединения();
    

  2. Заполняем параметры;
    
    	    Параметры.АутентификацияСтандартная = Истина;
            Параметры.ИмяПользователя = «admin»;
            Параметры.Пароль = «password»;
            Параметры.СтрокаСоединения = «строка_соединения»;
            Параметры.СУБД = «MSSQLServer»;
    
  3. Устанавливаем соединение с внешним источником.
    
    	    ВнешниеИсточникиДанных.НоменклатураНаСкладе.УстановитьОбщиеПараметрыСоединения(Параметры);
            ВнешниеИсточникиДанных.НоменклатураНаСкладе.УстановитьПараметрыСоединенияПользователя(ИмяПользователя(), 
            Параметры);
            ВнешниеИсточникиДанных.НоменклатураНаСкладе.УстановитьПараметрыСоединенияСеанса(Параметры);
            ВнешниеИсточникиДанных.НоменклатураНаСкладе.УстановитьСоединение();
    

Запрашивать данные вы сможете обыкновенным запросом на языке 1С, обращаясь к таблице подобным образом:


Запрос = Новый Запрос;
Запрос.Текст =
       "ВЫБРАТЬ
        |	НоменклатураТаб.Name КАК Наименование
        |ИЗ
        |	ВнешнийИсточникДанных.НоменклатураНаСкладе.Таблица.Номенклатура КАК НоменклатураТаб";
РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

         // операторы работы с номенклатурой из внешнего источника данных 
КонецЦикла;


ВЫБРАТЬ
     НоменклатураТаб.Name КАК Наименование
ИЗ
     ВнешнийИсточникДанных.НоменклатураНаСкладе.Таблица.Номенклатура как НоменклатураТаб

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

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


Рассказать друзьям
Предыдущая статья статья
Авизо в 1С 8.3
Следующая статья статья
Основные справочники 1С 8.3: создание и изменение элементов
Комментарии