Как подключить внешний источник данных 1с
Перейти к содержимому

Как подключить внешний источник данных 1с

  • автор:

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

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

Внешний источник может получать данные из ODBC-источников в операционных системах Windows и Linux, причем при работе с СУБД Microsoft SQL Server, IBM DB2, PostgreSQL и Oracle Database обеспечиваются полные возможности языка запросов. Кроме этого внешние источники данных позволяют подключить к прикладному решению многомерные источники данных, такие как:

  • Microsoft Analysis Services;
  • Oracle Essbase;
  • IBM InfoSphere Warehouse.

При работе с другими СУБД некоторые конструкции языка запросов могут не работать, т. к. они ограничены возможностями того ODBC-драйвера, который используется.

Внешний источник данных состоит из набора таблиц.

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

Таблицы внешнего источника данных можно описать вручную, или с помощью конструктора.

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

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

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

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

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

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

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

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

К данным этих таблиц можно обращаться с помощью языка запросов.

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

Эти таблицы можно использовать в отчётах на системе компоновки данных.

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

Также на элементы этих таблиц можно ссылаться как на любые другие данные объектного типа. Например, как на элементы справочников или документы.

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

Авторы: Е.Ю. Хрусталева

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Список всех созданных в конфигурации объектов

Управление внешними источниками данных

Все функции

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

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

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

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

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

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

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

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

Как подключить внешний источник данных 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=;DBQ=D:\ФайлExcel.xlsx;
  • Файлы XLS (ранее)
    Driver=; DriverID=790; DBQ=D:\ФайлExcel.xls;
    Имя и путь к файлу нужно указать собственные.

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

Внешние источники данных в 1С Предприятии

Релиз 8.2.14.533 — наконец то более-менее стабильный вариант 14-го релиза платформы. Наконец то представился случай испытать в деле замечательную возможность — «внешние источники данных».

Почему данная возможность вызывает такой интерес? Любой человек, который программировал в 1С при этом достаточно неплохо знаком с SQL и хотя бы в общих чертах знаком с архитектурой и принципами разработки других технологических платформ для бизнес приложений с твердой уверенностью скажет вам — что ему нравится больше всего в 1С. Конечно конструктор запросов — самый удобный и продуманный механизм написания запросов для получения данных из реляционных структур, который я лично когда-либо встречал. А теперь 1С нам предоставили такую замечательную возможность использовать его не только с 1С, но и с любыми другими таблицами. Вот только в эту «бочку мёда» насыпана куча «ложек дёгтя». Обо всём по порядку:

1) Настройка и использование — без «танцев с бубном» не получится

a) Добавляете внешний источник данных — вроде ничего сложного
б) ставите галочку «Выбрать из списка» — обязательно — это нужно чтобы проверить работоспособность уже в начале и избавит от лишних заморочек
в)
— обязательно нажимаем «. » — подключение именно ODBC. Не OLEDB как мы все привыкли, а на уровень ниже

г)
А вот здесь будьте ОЧЕНЬ ВНИМАТЕЛЬНЫ.
Это драйвер ODBC — в случае использования клиент-серверной версии он должен обязательно быть на сервере. Если вы ведёте разработку на одной системе, а рабочая версия на другой (как это обычно бывает) убедитесь что вас не ждут сюрпризы. Странная рекоммендация, но выбирайте самый древний или самый общий драйвер в случае если вас не особо заботит скорость и за пределы возможностей стандарта SQL92 вы выходить не намерены. Это обеспечит вам лучшую совместимость. Например для SQL Server 2008 лучшим драйвером будет SQL Server Native Client 11, но рекоммендую выбирать просто SQL Server, иначе этот самый native client придётся устанавливать либо на сервер, либо на все клиентские машины (в случае использования файловой версии), а выигрыша особого для простых задач он не даст.
д) Стандартные диалоги выбора Сервера

е) На вопрос сохранения пароля рекомендую ответить «да», иначе так и не получится это дело запустить.

ж) Выбираете таблицу и реквизиты. замечательная возможность — её можно сразу же переименовать так как вам нравится (и реквизиты тоже), при этом в свойствах у вас будут отображаться названия полей источника данных

