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

Публикация № 92746

Разработка - Системная интеграция - Внешние источники данных

167
Читая анонсы обновлений 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={SQL Server};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 ID=sa;Pwd=;Data Source=;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=;Use 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.ActiveConnection   = Connection;
       
Command.CommandText = "Select * from PH where period >= '" + Строка(Формат(ДатаНач, "ДФ=ггггММдд")) + "' and period <= '" Строка(Формат(ДатаКон, "ДФ=ггггММдд")) + "'";
       
RecordSet = Command.Execute();
       
RecordSet.MoveFirst();
    Исключение
        Возврат
ТЗ;
    КонецПопытки;

    Пока
RecordSet.EOF = Ложь Цикл
       
Строка = ТЗ.Добавить();
       
Строка.НоменклатураКод = RecordSet.Fields(RecordSet.Fields.Item(1).Name).Value;
       
Строка.Qnty = RecordSet.Fields(RecordSet.Fields.Item(12).Name).Value;
       
Строка.Период = RecordSet.Fields(RecordSet.Fields.Item(13).Name).Value;
       
RecordSet.MoveNext();
    КонецЦикла;

   
Запрос = Новый Запрос();
   
ВрТаблица = Новый МенеджерВременныхТаблиц();
   
Запрос.МенеджерВременныхТаблиц = ВрТаблица;
   
Запрос.УстановитьПараметр("врТаблицаДанных"ТЗ);
   
Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
   
Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
   
Запрос.Текст = "ВЫБРАТЬ
                | врТаблицаДанных.НоменклатураКод,
                | врТаблицаДанных.Qnty,
                | врТаблицаДанных.Период
                |ПОМЕСТИТЬ ТаблицаДанных
                |ИЗ
                | &врТаблицаДанных КАК врТаблицаДанных
                |ГДЕ
                | врТаблицаДанных.Период >= &ДатаНач
                | И врТаблицаДанных.Период <= &ДатаКон"
;
   
Запрос.Выполнить();
   
ТЗ = Неопределено;

   
Запрос = Новый Запрос;
   
Запрос.МенеджерВременныхТаблиц = ВрТаблица;
   
Запрос.Текст = "Здесь запрос с участием верменной таблицы";

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

КонецФункции

ВнешнийНабор = ИнициализироватьИсточникДанных();
НаборДанных = Новый Структура();
НаборДанных.Вставить("ТаблицаSQL", ВнешнийНабор);
ТиповыеОтчеты.СформироватьТиповойОтчет(ЭтотОбъект, Результат, ДанныеРасшифровки, ВыводВФормуОтчета, НаборДанных);

Собственно строчек кода немного и они достаточно стандартны... при этом можно пользоваться полным функционалом конструктора запросов, а в СКД отдать только функцию КОМПОНОВКИ ДАННЫХ

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

167

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. tarasoff 03.10.11 14:03 Сейчас в теме
А как создать подключение, если сервер 1С стоит на Linux и необходимо соединиться с базой на MS SQL?
4. comol 4075 03.10.11 15:45 Сейчас в теме
(1) tarasoff, в linux вроде ест сервис unixodbc его нужно устанавливать и настраивать... далее уже через него подключаться.
2. K_A_O 523 03.10.11 14:51 Сейчас в теме
Старый вариант через ADO не требует изменения конфигурации, но вот интересна скорость получения данных.
По сравнению с перебором в RecordSet и по сравнению с загрузкой с помощью компоненты GameWithFire.
olga_kozyreva; sumaueev; +2 Ответить
3. cool.vlad4 45 03.10.11 14:55 Сейчас в теме
(2) Тоже интересно, но в любом случае -на nix серверах ADO и тем более на серверах GameWithFire, не взлетят...
5. comol 4075 03.10.11 15:46 Сейчас в теме
(3) cool.vlad4, А в том то и штука что ADO не используется и даже OLEDB не используется. 1C взяли ниже уровень... наверное как раз чтобы под *nix работало... но как работает unixodbc это уже другой вопрос....
7. cool.vlad4 45 03.10.11 15:58 Сейчас в теме
(5) Мы и не говорили, что используется, просто всех интересует сравнение скорости, но на самом деле лучше и проще, чтобы каждый для своей задачи проверил и сделал выбор.(ODBC там используется, если про то речь)
9. comol 4075 03.10.11 16:03 Сейчас в теме
(7) cool.vlad4, на самом деле лучше если бы 1С "до ума" это довели и не заставляли нас мучаться... был бы во франче написал бы им прямо в суппорт. Вообще не дело ни с временными таблицами ни с другими данными соединять нельзя... прямо такое чувство что не доделали то что хотели...
8. cool.vlad4 45 03.10.11 16:02 Сейчас в теме
(5) Вы просто подумали, что 3 я адресовал вам, нет он был адресован K_A_O, где я совственно и подчеркнул, чем Внешние источники лучше ADO и компоненты(и я не заметил, это в статье есть?)
6. comol 4075 03.10.11 15:48 Сейчас в теме
(2) K_A_O, С учетом того что для работы через ADO в запросе сперва нужно выгрузить данные в таблицу значений, а потом во временную таблицу работает конечно быстрее... вот только гибкости при этом такой нет...
10. tarasoff 03.10.11 16:33 Сейчас в теме
Я пробовал делать внешнее соединение, если сервер стоит на linux, но так и не довёл до конца (нет времени). Только путем проб и ошибок, можно понять как с этим работать, т.к. в 1с нет примеров как правильно написать строку подключения к Базе, использую unixodbc.
11. comol 4075 03.10.11 16:38 Сейчас в теме
(10) tarasoff, так там "..." кнопка есть в подключении. Я про неё писал вроде. Под Linux правда не знаю отработает это или нет...
12. tarasoff 03.10.11 16:41 Сейчас в теме
(11) Эта кнопка не работает
13. comol 4075 03.10.11 18:17 Сейчас в теме
(12) tarasoff, ну может вам вот этот сайт http://www.connectionstrings.com/ поможет?
22. Yan-1986@mail.ru 05.10.11 19:05 Сейчас в теме
48. Varies 28.05.12 07:30 Сейчас в теме
Пару месяцев назад уже столкнулся с внешними данными. Задача стояла в УТ3(11) получать данные из SQL по артикулу продукта. Сначала хотел быстренько кинуть внешние данные в запрос печати, да не тут то было... пришлось дописать клиентсерверные модули чтобы хоть как-то облегчить код в модулях документов.

