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


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

Однако в работе частенько складывается ситуация, когда часть данных хранится где-то еще.

Примеры:

  • Интернет магазин (хранит данные обычно во внешней MySQL/SQL базе)
  • Загрузка данных из файлов Excel
  • Другая база.

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

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

  • теперь специальные механизмы получения данных создавать не нужно
  • к таким данным можно обращаться обычным запросом 1С
  • такие данные можно просматривать в списках 1С.
    •  

      Внешний источник данных 1С – внешняя база SQL

      Допустим у нас есть база SQL, в которой хранятся нужные нам данные. Попробуем прочитать данные из нее с помощью механизма Внешний источник данных 1С.

      Добавим внешний источник данных 1С. Нужно зайти в конфигуратор, внешние источники данных находятся в окне конфигурации, в самом низу дерева объектов 1С.

      1. Подключение

      Добавим новый внешний источник данных 1С, назовем произвольно.

      База данных состоит из таблиц. Нам нужно добавить их внутри добавленного внешнего источника данных. Нажмите на нем правой кнопкой мыши и выберите Добавить таблицу.

      В первый раз он предложит указать строку подключения. Ее можно ввести вручную, или сформировать, для чего нужно нажать на кнопку «…».

      В качестве драйвера в нашем конкретном случае выберем «SQL Server»

      Заполним основные параметры подключения к SQL. Имя сервера можно вписать или выбрать из списка.

      1С выполнит соединение с SQL и предложит выбрать из списка конкретную базу данных.

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

      Таблицы и колонки будут добавлены. Названия будут такие, как они определены в удаленной базе. В 1С Вы можете их переименовать (в свойствах).

      Вот пример добавленной таблицы:

      Вот пример добавленной колонки:

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

      • В свойстве Поле ключа – указать одну из колонок, которая будет обеспечивать уникальную идентификацию строки; если уникальность обеспечивают несколько строк – то данный способ не работает (аналог поля Код)
      • В свойстве Поле представления – указать одну из колонок, которая будет обеспечивать краткое представление строки (аналог поля Наименование)
      • В свойстве Тип данных таблицы – указать Объектные данные.

      2. Просмотр

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

      В ветке Стандартные расположена специальная команда Управление внешними источниками данных, которая позволяет указывать параметры соединения (свои для режима 1С Предприятия) и проводить подключение.

      Сначала нужно указать параметры соединения с базой.

      Когда Вы делали настройку в конфигураторе, он в результате показал Вам строку соединения. Вы можете повторно увидеть ее, нажав Добавить таблицу в конфигураторе еще раз.

      Скопируйте строку соединения и укажите ее в режиме 1С Предприятие.

      После этого необходимо произвести собственно подключение.

      После того, как произведено подключение, возможно работать со списками.

      3. Использование в языке 1С

      Подключение можно производить и из кода программы на языке 1С.

      Параметры подключения указываются так:
      ПараметрыСоединения = ВнешниеИсточникиДанных.ИмяИсточникаКонфигураторе.ПолучитьОбщиеПараметрыСоединения();

      ПараметрыСоединения.АутентификацияСтандартная = Истина;
      ПараметрыСоединения.ИмяПользователя = «sa»;
      ПараметрыСоединения.Пароль = «пароль»;
      ПараметрыСоединения.СтрокаСоединения = «строка соединения из конфигуратора»;
      ПараметрыСоединения.СУБД = «MSSQLServer»;

      ВнешниеИсточникиДанных.ИмяИсточникаКонфигураторе.УстановитьОбщиеПараметрыСоединения(ПараметрыСоединения);
      ВнешниеИсточникиДанных.ИмяИсточникаКонфигураторе.УстановитьПараметрыСоединенияПользователя(ИмяПользователя(), Параметры);
      ВнешниеИсточникиДанных.ИмяИсточникаКонфигураторе.УстановитьПараметрыСоединенияСеанса(Параметры);
      ВнешниеИсточникиДанных.ИмяИсточникаКонфигураторе.УстановитьСоединение();

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

      ВЫБРАТЬ
           ТаблицаВнешнегоИсточника.ИмяПоля
      ИЗ
           ВнешнийИсточникДанных.НашВнешнийИсточник.Таблица.ТаблицаВнешнегоИсточника»

       

      Внешний источник данных 1С – работа с файлом Excel

      Попробуем другой вариант – работу с файлом Excel через внешний источник данных 1С.

      Создадим простой файл Excel.

      Добавим внешний источник, назовем произвольно ФайлExcel. В него добавим таблицу «Лист1$». Как несложно заметить – это имя листа в Excel с добавлением символа «$».

      Как и в случае с SQL, добавим колонки. Их можно добавить вручную. Важно следить за соответствием типов добавляемых колонок, иначе позже можно получить ошибку вида «Несоответствие типов данных».

      Для колонки нужно указывать имя в 1С и имя в источнике данных.

      Для Excel существует особенность (ошибка вида «Слишком мало параметров. Требуется 3»):

      • Если в первой строке таблицы Excel расположены названия колонок, то нужно указывать просто имя этой колонки, например «Код».
      • Иначе нужно указывать полное имя с именем таблицы «Лист1$.Код», но в параметрах добавить «HDR=NO;».

      Параметры соединения для файла Excel выглядят вот так:

      • Файлы XLSX (версия Office 2007 и выше)
        Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=D:\ФайлExcel.xlsx;
      • Файлы XLS (ранее)
        Driver={Microsoft Excel Driver (*.xls)}; DriverID=790; DBQ=D:\ФайлExcel.xls;
        Имя и путь к файлу нужно указать собственные.

       


Проголосовать за этот пост:

1 Star2 Stars3 Stars4 Stars5 Stars (41 голосов, среднее: 4,61 из 5)
Загрузка...

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