з) А теперь запускаете, открываете конструктор запросов — выбираете тупо все записи из таблицы и ОПА — ошибка. Что делать? Если у вас управляемый интерфейс — заглянуть в меню сервис, а если обычный.
Я лично использовал вот такой код:

Параметры = ВнешниеИсточникиДанных.DAX.ПолучитьОбщиеПараметрыСоединения();
Параметры.АутентификацияСтандартная = Истина;
Параметры.ИмяПользователя = «sa»;
Параметры.Пароль = «pas»;
Параметры.СтрокаСоединения = «DRIVER=;SERVER=servet;UID=sa;PWD=;DATABASE=database»;
Параметры.СУБД = «MSSQLServer»;

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

Может каких-то кусков и не нужно, но это работает. Выполнить код нужно ОДИН РАЗ. После чего будет нормально подключаться. мистика конечно — зачем это было нужно не понятно.

2) Источники данных только для чтения
Да, чудес не бывает. но иногда так хочется.

3) НЕЛЬЗЯ ИХ ИСПОЛЬЗОВАТЬ ВМЕСТЕ С ВНУТРЕННИМИ ИСТОЧНИКАМИ ДАННЫХ
Меня лично этот факт убил наповал

Как же так. то чего так ждали и уже представляли и облизывались как мы сейчас в одном запросе соединим наши данные с 1С-кой свернём — сгруппируем, вставим в отчет, а не тут то было.

Но естественно опытных людей это не останавливает. какая мысль пришла в голову? Правильно — временные таблицы:

4) НЕЛЬЗЯ ИХ ИСПОЛЬЗОВАТЬ ВМЕСТЕ С ВРЕМЕННЫМИ ТАБЛИЦАМИ

А вот это уже не похоже на технологические трудности, а очень смахивает на то что нам хотят «чтобы жизнь раем не казалась» сделать :).

5) Можно использовать только в соединениях СКД
Для тех кто не знает — это в СКД на вкладке «Связи наборов данных». Часто вы ими пользуетесь? Удобно? Видимо так нас хотят принудить к использованию их чаще. Вот только там есть колонка «Условие связи» и «Параметр связи». Ни в одной типовой конфигурации не нашел примера их использования, в документации и у Хрусталевой тоже как-то всё не прозрачно. Кто-нибудь сможет мне объяснить как работает «условие связи». Если там написать РеквизитИсточника = РевизитПриемника это не работает. Конечно условие можно записать в поле «Выражение» — в большинстве случаев этого хватает. вот только как-то не очень просто получается.

Итого ранее эта задача решалась где-то так:

ДатаНач = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[5].Значение;
ДатаКон = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[4].Значение;
Если ДатаКон > ‘20100101’ Тогда
ДатаКон = ‘20100101’;

КЧ = Новый КвалификаторыЧисла(15,2);
КС = Новый КвалификаторыСтроки(255);

МассивЧисло = Новый Массив();
МассивЧисло.Добавить(Тип(«Число»));

МассивСтрока = Новый Массив();
МассивСтрока.Добавить(Тип(«Строка»));

МассивДата = Новый Массив();

МассивДата.Добавить(Тип(«Дата»)); //В таблицу будем заполнять бухгалтерскую себестоимость
ТипЧисло = Новый ОписаниеТипов(МассивЧисло,,КЧ);
ТипСтрока = Новый ОписаниеТипов(МассивСтрока,,КС);
ТипДата = Новый ОписаниеТипов(МассивДата);

//таблица для загрузки данных из SQL
ТЗ = Новый ТаблицаЗначений();
ТЗ.Колонки.Добавить(«НоменклатураКод», ТипСтрока);
ТЗ.Колонки.Добавить(«Qnty», ТипЧисло);
ТЗ.Колонки.Добавить(«Период», ТипДата);

