Имя: Пароль:
1C
1С v8
SQL запрос внутри стандартного запроса.
0 deadpuma
 
03.12.12
13:59
можно ли в внутри запроса, который встроен в схему компоновки данных вставить запрос из SQL. мне надо достать поле оттуда и вставить в макет. т.е. по некоторому реквизиту документа из SQL достается нужное значение
1 mikecool
 
03.12.12
14:02
если из левой базы - оформляй внешний источник данных
иначе - все равно можно
2 deadpuma
 
03.12.12
14:09
в смысле из левой базы?
3 Maxus43
 
03.12.12
14:10
что мешает достать всё что надо в СКД? смысл что-то тягать напрямую из скуля или что надо вобще?
4 mikecool
 
03.12.12
14:11
(2) а ты как понимаешь свой топик?
5 МишКа
 
03.12.12
14:12
(0) В чем, по-твоему, отличие языка запросов 1С от SQL?
6 deadpuma
 
03.12.12
14:14
(5) я знаю что одно и то же просто мало ли

вот такой запрос надо вставить

SELECT code from DB.dbo.zzdlg_F_T_OrderCodePerNumber(18,'"+пНомерЗаказа+"')

где пНомерЗаказа - это реквизит документа
7 Maxus43
 
03.12.12
14:16
что это за название таблиц? база не 1с же
8 deadpuma
 
03.12.12
14:17
просто в коде когда я этот запрос выполняю, я предварительно открываю соединение ADO и т.п. а в запрос если вставить ошибок не будет?
9 deadpuma
 
03.12.12
14:18
(7) база SQL
10 МишКа
 
03.12.12
14:18
(8) Будет.
11 Maxus43
 
03.12.12
14:18
(9) в базе 1с на sql нет таких таблиц
12 МишКа
 
03.12.12
14:22
(8) Используй внешний источник данных. Это и будет тебе соединением.
+Синтаксис языка запросов 1С ограничен, по сравнению со стандартным SQL. Некоторые вещи не прокатят.
13 deadpuma
 
03.12.12
14:24
(11) вы наверное не так поняли, этот запрос я делаю из 1с, а база в SQL
14 deadpuma
 
03.12.12
14:25
(12) не совсем понятно можно по подробнее
15 shuhard
 
03.12.12
14:26
(13) это ты нас не понял
16 Maxus43
 
03.12.12
14:26
(13) нормально я понял, я говорю что нет у 1с в скуле таких таблиц) и потому требую правды - что это за таблица в скуле?
17 Maxus43
 
03.12.12
14:27
(16) + точнее - что за база, к которой ты делаешь запрос.
Делай (1), внешний источник, ибо база наверняка левая
18 deadpuma
 
03.12.12
14:29
(16) как понять, что это за таблица? я доступ в SQL Management Studio не имею поэтому ничего не могу сказать
19 Maxus43
 
03.12.12
14:30
(18) покажи обработку из (8), насчет соединения ADO
20 МишКа
 
03.12.12
14:31
(14) Открываешь Конфигуратор, находишь раздел внешние источники данных. А ты как думал?
21 deadpuma
 
03.12.12
14:32
(19) вот

    Если пструкНастройки.масADO.Количество()>0 Тогда
        //Возьмем первое попавшееся подключение
        лструкАДО = пструкНастройки.масADO[1];
       
        лсЗапрос = "SELECT code from DLG.dbo.zzdlg_F_T_OrderCodePerNumber(18,'"+пНомерЗаказа+"')";
        бтADO.ОткрытьНаборДанных(лструкАДО,лсЗапрос);
        лтзНайденныйКод =    бтADO.ВыгрузитьНаборДанных(лструкАДО);
       
    КонецЕсли;
    Возврат лтзНайденныйКод[0].code;
22 deadpuma
 
03.12.12
14:32
(20) я не как не думал, т.к. никогда этого не делал!
23 Maxus43
 
03.12.12
14:33
(21) тут мало, смотри "бтADO" - строку соединения, во внешних источниках данных так же прописывай
24 milan
 
03.12.12
14:35
левое соединение с таблицей из внешнего источника наверное в самый раз будет
25 deadpuma
 
03.12.12
14:35
я что-то в конфигураторе не могу найти внешний источник данных
26 Maxus43
 
03.12.12
14:38
(25) в корне, в самом низу
27 Maxus43
 
03.12.12
14:39
можешь конечно извращённо, код обработки в общий модуль, и вызывай его из СКД в вычисляемых полях. долго будет правда
28 deadpuma
 
03.12.12
14:39
(26) нету такого, последнее Задачи и все. конфа Комплексная 8.2 - нетиповая
29 sapphire
 
03.12.12
14:40
(0) Можно, только погано выглядеть будет.
Можно написать функцию, которая возвращает результат запроса SQL и использовать её в вычисляемых полях
30 Maxus43
 
03.12.12
14:41
(28) стряхни пыль с платформы, и поставь новую) что за платформа то?
31 deadpuma
 
03.12.12
14:44
(29) у меня есть функция ПолучитьПравильныйНомерЗаказа (пНомерЗаказа, пСтрукНастройки)

как ее вызывать тогда?

(30) 8.2.15.289
32 Maxus43
 
03.12.12
14:45
(31) у всех есть, у тебя нет. нуну...
33 Maxus43
 
03.12.12
14:45
(31) в вычисляемых полях.
ИмяМодуля.ПолучитьПравильныйНомерЗаказа (пНомерЗаказа, пСтрукНастройки)
34 deadpuma
 
03.12.12
14:51
(33) а в поле Выражение что ставить?
35 Maxus43
 
03.12.12
14:51
(34)>(33) это и писать. Функция должна быть в общем модуле, Экспортная.
36 deadpuma
 
03.12.12
14:54
(35) у меня эта функция в обработке находится- ничего? а в поле Путь к данным что указывать?
37 sapphire
 
03.12.12
14:55
(36) Да уж... ты читать умеешь?!
Функция должна быть в общем модуле, Экспортная.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший