Имя: Пароль:
1C
1С v8
как в запросе передать параметром источник ?
0 DES
 
17.03.15
13:25
ВЫБРАТЬ
        Максимум(Номер) КАК Номер
    ИЗ
        &ТипДокумента
    ГДЕ
        Номер ПОДОБНО (&Префикс)

Как ТипДокумента использовать?
1 palpetrovich
 
17.03.15
13:27
что за таблица такая, "ТипДокумента"?
2 DES
 
17.03.15
13:28
Это параметр
3 Fedor-1971
 
17.03.15
13:29
ВЫБРАТЬ
        Максимум(док.Номер) КАК Номер
    ИЗ
        &ТипДокумента Как док
    ГДЕ
        док.Номер ПОДОБНО (&Префикс)

Только обработай ситуацию если реквизита номер нету в исходной таблице
4 palpetrovich
 
17.03.15
13:30
(2) дык, а что в нем?
5 DES
 
17.03.15
13:32
(3) запускаю в отладчике, там ругается что нужно поместить в таблицу, а ПОМЕСТИТЬ пишу, ругается на синтаксис
6 Любопытная
 
17.03.15
13:33
(5) а что в параметре?
7 Fedor-1971
 
17.03.15
13:33
(5) в консоли запросов попробуй
8 ssh2006
 
17.03.15
13:34
(0) никак. Делается так:

    Запрос.Текст =
    "ВЫБРАТЬ
    |" + ТекстПолей + "
    |ИЗ
    |    " + Ссылка.Метаданные().ПолноеИмя() + " КАК ПсевдонимЗаданнойТаблицы
    |ГДЕ
    |    ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка
    |";
9 Dmitrii
 
гуру
17.03.15
13:35
выбрать * из &ТипДокумента поместить в ТипДокумента; выбрать  Максимум(док.Номер) КАК Номер ИЗ ТипДокумента Как док ГДЕ  док.Номер ПОДОБНО (&Префикс)
10 Господин ПЖ
 
17.03.15
13:35
(8) ловите наркомана

(9) +1
11 DES
 
17.03.15
13:35
вот примеры в инете
Запрос.Текст =
        "ВЫБРАТЬ
        |    ТаблицаМебели.Наименование,
        |    ТаблицаМебели.Артикул,
        |    ТаблицаМебели.Цена
        |ПОМЕСТИТЬ ВТ_ТаблицаМебели
        |ИЗ
        |    &ТаблицаМебели КАК ТаблицаМебели
        |;
        /
12 palpetrovich
 
17.03.15
13:37
(11) ну дык, тут &ТаблицаМебели - это ТЗ
13 Любопытная
 
17.03.15
13:37
(11) ТаблицаМебели - Таблица значений, а не тип документа.
14 Господин ПЖ
 
17.03.15
13:37
(11) и?

сначала таблицу из параметра надо затолкать в ВТ, а потом уже к ВТ обращаться за данными
15 Любопытная
 
17.03.15
13:38
(14) ТС хочет параметром тип документа передавать, а не таблицу значений. Так что кто тут наркоман еще надо присмотреться...
16 Господин ПЖ
 
17.03.15
13:39
а источник описывать в параметре - это точно наркомания...

охота на соединения посмотреть к таким таблицам
17 palpetrovich
 
17.03.15
13:39
(15) ну зачем так, может он просто неудачно обзвал параметр :)
18 Любопытная
 
17.03.15
13:40
(17) Ну очень неудачно
19 ssh2006
 
17.03.15
13:40
(15) +1
20 DES
 
17.03.15
13:41
(16) ну предложите функцию которая вычисляет максимальный номер любого документа имеющего префикс в номере.
21 fisher
 
17.03.15
13:41
(0) Не взлетит. Ты по сути хочешь динамическое формирование текста запроса на уровне парсера.
22 fisher
 
17.03.15
13:42
(20) Тебе уже подсказали в (8)
23 DES
 
17.03.15
13:43
(21) не скажи
и еще третий день пользуюсь (ИР) . там можно в консоле запросов отлаживать запросом  ПОМЕСТИТЬ в ВТ ?
24 Господин ПЖ
 
17.03.15
13:43
(20) а причем тут (11)?

собирай тогда текст запроса динамически как в (8)
25 ssh2006
 
17.03.15
13:43
(20)см (8) , это примерно. Т.е. текст запроса придется формировать. Передаешь в функцию ссылку, "источник" определяется через метаданные Ссылка.Метаданные().ПолноеИмя()
26 DES
 
17.03.15
13:46
(25) да я в курсе про текст.
Я спрашиваю про ПАРАМЕТР
27 Любопытная
 