//Подключаемся к SQL
СтрокаПодключения = «Provider=SQLOLEDB.1;Persist Security Info=True;User Source=;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=Reports»;
Connection = Новый COMОбъект(«ADODB.Connection»);
Command = Новый COMОбъект(«ADODB.Command»);
RecordSet = Новый COMОбъект(«ADODB.RecordSet»);
Дата = «»;
Попытка
Connection.Open(СокрЛП(СтрокаПодключения));

Command.CommandText = «Select * from PH where period >= ‘» + Строка(Формат(ДатаНач, «ДФ=ггггММдд»)) + «‘ and period

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

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

Внешний источник может получать данные из ODBC-источников в операционных системах Windows и Linux, причем при работе с СУБД Microsoft SQL Server, IBM DB2, PostgreSQL и Oracle Database обеспечиваются полные возможности языка запросов. Кроме этого внешние источники данных позволяют подключить к прикладному решению многомерные источники данных, такие как:

  • Microsoft Analysis Services;
  • Oracle Essbase;
  • IBM InfoSphere Warehouse.

При работе с другими СУБД некоторые конструкции языка запросов могут не работать, т. к. они ограничены возможностями того ODBC-драйвера, который используется.

Внешний источник данных состоит из набора таблиц.

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

Таблицы внешнего источника данных можно описать вручную, или с помощью конструктора.

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

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

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

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

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

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

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

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

К данным этих таблиц можно обращаться с помощью языка запросов.

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

Эти таблицы можно использовать в отчётах на системе компоновки данных.

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

Также на элементы этих таблиц можно ссылаться как на любые другие данные объектного типа. Например, как на элементы справочников или документы.

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

Авторы: Е.Ю. Хрусталева

1С 8.3 : Запись во внешний источник данных из 1С 8.3 (без com подключения)

Распечатать

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

По сравнению с прошлым примером количество кода 1С уменьшится, поскольку подключение через COM-объект и формирование запросов SQL на стороне 1С нам больше не потребуется.

Для начала создадим тестовую таблицу с помощью скрипта в панели управления сервером SQL:

