#0
by mc_jet
У меня есть две колонки с "кол-во 1" и "кол-во 2", необходимо, чтобы в результате запросы было одно поле "кол-во 1 из кол-во 2". Т.е. я через ПРЕДСТАВЛЕНИЕ получаю кол-во 1 тип строка, а вот сложить строки не получается. Помогите, пожалуйста.
#4
by mc_jet
т.е. мне не получить "8 / 10". нужно кол-во из числа превратить в строку, а потом сложить.
#5
by Ануфрий
Работает, видимо в новых платформах так можно... раньше у меня такое не выходило, потому решил проверить.
#8
by ZolotarevAA
Не знаю, в чем кривизна вопроса, но число со строкой в одном поле запроса у меня совместить не удается. На каком релизе платформы работает?
#9
by ЗлобнийМальчик
кому то удалось заставить 1с сложить число со строкой??? Восхитительно. Нельзя из числа получить строку нормальными методами. Можно конечно создать справочник с реквизитами от 0 до миллиона и их строковыми представлениями и с ним соединять....
#10
by Повелитель
В уже писал что строка + число не будет работать. Ты еще метод не запатентовал? Можно конечно создать справочник с реквизитами от 0 до миллиона и их строковыми представлениями и с ним соединять.... Можно тогда я запатентую?
#12
by ЗлобнийМальчик
патентуй. Тока я же написал - это не нормальный метод. Но если очень сильно хочется....
#17
by ZolotarevAA
Уважаемые специалисты, вместо разведения демагогий просьба продемонстрировать рабочий текст запроса с удивительными преобразованиями специально для чайников типа меня. Чтобы решить вопрос враз и навсегда :)
#23
by ОператорПК
понятно из контекста в (0,) что количество может быть не целым + оно не ограничено числом 999....
#24
by Terv
задача перевода числа из строки, всегда является нетривиальной... допустим перевод строки "152абвга" в число : -в 7.7 Число("152абвга") = 152 -в 8.1 Число("152абвга") - будет ошибка периода исполнения
#25
by Terv
+ да и какая религия запрещает тебе доработать что бы учитывала и отрицательные и дробные значения ?
#26
by ОператорПК
через попытку надо делать + не факт что Число("152абвга") = 152 - есть верное решение
#28
by Terv
кхе... а ты хотел большой и чистой любви и что бы задешево? я где то в утверждал, что запрос будет маленький?
#29
by ОператорПК
всех обозвал бумагоморателями - а сам выдал креатифф на 2 листа, не универсального метода (а скорее часный случай) , которого ожидали после ....
#30
by ЗлобнийМальчик
я, кстати, продолжаю настаивать на том, что вариант с созданием индексированного справочника для дробной и целой части - это куда меньшее зло, чем написание такого вида запросов. Ибо, допустим, поиск по справочнику из 1000000000 элементов займёт всего 30 операций - а количество операций (и длина) аналогичного по эффективности запроса не поддается моему воображению
#31
by Terv
можно сделать универсальным )) только зачем? >всех обозвал бумагоморателями а кто тут развернул дискуссию, что это невозможно?
#35
by mc_jet
Уточню вопрос: Существует регистр сведений в нем два ресурса "кол-во 1" тип число, длина 3, точность 0, неотрицательное и "кол-во 2" тип число, длина 3, точность 0, неотрицательное. Хочу получить из запроса одно поле "кол-во 1 / кол-во 2" (например, 6 / 10, 15 / 20).
#37
by ОператорПК
"можно сделать универсальным )) только зачем" - задачи из время от времени бывают. "а кто тут развернул дискуссию, что это невозможно" - невозможно "нормальным" способом, не путем пербора строки на все возможные входжения.
#39
by Фокусник
какая нужда заставила получить "6 / 10", "15 / 20" именно в запросе, а не при обходе результата, при выводе и т.д.?
#41
by NewNick
Запрос = Новый Запрос(" ВЫБРАТЬ "+ВЗапросеИзЧислаСтроку("РС.Количество1",15,2,"")+"+""/""+"+ВЗапросеИзЧислаСтроку("РС.Количество2",15,2,"")+" КАК Стр из РегистрСведений.НашЛюбимыйРегистр КАК РС");
#42
by mc_jet
Если бы результат я обходил перед помещением его в таблицу, я вопрос не задавал. Я результат просто выгружаю в табличное поле..
#43
by mc_jet
Написано, конечно, круто, но у меня не заработало, наверно у меня с руками что-нибудь, вот ответ ВЗапросеИзЧислаСтроку(6,3,0) ВЫБОР КОГДА 6 < 100 ТОГДА "" КОГДА 6 < 10 ТОГДА "" если я правильно рассчитал, будет всегда 0
#46
by mc_jet
не работает вот одна строка из ответа функции: КОГДА ВЫРАЗИТЬ(( ВЫБОР КОГДА 6<0 ТОГДА -6 ИНАЧЕ 6 КОНЕЦ -0.5-10*ВЫРАЗИТЬ(( ВЫБОР КОГДА 6<0 ТОГДА -6 ИНАЧЕ 6 КОНЕЦ -5)/10 КАК ЧИСЛО(15, 0)))/1 КАК ЧИСЛО(15, 0))=6 Тогда "6" ВЫБОР КОГДА 6<0 ТОГДА -6 ИНАЧЕ 6 КОНЕЦ ------ это ------ 6 ВЫРАЗИТЬ(( ВЫБОР КОГДА 6<0 ТОГДА -6 ИНАЧЕ 6 КОНЕЦ -5)/10 КАК ЧИСЛО(15, 0)) ------ ВЫРАЗИТЬ((6-5)/10 КАК ЧИСЛО(15, 0)) -------- это --------- 0 ВЫРАЗИТЬ(( ВЫБОР КОГДА 6<0 ТОГДА -6 ИНАЧЕ 6 КОНЕЦ -0.5-10*ВЫРАЗИТЬ(( ВЫБОР КОГДА 6<0 ТОГДА -6 ИНАЧЕ 6 КОНЕЦ -5)/10 КАК ЧИСЛО(15, 0)))/1 КАК ЧИСЛО(15, 0)) ------- ВЫРАЗИТЬ((6-0.5-10*0)/1 КАК ЧИСЛО(15, 0)) -------- это ------ 0 этот 0 получаем во всех строках проверил просто взял функцию и вызываю ее ВЗапросеИзЧислаСтроку(6,3,0) что я не так делаю???
#47
by NewNick
ВЫРАЗИТЬ((6-0.5-10*0)/1 КАК ЧИСЛО(15, 0)) -------- это ------ 0 очень странно что это 0 у меня это 6 ;) шас в 8.0 посмотрю
#48
by NewNick
в 8.0 файловой в консоли выбрать ВЫРАЗИТЬ((6-0.5-10*0)/1 КАК ЧИСЛО(15, 0)) как стр результат 6
#52
by NewNick
забавно ... делаем новую обработку в модуль обработки впихиваем открываем в предприятии. что оно написало ? у меня Полученная строка : 6
#53
by mc_jet
а у меня 0 запихал без изменения в модуль обработки причем, ВЗапросеИзЧислаСтроку("6",3,0) "6" - в данном случаи строка, а в действительности это число, даже с учетом, что эска умеет сама преобразовывать я проверил и так ВЗапросеИзЧислаСтроку(6,3,0), но увы, результат ноль
#54
by NewNick
ппц мистика. если ВЫРАЗИТЬ((6-0.5-10*0)/1 КАК ЧИСЛО(15, 0)) дает 6 то должно сработать "6". какая платформа ? кто нить из форумчан если не влом протестити пример из плиз. я через 2 часа у клиента на серверных вариантах 8.0 и 8.1 проверю.(MSSQL) насчет """6"" в данном случае строка" - в тексте запроса оно не строка, а обычное число 6.
#57
by NewNick
фокус в том что 8.0.18(минимально проверенная версия) округляет в запросе по арифмитическим правилам а 8.0.14 просто берет целое
#58
by NewNick
нет не в этом дело выбрать ВЫБОР КОГДА ВЫРАЗИТЬ(( ВЫБОР КОГДА 6<0 ТОГДА -6 ИНАЧЕ 6 КОНЕЦ -0.5-10*ВЫРАЗИТЬ(( ВЫБОР КОГДА 6<0 ТОГДА -6 ИНАЧЕ 6 КОНЕЦ -5)/10 КАК ЧИСЛО(15, 0)))/1 КАК ЧИСЛО(1, 0))=6 Тогда "6" ИНАЧЕ "лажа" в ранних версиях не работает зато выбрать ВЫБОР КОГДА ВЫРАЗИТЬ(( ВЫБОР КОГДА 6<0 ТОГДА -6 ИНАЧЕ 6 КОНЕЦ -0.5-10*ВЫРАЗИТЬ(( ВЫБОР КОГДА 6<0 ТОГДА -6 ИНАЧЕ 6 КОНЕЦ -5)/10 КАК ЧИСЛО(15, 0)))/1 КАК ЧИСЛО(1, 0))-6=0 Тогда "6" ИНАЧЕ "лажа" работает. шас выложу исправленную функцию
#61
by mc_jet
Спасибо, NewNick, но ошибка уже другая. Пишу так: Запрос = Новый Запрос; Выдает ошибку при выполнении: {ВнешняяОбработка.s}: Ошибка при вызове метода контекста (Выполнить): Ошибка выполнения запроса "Ошибка при выполнении операции над данными: Microsoft OLE DB Provider for SQL Server: Arithmetic overflow error converting numeric to data type numeric. " по причине: {ВнешняяОбработка.s}: Ошибка при вызове метода контекста (Выполнить): Ошибка выполнения запроса "Ошибка при выполнении операции над данными: Microsoft OLE DB Provider for SQL Server: Arithmetic overflow error converting numeric to data type numeric. " по причине: Ошибка выполнения запроса "Ошибка при выполнении операции над данными: Microsoft OLE DB Provider for SQL Server: Arithmetic overflow error converting numeric to data type numeric. " Вот такие пироги.
#64
by NewNick
слаб оказался мсскуль ;) попзже если время будет соптимизирую. там вобшем можно просче выражения слепить.
#65
by NewNick
мускуль наверно не причем. попробуй на периодах. и замени в функции "как число(1,0)" на "как число(15,0)" но функцию я все равно попозже соптимизирую ;)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как сложить время? Например 12:26 + 05:06 = 17:32
- Как сложить две таблицы значений?
- Тип(Реквизит.Тип) = Тип("Строка")
- Тип(Реквизит.Тип) = Тип("Строка")
- Как сложить два реквизита?
- ТабличноеПоле.Колонки.Добавить.... Как узнать позицию колонки?
- v7: В типовой конфигурации Табло содержит две колонки «Значение» и «Выражение», причем
- Как вывести расчетные листки в две колонки
- Можно ли в ТЗ у колонки указать составной тип: строка, число?
- Как привести значение типа "Описание типов" к значению типа "Тип"
- Как определить тип колонки Табличного поля тип Таблица значений
- Сложить две строки в запросе
В этой группе 1С
- v7: Отражение ретроспективной скидки в 1с Бухгалтерия предприятия 8.1
- Монопольный режим
- Настройка поддержки недоступна .......как сделать доступной?
- "недопустимое значение элемента"(43)
- Колонтитулы в печатных формах
- Нумерация в "управлении торговлей" ред. 10.3
- Документ "Инвентаризация товаров на складе"
- Доход в неденежной форме
- Проведение OLE
- Гранд-Смета + Подрядчик строительства. Кодировка в сметной документации
- Как узнать где находится файл внешней печатной формы?
- УТ 10.3 Серийные номера > Чек > Закрытие смены... Почему не переносятся сер
- Недопустимое символьное значение спецификации броска. Что за хрень?
- Отправка печатных форм документов по электронке из 1С
- ТИИ создал пустые доки в ЗиК.
- БУХ8 Учет взаиморасчетов с контрагентами "по документам" за и против.
- Не замещение объектов... УниверсальныйОбменДаннымиXML 2.0.21.1
- Как удалить обьект из справочника контрагентов (помеченный на удаление)
- Как при печати в табличный документ вывести некоторые слова разными цветами
- Как запрос выгрузить в ТЗ