Не так давно в дистрибутиве 1С появилась конфигурация Фабрика отчетов (Report factory) рекомендую всем стащить с неё модуль инициализации :)
lefthander; +1 Ответить
14. _iAlex 04.10.11 15:59 Сейчас в теме
а кто-то реально в жизни пробовал ?? Чтение данных это замечательно, жалко что нет операций вставки и удаления :(
15. comol 4075 04.10.11 16:31 Сейчас в теме
(14) _iAlex, Так я вроде в реальной жизни использую :)... с чтением там тоже проблемы... те что я описал...
16. cool.vlad4 45 05.10.11 13:49 Сейчас в теме
Да попробовал я эту вещь и тоже нифига не понял, а зачем оно надо? видимо разработчики позаботились о том, <sarcasm> что всех очень мучило - чтение прайс листов на сервере</sarcasm> Надеюсь они доведут идею до логического конца....
17. orefkov 1975 05.10.11 14:50 Сейчас в теме
Имхо лучше бы 1С тупо стырила из 1С++ код ODBCDataBase и ODBCRecordset.
Вот это бы было дело. А так - фигня какая-то получилась.
Это надо же придумать - описывать состав ВНЕШНЕГО источника данных в конфигурации.
А на лету подключится к произвольному источнику данных (для чего в свое время MS и создавала ODBC) - низзя.
ybatiaev; sheriff_ibiza; C4H9O2N; sound; K_A_O; fishca; +6 Ответить
18. fishca 1156 05.10.11 14:55 Сейчас в теме
(17) снегопат как поживает, не скоро увидим выход в свет?
19. orefkov 1975 05.10.11 14:58 Сейчас в теме
(18)
Вопросы по Снегопату пжста в его форум. Там на все готов ответить.
25. fishca 1156 06.10.11 09:25 Сейчас в теме
(19) на форуме не нашел ответа на вопрос по срокам выхода, к сожалению. :(
26. orefkov 1975 06.10.11 09:27 Сейчас в теме
(25)
Ну так спроси, на то и форум. (Сорри за оффтоп).
27. fishca 1156 06.10.11 09:30 Сейчас в теме
(26) За меня уже спросили, ответа в той теме нет от тебя ;) Зарегистрироваться не понял как. В гостевом форуме спросил :)
20. comol 4075 05.10.11 18:11 Сейчас в теме
(17) orefkov, Так "на лету" если нужно - подключайтесь через ADO без проблем... Как я понял весь смысл как раз в описании источника в конфигурации - чтобы можно было в конструкторе запросов использовать, и разименовывать как нравится... этакий аналог LinQ :)
21. cool.vlad4 45 05.10.11 18:15 Сейчас в теме
(20) на LINQ это совсем не похоже.
23. comol 4075 06.10.11 01:00 Сейчас в теме
(21) cool.vlad4, Ну ооочень отдалённо же что-то общее есть :)))
29. cool.vlad4 45 06.10.11 12:31 Сейчас в теме
(23) ничего, абсолютно ничего. Linq - это вывод типов (которого в 1С в принципе нет, да и не нужен по большому счету), это лямбда-выражения(грубо говоря анонимные функции), которых тоже нет, и самое главное в совокупности это работа практически с любой коллекцией (главное чтоб был интерфейс IQueryable), что позволяет работать как с AD, как с Ms SQL, как с xml и даже с Facebook, (потому как сама технология расширяема) и ей по барабану какой провайдер. Я честно слово перечитал статью еще раз и вообще не увидел ничего похожего на Linq. Даже на Linq to Sql.
PS Я помню кто-то сравнивал Linq и язык запросов от 1С, что якобы 1С придумала это раньше. Но ничего подобного. Linq коренным образом отличается и от языка запросов 1С, как по сути, так и по форме.
33. comol 4075 06.10.11 15:07 Сейчас в теме
(29) cool.vlad4, По сути Linq язык описания структуры данных для удобства работы с ней из программного кода. Внешние источники данных нужны для той же цели. Вот с этой точки зрения посмотрите... создавались они для одного и того же. Просто подходы у 1с и microsoft очень разные :)
24. orefkov 1975 06.10.11 01:11 Сейчас в теме
32. comol 4075 06.10.11 15:04 Сейчас в теме
(24) orefkov, Ну так и клиента 1С на линуксе есть... просто нужно код выполнять в клиентском модуле... на винде ADO везде есть...
28. Murom 06.10.11 12:13 Сейчас в теме
А мне так не хватало записи в базу MySQL. Думал доделают ух оторвусь... но видно не судьба :(
30. cool.vlad4 45 06.10.11 12:34 Сейчас в теме
(28) А что мешает сделать это сейчас, - обычными методами?
31. Murom 06.10.11 12:44 Сейчас в теме
(30) Да сейчас работет через ADODB.Connection и ADODB.Recordset, но приходиться писать большие объемы данных и все это не очень быстро. Хочется чтоб работало быстрее.
34. comol 4075 06.10.11 15:08 Сейчас в теме
(31) Murom, ИХМО если речь об обмене с сайтом наверное надо задуматься о локальной копии mysql и настройке репликации...
36. Murom 07.10.11 10:11 Сейчас в теме
(34) Хм.. спасибо как-то не думал про такой вариант. Надо попробовать на досуге.
35. sa1m0nn 22 07.10.11 08:43 Сейчас в теме
Ну вот. Испортил себе настроение чтением объективной оценки нового мёртворожденного механизма :(.
37. comol 4075 07.10.11 10:19 Сейчас в теме
(35) sa1m0nn, Вы то прочитав настроение себе испортили... :))
39. sound 529 19.11.11 14:51 Сейчас в теме
38. pomestnik 48 19.10.11 14:45 Сейчас в теме
Очень жалко что нельзя изменять внешние источники данных...
40. petrovaUL 18.01.12 08:16 Сейчас в теме
41. Владимир1717 03.02.12 12:24 Сейчас в теме
А какие параметры указывать в полях AppName и Рабочая станция при работе с конструктором строки подключения? При всех вариантах: имя базы и пустота во всех сочетаниях, ответ один: "Возможно, заполнены не все параметры или их значение не допустимо". Если без конструктора, а в поле строки указываю стандартное скулевое: DRIVER={SQL Server};SERVER=[имя сервера];UID=[логин];PWD=[пароль];APP=вот здесь забил [upp] и прокатило;DATABASE=[имя базы SQL].
42. Punker 16.02.12 09:48 Сейчас в теме
Спасибо автору за статью, давно искал документацию по тому что это за объект и как его готовить.
43. pavel_pss 16.02.12 14:19 Сейчас в теме
спасибо, помогло, полезная статья
44. Elgrego 120 16.02.12 15:49 Сейчас в теме
Насколько я понимаю плюсы в следующем:
1. Все запросы к внешним данным выполняются на сервере (в случае клиент-серверной архитектуры), что избавляет от настройки клиентских машин (у нас они измеряются сотнями);
2. Возможность использования конструктора для написания запроса к внешнему источнику данных;
3. Если есть различные источники данных с одинаковой структурой и несколько баз 1С (например в филиалах), то можно не меняя кода 1С просто подключить каждую базу 1С к своему источнику данных в тонком клиенте.
4. Возможность использования результата в СКД, что дает возможность построить отчет не написав не строчки кода, используя различные консоли, которые генерируют отчеты на СКД.
45. comol 4075 16.02.12 19:11 Сейчас в теме
(44) Elgrego,
1) а вот если у вас на 1-ом локальном компьютере стоит какой-нибудь InterBase или ещё что-то доисторическое... нужно драйвер его поставить на сервер... а сервер 64 разрядный... вообщем для кого "+" а для кого "-". "-" ИХМО будет чаще

2) Собственно конструктором можно и так пользоваться... ТЗ, её во временную таблицу и пожалуйста

3) А вот нет... у Вас же всё на сервере работает :). А если источники данных - файлы Access, а сервер работает под учеткой с ограниченными правами :).

4) не могу не согласится... да, теоретически возможно написать отчет не написав ни строчки кода... пожалуй единственный "+". Но учитывая (1) (2) и (3) едва ли чего-то мы им достигнем...
46. Tanya_o 12 20.03.12 17:55 Сейчас в теме
Статья хорошая. Может вы уже разобрались во всех новшествах работы с этим чудо объектом конфигурации.
У меня такой вопросик, извиняюсь что пишу тут но очень очень нужна помощь.
При переходе с 14 на 15 платформу выходит ощибка.

"ВнешнийИсточникДанных.OKTELL.Таблица.dbo_A_Stat_Connections_1x1.Поле.Id: Тип поля ключа таблицы с объектными данными может быть только одним из примитивных типов."

Что делать???
Если меняешь тип на строку. Нарушается работа отчетов связанных с этим внешним источником данных.
47. comol 4075 20.03.12 19:10 Сейчас в теме
Сделайте источником данных запрос, а в запросе как-нить CONVERT если у вас там тип приводится к примитивному... ну а если вы ключем хотите сделать не примитивный тип... ну.. ну вы понимаете :)
49. Banzai79 15.01.13 16:10 Сейчас в теме
а сейчас 2013 году можно не изменяя конфигурацию добавлять Внешний Источник Данных, с помощью внешней обработки?
50. comol 4075 15.01.13 16:35 Сейчас в теме
51. Ish_2 1038 24.01.13 14:58 Сейчас в теме
(0) Попробовал использовать базу Oracle как "ВнешнийИсточникДанных" полгода назад - получил такие эффекты , что со страхом откатился на на обычное ADO-соединение. А ты не пробовал ?
52. qwind 18.04.13 19:03 Сейчас в теме
Полезная статья с примером, очень кстати пришлась.
53. kembrik 3 19.09.13 18:25 Сейчас в теме
Уж не знаю где спрашивать, попытаю счастья тут :)
Хочу отойти от подключения по COM и использования UUID = COMОбъект.NewObject("УникальныйИдентификатор",Уник);
Сразу же захотелось попытаться подключить SQL базу 1С в качестве внешнего источников данных и "искать" в ней по GUID данные с целью сравнения на соответствие.

