Имя: Пароль:
1C
1С v8
Получить результат (таблицу) процедуры с параметрами (Внешний источник данных)
0 dimasad
 
24.03.26
23:03
Стоит задача использовать в различных отчетах данные из сторонней СУБД.
Просто подключить таблицу ВИД - не проблема, а вот получить результат процедуры из ВИД - фиг.

ВИД подключал согласно документации ( https://its.1c.ru/db/v8321doc#bookmark:dev:TI000001645 )
Вызов процедуры в скуле такой:
exec dbo.rep_on ID, DateOn, DateOff
exec dbo.rep_on 31, '20260101', '20260201'

В ВИД создал ручками таблицу описал все поля, Вид таблицы - выражение: rep_on(&1, &2, &3). Даже явное указание параметров выдает ошибки:
dbo.rep_on(36159, '20260101', '20260201') - объект не найден;
[dbo].[report_on] (31, '20260101', '20260201') - неправильная конструкция "("
[dbo].[report_on] 31, '20260101', '20260201') - неправильный синтаксис "31";


Кто знает как заставить это г... взлететь, да еще и передавать туда параметры?

ПС/тестил в консоле запросов.
ППС/ странная оссобенность нашел эту процедуру при подключении функции синтаксис странный: rep_on;1(&1, &2, &3)
1 Garykom
 
гуру
25.03.26
00:01
(0) Через хранимки уже пробовал?
Через них можно даже INSERT делать
https://infostart.ru/1c/articles/1019947/
2 H A D G E H O G s
 
25.03.26
00:06
Тыц, тыц, тыц.
3 bolder
 
25.03.26
00:20
(0) Вызов хранимых процедур недокументирован.Поэтому только через грабли и набитые шишки.ВИД подключает физические таблицы внешней БД.В (1) про это есть.(2)собственные функции - да пожалуйста.
4 Garykom
 
гуру
25.03.26
02:01
(3) Дык в (2) как раз сначала создание хранимки на SQL
А затем вызов ее
5 bolder
 
25.03.26
08:51
(4) Ну ОК.Отстал от жизни.Из (0):
"В зависимости от того, какой объект СУБД описывает создаваемая объект в «1С:Предприятие», следует корректно установить свойство Вид таблицы. Если свойство установлено в значение Таблица ‑ то объект конфигурации будет выступать аналогом реальной таблицы базы данных или представления (view). В остальных случаях свойство Вид таблицы следует установить в значение Выражение. Если таблица внешнего источника данных имеет вид Таблица, то в свойство Имя в источнике данных необходимо указать имя реальной таблицы или не параметризованного представления, например dbo.ErrorLog. Для таблицы вида Выражение, следует указать свойство Выражение в источнике данных. В простейшем случае это будет вызов функции, возвращающей табличные данные, например dbo.ufnGetContactInformation(&1). Если в это поле записывается выражение, то рекомендуется указать его в скобках, для минимизации различных конфликтов при реальном выполнении запроса к СУБД."
В таком виде ВИД еще не использовал...
В (2) отличный пример скалярной функции.
AdBlock убивает бесплатный контент. 1Сергей