1с внешние источники данных кубы что это
В версии платформы 8.3.5.1068 (и позднее) появилась возможность добавления, изменения и удаления данных во внешних источниках программными средствами 1С. Примеры данной возможности представлены в данной статье.
Внешние источники данных (добавление, изменение, удаление) на примерах
В версии платформы 8.3.5.1068 (и позднее) появилась возможность добавления, изменения и удаления данных во внешних источниках программными средствами 1С. Примеры данной возможности представлены в данной статье.
Для того, чтобы запись во внешние источники стала возможной, компания 1С добавила новые свойства таблицам данных и полям внешних источников:
- Для всей таблицы - свойство ТолькоЧтение. ТолькоЧтение = Истина означает, что изменение данных в этой таблице невозможно;
- Для отдельных полей таблицы - свойства ТолькоЧтение, РазрешитьNull и ЗначениеЗаполнения:
- ТолькоЧтение = Истина означает, что изменение данных в этом поле невозможно;
- РазрешитьNull = Истина означает, что в данное поле может быть записано значение NULL;
- ЗначениеЗаполнения содержит стандартное значение этого поля (если такое существует).
Эти свойства вы (при описании таблиц вручную) или платформа (при создании таблиц конструктором) можете использовать следующим образом.
- ТолькоЧтение = Истина устанавливать, например, для представлений (view), таблиц, получаемых на основе выражения (результат функции) и подобных. Данные в таких таблицах изменять нельзя;
- ТолькоЧтение = Истина указывать для полей, устанавливаемых автоматически (AUTOINCREMENT), вычисляемых полей и подобных. Данные в таких полях изменять нельзя;
- РазрешитьNull = Истина устанавливать для всех полей, кроме ключевых, и тех, которые во внешнем источнике описаны как NOT NULL;
- ЗначениеЗаполнения поля устанавливать в том случае, когда во внешнем источнике указано стандартное значение этого поля (значение DEFAULT).
Добавлять, изменять и удалять данные во внешних источниках можно с помощью встроенного языка или интерактивно. Во встроенном языке для этого используются следующие методы менеджера таблицы:
- СоздатьНаборЗаписей() - для необъектных таблиц;
- Новый метод СоздатьОбъект() - для объектных таблиц.
Соответственно у объектов ВнешнийИсточникДанныхТаблицаНаборЗаписей и ВнешнийИсточникДанныхТаблицаОбъектпоявились новые методы Записать() и Удалить().
Добавление данных
При добавлении данных во внешний источник вы создаёте объект (или набор записей), устанавливаете значения полей и записываете. При этом есть некоторые особенности, о которых полезно знать.
Например, при попытке установить значение поля, у которого ТолькоЧтение = Истина, будет выдана ошибка. А при непосредственной записи в базу данных в выражении INSERT такие поля будут пропущены. В остальные поля записываются те значения, которые вы им присвоили. Поэтому значения Null и значения по умолчанию нужно присваивать полям в явном виде.
Далее представлен небольшой пример. В нём данные добавляются в объектную таблицу shop_feature, у которой существует два поля:
- id (РазрешитьNull = Истина);
- name (РазрешитьNull = Истина);
Выполнение оператора Записать() приведёт к тому, что сначала будет вызван обработчик события ПередЗаписью, затем выполнена физическая запись в таблицу внешнего источника (INSERT), затем будет вызван обработчик события ПриЗаписи.
С ключевым полем таблицы внешнего источника вы можете поступать следующим образом. Если ключевое поле доступно для изменения, то тогда вы «вручную» задаёте его значение перед записью. Если изменение ключевого поля запрещено, то платформа самостоятельно получит ключ в INSERT или непосредственно после. Вы можете вмешаться в этот процесс с помощью метода УстановитьСсылкуНового() до физической записи (в обработчике события ПередЗаписью) или непосредственно после физической записи (в обработчике события ПриЗаписи).
Изменение данных
При изменении данных обновляются значения всех полей таблицы, у которых ТолькоЧтение = Ложь.
Если же необходимо записать только некоторые поля, вы можете указать их перечень прямо из встроенного языка с помощью методов УстановитьЗаписываемыеПоля() и ПолучитьЗаписываемыеПоля().
Удаление данных
При удалении данных выполняется непосредственное удаление строки из таблицы базы данных. При этом поиск ссылок на удаляемый объект не выполняется. Если такая функциональность нужна, вы можете запрограммировать её самостоятельно в обработчике события ПередУдалением().
Транзакции
Чтение данных внешних источников, как и ранее, выполняется вне транзакции, а при записи платформа открывает неявную транзакцию. При этом и чтение, и запись вы можете выполнять и в явных транзакциях с помощью методов объектаВнешнийИсточникДанныхМенеджер:
Блокировки
Для управления блокировками рекомендуется использовать свойство внешнего источникаРежимУправленияБлокировкойДанных:
а также свойство таблицы внешнего источника УровеньИзоляцииТранзакций:
Кроме этого, можно самостоятельно задать уровень блокировок в методе НачатьТранзакцию().
Дополнил типовую статью примерами) Будет больше времени - добавлю больше примеров.
В статье рассмотрена технология OLAP в части использовании ее как внешний источник данных для платформы «1С:Предприятие» редакции 8.3.5. Прочитав статью вы узнаете:
- Что такое технология OLAP и какие средства есть в платформе для работе с ней?
- Как опубликовать куб OLAP SQL Server с помощью Internet Information Service (IIS) и обращаться к нему из Excel?
- Как обратиться к кубу OLAP из системы «1С:Предприятие»?
Применимость
В статье используется Microsoft SQL Server 2008 R2, работающий под управлением Windows Server 2008 R2 и платформа «1С:Предприятие» редакции 8.3.5. Материал актуален и для текущих релизов платформы.
Работа с OLAP-системой Microsoft SQL Server Analysis Services при помощи внешних источников данных в «1С:Предприятии 8.3.5»
В предыдущей статье ( Запись во внешние источники данных в «1С:Предприятие 8» ) мы познакомились с функционалом записи во внешние источники данных при помощи платформы 8.3.5.823.
Сегодня мы остановимся на еще одной очень интересной возможности работы с внешними источниками данных – взаимодействие с OLAP.
OLAP (от англ. online analytical processing – аналитическая обработка в реальном времени) – технология обработки данных, заключающаяся в подготовке суммарной (агрегированной) информации на основе больших массивов данных, структурированных по многомерному принципу.
Данные в OLAP-системах формируются на основании данных OLTP-систем. OLAP-системы предназначены для быстрой выборки сложных многомерных данных, которые в OLTP-системах из-за сложной табличной структуры базы данных будут выполняться медленно.
Для обеспечения скорости получения данных OLAP-системы используют специальную структуру хранения данных, называемую кубом.
Куб (cube) можно представить в виде пространства, оси которого представляют собой измерения (dimensions), а в узлах этого пространства располагаются некоторые меры (measures). Каждое измерение куба характеризуется определенными членами (members) измерения.
Можно провести аналогию между OLAP-кубом и регистром накопления. Измерение регистра схоже с измерением куба, значения измерения регистра соответствует членам измерения куба, а ресурс регистра представляет меру куба.
Рассмотрим, как устроен куб OLAP-системы в «1С:Предприятии». Куб состоит из таблиц измерений, измерений и ресурсов.
Таблицы измерений описывают набор членов измерений куба. Измерения объекта метаданных соответствуют измерениям куба в OLAP-системе.
Меры куба в платформе реализованы ресурсами, которые могут принимать значения типа Число и Строка.
Рассмотрим пример. Подключимся из информационной базы «1С:Предприятие» к Microsoft Analysis Services. Все действия выполняются на СУБД Microsoft SQL Server 2008 R2 под управлением операционной системы Windows Server 2008 R2.
Для начала убедимся, что служба Microsoft SQL Server Analysis Services запущена. Проверяем это в Диспетчере конфигурации SQL Server:
Присоединим загруженные базы формата MDF при помощи SQL Management Studio:
Далее подключившись к серверу Analysis Services мы восстанавливаем базу данных из файла Adventure Works DW 2008R2.abf:
После окончания загрузки проверяем работоспособность куба Adventure Works. Щелкаем по нему правой кнопкой мыши и выбираем Обзор.
В открывшемся конструкторе мышью перетаскиваем поля в строки и столбцы сводной таблицы. Данные выбираются из базы, следовательно, загруженные базы функционируют.
После установки служба веб-сервера может останавливаться с ошибкой:
Каталог, указанный для временных файлов конфигурации пула приложений, или отсутствует, или недоступен для службы активации Windows. Укажите существующий каталог и убедитесь, что флаги доступа установлены должным образом. Поле данных содержит номер ошибки.
После создания папки вручную и установки необходимых прав служба веб-сервера запускается стабильно.
Дальнейшие настройки выполняем при помощи Диспетчера служб IIS. Выбираем пункт Ограничения ISAPI и CGI.
Добавляем новый пул приложений, которому присваиваем имя MSOLAP:
В диспетчере служб IIS в дереве разворачиваем пункт Сайты, в строке Default Web Site при помощи правой кнопки мыши добавляем приложение с именем MSOLAP:
Для появившегося приложения заходим в пункт Сопоставление обработчиков и выбираем Добавить сопоставление сценария:
Далее необходимо настроить аутентификацию. В разделе Проверка подлинности включаем настройку Анонимная проверка подлинности, все остальные способы аутентификации отключаем.
Попробуем подключиться к службам аналитики SQL Server из Excel:
Подключение происходит успешно, выбираем куб Adventure Works для подключения:
При нажатии кнопки Далее мастер предложит сохранить файл подключения. Соглашаемся, этот файл нам еще понадобится для соединения с кубами из «1С:Предприятия».
А в Excel можно построить сводную таблицу по данным выбранного куба.
Если открыть сохраненный файл подключения в Блокноте, то можно увидеть атрибут ConnectionString:
В конфигураторе добавляем новый внешний источник данных, в него добавляем новый куб.
Заполняем строку подключения на основании указанного выше фрагмента файла подключения:
После успешного подключения будет открыт список кубов с таблицами измерений, полями и ресурсами. Отмечаем необходимые объекты:
Полученный в конфигурации куб можно использовать как источник данных для запроса, в системе компоновки данных, как источник для динамических списков.
Напишем отчет на СКД, базирующийся на запросе к загруженному кубу:
ВЫБРАТЬ
Adventure_Works.Product_Category_Category,
Adventure_Works.Customer_Customer_Customer,
Adventure_Works.Internet_Sales_Amount
ИЗ
ВнешнийИсточникДанных.ВнешнийИсточникДанных1.Куб.Adventure_Works КАК Adventure_WorksОпределим один ресурс – Internet_Sales_Amount.
При выполнении отчета в пользовательском режиме получим следующий результат:
Сравним полученные итоги с аналогичным, сформированным в SQL Server Analysis Services:
Также формируем сводную таблицу в Excel:
Как видим, результаты получились одинаковыми.
PDF-версия статьи для участников группы ВКонтакте
Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.
Статья в PDF-формате
Если Вы уже участник группы – нужно просто повторно авторизоваться в ВКонтакте, чтобы скрипт Вас узнал. В случае проблем решение стандартное: очистить кеш браузера или подписаться через другой браузер.
Комментарии / обсуждение (20):
Сделал все по инструкции, Эксель пишет: “Не удается получить список баз.” Подключился “Microsoft SQL Server Management Studio” Если подключаюсь указанием сервер баз данных, то все нормально показывает, а через веб базы не показывает и пишет, что прав у меня нет. Это мне где права добавить то?
В платформе начиная с версии 8.3.5 реализована возможность записи данных в таблицы внешних источников данных. В статье рассмотрена данная функциональность, расширяющая существующие возможности по интеграции конфигурации со сторонними системами.
Применимость
В статье рассматривается платформа 1C 8.3.5. Материал актуален и для текущих релизов платформы.
Запись во внешние источники данных в «1С:Предприятие 8»
В платформе 8.2.14 в дерево метаданных был добавлен новый объект – внешние источники данных. Назначение этого механизма – получение данных из внешних баз по отношению к 1С.
С выходами новых релизов платформы внешние источники данных развивались, например, стало возможным помещение во временные таблицы, выполнение соединений с обычными таблицами.
В статье мы рассмотрим, какие инструменты есть у разработчика для осуществления записи во внешние источники данных.
Все действия выполнялись на СУБД Microsoft SQL Server 2008 R2.
В платформе 8.3.4 была реализована возможность использования функций, описанных во внешних источниках данных.
Эта возможность позволяет запускать хранимые процедуры на стороне SQL Server, а при их помощи обращаться к данным внешних источников, в том числе и на запись.
Разберем пример. Создадим при помощи SQL Management Studio новую базу данных с именем kursy_test. Все дальнейшие эксперименты будут выполняться на ней.
В этой базе создадим таблицу nomenklatura, для этого напишем скрипт следующего содержания:
USE [ kursy_test ]
GO
CREATE TABLE [ dbo ] . [ nomenklatura ](
[ id ] [ int ] NOT NULL ,
[ description ] [ nvarchar ]( 150 ) NOT NULL ,
[ price ] [ numeric ]( 15 , 2 ) NULL ,
CONSTRAINT [ PK_id ] PRIMARY KEY ([ id ])
)
GOВ результате выполнения будет создана таблица следующей структуры:
Теперь нам нужно создать две хранимые процедуры, с помощью которых и будет выполняться модификация данных.
Первую процедуру назовем insert_nomenklatura. Она будет предназначена для добавления новой строки в таблицу. Скрипт для ее создания будет выглядеть так:
USE [ kursy_test ]
GO
CREATE PROCEDURE insert_nomenklatura
@id int ,
@description nvarchar ( 150 ),
@price numeric ( 15 , 2 )
AS
BEGIN
INSERT INTO [ kursy_test ] .dbo. [ nomenklatura ] ([ id ], [ description ] ,[ price ])
VALUES ( @id , @description , @price )
END
GOВторая процедура с именем update_nomenklatura будет выполнять обновление уже существующей в таблице записи. Чтобы ее создать, был запущен такой скрипт:
USE [ kursy_test ]
GO
CREATE PROCEDURE update_nomenklatura
@id int ,
@description nvarchar ( 150 ),
@price numeric ( 15 , 2 )
AS
BEGIN
UPDATE [ kursy_test ] .dbo. [ nomenklatura ]
SET [ description ]= @description ,[ price ]= @price
WHERE [ id ]= @id
END
GOВ Обозревателе объектов созданная таблица и две хранимые процедуры выглядят следующим образом:
Все подготовительные действия на стороне Microsoft SQL Server мы выполнили, теперь переходим в конфигуратор “1С:Предприятие 8”.
Создаем новый внешний источник данных с именем Nomenklatura. При создании новой таблицы в этом источнике данных указываем следующие параметры подключения к источнику данных:
Строку соединения укажем следующую:
При наличии пароля у пользователя sa его необходимо указать в параметре Password строки соединения.
Если все параметры подключения указаны корректно, при нажатии на кнопку ОК, откроется окно, содержащее таблицы, доступные в источнике данных:
Для увеличения нажмите на изображение.
Отмечаем галочками интересующие нас поля таблицы. При нажатии кнопки Готово во внешнем источнике данных Nomenklatura будет создана таблица dbo_nomenklatura:
Теперь переключаемся на закладку “Функции” нашего источника данных.
При помощи аналогичного мастера производим добавление двух хранимых процедур:
Получаем следующий внешний вид закладки “Функции”:
Теперь запрограммируем пользовательский интерфейс для работы с внешним источником данных.
В форме списка на командной панели расположим кнопку “Добавить” со следующим обработчиком:
&НаКлиенте
Процедура Добавить ()
Оповещение = Новый ОписаниеОповещения ( “ОткрытьТаблицуЗавершение” , ЭтотОбъект );
ОткрытьФорму (
“ВнешнийИсточникДанных.Nomenklatura.Таблица.dbo_nomenklatura.ФормаОбъекта” , , , , , ,
Оповещение , РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс );
КонецПроцедурыВ форме объекта разместим кнопку “Сохранить”, при нажатии на которую выполняется следующий код:
В режиме предприятия форма списка выглядит следующим образом:
Форма объекта представлена ниже:
Для увеличения нажмите на изображение.
После нажатия на кнопку “Сохранить” вызывается хранимая процедура на SQL Server, в таблицу базы данных будет добавлена новая запись.
Таким образом, при помощи хранимых процедур мы реализовали запись во внешние источники данных.
В платформе 8.3.5 появилась новая возможность – запись во внешние источники данных напрямую, минуя разобранный выше механизм хранимых процедур.
Данные можно редактировать как программно, так и интерактивно. И для нашего примера прибегать к конфигурированию не придется.
В командных панелях и в меню “Еще” можно увидеть стандартные кнопки, такие как “Создать”, “Скопировать”, “Изменить” и т.д.
Для увеличения нажмите на изображение.
А в форме объекта появились кнопки “Записать” и “Записать и закрыть”:
Как видно, теперь работа с внешними источниками похожа на работу со справочниками, документами и т.д.
Рассмотрим, какие изменения были произведены на уровне метаданных, чтобы сделать возможным запись во внешние источники данных.
У таблицы данных добавлено новое свойство ТолькоЧтение (тип – булево).
Если это свойство установлено в Истина, запись данных в эту таблицу средствами платформы невозможна.
Поле таблицы данных обладает теперь свойствами:
- ТолькоЧтение (тип – булево) – возможно ли изменение данных в этом поле;
- РазрешитьNull (тип – булево) – возможно ли в данном поле сохранять значение NULL.
Свойство Только чтение следует устанавливать в значение Истина для полей базы данных с автоматическим изменением, автоматически формируемые ключевые поля, вычисляемых полей и т. д.
Добавлять, изменять и удалять данные во внешних источниках можно с помощью встроенного языка.
Для этого у объектов ВнешнийИсточникДанныхТаблицаНаборЗаписей и ВнешнийИсточникДанныхТаблицаОбъект были реализованы новые методы Записать() и Удалить().
Рассмотрим пример программного добавления новой записи для внешнего источника данных, рассмотренного выше.
В модуле объекта таблицы внешнего источника данных теперь можно задать обработчики событий, возникающих при записи, такие как ПередЗаписью(), ПриЗаписи() и т. д.:
В данной статье были рассмотрены два варианта записи данных во внешние источники данных – при помощи хранимых процедур и при помощи новых механизмов платформы 8.3.5.
Таким образом, в платформе теперь реализованы механизмы для полноценной интеграции с внешними приложениями.
В редакции 8.3.6 описываемый выше функционал был расширен при помощи новых специальных методов ПолучитьИзменяемыеПоля() и УстановитьИзменяемыеПоля(). С помощью них предоставлена возможность выполнять операцию записи в те поля таблицы ВИД, которые помечены в конфигураторе как доступные только для чтения. Благодаря этому стало возможным реализовать такой сценарий, при которой запись в отдельные поля таблицы ВИД возможна только в тех случаях, когда это необходимо в соответствии с бизнес-логикой приложения.
В редакции 8.3.7 был доработан механизм, определяющий какие конкретно поля таблиц ВИД могут содержать значения NULL. До этого момента все таблиц ВИД могли принимать это значения. Такое изменение связано с увеличением скорости сортировки в динамических списках по этим полям.
В редакции 8.3.8, наконец, стало возможным определение того факта, что внешний источник данных находится в состоянии транзакции. Эта функциональность представлена новым методом ВнешнийИсточникДанныхМенеджер.ТранзакцияАктивна()
В заключении отметим, что для внешних источников данных, как было показано выше, описываются таблицы данных из классической реляционной модели. Платформа же использует иную парадигму работу с данными, предлагая разработчику некоторый набор типов прикладных объектов (справочники, документы, регистры и т.д.). Именно поэтому система при работе с таблицами внешних источников данных не поддерживает большую часть функциональности, которая присуща ее “родным” объектам. Поэтому рекомендуется воздержаться от разработки какой-то бизнес-логики, с учетом использования таблиц ВИД, если это не связано с задачами интеграции с уже существующими системами. Или, говоря по простому, нужно стараться избегать хранить данные, которые активно используются в вашем приложении, в какой-то другой таблице внешней системы, если они этой системой не используются.
В следующей статье мы рассмотрим логическое продолжение использования технологии внешних источников данных в системе «1С:Предприятие».
PDF-версия статьи для участников группы ВКонтакте
Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.
Статья в PDF-формате
Если Вы уже участник группы – нужно просто повторно авторизоваться в ВКонтакте, чтобы скрипт Вас узнал. В случае проблем решение стандартное: очистить кеш браузера или подписаться через другой браузер.
Комментарии / обсуждение (185):
В листинге процедуры Добавить упоминается метод оповещения ОткрытьТаблицуЗавершение.
Но его код не приведен. Можете подсказать, какая там логика должна быть описана?Добрый день!
Указанный метод должен содержать действия, которые будут выполнены после того, как пользователь закроет открывшуюся форму объекта dbo_nomenklatura. Нам не требуются никакие действия после закрытия этой формы, поэтому обработчик может быть пустой.OLAP – это технология обработки данных, заключающаяся в подготовке агрегированной информации на основе больших массивов данных, структурированных по многомерному принципу. Данные в аналитических базах данных (OLAP-системах) формируются на основании данных систем транзакционной обработки данных (также называемых OLTP-системами). Информация в OLAP-системах представлена в виде пространства
(называемого кубом), оси которого представляют собой измерения, а в узлах этого пространства располагаются некоторые меры (measures).
Каждое измерение куба характеризуется определенными членами (members) измерения.Ближайшим (но не точным!) аналогом хранения данных в OLAP-системах можно считать регистр накопления, где сам регистр подобен кубу, измерение типа СправочникСсылка подобно измерению куба, сам справочник содержит члены измерения, а ресурсы регистра подобны мерам куба.
В системе «1С:Предприятие» куб OLAP-системы представлен в виде модели, где:
● Куб представлен кубом в конфигурации;
● Измерения и члены измерений представлены в виде двух объектов:
● Измерения являются аналогом измерений,
● Таблицы измерений служат для описания коллекции членов измерений.
● Меры представлены ресурсами.Таким образом, в состав внешнего источника, который подключается к OLAP-системе, входят кубы, каждый куб состоит из таблиц измерений, собственно измерений и ресурсов. Таблицы измерений, в свою очередь, состоят из полей. Ресурсы кубов могут быть числовыми или строковыми.
Объект, описывающий внешний источник данных, может быть использован следующим образом:
● в качестве источника данных для запросов;
● в качестве источника данных в системе компоновки данных;
● в качестве источника для динамических списков;
● входить в состав общих реквизитов (см. здесь);
● записи таблиц измерений и кубов могут отображаться в управляемых формах «1С:Предприятия» (не поддерживается использование обычных форм для объектов внешних источников данных);
● таблицы измерений внешнего источника данных могут выступать в качестве типов реквизитов информационной базы;
● к кубам, таблицам измерений, полям таблицы измерений, измерениям и ресурсам внешних источников данных можно применять права доступа;
● доступ к кубам, таблицам измерений, полям таблицы измерений, измерениям и ресурсам возможен из встроенного языка;
● кубы и таблицы измерений внешнего источника данных могут входить в состав подсистем ;
● кубы, таблицы измерений и измерения внешнего источника данных может входить в состав функциональных опций ;
● для кубов внешнего источника данных можно создавать характеристики (см. здесь).2.2. Общая схема использования
Для того чтобы использовать информацию из внешних источников данных в системе на базе «1С:Предприятия», следует придерживаться следующей общей схемы:
● Изучить структуру внешнего источника данных и понять, какая информация (кубы, таблицы измерений, измерения и ресурсы) необходима для работы алгоритмов или отчетов в «1С:Предприятии».
● Создать объект Внешние источники данных в конфигураторе и для него создать требуемую структур. Это можно сделать с помощью специального помощника.
● Реализовать использование созданных объектов в прикладном решении.
● Выполнить настройку параметров подключения к внешнему источнику данных в той сети, где будет использоваться прикладное решение. Эти параметры могут отличаться от тех, которые использовались при загрузке структуры внешнего источника данных.
Примечание. Параметры доступа к внешнему источнику данных, которые были заданы в конфигураторе, не будут использованы системой в режиме 1С:Предприятие.2.3. Редактирование структуры внешнего источника данных
2.3.1. Общая информация
Для работы с таблицами внешних источников данных предназначена ветвь с именем соответствующего внешнего источника данных ветви Внешние источники данных – – Кубы дерева конфигурации. Определение внешнего источника данных состоит из нескольких шагов:
1. Определение собственно внешнего источника данных.
2. Определение кубов;
3. Определение таблиц измерений и полей для каждой таблицы измерений;
4. Определение измерений для куба;
5. Определение ресурсов для куба.
При этом в конфигурации может быть описано меньшее количество объектов, чем есть в реальной базе данных, но нельзя создать объект, которое отсутствует в реальной базе данных.
Создание структуры внешнего источника данных возможно как в ручном режиме, так и при загрузке этой структуры с помощью специального конструктора.2.3.2. Внешний источник данных
При создании внешнего источника данных следует указать его имя. Этот объект предназначен для идентификации группы кубов при обращении к данным, которые в нем содержатся. Источник данных состоит из одного или нескольких кубов, которые, в свою очередь, состоят из других объектов (таблицы измерений, измерения, ресурсы).
2.3.3. Куб внешнего источника данных
При создании нового куба открывается окно редактирования объекта .
Свойство таблицы Имя служит для идентификации куба внутри прикладного решения. Для того чтобы система знала, какой физический куб внешнего источника данных соответствует объект конфигурации, следует заполнить свойство Имя в источнике данных. Значение в этом свойстве в точности должно соответствовать имени куба внешнего источника данных. Не поддерживается размещение в одном кубе прикладного решения
данных из нескольких кубов внешнего источника данных.2.3.4. Таблица измерения
Таблица измерения описывает члены (members) измерения куба OLAP-системы. Свойство Имя в источнике данных содержит точное имя измерения или уровня иерархии в источнике данных. Свойство Поле представления содержит имя свойства измерения или уровня иерархии, которое система «1С:Предприятие» использует для формирования представления элемента таблицы измерения.
Если измерение является иерархическим, то для такого измерения может быть использована иерархическая таблица измерения. Иерархическая таблица измерения описывается с помощью следующих свойств:
● Иерархическая – содержит признак того, что таблица измерения описывает иерархию в источнике данных.
● Имя иерархии в источнике данных – указывает имя иерархии, к которой относится таблица измерения, описывающая данный уровень.
● Номер уровня – в том случае, если таблица описывает какой-либо уровень иерархии, данное свойство содержит номер этого уровня. Для собственно иерархической таблицы значение этого свойства равно 0, а свойство Имя иерархии в источнике данных совпадает со значением свойства Имя в источнике данных .
Свойства Признак незаполненного родителя и Значение незаполненного родителя позволяют указать системе «1С:Предприятие», каким образом идентифицировать значения самого верхнего уровня иерархии.2.3.5. Поле таблицы измерений
Поля таблицы измерений описывают, какие свойства измерений будут доступны из прикладного решения. Свойство поля Имя служит для идентификации свойства (поля таблицы измерения) в прикладном решении. Для указания соответствия между полем прикладного решения и атрибутом измерения служит свойство Имя в источнике данных. Значение в этом свойстве должно в точности соответствовать имени атрибута
измерения, указанного в свойстве Имя в источнике данных родительского объекта данного поля. Не поддерживается объединение в одном поле таблицы измерений данных из нескольких атрибутов одного или нескольких измерений внешнего источника данных.
Поле Тип позволяет указать тип данного поля. Для выбора доступен ограниченный набор типов. Типами поля могут быть:
● Число ;
● Строка ;
● Дата ;
● Булево ;
● У никальныйИдентификатор ;
● ДвоичныеДанные ;
● типы, которые определяются таблицами измерений внешних источников данных.
Если необходимо указать для поля составной тип, то в таком составном типе могут участвовать только типы Число, Строка, Дата, Булево .
При получении данных из внешних источников система автоматически преобразует эти данные к тому типу, который указан у соответствующего поля в прикладном решении.2.3.6. Измерения
Измерение внешнего источника данных описывает измерение куба OLAP-системы. Типом измерения может быть только ссылка на соответствующую таблицу измерения. Фактически, таблицы измерений и сами измерения, соотносятся один к одному: одно измерение описывается одной таблицей измерения.
Не поддерживается объединение в одном поле измерения данных из нескольких измерений внешнего источника данных2.3.7. Ресурсы
Ресурс внешнего источника данных описывает факт куба OLAP-системы. Ресурс куба может быть числовым или строковым. Именно значения ресурсов рассчитываются по значениям измерений куба. Свойство Имя в источнике данных должно совпадать с именем факта (ресурса) куба внешнего источника данных.
Не поддерживается объединение в одном ресурсе данных из нескольких фактов (ресурсов) внешнего источника данных.2.3.8. Загрузка структуры куба из внешнего источника данных
Существует возможность загрузки структуры куба из внешнего источника данных, который доступен для разработчика (например, копии реальной базы данных).
Для выполнения этой операции следует при создании куба указать пункт Выбрать из списка кубов внешнего источника данных в конструкторе кубов внешнего источника данных. Затем нужно указать строку соединения с внешней базой данных, воспользовавшись окном Подключение к источнику данных. При формировании строки подключения можно воспользоваться конструктором строки соединения с внешним источником данных. Для этого следует нажать кнопку «…» справа от поля Строка соединения.
После того как подключение к внешней базе успешно выполнено, будет открыт список с перечнем кубов, таблиц измерений, полей таблиц измерений и ресурсов подключенного источника данных. Затем следует выбрать требуемый куб, а также таблицы измерений, поля и ресурсы, которые будут использованы конфигуратором для создания структуры объектов, описывающих текущий источник данных.Рис. 5. Конструктор кубов внешнего источника данных
При получении структуры внешнего источника данных система выполняет следующие действия:
● Выполняет попытку определить поля, формирующие представления для таблиц измерений. Если система ошиблась, поле представления можно указать вручную.
● Преобразует типы колонок источника данных в типы «1С:Предприятия», которые будут использоваться для указания типов реквизитов объектов. Все типы из внешнего источника данных преобразуются к следующим типам «1С:Предприятия»: число, строка, дата, булево,
уникальный идентификатор, двоичные данные и типы, связанные с таблицами измерений источника данных.
● Выполняет попытку определить типы для полей таблиц измерений. В этом случае система пытается определить, какого типа данные хранятся в колонке таблицы измерения, и в том случае, если это можно считать ссылкой на данные другой таблицы измерения, указывает в колонке соответствующий тип. Если система неправильно выбрала тип колонки таблицы, его можно изменить вручную.
Затем следует отметить флажками объекты, которые будут перенесены в метаданные прикладного решения.
Если флажок Удалять из конфигурации объекты, отсутствующие во внешнем источнике данных установлен, то при завершении работы конструктора кубов из конфигурации будут удалены те объекты (кубы, таблицы измерений, поля таблицы измерений, измерения, ресурсы),
которые отсутствуют во внешнем источнике (например, во внешнем источнике куб или ресурс были удалены) данных.
После нажатия кнопки Готово произойдет загрузка структуры внешнего источника данных.2.4. Ограничения языка запросов при использовании аналитического внешнего источника данных
При работе с кубами и таблицами измерений в языке запросов, следует учитывать следующие ограничения:
Где,
– – указанное выражение не поддерживается при работе с соответствующей OLAP-системой;
Да – указанное выражение поддерживается при работе с соответствующей OLAP-системой.2.5. Строка соединения с OLAP-сервером
Строка соединения с OLAP-сервером имеет вид:
httр://:/?
Где:
● адрес хоста OLAP, порт, источник – адрес доступа к OLAP-системе, сформированный по правилам, описанным в документации конкретной OLAP-системе.
● параметры – параметры, используемые «1С:Предприятием» для доступа к данным OLAP-системы. Параметры задаются в виде Параметр=Значение . Параметры разделяются символом & . Используются следующие параметры:
● ProviderName – имя сервиса XMLA OLAP-источника;
● DataSourceName – имя OLAP-источника;
● Catalog – имя каталога, или базы данных, OLAP-источника.
Примеры строк соединения приведены ниже:Читая анонсы обновлений 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 придётся устанавливать либо на сервер, либо на все клиентские машины (в случае использования файловой версии), а выигрыша особого для простых задач он не даст.
д) Стандартные диалоги выбора Сервераи базы данных
е) На вопрос сохранения пароля рекомендую ответить "да", иначе так и не получится это дело запустить.ж) Выбираете таблицу и реквизиты. замечательная возможность - её можно сразу же переименовать так как вам нравится (и реквизиты тоже), при этом в свойствах у вас будут отображаться названия полей источника данных
з) А теперь запускаете, открываете конструктор запросов - выбираете тупо все записи из таблицы и ОПА - ошибка. Что делать? Если у вас управляемый интерфейс - заглянуть в меню сервис, а если обычный.
Я лично использовал вот такой код:
Может каких-то кусков и не нужно, но это работает. Выполнить код нужно ОДИН РАЗ. После чего будет нормально подключаться. мистика конечно - зачем это было нужно не понятно.2) Источники данных только для чтения
Да, чудес не бывает. но иногда так хочется.3) НЕЛЬЗЯ ИХ ИСПОЛЬЗОВАТЬ ВМЕСТЕ С ВНУТРЕННИМИ ИСТОЧНИКАМИ ДАННЫХ
Меня лично этот факт убил наповалКак же так. то, чего так ждали и уже представляли и облизывались, как мы сейчас в одном запросе соединим наши данные с 1С-кой свернём - сгруппируем, вставим в отчет, а не тут-то было.
Но, естественно, опытных людей это не останавливает. какая мысль пришла в голову? Правильно - временные таблицы:
4) НЕЛЬЗЯ ИХ ИСПОЛЬЗОВАТЬ ВМЕСТЕ С ВРЕМЕННЫМИ ТАБЛИЦАМИ
А вот это уже не похоже на технологические трудности, а очень смахивает на то что нам хотят "чтобы жизнь раем не казалась" сделать :).
5) Можно использовать только в соединениях СКД
Для тех кто не знает - это в СКД на вкладке "Связи наборов данных". Часто вы ими пользуетесь? Удобно? Видимо так нас хотят принудить к использованию их чаще. Вот только там есть колонка "Условие связи" и "Параметр связи". Ни в одной типовой конфигурации не нашел примера их использования, в документации и у Хрусталевой тоже как-то всё не прозрачно. Кто-нибудь сможет мне объяснить как работает "условие связи"? Если там написать РеквизитИсточника = РевизитПриемника это не работает. Конечно условие можно записать в поле "Выражение" - в большинстве случаев этого хватает. вот только как-то не очень просто получается.Итого ранее эта задача решалась где-то так:
Собственно строчек кода немного и они достаточно стандартны. при этом можно пользоваться полным функционалом конструктора запросов, а в СКД отдать только функцию КОМПОНОВКИ ДАННЫХ
Но на вид чуть, конечно, не так красиво. да и выгрузка в таблицу значений каждый раз - нужно код писать и проверять, не ошибся ли в названии реквизитов. а то, что нам дали в 1С, выглядит как-то половинчато. Я ещё не определился, чем удобнее пользоваться. Вы решайте, и пишите о ваших решениях, и что вас к ним подтолкнуло.
Читайте также: