Имя: Пароль:
1C
 
Получение длины строки в запросе
0 mzelensky
 
06.01.11
13:09
Доброго времени суток!

Собственно в запросе имеется реквизит строковый. Можно ли как-то определить длину строки функциями запроса??? ну что-то на подобие "СтрДлина()" ??? Если ДА, то как?
1 Amiralnar
 
06.01.11
13:10
Нет, наверное. Для зачем?
2 zladenuw
 
06.01.11
13:10
а зачем тебе длину строки в запросе ?
3 mzelensky
 
06.01.11
13:11
(1) ну я там хитрый номер формирую для иерархии и хочу группировку делать на основании длины этого самого номера. Было бы красиво, если можно было бы прям в запросе определить длину....а так через задницу прийдется...
4 Живой Ископаемый
 
06.01.11
13:12
v8: Где можно прочитать про функции в 1C SQL?

2(3) вы собираетесь делать фигню... и она останется на вашей совести
5 Amiralnar
 
06.01.11
13:13
Это понятно. А зачем такая иерархия?
6 mzelensky
 
06.01.11
13:14
(4) похожая проблема, но не то...
7 mzelensky
 
06.01.11
13:15
(5) ну вот НАДО чтобы была именно такая иерархия. Что-то типа "Структура связанных документов" в УТ.
8 Живой Ископаемый
 
06.01.11
13:16
В смысле "не то"?
У вас в в этом строковом реквизите какие символы(и каких точно не бывает), и какая его длина?
9 Живой Ископаемый
 
06.01.11
13:17
2(7) вы неправильно спроектировали данные. Не воспользовались всем арсеналом объектов, предоставляемых платформой. Не учли ограничения языка запросов.
10 mzelensky
 
06.01.11
13:18
(8) символы - числа и пробелы. Длина от нуля до 200 символов. Делятся на "разряды" по 6 символов отделенные пробелами.
11 mzelensky
 
06.01.11
13:18
(9) жесть....во лоханул :(
12 mzelensky
 
06.01.11
13:19
(9) а каким арсеналом объектов платформы нужно было воспользоваться?
13 Живой Ископаемый
 
06.01.11
13:24
2(12) без понятия. вы ведь не рассказываете про свою сложную иерархию, и если честно, то даже и не хочется про нее узнавать.

2(10) не от нуля до 200, а видимо всегда 200. Но начальные и конечные пробелы в длину видимо не включаются... ок.
Еще вопрос какая длина у такой строки:
"   345568 386102   " ?
14 Amiralnar
 
06.01.11
13:24
Строковый реквизит - это примитив. Слово, название, комментарий, и т.д.

Какой смысл из перечисленных заложен в ваш реквизит?
15 Murzz
 
06.01.11
13:26
выбор когда выразить(реквизит как строка(1)) = реквизит тогда 1
когда выразить(реквизит как строка(2)) = реквизит
тогда 2
иначе "хз" конец как ДлинаСтроки
16 mzelensky
 
06.01.11
13:28
(13) длина предоставленной строки = 19 символам (вместе с незначащими пробелами). у меня такого нет. У меня выглядит строка вот так (пример): "000001 000001 000002" или вот так "000012" или вот так "000012 000005" :) ну т.е. несколько разрядов по 6 чисел (число разрядов зависит от уровня иерархии)
17 Новиков
 
06.01.11
13:29
(16) "нарекаю тебя Сизифом" (с) ;)
18 mzelensky
 
06.01.11
13:30
(15) КРУТО!!!!Именно так и предлагали в (4) вот только что же делать если длина строки динамическая (т.е. максимум то 200 символов, но может быть от 0 до 200) ?
19 mzelensky
 
06.01.11
13:31
Ладно, люди - спасибо за внимание!!! Тема закрыта...пойду сделаю старым проверенным методом :)
20 MaxFoxxy
 
06.01.11
13:32
как вариант
Выборка = Справочники.ВАШСправочник.Выбрать();
И потом
Пока Выборка.Следующий() Цикл
посчитать функцией СтрДлинна() кол сиволов в нужном поле, и записать в ВТ
КонецЦикла

Потом привентить левым соединением это ВТ к осн запросу

Тупо но вариант...
21 mzelensky
 
06.01.11
13:33
(17) зря глумитесь, сударь - все будет работать замечательно...просто прийдется сделать чуток сложнее, чем хотелось бы!
22 Живой Ископаемый
 
06.01.11
13:33
23 mzelensky
 
06.01.11
13:34
(20) ну что-то похожее я и сделаю, только никуда во ВТ записывать не нужно...сразу буду определять уровень иерархии и выводить в отчет.
24 Amiralnar
 
06.01.11
13:34
та не.. он просто не знает, зачем справочнику иерархия..
25 mzelensky
 
06.01.11
13:36
(22) идею полнял ,спасибо! Вот ток мне тогда нужно 33 поля таких прописать
26 mzelensky
 
06.01.11
13:37
(24) чтобы было понятно зачем я это делаю:

v8: Подскажите алгоритм!
27 MaxFoxxy
 
06.01.11
13:37
(23) я думал осн сложность получить длинну строкового поля в ОСНОВНОМ запросе
28 mzelensky
 
06.01.11
13:37
(26) + я решил обойтись без справочника!
29 Новиков
 
06.01.11
13:39
(28) >>я решил обойтись без справочника!
"нарекаю тебя Сизифом еще раз" (с)

P.s.: правильный ответ кроется в (21) v8: Подскажите алгоритм!
30 Живой Ископаемый
 
06.01.11
13:40
а, ну там же была и годная идея - записывать в справочник с иерархией элементов... И тогда ничего не нужно было бы выдумывать
31 Новиков
 
06.01.11
13:40
и иногда еще желательно хотя бы одним глазиком подглядывать в типовые. Можно через узкую щелку ;)
32 Amiralnar
 
06.01.11
13:42
(26)
1. Открываешь демо базу типовой УТ
2. Открываешь произвольный заказ
3. Нажимаешь кнопку "Структура подчиненности"
4. ????
5. PROFIT!!!
33 Живой Ископаемый
 
06.01.11
13:44
2(32) он хочет запросом... критерий отбора в запросе юзать можно, но иерархию вроде не даёт
34 Amiralnar
 
06.01.11
13:44
(31) Собсно зачем?  Представь, у человека жизнь наполнена открытиями! Ему приходят озарения, и он чувствует себя героем!

Не то, что мы....
35 mzelensky
 
06.01.11
13:46
(32) критерий отбора используется, но сам попробуй реализовать отчет по примеру (0) в v8: Подскажите алгоритм! и ты сам поймешь почему использовать "структуру подчиненности" не вариант.
36 mzelensky
 
06.01.11
13:47
(29) (30) то ,что вы предлагаете гораздо сложнее того ,что я сделал! У меня уже полностью работает система формирования иерархии...и обошелся я всего навсего 2 маленькими запросами и одной рикурсивной процедурой!!! Так что извращаться со справочником не стал!
37 mzelensky
 
06.01.11
13:48
Как доделаю отчет - покажу что у меня получилось...вместе с формированием иерархии в документе! Чтобы вы просто понимали чего я хотел и чего добился своими действиями.
38 Новиков
 
06.01.11
13:56
(36) >>! У меня уже полностью работает система формирования иерархии
В иерархическом справочнике она по умолчанию работает.

>>Так что извращаться со справочником не стал!
У тебя в процессе кодинга произошла подмена понятий. То что ты делаешь сейчас - вот это - самое форменное извращение. Иногда его называют - костыль. Иногда - выкакашь. Иногда - просто гениальный код. Но смысл от этого не меняется. Это извращение. Вместо того, чтобы заюзать стандартную иерархию со всеми вытекающими в запросе, ты городишь свою иерархию, - опять же со всеми вытекающими.

Не, дело твое конечно ;)
39 Живой Ископаемый
 
06.01.11
14:05
да чего, отличный способ попрактиковаться...
40 Живой Ископаемый
 
06.01.11
14:07
просто если практикуешься, нужно решить задачу обоими способами... и только тогда уже какие-то суждения выносить.. А так - тебя прет твой способ и несет по нему, и ты уже не контролируешь это движение.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn