![]() |
![]() |
|
Полный код элемента справочника | ☑ | ||
---|---|---|---|---|
0
New Iriska
03.09.10
✎
11:38
|
Подскажите, пожалуйста, как в запросе можно получить полный код отобранных элементов справочника?
|
|||
1
Волшебник
03.09.10
✎
11:39
|
В запросе никак.
В языке ПолныйКод() |
|||
2
Jstunner
03.09.10
✎
11:40
|
(0) можно для ограниченной вложенности, но зачем?
|
|||
3
New Iriska
03.09.10
✎
11:44
|
что значит зачем? задача такая стоит. Действительно, у меня ограниченная вложенность. В книге есть пример, как получить полный код, если код у элементов справочника типа данных строка, а у меня числовой. Подскажи, как в этом случае быть. Ведь в тексте запроса нельзя приводить тип к строке
|
|||
4
Defender aka LINN
03.09.10
✎
11:45
|
(3) "что значит зачем? задача такая стоит" - ты вот нам сейчас пытаешься рассказать, что у тебя есть учетная задача, которая заключается в том, чтобы получить полный код справочника запросом?
|
|||
5
Jstunner
03.09.10
✎
11:45
|
(3) озвучь задачу, где надо полный код в запросе
|
|||
6
sergeev-ag-1977
03.09.10
✎
11:49
|
На днях же было ... Только - почему это код стал числом ? Число это то над чем будут производиться действия + - / *, а у Вас это срока. По строке вчера или позавчера писали уже...
|
|||
7
New Iriska
03.09.10
✎
11:52
|
У меня два справочника: ОбъектыКонтрагентов и КартаСети. Одному объекту карты сети может соответствовать несколько объектов контрагентов. Мне надо показать пользователю название объекта контрагента, его адрес, соответствующий ему объект карты сети, а еще контрагента вывести. А еще нужен полный код этого объекта карты сети для облегчения читабильности этого дела пользователем. Потом из этой параши производится поиск по критериям, заданным пользователем: по полному коду объекта карты сети, по наименованию и т.д.
|
|||
8
New Iriska
03.09.10
✎
11:52
|
"Только - почему это код стал числом ?" Он не стал числом, а вэтой системе он уже лет 5 был числом
|
|||
9
New Iriska
03.09.10
✎
11:55
|
а сначала выбрать, что мне надо, а потом в цикле проходить и определять функцией ПолныйКод() - это очень долго
|
|||
10
Defender aka LINN
03.09.10
✎
11:56
|
(7) Где тут сказано, что полный код нужно получать именно в запросе?
|
|||
11
New Iriska
03.09.10
✎
11:57
|
В (7) не сказано, причина в (8)
|
|||
12
Defender aka LINN
03.09.10
✎
11:59
|
(11) Ага. То есть, потому что код уже 5 лет - число, нужен запрос?
Если бы он 3 года, например, был бы числом всего, то его надо было бы получать уже не в запросе? |
|||
13
New Iriska
03.09.10
✎
12:00
|
я ошиблась, причина в (9) а сначала выбрать, что мне надо, а потом в цикле проходить и определять функцией ПолныйКод() - это очень долго
|
|||
14
Defender aka LINN
03.09.10
✎
12:03
|
(13) Тогда забудь про идею с полным кодом вообще, будет быстрее.
|
|||
15
hhhh
03.09.10
✎
12:13
|
(13) в запросе выбери коды всех родителей (группы, подгруппы), а в цикле просто их склеишь.
|
|||
16
sergeev-ag-1977
03.09.10
✎
12:14
|
Вот оно: http://help1c.com/faq/view/91.html
|
|||
17
New Iriska
03.09.10
✎
13:04
|
(16) это не оно, потому что у меня код типа данных число
|
|||
18
New Iriska
03.09.10
✎
14:11
|
(15) в том то и дело, что нельзя мне в получившемся результате пробегаться циклом, там куча записей, это медленно делается
|
|||
19
Dem1urg
03.09.10
✎
14:50
|
(17) А кто тебе сказал, что в запросе нельзя преобразовать число в строку?
|
|||
20
Dem1urg
03.09.10
✎
15:02
|
(19) Извиняюсь. Затупил.
|
|||
21
WickeD
03.09.10
✎
16:00
|
(17) ну и что, что число, пробуй (16) и все получится
|
|||
22
Defender aka LINN
03.09.10
✎
16:02
|
(21) Давай ты будешь перед тем, как что-то советовать, будешь это пробовать?
|
|||
23
PVV65
03.09.10
✎
16:18
|
Простой код для трехуровнего справочника
Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ |Контрагенты.Ссылка, |ВЫБОР | КОГДА (Контрагенты.Родитель.Код ЕСТЬ NULL ) ТОГДА Контрагенты.Код | КОГДА (Контрагенты.Родитель.Родитель.Код ЕСТЬ NULL ) ТОГДА Контрагенты.Родитель.Код | ИНАЧЕ Контрагенты.Родитель.Родитель.Код |КОНЕЦ КАК ПервыйУровень, |ВЫБОР | КОГДА (Контрагенты.Родитель.Код ЕСТЬ NULL ) ТОГДА NULL | КОГДА (Контрагенты.Родитель.Родитель.Код ЕСТЬ NULL ) ТОГДА Контрагенты.Код | ИНАЧЕ Контрагенты.Родитель.Код |КОНЕЦ КАК ВторойУровень, |ВЫБОР | КОГДА (Контрагенты.Родитель.Код ЕСТЬ NULL ) ТОГДА NULL | КОГДА (Контрагенты.Родитель.Родитель.Код ЕСТЬ NULL ) ТОГДА NULL | ИНАЧЕ Контрагенты.Код |КОНЕЦ КАК ТретийУровень |ИЗ |Справочник.Контрагенты КАК Контрагенты"; ТЗ = Запрос.Выполнить().Выгрузить(); ТЗ.Колонки.Добавить("ПервыйУровень1"); ТЗ.Колонки.Добавить("ВторойУровень1"); ТЗ.Колонки.Добавить("ТретийУровень1"); ТЗ.Колонки.Добавить("ПолныйКод"); Для нн = 0 По ТЗ.Количество() - 1 Цикл ТЗ[нн].ПервыйУровень1 = Строка(ТЗ[нн].ПервыйУровень); ТЗ[нн].ВторойУровень1 = Строка(ТЗ[нн].ВторойУровень); ТЗ[нн].ТретийУровень1 = Строка(ТЗ[нн].ТретийУровень); ТЗ[нн].ПолныйКод = ТЗ[нн].ПервыйУровень1 + ?(ТЗ[нн].ВторойУровень1 = "","","/"+ ТЗ[нн].ВторойУровень1) + ?(ТЗ[нн].ТретийУровень1 = "","","/"+ ТЗ[нн].ТретийУровень1); КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |