|
Аналог select into @Var в Запросе | ☑ | ||
|---|---|---|---|---|
|
0
Humandra
06.11.08
✎
21:40
|
Здравствуйте! Прошу помощи новичку в 1С.
Работала непосредственно с БД и языками типа T-SQL (точнее, PL/SQL Oracle). Появилась необходимость решить одну задачу в 1С, а я не в зуб ногой :) Есть функция, которая принимает параметр - ссылку на документ. Эта функция должна бы делать то, для чего на PL/SQL я бы написала запрос типа (упрощенно): select sum(field1) // некое числовое поле into var1 // переменная from my_docum // документ 1С where id_doc = ¶m // некий первичный ключ(Документ.Ссылка?) а потом над переменной Var1 произвела бы определенные действия var1 := var1 * 10; // к примеру и вернула результат. return var1; Как бы это сделать в 1С? Агрегированные данные по этому числовому полю в никаких регистрах не хранятся. |
|||
|
1
ТелепатБот
гуру
06.11.08
✎
21:40
|
||||
|
2
Господин ПЖ
06.11.08
✎
21:46
|
я ничо не понял...
но вроде Запрос = Новый Запрос% Запрос.Текст = ".... ГДЕ Блабла.Автор = &Автор"; Запрос.УстановитьПараметр("Автор", ссылканаавтора); |
|||
|
3
Господин ПЖ
06.11.08
✎
21:47
|
Запрос = Новый Запрос;
|
|||
|
4
Kalambur
06.11.08
✎
21:47
|
Пиши проще, мы же не аракловцы, так... деревня.
Скажи что хочешь чтобы получилось,а то последнее предложение ставит в тупик... |
|||
|
5
ptiz
06.11.08
✎
21:47
|
"ВЫБРАТЬ СУММА(поле1) * 10 КАК Поле1
ИЗ Документ.ВидДокумента" и берешь первую строку из результата запроса |
|||
|
6
BabySG
06.11.08
✎
21:48
|
Конструктор запроса запускаем и там все делаем мышкой.
Для понятия, что происходит - нажимаем периодически кнопку Запрос. |
|||
|
7
Kalambur
06.11.08
✎
21:48
|
(2)Есть предположение что дело просто запросом не обойдеться, говорит же,БДшница бывшая :)
|
|||
|
8
dk
06.11.08
✎
21:50
|
|
|||
|
9
Злобный Фей
06.11.08
✎
21:51
|
гы
|
|||
|
10
Господин ПЖ
06.11.08
✎
21:52
|
однако без стакана не понять простых вещей...
|
|||
|
11
Humandra
06.11.08
✎
22:04
|
Ой, ребята - совсем заклевали :) Я вот тоже деревня, только оракловая :) Не получается у меня проще объяснить, так как знаю я 1С ровно 1 день... вот сейчас сижу, документацию читаю...
Скажем так - в форму списка документа я добавила поле, не хранимое, а вычисляемое. В событии ПриПолученииДанных туда пишу результат функции - это получилось, результат функции выводится. Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок) Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл ЯчейкаМоеПоле = ОформлениеСтроки.Ячейки.МоеПоле; ЯчейкаМоеПоле.ОтображатьТекст = Истина; ЯчейкаМоеПоле.Текст = ПолучитьСуммуПоПолю(ОформлениеСтроки.ДанныеСтроки.Ссылка); КонецЦикла; КонецПроцедуры Вот сама функция, как видите, сейчас она возвращает просто стринг, а должна в зависимости от переданной ссылки возвращать разные суммы. То что закомментировано, не работает, да и не должно работать. Так вот как сделать, чтобы работало? Функция ПолучитьСуммуПоПолю(МойДокументСсылка) //Запрос = Новый Запрос; //Запрос.УстановитьПараметр("парамИдентиф", МойДокументСсылка.НекоеСсылочноеПоле); //Запрос.Текст = //"ВЫБРАТЬ СУММА(МоеЗначение) КАК СуммаПоПолю //|ИЗ ДругойМойДокумент //|ГДЕ ДругойМойДокумент.Ссылка = &парамИдентиф"; //Запрос.Выполнить(); //Возврат СуммаПоПолю; Возврат 'Тест'; КонецФункции |
|||
|
12
Злобный Фей
06.11.08
✎
22:12
|
Запрос.Текст =
"ВЫБРАТЬ СУММА(МоеЗначение) КАК СуммаПоПолю |ИЗ Документ.ДругойМойДокумент |ГДЕ Ссылка = &парамИдентиф"; Таблица = Запрос.Выполнить().Выгрузить(); Возврат ?(Таблица.Количество() = 0,0,Таблица[0].СуммаПоПолю); //где ДругойМойДокумент - вид документа. Чета вроде типа того |
|||
|
13
Humandra
06.11.08
✎
22:13
|
(5) ptiz, я вроде бы запрос сам написала, у меня как раз проблема с тем, чтобы взять первую строку в запросе в переменную
|
|||
|
14
Господин ПЖ
06.11.08
✎
22:15
|
||||
|
15
Kalambur
06.11.08
✎
22:18
|
Ладно, попробую и я стелепатировать...
Процедура ЫЫЫ(ТутСцылкаНадокумент) Запрос = Новый Запрос; Запрос.Текст = " | док.ссылка как документ | СУММА(поле1) * 10 КАК Поле1 | ИЗ | Документы.Док как док | ГДЕ | документ = &ДокументПраметр Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Поле1); КонецЦикла; |
|||
|
16
Kalambur
06.11.08
✎
22:19
|
+15 забыл параметр запроса описать, но все же я так понял основа внизу :)
|
|||
|
17
Господин ПЖ
06.11.08
✎
22:21
|
задумался...
если женщине трудно понять мужчину, то женщина-ораклоид никогда не поймет 1С-ника? |
|||
|
18
Злобный Фей
06.11.08
✎
22:21
|
(16) А исчо у тя вот тут ошибко: | Документы.Док как док
:) |
|||
|
19
Kalambur
06.11.08
✎
22:24
|
(18) :) ладно, ладно, все халявное не может быть качественным )
|
|||
|
20
Humandra
06.11.08
✎
22:24
|
Ребята, спасибо - вы таки меня поняли :)
По крайней мере, идею я поняла, пошла пробовать :) |
|||
|
21
Злобный Фей
06.11.08
✎
22:24
|
(19) Факт :). Я забыл на 10 умножить ))
|
|||
|
22
Господин ПЖ
06.11.08
✎
22:25
|
а где кстати фотка?!
|
|||
|
23
Злобный Фей
06.11.08
✎
22:26
|
(20) Обязательно сообщи резльтаты!
|
|||
|
24
Господин ПЖ
06.11.08
✎
22:26
|
совсем не та Миста стала... Основы зыбываем
|
|||
|
25
Злобный Фей
06.11.08
✎
22:26
|
(22) Пля, все расслабились.. Где ты раньше был?!
|
|||
|
26
Kalambur
06.11.08
✎
22:28
|
(21) :)
(20) ты заходи почаще , мы все добрые как (23) :) и фото не забудь! |
|||
|
27
Господин ПЖ
06.11.08
✎
22:28
|
(25) склероз... старый стал
|
|||
|
28
Humandra
06.11.08
✎
22:46
|
Ур-ра! Оно работает! :)
Спасибо огромное всем! ЗЫ: а фотку - не вопрос, куда слать? :) |
|||
|
29
Господин ПЖ
06.11.08
✎
22:47
|
(28) фотку слать в личную карточку. Фотошоп и длинные юбки сурово караются!
|
|||
|
30
Злобный Фей
06.11.08
✎
22:50
|
(29) +1
|
|||
|
31
Humandra
06.11.08
✎
22:58
|
Пожалуйста - и даже с небольшой обнаженкой! :D
|
|||
|
32
Господин ПЖ
06.11.08
✎
23:00
|
(31) блиииин... а я повелся
|
|||
|
33
Humandra
06.11.08
✎
23:01
|
Что характерно - ни фотошопа, ни длинных ЮБОК! :D
|
|||
|
34
Господин ПЖ
06.11.08
✎
23:02
|
разбила вдрызг все мечты... молодая интересная незамужняя ораклистка-москвичка-богачка...
ЗЫ а юбка длинная |
|||
|
35
Humandra
06.11.08
✎
23:04
|
(34) Нету там длинных юбок! *Возмущенно* Там длинное ПЛАТЬЕ! :)))
|
|||
|
36
Господин ПЖ
06.11.08
✎
23:04
|
(33) фигасе... а вы там кто? кого держат или кто держит?
|
|||
|
37
Злобный Фей
06.11.08
✎
23:05
|
нененене! так не честно
|
|||
|
38
Господин ПЖ
06.11.08
✎
23:08
|
(35) это уже тонкости женские - колготки-чулки, крем увлажняющий-отшелушивающий, пилинг-наждак и прочие несущественные разницы
|
|||
|
39
Humandra
06.11.08
✎
23:09
|
(36) Даю честное комсомольское - я женского полу! :)
|
|||
|
40
Kalambur
06.11.08
✎
23:09
|
(39) не верю!
|
|||
|
41
Humandra
06.11.08
✎
23:10
|
(40) Мамой клянусь!(с)
|
|||
|
42
Humandra
06.11.08
✎
23:11
|
А вообще, меня тут за флуд не убьют? :) Типа профессиональная тема все таки :)
|
|||
|
43
Господин ПЖ
06.11.08
✎
23:12
|
(39) по фотке не видно... там даже от невесты торчит одна нога... это ни о чем не говорит. Мою ногу если побрить и запихнуть в туфельку 45,5 размера тоже можно изящно сфотографировать.
Какие ваши доказательства?! (с) Красная жара |
|||
|
44
Humandra
06.11.08
✎
23:15
|
Эх - что за жизнь пошла - ни во что не ставят честное слово леди! Уйду я от вас, злые вы! (с) :)))
|
|||
|
45
Kalambur
06.11.08
✎
23:16
|
(44) Ну вот,только пришла и уже уходит...
|
|||
|
46
Господин ПЖ
06.11.08
✎
23:19
|
(45) мы его раскололи. Под маской ноги невесты прятался здоровенный негрила
|
|||
|
47
Злобный Фей
06.11.08
✎
23:21
|
(46) Или митёк, пьяный и бородатый )
|
|||
|
48
Humandra
06.11.08
✎
23:34
|
Шовинюги! Если девушка - так что, уже и ораклистом быть не моги? *Уже совсем возмущенно* Между прочим, еще из фотки должно быть быть понятно, что я не блондинка! :)))))
|
|||
|
49
Злобный Фей
06.11.08
✎
23:38
|
(48) Не, шовинисты это совсем про другое..
|
|||
|
50
MRAK
07.11.08
✎
08:41
|
(0) 1совский обход выборки больше сходен с такой оракловой конструкцией:
for var1 in (select sum(field1) f from my_docum t where t.id_doc = ¶m) loop var1.f := var1.f * 10; end loop; то есть, даже если отобран один элемент, его все-равно надо обходить циклично или явно указывать через Выборка.Получить(0). |
|||
|
51
Леха Дум
07.11.08
✎
09:35
|
(50) а что констукция типа
Выбора = Запрос.Выполнить.Выбрать(); Выборка.Следующий(); Блаблабла(Выборка.ТвоеПоле); для одного отобранного элемента уж не работает? |
|||
|
52
MRAK
07.11.08
✎
09:39
|
(51) ну и так можно. но опять же, цикличность, Выборка. Хоть и одна итерация.
а в (0)-то другая конструкция показана. |
|||
|
53
Aprobator
07.11.08
✎
10:06
|
(48) Не уходи - это все черная зависть. Не у всех красота и ум в один флакон помещаются :)
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |