Как сделать в Запросе одно из полей , которое получается путем сложения ... #106157


#0 by Said_We
Есть таблица Т. У этой таблице есть три поля: Поле1, Поле2, Сумма Типы значений Поле1 и Поле2 не строковые.... Тип поля Сумма - число. Результат должен быть таким: Поле1, Поле2, Сумма Но итоги должны быть сгруппированны по Строка(Поле1) + Строка(Поле2) И результат запроса отсортирован по Поле1, Поле2. В 1С 8.0 в запросах есть такая внутренние функции: Вторая не подходит так как применяется для значений составного типа, а не для преоброзования типов. Первая возвращает строку, но проблема в том, что сделать с этой строкой потом не чего нельзя. Т.е. написать выражение типа: Подозреваю что реально представление получается уже после выполнения запроса, а не во время выполнения, поэтому на момент выполнения запроса функция Представление не отрабатывает..... Подзапросом тоже не получается. Т.е. объявить два поля строковые, которые получаются с помощью функции Предсталение, а потом во внешнем запросе сложить два уже как должно бы быть строковое поле, но... они строковыми становяться.... Кто как боролся с подобным счастьем и какие идеи есть?
#1 by gr13
Поле1 + Поле2 AS Сумма
#2 by gr13
for example, it's working 10 * Услуги.Сумма / 100 КАК Зарплата
#3 by Said_We
(1+2) Вы не поняли. Я складываю не числа, а строки... :-((( 1С со строками в запросе не работает нормально если в эту строку надо поле еще преобразовать...
#4 by France
таки, откажетесь от слов? "Типы значений Поле1 и Поле2 не строковые...."
#5 by Said_We
Что значит откажись? Они по природе в таблице не строковые, а приабразовывать 1С 8.0. не умеет...
#6 by gr13
Строка...
#7 by Said_We
Не понял.... А почему не Строка? ... В реальной задаче Поле1 - это документ разного вида. Поле2 - это дата.
#8 by VCD
Вообщем, как я понял, надо сложить Синий+Зеленый+1Кг+1Метр
#9 by gr13
Строка(Поле1) + Строка(Поле2)... но это не в запросе, а там - ХЗ
#10 by Said_We
Нет не правильно понял - надо сложить6 "Синий"+"Зеленый"+Строка(Килограммов)+Строка(Метров).... Я не складываю слонов с бегемотами, я складывать хочу представления значений, а они все строковые, а не разного типа... А там это где? :-))
#11 by VCD
В представление уже входит дата дока
#12 by колодина
а вот почему вы пишите, что через вложенный не получается? должно получиться...
#13 by Said_We
Дата это не дата дока - это совсем другая дата. Потому что пробовал...
#14 by Said_We
Реально поле1 - это документ, а поле2 - это некая дата. Заранее говорю еще раз, что это дата не имеет отношения к дате документа. Пусть в таблице Т три строки 1. Док1 Дата1 100 2. Док1 Дата1 50 3. Док2 Дата1 70 после группировки По (Поле1)+(Поле2) и сортировки по убыванию я должен получитьследующие: 1. Док2 Дата1 70 2. Док1 Дата1 50 3. Док1 Дата1 100 ... Так как 70 меньше чем 150 (100 + 50), и 50 меньше чем 100.
#15 by Said_We
Все получилось вроде. На Т1С подсказали...
#16 by Said_We
Получилось, так: Если в крации, то берется строится два запроса, только один с группировкой по тем полям, по которым нужна суммовая группировка, а второй просто запрос без нечего. Потом делается запрос к обоим подзарпосам и связывается условием равинства значений по всем группировочным полям. При этом создается еще одна колонка в которой будет сумма из запроса с группировками. Далее все это дело сортируется и все. Ну примерно так...    ЗапросПоНачислениям.Результат,    Выбор Когда ЗапросСГруппировками.МинМакс = "МАКС" Тогда        Выбор Когда ЗапросСГруппировками.МинМакс = "МАКС" Тогда        ДополнительныеНачисленияРаботников.ВидРасчета КАК ВидРасчета, P.S. А то не хорошо получилось. Как узнал и не рассказал... В приведенном примере запрос работующий.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям