#10
by Buster007
ну если тебе надо точно, чтобы искалась цифра, то, если предположить, что разделитель чисел является $, то и ищем $2$ и все найдется отлично
#14
by Дарт Вейдер
вот так напиши и будет тебе счастье пНомерНайденной = СтрЧислоВхождений("$" +СтрокаВыборка2.СтрокаСкидок+"$", "$" + Номер+"$");
#15
by ks-815
$25$11$2$4 - это код скидки. он создаётся в регистре сведений СКИДКИ. а просто $2 - это порядковый номер скидки в справочнике СКИДКИ. это единственный способ связать справочник и регистр.
#20
by Живой Ископаемый
2 не единственный... кроме того решение о хранении в таком виде - тоже не единственное, и далеко не самое удобное.. к тому веду... Ответьте еще на один вопрос === какое максимальное число которое может содержаться в такой строке: $25$11$2$4 то есть проще говоря - какое максимальное число между двумя знаками доллара?
#22
by Шапокляк
А такой способ как разобрать эту строку на числа вообще теперь не рассматривается? Прикольный
#23
by ks-815
максимальное число - это количество скидок в справочнике. $25$11$2$4 означает, что к товару привязаны скидка №25, №11, №2....
#25
by Живой Ископаемый
2 да, хотел узнать именно - какое максимальное число вы закладываете что у вас будет скидок?
#26
by Живой Ископаемый
Теперь рассказываю что вы сделали... Вы изобрели машину времени... На это машине времени вы попали в Древний Рим. и у вас появилась задача - считать. И вы изобрели, как это и было - НЕпозиционную систему счисления. У вас есть выбор - либо продолжать мучаться с ней, либо немного ускорить свою машину времени и оказаться немного в будущем, в Индии и изобрести позиционную систему счисления... Показать как?
#27
by ks-815
ну если покопаться в базах магазинов, у них там почти 100 скидок. у них много помеченных на удаление. я пишу обработку, которая отвязывает привязки удалённых скидок.
#29
by aleks-id
пНомерНайденной = СтрЧислоВхождений(СтрокаВыборка2.СтрокаСкидок+"$", "$" + Номер+"$");
#31
by Шапокляк
А если поменять структуру регистра? Например, Измерения: товар, скидка (ссылка на справочник скидок) и ресурс Действует логического типа? Тогда и запросами все видно что нужно, и извращениями не приходится заниматься.
#32
by ks-815
тут только 1 раз надо поизвращаться. я работаю слугой у программистов. мне нельзя прикасаться к их божественному коду... можно только свой писать.
#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
наша кассовая программа понимает формат только через $. но у одного бога появилось время, и вот что он мне прислал:
#43
by Живой Ископаемый
2 плевать на вашу кассовую программу - нужна ей строка с долларами - пусть так и будет. Но что мешает по-прежнему божественному программеру добавить в РС поле, в котором хранить число, соответствующее этой строке, и с которым ему будет удобнее работать? Неужели божественным кассовые программы указ?
#44
by Живой Ископаемый
В конце концов, если уж на то пошло, то в любой типовой есть функция РазложитьСтрокуВМассивПодстрок - в качестве разделителя передав Доллар. И уж я не помню - в массиве можно искать среди элементов по значению?
#46
by ks-815
Я передала Ваше послание богам. раздался гром с небес, и громкий хмурый голос ответил: "регистры менять не будем!"
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- как узнать остаток по кассе в любой валюте имеющейся в справочнике валют?
- Как узнать размер таблицы в SQL базе?
- Что лучше, строка неогр.длины или строка 100 знаков.
- Как узнать узнать идентификатор конфигурации
- Как узнать, в каком режиме находится строка табличной части документа
- Как узнать сколько строк в запросе ?
- Как в запросе задать условие аналогичное "Содержит" для сравнения строк?
- Как узнать в запросе Строка это или Значение Справочник.Номенклатура?
- Как узнать список открытых окон в 1с и по их названию закрыть нужное окно?
- Как проверить с помощью 1с, содержит ли строка латинские,русские буквы и цифры?
- В подписке на событие узнать Интерактивная запись или нет?
- Сравнение Выразить(Строка) Подобно %Выразить(Строка)% - несовместимые типы
В этой группе 1С
- Условное оформление в динамическом списке
- Упр форма, не изм шрифт и цвет Заголовка
- Упр форма, не изм шрифт и цвет Заголовка
- Как быстрее всего объединить три таблицы значений в одну по ключам?
- Таблица РВД + Картинка из файла
- Как посмотреть остатки товаров в разных единицах измерения ? 1С 8.2 УТ 11
- Как в запросе получить последнее значение из выборки?
- Положение = "На следующей строке" не работает
- Параметры метода Остатки регистра бухгалтерии
- Как добавить Адрес доставки в Расходную накладную?
- ЗУП 2.5.28.1 не формируется форма Т-2
- 1С 8.1 Два одинаковых запроса, разный результат. Помогите разобраться.
- Самостоятельная регистрация изменений для РИБ
- Как отключить DEP в Windows 2008x64?
- Увеличить длину имени поля DBF
- QIP 2005
- SQL 2008 (v8.1): BACKUP detected corruption in the database log
- Бухгалтерия 8. Продажа валюты. Отчет о ДДС
- Бухгалтерия 2.0 Не ставится документ оплаты в счет-фактуру
- Альфа-Авто: Автосервис+ перенос данных 7.7 -> 8