Ну и почти сразу же столкнулся с тем, что в SQL-табличке поле _IDRRef - бинарное. В строковой его транслировать его конечно можно, например CAST , потом "Переставить" в привычный для 1C порядок - но это все можно сделать на "далекой" SQL стороне, чего делать не хотелось бы. Отсюда вопрос, как можно заставить конструкцию


ТекГУИД=Строка(ТекСсылка.УникальныйИдентификатор());


	"ВЫБРАТЬ
		|	dbo__Reference57._IDRRef,
		|	dbo__Reference57._Code,
		|	dbo__Reference57._Description,
		|	dbo__Reference57.Представление
		|ИЗ
		|	ВнешнийИсточникДанных.Buh_utt.Таблица.dbo__Reference57 КАК dbo__Reference57
		|ГДЕ
		|	dbo__Reference57._IDRRef = &ТекГУИД";
//
Показать


работать ((
54. comol 4075 19.09.13 20:08 Сейчас в теме
(53) kembrik, Это баян уже. Вам к извращенцам на SQL.ru - там уже давно "рецепт придуман", к примеру такой:
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=895717&msg=13053424... Но мой вам совет "не вступать на эту извилистую дорожку". SQL имеет смысл когда вы переносите регулярно тонны данных, но тогда надо юзать MS IS и отбор GUID в GUID, в вашем случае лучше правда COM или специализированные средства (WS или .Net компоненты).
55. kembrik 3 19.09.13 23:37 Сейчас в теме
(54), comol, да понятно что есть проверенные механизмы - но казалось бы, удобно то как могло бы быть. БД - вот они, рядышком, на одном и том же SQL сервере, только руку протяни, да поменяй строку подключения в зависимости от префикса ИБ. "Нашим" хочется отчеты строить шустренько, собирая номенклатуру из одного места, а "цену" из другого, и тому подобное. Придется, видимо, добавлять собаке пятую ногу
56. comol 4075 20.09.13 09:11 Сейчас в теме
(55) kembrik, Если отчеты надо шустренько то вам прямой дорогой в сторону DWH. Оно как раз для этого и делается. Когда номенклатура в одном месте, а цена в другом это Best Practice обычно - MDM решения называется :). Далее OLAP. Ну или QlickView...
57. madonov 154 22.12.16 03:35 Сейчас в теме
Появилась необходимость получить информацию из внешнего источника данных (SQL 2008).

Источник добавлен, и вроде бы всё хорошо, НО!
Некоторые таблицы содержат в себе колонку с именем "Index" (int), при упоминании этой колонки в запросе он перестает работать, а без неё никак, она ключевая.

Платформа 8.2.19.90.


Есть у кого варианты как это можно исправить?
Прикрепленные файлы:
58. madonov 154 22.12.16 06:44 Сейчас в теме
Как я понял, INDEX это служебное имя, для корректного использования в SQL его заключают в квадратные скобки, но в 1С этот номер не проходит =( .


Попробовал получить через представление - все равно не получается.
Прикрепленные файлы:
59. madonov 154 23.12.16 02:32 Сейчас в теме
1. Создать в таблице новую колонку с новым именем (я выбрал INDEX_GUID)
2. В спецификации вычисляемого столбца указать ([index])

Таким образом мы получаем копию колонки INDEX, но с читаемым именем.

3. Обращаемся к колонке INDEX_GUID через источник данных - всё работает!
Прикрепленные файлы:
60. kos 43 21.03.17 05:35 Сейчас в теме
платформа 8.3.8.2088
при подключении к 1с77 для полей "Строка(Х), Х>100" выдает сообщение

ВнешнийИсточникДанных Поле XXX: Для строки фиксированной длины запрещено задавать длину строки более 100 символов

Что делать ?
Прикрепленные файлы:
Оставьте свое сообщение

См. также

Интеграция решений на 1С и сервиса обмена данными RabbitMQ через Web REST API 36

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Внешние источники данных

Отправка "Hello world" из 1С на сервер RabbitMQ и обратно при помощи web REST API. Проще уже некуда! Совместимо с Linux и Windows! Реализация протестирована на 1С 8.3.14.1854 (x64).

21.10.2019    1151    Eret1k    9       

Выгрузка из 1С номенклатуры со штрихкодами без программирования 3

Статья Программист Пользователь Стажер Нет файла v8 УТ11 Россия Бесплатно (free) Загрузка и выгрузка в Excel Внешние источники данных

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

28.08.2019    1640    user1114182    4       

Выгрузка данных в таблицу MS SQL SERVER 14

Статья Программист Нет файла v8 MS SQL Бесплатно (free) Внешние источники данных

Процедура по выгрузке данных из 1C (таблица значений) в таблицу MS SQL SERVER через COM.

02.07.2019    1798    EvgenSav    6       

1С и компьютерное зрение: новый подход к контролю за ассортиментом магазина 23

Статья Бизнес-аналитик Нет файла v8 1С:Франчайзи, автоматизация бизнеса УУ Розничная торговля Бесплатно (free) Внешние источники данных

Машинное зрение в магазинах и 1С. Как поднять эффективность торгового предприятия (магазин. кафе, шоурум и т.д.) с совершенно неожиданной стороны? Как получить реальные демографические данные покупателей и, самое главное, как это использовать в повседневной работе магазина? Как можно расширить привычные ABC и XYZ анализ, добавив в них пласт данных о трафике и демографии покупателей? Что необходимо для 1С, чтобы использовать данные видеоанализа людского трафика?

20.06.2019    3565    osipov_cvizi    16       

Интеграция решений на 1С и сервиса обмена данными RabbitMQ 100

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Внешние источники данных

"Hello world" из 1С на сервер RabbitMQ и обратно. Полностью открытый код 1С! Реализация протестирована на 1С 8.3.12.1714 (x64).

24.04.2019    8354    Eret1k    44       

MS Access и 1С. Что, когда и зачем? 70

Статья Программист Бизнес-аналитик Нет файла v8 Бесплатно (free) Практика программирования Разработка Внешние источники данных

Об использовании MS Access в связке с 1С. Можно ли использовать продукты Office на сервере. Когда Access может быть полезен. Примеры работы и другое.

09.04.2019    14887    YPermitin    31       

RabbitMQ + Конвертация Данных 3.0 179

Статья Системный администратор Программист Бизнес-аналитик Руководитель проекта Нет файла v8 КД Бесплатно (free) Внешние источники данных Обмен через XML Интеграция Перенос данных из 1C8 в 1C8

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

21.03.2019    13867    barelpro    82       

Загрузка ЭЛН (электронных листов нетрудоспособности) из файлов 7

Статья Системный администратор Программист Нет файла v8 УПП1 Россия БУ Зарплата ФОМС, ПФ, ФСС Бесплатно (free) Внешние источники данных

Что делать, если по каким-то причинам нет возможности разместить 1С и Крипто-Про на одном рабочем месте? Правильно - открывать конфигуратор и пилить. Благо, там не сложно. Непосредственно решение для УПП 1.3. Для ЗиК 2.5 и Комплексной автоматизации должно быть аналогично.

07.02.2019    2614    SatanClaws    4       

Работа с кассой Atol через веб-сервер ДТО-10 54

Статья Программист Нет файла v8 Россия Кассовые операции НДС Бесплатно (free) Внешние источники данных ККМ Фискальный регистратор

Поддержка многопользовательской печати на одном устройстве ККТ. Поддержка изменений в законодательстве (Переход на ФФД 1.05 и НДС 20%).

31.12.2018    16851    medangel    36       

RabbitMQ, Python и Windows. Step By Step 36

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Внешние источники данных

Работа с шиной RabbitMQ, используя Python на Windows. Пошаговый быстрый старт.

13.12.2018    5172    w.r.    7       

Из 1С в IIKO: Передаем перемещения УТ в приходные накладные 4

Статья Программист Нет файла v8 УТ11 Рестораны, кафе и фаст-фуд УУ Оптовая торговля Бесплатно (free) Внешние источники данных

Рассмотрение вариантов передачи документа "Перемещение товаров" из Управление торговлей 11 в документ "Приходная накладная" IIKO.

12.09.2018    4170    oyti    7       

IIKO (Айко). Обмениваемся накладными с 1С 6

Статья Программист Нет файла v8 БП3.0 Рестораны, кафе и фаст-фуд БУ УУ Бесплатно (free) Внешние источники данных

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

01.06.2018    9360    oyti    13       

Интеграция Zimbra и 1С 22

Статья Программист Нет файла v8 Россия УУ Управление взаимоотношениями с клиентами (СRM) Бесплатно (free) Внешние источники данных

В публикации описывается способ интеграции 1С с почтовым сервером Zimbra, используя SOAP сервис. Рассматривать вопрос интеграции будем на примере бизнес задачи, из блока CRM. Реализации общей адресной книги(GAL-Global Address List) между сотрудниками. Сотрудники(компания) ведет весь учет в 1С, в том числе и элементы CRM, а Zimbra выступает лишь в роли почтового сервиса. Сделать данную публикация побудило отсутствие в интернете готовых примеров совместной работы 1С и Zimbra. Надеюсь, она поможет кому-либо сократить время на реализацию похожей задачи.

16.04.2018    7337    Гексагон    17       

Обмен сведениями о пособиях с ФСС для Зарплата и Управление персоналом 2.5.129.3 11

Статья Программист Нет файла v8 v8::СПР ЗУП2.5 Россия БУ Зарплата ФОМС, ПФ, ФСС Бесплатно (free) Внешние источники данных

Ошибка отправки файла при обмене сведениями о пособиях с ФСС. Зарплата и Управление Персоналом, редакция 2.5 (2.5.129.3).

06.03.2018    14772    Igorexa    30       

Загрузка данных из DocsVision 5

Статья Программист Нет файла v8 Бесплатно (free) Внешние источники данных

Необходимо было реализовать загрузку данных из программы документооборота "DocsVision 5" в "1С:Документооборот 8". Данное описание оставляю больше для себя, чтобы не забыть, ну и, может, еще кому поможет, т.к. не нашел нигде нормального описания.

17.01.2018    6451    apxi    0       

Создание мобильного клиента 1С на Android с использованием HTTP-сервисов 144

Статья Программист Нет файла v8 v8::Mobile Android Бесплатно (free) Внешние источники данных Мобильная разработка

Краткий курс по созданию мобильного приложения на Android, который связывается с сервером 1С через HTTP-сервис. Публикация рассчитана на тех, кто хорошо знаком с программированием на платформе 1С и владеет основами программирования на платформе Android (умеет создавать Activity и знает, как устроена структура проекта).

03.11.2017    26290    cdiamond    15       

Как сделать конфигурацию «1С:Предприятие 8» приложением QuickBooks. Проходим авторизацию OAuth 1.0a+OpenID 2.0 52

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Внешние источники данных

Пришло время, когда интеграция со сторонними организациями и их приложениями стала необходимостью для успешного ведения бизнеса. В этой статье будет рассмотрено прохождение авторизации OAuth 1.0a+OpenID 2.0 и превращение конфигурации «1С:Предприятие 8» в приложение QuickBooks.

10.09.2017    17351    pbazeliuk    28       

Редактирование пользовательских полей в Битрикс24 через REST API 7

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Внешние источники данных

Меняем значения пользовательских полей в Битрикс24 через REST API на примере редактирования контактов

06.02.2017    11623    user662672_explorer2000    2       

Нагрузочное тестирование сервера 1С при использовании WEB сервисов 51

Статья Системный администратор Программист Нет файла v8 ИТ-компания Бесплатно (free) Производительность и оптимизация (HighLoad) Внешние источники данных WEB

Проведение нагрузочного тестирования WEB-сервисов, развернутых на платформе 1С. Целью тестирования является ознакомление с возможностями платформы 1С при работе с большим количеством запросов через опубликованные WEB сервисы на IIS 7.5

01.02.2017    23027    BraunAlex    34       

Передаем контакты из 1С в Битрикс24 через REST API 119

Статья Программист Нет файла v8 УТ11 Россия Бесплатно (free) Внешние источники данных

Хочу поделиться опытом использования Битрикс24 REST API для экспорта контактов из 1С УТ 11

09.01.2017    42834    user662672_explorer2000    110       

Используем механизмы обмена данными БСП для произвольного обмена 148

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции Внешние источники данных БСП (Библиотека стандартных подсистем)

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

23.08.2016    27760    Патриот    22       

Технология проведения миграции данных в крупных проектах 43

Статья Программист Нет файла v8 Windows Бесплатно (free) Внешние источники данных Перенос данных из 1C8 в 1C8

В статье систематизируется проектный опыт проведения миграции данных в крупных проектах, связанных с переходом Заказчиков на работу в конфигурациях «1С:Предприятие 8».

17.05.2016    26922    cinimex    26       

7 причин, почему интеграцию необходимо строить на очередях. Практика RabbitMQ. Отказ от Zato ESB и OData в 1С 164

Статья Программист Нет файла v8 Windows Бесплатно (free) Внешние источники данных

Этот набросок является продолжение предыдущей статьи "7 причин, почему интеграция стала приятной. Не упускайте ряд потрясающих возможностей". В большей части это описание боли, через которую пришлось пройти на практике, используя сервисную шину данных Zato ESB и OData протокол совместно с «1С:Предприятие 8».

18.03.2016    55505    pbazeliuk    125       

1C + ЭДО Мегафон 3

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Внешние источники данных

Тестируем модуль обмена 1С с ЭДО Мегафон (модуль прилагается пользователям ресурса ЭДО Мегафон бесплатно).

1 стартмани

21.12.2015    11974    JetBrain    5       

Linq to ODATA 34

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Внешние источники данных

1С сейчас совершенствует REST интерфейс приложения, автоматически генерируемый платформой, и протокол обмена ODATA версии 3. С недавнего времени появилась возможность обмениваться, используя JSON. На просторах интернета мало информации по использованию Linq для ODATA для 1С. Поэтому решил поделиться опытом. Это продолжение статей https://infostart.ru/public/402433/

29.09.2015    27903    Serginio    11       

1С Предприятие 8.2: Обмен данными между базами на основе инструментов SQL 18

Статья Программист Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Внешние источники данных

Обмен данными (сотрудники организаций) между базами (1С Предприятие 8.2: Бухгалтерия и 1С Предприятие 8.2: Зарплата и управление персоналом) на основе триггера SQL, отслеживающего изменения таблицы

06.11.2013    19833    jan27    25       

Алгоритм выгрузки из 1С в Access 5

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) Практика программирования Внешние источники данных

Работающий алгоритм выгрузки из 1С в Access. Понадобилось выгрузить отчет в ACCESS, пришлось разбираться.

31.10.2013    28080    dimens    10       

Организация обмена с прочими программами через XML. Имитация двухстороннего обмена без именения конфигурации 20

Статья Программист Нет файла v8 Windows Бесплатно (free) Внешние источники данных Обмен через XML

Настраиваем обмен типовой конфигурации со сторонними базами данных, с функционалом двустороннего обмена

24.04.2013    13181    Stim213    6       

Подсистема "COMExchange": прямой доступ к EXCEL через ADO 8

Статья Системный администратор Программист Нет файла v8 1cv8.cf УТ10 УПП1 Россия Windows Бесплатно (free) Файловые протоколы обмена, FTP Загрузка и выгрузка в Excel Внешние источники данных

На примере этой, очень популярной, темы наглядно продемонстрированы нетривиальные возможности консоли запросов в составе подсистемы: 1. использование событий выполнения запроса (в том числе для запуска на выполнение других запросов) 2. запуск на выполнение запроса в цикле с подстановкой значений параметров из таблицы значений.

20.01.2013    21223    yuraos    7       

Простой TCP сервер с обработкой событий на стороне 1С 67

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Внешние источники данных

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

05.12.2012    26875    VoDo    8       

Работа с PerCo своими силами 26

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Windows Учет рабочего времени Бесплатно (free) Внешние источники данных

Сейчас предлагаются различные готовые модули для работы PerCo с 1С. Но не всегда решение простых задач требует установки дополнительного модуля. Рассмотрим подключение для создания и изменения карт сотрудников.

03.10.2012    27690    Nas'ka    24       

1С Конвертация, использование внешнего источника данных 305

Статья Системный администратор Программист Нет файла v8 КД Windows Бесплатно (free) Внешние источники данных

Загрузка информации в базу данных платформы 1С 8.2 из внешних источников с помощью "Конвертации данных"

26.09.2012    45659    SergeMalikov    30       

Инструкция по подключению 1С к IBM DB2 с помощью внешнего источника данных. 5

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Внешние источники данных

Краткая инструкция по работе с внешними источниками данных - подключение 1C к IBM DB2 с помощью внешнего источника данных через ODBC драйвер.

17.09.2012    10123    RomaLut    4       

Загрузка материалов из программы Командор Дизайнер в 1С: Бухгалтерия 8. 4

Статья Системный администратор Программист Нет файла v8 БП2.0 Россия БУ Windows Учет ТМЦ Бесплатно (free) Пользователю системы Загрузка и выгрузка в Excel Внешние источники данных

Komandor Designer - программа для проектирования шкафов купе. Ее используют многие предприятия, которые производят мебель. Также они используют для учета программу 1С. Поэтому возникает проблема обмена данными между этими программами. Что важно для плодотворного общения двух людей — правильно — они должны понимать друг друга, разговаривать на одном языке. То же правило и в нашем случае, программы должны одинаково правильно понимать, какой материал находится в заказе, расходе сырья по заказу.

22.08.2012    9342    knigula    1       

Загрузка из Lotus или OLE-подключение из других (не 1С) программ 2

Статья Системный администратор Программист Нет файла v8 БП2.0 Россия БУ НУ Windows НДС Бесплатно (free) Обработка документов Внешние источники данных

Как-то давно писала настройку в 7.7. Теперь пришлось переделать на 8.2. Суть в том, что в программе Lotus заводятся счета, накладные, счет-фактуры. Как уж там прописана кнопка "Экспорт" - не знаю, но эта кнопка передает в 1С8 через функцию Import2 перечень реквизитов (ИНН, Наименование, Сумма, СуммаНДС , НомерСчета, ДатаСчета, ПН, Группа). А 1С8 их подхватывает в модуле внешнего соединения и "загружает" реализацию и счета-фактуры.

12.06.2012    13205    nvl    2       

Сканируем без сканера или MXL to JPG 137

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Печатные формы документов Внешние источники данных Универсальные функции

Хотите конвертировать документы в формат изображения менее чем за минуту, не имея сканера? Тогда эта статья для вас.

24.05.2012    29873    shakmaev    47       

Вызов операций WS-сервисов SAP из 1С (передача в параметрах Объектов XDTO) 38

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Внешние источники данных WEB

Довелось столкнуться в своей работе с вызовом из 1С веб-сервисов SAP. Если с передачей простых типов (в терминах XDTO - значений XDTO) в параметрах операции веб-сервиса, не возникло никаких проблем, то с передачей объекта XDTO пришлось повозиться. Несмотря на то, что в 1С я его заполнял, в SAP он воспринимался как пустой. В интернет особо много полезной информации не нашел, поэтому выкладываю свои наработки по теме.

18.04.2012    33642    adva    12       

Загрузка остатков из 1С6 в 1С8 2

Статья Системный администратор Программист Нет файла v8 БП2.0 БУ Бесплатно (free) Перенос данных из 1С7.7 в 1C8.X Внешние источники данных

Часто при организации обмена данными с 1С6 требуется наладить перенос проводок из 1С6 за период. Но тут же возникает вопрос и о переносе начальных остатков. Так вот, если разработан механизм загрузки движений из 1с6 из файла проводок 1sboper.dbf, то можно просто сэмулировать файл 1sboper.dbf, но в нем оставить только проводки с нулевым счетом и загрузить этот файл на дату загрузки остатков. Таким образом не придется делать дополнительный механизм. Единственное - нужно свернуть остатки в 1sboper.dbf. Как это сделать - эта статья.

27.03.2012    14935    fixin    3       

1C + jabber 26

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Внешние источники данных

Использование протокола xmpp для информационных сообщений из 1С без подключения внешних dll.

17.03.2012    20325    X.Leshiy    31       

Внешние источники данных: Синхронизация с внешними мастер-данными 29

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Внешние источники данных

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

11.01.2012    11450    xzorkiix    7       

Чтение и запись данных по COM для Lotus Notes из 1С 8.х 11

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Внешние источники данных

Чтение и запись данных по COM для Lotus Notes программно из кода 1С 8.х

25.11.2011    9690    Rovan    2       

"Сделай сам" свою самую быструю перегрузку (видео). Использование технологии SQL Server IS для быстрых перегрузок данных. 30

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Внешние источники данных

Видео, демонстрирующее использование SSIS для нужд 1С. Пример очень простой, но поможет сделать "первый шаг", а потом вы сами поймете, какие возможности перед вами открывает этот механизм, и будете им пользоваться. SSIS это службы, поставляемые MS SQL Server для различных перегрузок данными. Существует достаточно простой и удобный визуальный конструктор, взаимодействие с различными ODBC и даже не ODBC источниками данных, кроме того технология использует bulk insert что обеспечивает даже для SQL Server очень высокую скорость перегрузки

29.10.2011    18472    comol    31       

Настройка связи между mysql и 1С через ODBC в версии 8.2.14 (Внешние источники) 175

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Математика и алгоритмы Внешние источники данных WEB

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

17.09.2011    108587    jorikfon    66       

Особенности работы 1С+ADO+MSSQL и Oracle. 69

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Внешние источники данных

В моей работе пришлось столкнуться с задачей обмена данными XML через Шину (MDM), используя ADO. При построении такого обмена есть некоторые особенности, о которых я попытаюсь рассказать в данной статье.

12.09.2011    31048    provova    9