USE [test] 
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[tovar](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [nvarchar](max) NOT NULL,
[price] [numeric](18, 2) NULL,
CONSTRAINT [PK_tovar] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

Скрипт создания процедуры insert_tovar:

SET ANSI_NULLS ON 
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE insert_tovar

@name nvarchar(max),
@price numeric(18, 2)

AS
BEGIN

SET NOCOUNT ON;

INSERT INTO test.dbo.tovar
([name] ,[price])
VALUES (@name, @price)

END
GO

Скрипт создания процедуры update_tovar:

SET ANSI_NULLS ON 
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE update_tovar

@id int,
@name nvarchar(max),
@price numeric(18, 2)

AS
BEGIN

SET NOCOUNT ON;

UPDATE test.dbo.tovar
SET [name] = @name
,[price] = @price
WHERE

END
GO

Теперь переходим в 1С и добавляем внешний источник данных. Подключаем таблицу SQL:

Далее, для таблицы dbo_tovar создаем формы списка и объекта. На форму списка вешаем команду «ДобавитьТовар» и обработку оповещения:

&НаКлиенте 
Процедура ДобавитьТовар(Команда)

ОткрытьФорму("ВнешнийИсточникДанных.test.Таблица.dbo_tovar.ФормаОбъекта", , ЭтаФорма);

КонецПроцедуры


&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

Если ИмяСобытия = "ОбновитьВнешнийИсточникДанных_dbo_tovar" Тогда
Элементы.Список.Обновить();
КонецЕсли;

КонецПроцедуры

На форме объекта на командной панели размещаем команду «ЗаписатьТовар», для кнопки выставляем свойство «Кнопка по умолчанию»:

&НаКлиенте 
Процедура ЗаписатьТовар(Команда)

ЗаписатьТоварНаСервере();
Оповестить("ОбновитьВнешнийИсточникДанных_dbo_tovar");

КонецПроцедуры


&НаСервере
Процедура ЗаписатьТоварНаСервере()

Если Объект.Ссылка.Пустая() Тогда
ВнешниеИсточникиДанных.test.dbo_insert_tovar(Объект.name, Объект.price);
Иначе
ВнешниеИсточникиДанных.test.dbo_update_tovar(Объект.id, Объект.name, Объект.price);
КонецЕсли;

КонецПроцедуры

Для свойства реквизита «Объект» снимаем свойство «Сохраняемые данные», для поля «id» устанавливаем свойство «Только просмотр».

Готово, запускаем, тестируем. Для тестов использовался сервер MSSQL Server 2008 R2.

Разместил: E_Migachev Версии: | 8.3 | Дата: 24.07.2014 Прочитано: 25249

Распечатать

Возможно, вас также заинтересует

Похожие FAQ

Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить — сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Google maps : вывод точек на карту и режим панорамы 8
В отличие от яндекс карт в GMaps можно использовать панорамы — за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Microsoft SQL Server Native Client Добавление значения в столбец «datetime» привело к переполнению 2
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец «datetime» привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени Посмотреть все результаты поиска похожих

Еще в этой же категории

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

Ключевые слова и Изображения
Слова упорядочены по частоте использования в тексте
Изображения

Запись во внешний источник данных из 1С 8.3 (без com подключения)Запись во внешний источник данных из 1С 8.3 (без com подключения)Запись во внешний источник данных из 1С 8.3 (без com подключения)Запись во внешний источник данных из 1С 8.3 (без com подключения)Запись во внешний источник данных из 1С 8.3 (без com подключения)Запись во внешний источник данных из 1С 8.3 (без com подключения)Запись во внешний источник данных из 1С 8.3 (без com подключения)

Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.

[ Главная | FAQ: Все | 7.х | 8.х | 8.2 УП | 8.3 | Видео | Files | Forum | Freelance | Поиск | Реклама на HelpF.pro | Обратная связь ]
HelpF.pro [old Help1C.com] 2009-2023 Все материалы, размещенные на сайте, добавлены посетителями сайта или взяты из свободных источников. Подробнее.

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

В данной статье будет определено понятие внешних источников данных в 1С, а также рассмотрены составляющие внешних источников данных. Дочитав материал, Вы узнаете, как правильно строится их табличная часть.
Когда эксплуатируется система, поставленная на платформе 1С, иногда появляются задачи по получению данных из внешних баз (например, реляционные и аналитические). Чтобы с этим не возникало проблем, существует инструмент «ВнешниеИсточникиДанных». Об этом объекте и пойдёт речь в данной статье.
Итак, внешние источники данных – это некие объекты внутри конфигураций, благодаря которым осуществляется работа с внешними базами данных, которые существуют отдельно от платформы 1С (например, таблицы SQL, Excel, файлы с форматами txt, dbf, csv, Access и прочие). С помощью этих объектов, внешних источников данных, можно заимствовать информацию у баз данных извне и применять её в своих программных решениях. При этом отображаться и восприниматься информация из внешних баз будет таким образом, будто находится в самой системе 1С.
Задачи, которые можно реализовывать при помощи внешних источников данных в 1С 8.3:
1. Хранить в 1С различные ссылки на таблицы и поля, которые находятся на ином ресурсе; 2. исполнять-перенимать командование и функционал от стороннего объекта, который был подключен; 3. составлять отчёты, согласно внешним данным, но в 1С 8.3; 4. получать и выгружать данные из 1С 8.3 в сторонние источники.
Для операционных систем Windows и Linux осуществляется работа источника извне с данными из ODBC-источника (программный интерфейс, который является прикладным и даёт доступ к базам с данными). Наиболее обширные возможности имеет язык запросов при работе с такими СУБД (системы управления базами данных) как Microsoft SQL Server, PostgreSQL и IBM DB2.
Стоит учесть ещё одну особенность внешних источников данных – это возможность подключения многомерных источников данных к прикладным решениям. Возможны следующие многомерные источники данных: Microsoft Analysis Services, IBM InfoSphere Warehouse и Oracle Essbase.
Замечание: ODBC-драйвер ограничивает возможности. Так, например, когда происходит работа с какими-то СУБД, то в запросах могут работать не все конструкции.

2. Таблицы внешнего источника данных в 1С

Составляющими внешнего источника данных в 1С являются таблицы.

Рис. 1 Составляющие внешнего источника данных 1С 8.3
Все таблицы во внешнем источнике данных можно описать двумя способами: 1. с помощью конструктора; 2. вручную. Создание таблиц в конструкторе показано на скриншоте ниже:

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

Рис. 3 Перечень таблиц внешнего источника данных 1С
Любую таблицу можно рассмотреть в виде полноценного самостоятельного объекта внутри конфигурации. Все таблицы содержат поля, для каждого поля можно определить форму, команду, макет.

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

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

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

Рис. 7 Данные таблицы внешнего источника данных 1С
Элементы в таблицах несут ещё одну важную функцию – на эти элементы можно делать ссылку, как на данные типа объект. Например, на элементы в таблицах можно сослаться как на справочник или документ.

Рис. 8 Элемент таблиц внешних источников данных 1С

3. Связь с внешним источником данных в 1С

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

Рис. 9 Управление внешними источниками данных в 1С
2. далее нужно ещё раз внести название соединения, для чего кликаем на меню «Администрирование», затем на «Изменить общие параметры»; копируем строку, которая указывает на соединение и вписываем в поле внутри формы. Далее кликаем «Подключиться»;
3. затем появится «галочка» зелёного цвета, которая означает, что всё выполнено корректно; данные действия обязательны при каждом новом подключении;

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

Рис. 11 Работа с внешними источниками данных в 1С
Подключение успешно завершено.

4. Строки подключения к внешним источникам данных

Также возможно подключения к внешним информационным базам при помощи строк. Чтобы осуществить подключение к внешним источникам данных, необходима формировка строки, в ней содержатся параметры для подключения, которые подходят драйверу. Также в строке может содержаться указка на параметры первоисточника с данными.
Далее будут приведены примеры различных строк подключения к базам:
· строка, чтобы получить соединение, указав пароль и логин
Рис. 12 Строка подключения к базам
· строка подключения к базе в случае, когда указание логина и пароля – это дополнение
Рис. 13 Строка подключения в 1С
· строка подключения в 1С для доступа к источнику извне через его название
Рис. 14 Пример строки подключения в 1С
В данной статье было рассмотрено понятие внешних источников данных. Также была представлена инструкция с некоторыми примерами по работе с таблицами из внешних источников данных. Можем сделать вывод, что данный объект является довольно полезным, ведь благодаря этим источникам могут объединяться внутренние и внешние данные, причём внешним не обязательно быть связанным с 1С. Также была приведена инструкция по автоматическому подключению к внешнему источнику данных.
Специалист компании «Кодерлайн» Айдар Фархутдинов

Вас могут заинтересовать следующие статьи:

94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) —> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) —> Как сделать в 1С [1] => 1С: Конвертация данных [2] => Конвертация данных [3] => Обмен между базами [4] => Закрытие месяца [5] => Оценка задач [6] => Отчеты в 1С [7] => Моделирование [8] => HTTP [9] => Управление проектами [10] => БУ [11] => com-объекты [12] => 1С: WMS Управление складом [13] => РСБУ [14] => 1С: Сценарное тестирование [15] => Запросы 1С [16] => LINUX [17] => WEB [18] => Оптимизация [19] => 1С:Зарплата и Управление Персоналом [20] => Excel [21] => 1С: ERP [22] => ADO [23] => 1С:Управление производственным предприятием [24] => Внедрение [25] => Продажи [26] => Отчетность [27] => 1С: Розница [28] => 1С: CRM [29] => 1С:Бухгалтерия [30] => 1С:Комплексная автоматизация [31] => Производство [32] => Интеграция 1С [33] => Налоги [34] => Отпуск [35] => MS SQL Server [36] => Расширение конфигурации [37] => МСФО [38] => СКД [39] => Word [40] => WEB-сервисы 1С [41] => Внедрение ERP [42] => Перенос данных [43] => Торговое оборудование [44] => Лизинг [45] => 1С:Управление нашей фирмой [46] => Администрирование 1С [47] => 1С: Колледж [48] => Правила обмена [49] => 1С: Платформа ) —>

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *