- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
Функция ТекстЗапросаИзСтрокиВЧисло(пИмяПоля, пДлинаСтроки, пСимволРазделителя=".")
лТекст="ВЫБОР ";
Для лДлинаЦелойЧасти=0 По пДлинаСтроки Цикл
Если лДлинаЦелойЧасти=пДлинаСтроки Тогда
лТекст=лТекст+"ИНАЧЕ"+Символы.ПС;
Иначе
лТекст=лТекст+"КОГДА ПОДСТРОКА("+пИмяПоля+", "+(лДлинаЦелойЧасти+1)+", 1)="""+пСимволРазделителя+""" ИЛИ ПОДСТРОКА("+пИмяПоля+", "+(лДлинаЦелойЧасти+1)+", 1)="""" ТОГДА "+Символы.ПС;
КонецЕсли;
Если лДлинаЦелойЧасти=0 Тогда лТекст=лТекст+" 0"+Символы.ПС; КонецЕсли;
Для лИнд=1 По лДлинаЦелойЧасти Цикл
лТекст=лТекст+" ВЫБОР "+Символы.ПС;
Для лЦифра=0 По 9 Цикл
лТекст=лТекст+" КОГДА ПОДСТРОКА("+пИмяПоля+", "+лИнд+", 1)="""+лЦифра+""" ТОГДА "+лЦифра+Символы.ПС;
КонецЦикла;
лТекст=лТекст+" ИНАЧЕ 0 КОНЕЦ"+?(лИнд=лДлинаЦелойЧасти, "", "*"+Формат(Pow(10, лДлинаЦелойЧасти-лИнд), "ЧРД=.; ЧГ=0")+"+")+Символы.ПС;
КонецЦикла;
Для лИнд=лДлинаЦелойЧасти+2 По пДлинаСтроки Цикл
лТекст=лТекст+"+ ВЫБОР";
Для лЦифра=0 По 9 Цикл
лТекст=лТекст+" КОГДА ПОДСТРОКА("+пИмяПоля+", "+лИнд+", 1)="""+лЦифра+""" ТОГДА "+лЦифра+Символы.ПС;
КонецЦикла;
лТекст=лТекст+" ИНАЧЕ 0 КОНЕЦ"+?(лИнд=лДлинаЦелойЧасти, "", "/"+Формат(Pow(10, лИнд-лДлинаЦелойЧасти-1), "ЧРД=.; ЧГ=0"))+Символы.ПС;
КонецЦикла;
КонецЦикла;
лТекст=лТекст+"КОНЕЦ";
Возврат лТекст;
КонецФункции
dens 25.04.2013 19:10 # +4
но особо поразил CamelStyle переменных
eth0 25.04.2013 19:28 # +2
Обычный аналог скуельного CASE WHEN THEN ELSE END.
kovyl2404 26.04.2013 11:09 # 0
guest 26.04.2013 18:04 # +1
kovyl2404 27.04.2013 11:43 # 0
eth0 26.04.2013 20:28 # 0
> К слову, в 1С есть достаточно развитые
Убогие "я-тыкаю-мышкой-смотрите-как-я-могу" средства, в которых многое можно сделать, но ничего интересного нельзя сделать легко.
> системы компоновки данных
Ололо, не все запросы сводятся к отчётикам. Как я уже рассказывал однажды прохладный сказ, на запросах делали поиск существующих документов, и он бы выглядел раза в два-три проще, понятнее и короче, если бы его генерировали по метаданным.
Нет, я не одобряю такой говномешанины, но иногда только хардкор.
guest
> Ты такой. Т.е. обычный одинесный дятел, и SQL если и видел, то только издалека.
Я общался однажды с одним дядькой, руководителем конторы шарашкины рога-копыта. Мы обсуждали разные вещи, в контексте баз данных и SQL, на его лице я прочитал удивление, после того, как заявил, что любой запрос можно быстрее (и эффективнее) написать руками, нежели построителем одноэса (благо местный язык запросов - унылое подмножество обычного).
Потом я ради интереса на работе занял комп с одноэсом и битый час пытался понять, как работает этот высер мышекликаньясовершенный артефакт инопланетного разума.
guest 27.04.2013 11:40 # 0
kovyl2404 27.04.2013 11:41 # 0
eth0 27.04.2013 19:02 # 0
Если скд позволяет делать что-то, кроме отчётов, то это плюс.
Но это не исправит говняности конструктора.
kovyl2404 27.04.2013 19:38 # 0
eth0 28.04.2013 11:52 # 0
Заценю как-нибудь в свободное время, попытаю коллег, авось где-нибудь можно будет найти вне отчётов.
kovyl2404 28.04.2013 17:23 # 0
eth0 28.04.2013 18:37 # 0
wvxvw 25.04.2013 21:36 # 0
Вообще, как когда-то говорил один мой знакомый редактор спортивных новостей: пока в русском тексте нету мата, он будет вызывать интуитивное отторжение у русскоязычного читателя. Я думаю, что отсутствие жизненной правды в этом замечательном языке (1С), мешает носителям замечательного языка (русского) всецело погрузится.
vistefan 26.04.2013 00:10 # +2
wvxvw 26.04.2013 01:20 # −4
eth0 26.04.2013 20:28 # +2
nonamez 25.04.2013 21:39 # 0
guest 27.08.2013 22:20 # +1
bormand 27.08.2013 22:30 # −1
Эээ... а функции Строка(), Формат() и Число() что тогда делают?
bot 28.08.2013 00:02 # −3
guest 14.11.2015 15:58 # 0
guest 20.11.2015 07:36 # 0
guest 20.11.2015 15:09 # 0
guest 24.11.2015 09:43 # 0
Zeratul 11.02.2014 15:24 # +1
Вот эта ужасная конструкция как раз и служит для такого преобразования в запросе. Выглядит ужасно, но работает.
Практическая необходимость порой возникает, но лично я обычно иду другим путем - преобразования вне запросов, так читабельность итогового запроса намного выше.
bormand 11.02.2014 16:09 # 0
Мда, весело у вас там ;)
Zeratul 12.02.2014 11:58 # +1
Это ещё не все веселые моменты ;)
guest 14.11.2015 20:36 # 0
guest 18.01.2014 16:04 # 0
guest 19.09.2014 15:01 # 0
guest 14.11.2015 13:29 # 0
guest 20.11.2015 07:31 # 0
guest 20.11.2015 15:05 # 0
guest 24.11.2015 09:40 # 0