17.03.15
13:46
(26) нельзя так сделать
28 Любопытная
 
17.03.15
13:46
Что ты в параметр передашь в таком варианте?
29 DES
 
17.03.15
13:51
(28) могу текст "Документ.ПКО"
30 palpetrovich
 
17.03.15
13:53
(26) если надо выбрать какой-то номер из документов всех видов, то надо как-то так
цикл по метаданным с получением вида
текстЗ = "выбрать док.номер из док."+ Вид +" объединить все";
потом последний "объединить все" удалить

зы нафейхуа это нужно  - непонятно :)
31 fisher
 
17.03.15
13:54
(29) А можешь и весь текст запроса туда засунуть. Только всё равно работать не будет. В части передачи ТЗ во временную таблицу - это такой специальный синтаксис в виде исключения. Именно для этого и ни для чего больше. Как бы тебе не хотелось другого.
32 DES
 
17.03.15
13:56
(30) Быстро схватываешь!
Я и передаю ПАРАМЕТРОМ тип интересующего документа.
33 palpetrovich
 
17.03.15
14:00
(32) хе, я итам наврал кстати, там надо просто " объединить"
а если запрос к документу одного вида - то вообще непонятно какие проблемы
"ВЫБРАТЬ
        Максимум(Док.Номер) КАК Номер
    ИЗ
        Документ."+ ТвойВид +" как Док
    ГДЕ
        Док.Номер ПОДОБНО (&Префикс)"
34 Любопытная
 
17.03.15
14:04
(32) ты не передашь параметром тип документа. Это будет не параметр, а вставка в текст.
35 palpetrovich
 
17.03.15
14:06
(34) он пытается :)
36 DES
 
17.03.15
14:10
(34) см. (11)
37 fisher
 
17.03.15
14:11
(36) Вот упрямый человек. Это вовсе не источник параметром. Это просто заглушка для парсера, чтобы он не удивлялся временной таблице из ниоткуда и знал, какие у неё есть поля.
38 Nuobu
 
17.03.15
14:15
(36) Чуть позже будет написано СтрЗаменить(ТекстЗапроса, "&ТипДокумента", ЗаказПокупателя);
39 Любопытная
 
17.03.15
14:17
(36) в (11) в параметр &ТаблицаМебели передается ТАБЛИЦА ЗНАЧЕНИЙ, а не тип документа.
40 palpetrovich
 
17.03.15
14:17
(36) ну, ежели хочеться странного, то:

"ВЫБРАТЬ
|Док.Номер
|ПОМЕСТИТЬ ВТ_Номера
|ИЗ Документ.РеализацияТоваровУслуг как Док
|;
|ВЫБРАТЬ
|Максимум(ВТ_Номера.Номер) КАК Номер
|ИЗ ВТ_Номера
|ГДЕ
|ВТ_Номера.Номер ПОДОБНО (&Префикс)"
Запрос.УстановитьПараметр("Префикс", "%" + Префикс + "%");
41 fisher
 
17.03.15
14:19
(39) Ты повторяешься :)
42 Любопытная
 
17.03.15
14:20
(41) Ну что поделать, если первый раз меня не заметили)
43 DES
 
17.03.15
14:21
(39) Ну Вы поняли что источник данных передан в запрос посредством параметра?
44 Любопытная
 
17.03.15
14:22
(43) Поняли. Если &ТипДокумента у тебя - таблица значений - пихай на здоровье, мне не жалко. Только вот с (29) как-то не стыкуется
45 DES
 
17.03.15
14:23
Как узнать длину номера документа ?
46 fisher
 
17.03.15
14:24
Не пост, а брейн-ринг какой-то пополам с "тупой, еще тупее".
47 palpetrovich
 
17.03.15
14:27
(46) иди отсюда, не порть нам "брейн-ринг" :)
48 ssh2006
 
17.03.15
14:29
(45) свойство метаданных ДлинаНомера
49 Timon1405
 
17.03.15
14:29
(45)
ДлинаНомера = Метаданные.Документы[ИмяМетаданного].ДлинаНомера;
Также рекомендую такую проверку
Если НЕ Строка(ДокМетаданные.ТипНомера)="Число" Тогда
знакомая картина, я так понимаю у вас обычные формы и полетела нумерация по всем документам из-за риба/еще чего-то?
50 Любопытная
 
17.03.15
14:30
(49) Вы забываете, что он хочет этого в запросе
51 DES
 
17.03.15
14:36
(50) нет, это уже обработка найденного номера
Программист всегда исправляет последнюю ошибку.