Как узнать, что строка с числами содержит нужное чило??? только не в запросе. #517908


#0 by ks-815
$25$11$2$4  - строка чисел содержит $2. как это с помощью условия получить???
#1 by Buster007
Найти
#2 by supremum
СтрЧислоВхождений(Строка,ПодстрокаПоиска)
#3 by ks-815
выберется $25, потому что там $2 содержится
#4 by Aleksey
$2$ ?
#5 by Wobland
а если искать $2$
#6 by ks-815
ааааааааааа! не получается!!!!!!!!!!!! если надо найти 2, выбирается 25 тоже!!
#7 by Дарт Вейдер
ну дык и ищи  "$"+НужноеЧисло+"$"
#8 by Wobland
а если искать $2$ плюс отдельно смотреть на конец строки
#9 by Dmitr
Тогда ищи не $2 а $2$
#10 by Buster007
ну если тебе надо точно, чтобы искалась цифра, то, если предположить, что разделитель чисел является $, то и ищем $2$ и все найдется отлично
#11 by ks-815
Для Каждого СтрокаВыборка1 Из Выборка1 Цикл
#12 by Buster007
ого скока ответов появилось, пока отвечал )))
#13 by Живой Ископаемый
расскажите пожалуйста что такое $25$11$2$4
#14 by Дарт Вейдер
вот так напиши и будет тебе счастье пНомерНайденной = СтрЧислоВхождений("$" +СтрокаВыборка2.СтрокаСкидок+"$", "$" + Номер+"$");
#15 by ks-815
$25$11$2$4 - это код скидки. он создаётся в регистре сведений СКИДКИ. а просто $2 - это порядковый номер скидки в справочнике СКИДКИ. это единственный способ связать справочник и регистр.
#16 by Wobland
про последнее число не забываем
#17 by ks-815
а конец строки???? надо ещё  ИЛИ написать что ли??
#18 by Wobland
>>это единственный способ связать справочник и регистр. шо, правда?
#19 by ks-815
я очень честная девочка!!
#20 by Живой Ископаемый
2 не единственный... кроме того решение о хранении в таком виде - тоже не единственное, и далеко не самое удобное.. к тому веду... Ответьте еще на один вопрос === какое максимальное число которое может содержаться в такой строке: $25$11$2$4 то есть проще говоря - какое максимальное число между двумя знаками доллара?
#21 by Дарт Вейдер
ниче не надо больше
#22 by Шапокляк
А такой способ как разобрать эту строку на числа вообще теперь не рассматривается? Прикольный
#23 by ks-815
максимальное число - это количество скидок в справочнике. $25$11$2$4 означает, что к товару привязаны скидка №25, №11, №2....
#24 by Abs4
тоже интересно, можешь сказать почему нельзя связать этот регистр и справочник?
#25 by Живой Ископаемый
2 да, хотел узнать именно - какое максимальное число вы закладываете что у вас будет скидок?
#26 by Живой Ископаемый
Теперь рассказываю что вы сделали...  Вы изобрели машину времени... На это машине времени вы попали в Древний Рим. и у вас появилась задача - считать. И вы изобрели, как это и было - НЕпозиционную систему счисления. У вас есть выбор - либо продолжать мучаться с ней, либо немного ускорить свою машину времени и оказаться немного в будущем, в Индии и изобрести позиционную систему счисления... Показать как?
#27 by ks-815
ну если покопаться в базах магазинов, у них там почти 100 скидок. у них много помеченных на удаление. я пишу обработку, которая отвязывает привязки удалённых скидок.
#28 by Живой Ископаемый
2 так и думал... дайте 10-20 минут
#29 by aleks-id
пНомерНайденной = СтрЧислоВхождений(СтрокаВыборка2.СтрокаСкидок+"$", "$" + Номер+"$");
#30 by ks-815
и        :)
#31 by Шапокляк
А если поменять структуру регистра? Например, Измерения: товар, скидка (ссылка на справочник скидок) и ресурс Действует логического типа? Тогда и запросами все видно что нужно, и извращениями не приходится заниматься.
#32 by ks-815
тут только 1 раз надо поизвращаться. я работаю слугой у программистов. мне нельзя прикасаться к их божественному коду... можно только свой писать.
#33 by aleks-id
прострели им коленку
#34 by ks-815
КУКАРЕКУ!!!!!!!! прошло 20 минут!!
#35 by Живой Ископаемый
2 Итак... позиционная система счисления... У вас проблема в том что вы решили хранить к товару всего лишь одну запись РС, в котором будут будут все действующие на него скидки, как будто нельзя в этом РС хранить несколько записей. Ну это ладно. Раз программисты у вас божественные, то боги им судьи... Теперь дальше... Вы храните все действующие скидки как строку, которая состоит из кодов элементов справочника скидок. И неудобство в этом в частности такое, что коды могут быть двух и трех значные. Но человечество давно решило эту задачу... Смотрите, ради простоты предположим, что скидок у нас может быть 10. И для некоего товара будут действовать 3-я, 6 и 10. То как вы делаете это сейчас, приходится записывать так: $3$6$10$ То как это делает все остальное человечество, записывается так: То есть я предлагаю хранить вам не идиотского вида строку "$3$6$10$" а число 1096, из которого мы однозначно определяем что для товара действует скидка 3,6 и 10. Да, с определенной точки зрения это магия.
#36 by aleks-id
Фельдфебель начал  свертывать  цигарку.   Швейк   между  тем разглядывал номер винтовки и вдруг воскликнул:     -- Четыре тысячи двести шестьдесят восемь! Такой номер был у одного   паровоза  в Печках. Этот  паровоз  стоял на шестнадцатом пути. Его собирались увести на ремонт в депо Лысую-на-Лабе,  но не  так-то  это  оказалось просто, господин фельдфебель, потому что у старшего машиниста, которому поручили его туда перегнать, была прескверная память на  числа.  Тогда  начальник  дистанции позвал  его  в свою канцелярию и говорит: "На шестнадцатом пути стоит  паровоз  номер четыре тысячи двести шестьдесят  восемь.  Я знаю,  у  вас плохая память на цифры, а если вам записать номер на бумаге, то вы бумагу эту также потеряете. Если у  вас  такая плохая  память  на цифры, послушайте меня повнимательней. Я вам докажу, что очень  легко  запомнить  какой  угодно  номер.  Так слушайте:  номер   паровоза ,  который  нужно  увести  в  депо  в Лысую-на-Лабе,--  четыре  тысячи  двести   шестьдесят   восемь. Слушайте  внимательно.  Первая  цифра -- четыре, вторая -- два. Теперь вы уже помните сорок два, то есть дважды два --  четыре, это  первая цифра, которая, разделенная на два, равняется двум, и рядом получается четыре и два. Теперь не  пугайтесь!  Сколько будет  дважды  четыре?  Восемь,  так  ведь?  Так запомните, что восьмерка в номере четыре тысячи двести шестьдесят восемь будет по порядку последней. После того как вы запомнили,  что  первая цифра  --  четыре,  вторая  --  два, четвертая -- восемь, нужно ухитриться и запомнить эту самую шестерку, которая стоит  перед восьмеркой, а это очень просто. Первая цифра-- четыре, вторая-- два.  а  четыре  плюс два -- шесть. Теперь вы уже точно знаете, что вторая цифра от конца -- шесть; и теперь у вас этот порядок цифр никогда не вылетит из головы. У вас в памяти  засел  номер четыре  тысячи  двести шестьдесят восемь. Но вы можете прийти к этому же результату еще проще...     Фельдфебель перестал курить, вытаращил на  Швейка   глаза  и только пролепетал:     -- Карре аb! / Снять головной убор! (нем.)/      Швейк  продолжал вполне серьезно:     -- Тут он начал объяснять более простой способ запоминания номера  паровоза  четыре тысячи двести шестьдесят восемь. "Восемь без двух  --  шесть.  Теперь вы уже знаете шестьдесят восемь, а шесть минус два --  четыре,  теперь  вы  уже  знаете  четыре  и шестьдесят  восемь,  и  если  вставить  эту  двойку, то все это составит четыре -- два -- шесть  --  восемь.  Не  очень  трудно сделать  это  иначе,  при помощи умножения и деления. Результат будет тот же самый. Запомните,-- сказал начальник  дистанции,-- что  два  раза сорок два равняется восьмидесяти четырем. В году двенадцать месяцев. Вычтите теперь двенадцать  из  восьмидесяти четырех,  и останется семьдесят два, вычтите из этого числа еще двенадцать  месяцев,  останется   шестьдесят.   Итак,   у   нас определенная шестерка, а ноль зачеркнем. Теперь уже у нас сорок два,  шестьдесят  восемь,  четыре.  Зачеркнем ноль, зачеркнем и четверку сзади, и мы преспокойно опять получили  четыре  тысячи двести  шестьдесят  восемь,  то  есть  номер   паровоза , который следует отправить в депо в Лысую-на-Лабе. И с помощью  деления, как   я   уже   говорил,   это  также  очень  легко.  Вычисляем коэффициент,  согласно  таможенному   тарифу..."   Вам   дурно, господин   фельдфебель?  Если  хотите,  я  начну,  например,  с "General  de  charge!  Fertig!  Hoch  an!  Feuer!"  /  Стрельба залпами!  (франц.)  Готовьсь!  На  прицел!  Пли!  (нем.)/  Черт подери! Господину капитану не следовало посылать вас на солнце. Побегу за носилками.
#37 by Живой Ископаемый
2 на форуме запрещен флуд в тематических ветках... Уж не знаю как насчет оверквотинга
#38 by aleks-id
это я к и имел ввиду, что человек ничего не понял, а своим постом ты окончательно запутал ТС...
#39 by Живой Ископаемый
2 с чего ты взял, что запутал? По-моему я все расписал. Божественному программисту должно хватить чтобы уловить идею... Или может это ты про себя - что я тебя запутал?
#40 by ks-815
наша кассовая программа понимает формат только через $. но у одного бога появилось время, и вот что он мне прислал:
#41 by aleks-id
меня тяжело не то что запутать, но и удивить.
#42 by aleks-id
офигеть... беру свои слова обратно из ... я поражен...
#43 by Живой Ископаемый
2 плевать на вашу кассовую программу - нужна ей строка с долларами - пусть так и будет. Но что мешает по-прежнему божественному программеру добавить в РС поле, в котором хранить число, соответствующее этой строке, и с которым ему будет удобнее работать? Неужели божественным кассовые программы указ?
#44 by Живой Ископаемый
В конце концов, если уж на то пошло, то в любой типовой есть функция РазложитьСтрокуВМассивПодстрок - в качестве разделителя передав Доллар. И уж я не помню - в массиве можно искать среди элементов по значению?
#45 by Дарт Вейдер
.. извращенцы.. ну хотя.. ректальному формату - ректальный обработчик
#46 by ks-815
Я передала Ваше послание богам. раздался гром с небес, и громкий хмурый голос ответил: "регистры менять не будем!"
#47 by ks-815
в я писала про
#48 by Живой Ископаемый
Ну перешлите на Олимп ссылку:
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С