#0
by Said_We
Есть таблица Т.У этой таблице есть три поля: Поле1, Поле2, СуммаТипы значений Поле1 и Поле2 не строковые....Тип поля Сумма - число.Результат должен быть таким:Поле1, Поле2, СуммаНо итоги должны быть сгруппированны по Строка(Поле1) + Строка(Поле2)И результат запроса отсортирован по Поле1, Поле2.В 1С 8.0 в запросах есть такая внутренние функции:1. Представление(<Значение>)2. Выразить(<Значение> КАК <Тип>).Вторая не подходит так как применяется для значений составного типа, а не для преоброзования типов.Первая возвращает строку, но проблема в том, что сделать с этой строкой потом не чего нельзя. Т.е. написать выражение типа:"А_"+ Представление(<Значение>) невозможно.Подозреваю что реально представление получается уже после выполнения запроса, а не во время выполнения, поэтому на момент выполнения запроса функция Представление не отрабатывает.....Подзапросом тоже не получается. Т.е. объявить два поля строковые, которые получаются с помощью функции Предсталение, а потом во внешнем запросе сложить два уже как должно бы быть строковое поле, но... они строковыми становяться....Кто как боролся с подобным счастьем и какие идеи есть?
#5
by mig747
группирование Поле1, Поле2 не отличается от группированияСтрока(Поле1) + Строка(Поле2)(если конечно лидир. пробелы у Строка(Поле2) не откидываешь),так что просто группируй Поле1, Поле2, а выводи Представление
#6
by Said_We
В идет речь об итогах ПО, а они 100% отличаются так как потом мне это счастье надо будет еще сортировать...Не нужно мне представление как таковое, мне нужно только по некой строке полученной из представления и еще одного поля получить итоги....
#7
by Said_We
Реально поле1 - это документ, а поле2 - это некая дата. Заранее говорючто это дата не имеет отношения к дате документа.Пусть в таблице Т три строки1. Док1 Дата1 1002. Док1 Дата1 503. Док2 Дата1 70после группировки По (Поле1)+(Поле2) и сортировки по убыванию я должен получитьследующие:1. Док2 Дата1 702. Док1 Дата1 503. Док1 Дата1 100...Так как 70 меньше чем 150 (100 + 50), и 50 меньше чем 100.
#9
by mig747
Сделай два запроса - в одном группируй, другой - просто полный,соедини их по полям группировки, сортирни по полям группировки и итогам - мне кажется, получится, то что нужно
#11
by mig747
выбратьз1.поле1,з1.поле2з2.цифраиз(выбратьПоле1,Поле2,из Таблицасгруппировать по поле1, поле2) з1,(выбратьПоле1,Поле2,Цифра) з2гдесортироватьз1.Поле1,з1.поле2,з1.цифра по убыванию.В синтаксисе могу ошибаться - я его не просто помню, особенно как сортировка делается, но, думаю, теперь понятно
#13
by mig747
В сортироке ошибся.нужно так :)СортироватьЗ1.Цифра убыван, з1.Поле1, з1.Поле2, з2.цифраВот теперь наверно правильно
#14
by Said_We
Да получилось. Спасибо.Конечно правда изврат получается. Запросы на самом деле просто огромные и потом еще их два раза вызывать и еще потом.... А все это из за того что 1С 8.0 не умеет вызывать методы объектов в запросе не умеет складывать по нормальному строки и т.д.
#15
by mig747
В любой реляц. базе пришлось бы так делать.сложение строк в данном случае не помогло бы.могли бы помочь коррелирующие запросы, но их в 1с нет, и это не меньший, а скорее больший изврат :),
#16
by Said_We
Почему бы не помогло...? В принципе мы получили тоже самое что если бы сгруппировали бы по составному полю....
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v8 строка подключения V8.Connect
- Можно ли в качестве параметра запроса указать поле этого же запроса?
- Волшебнику и всем кто поможет по теме "v8 УРБД на v8 за четыре шага"
- v8: при v8 = Новый COMОбъект("V8.Application") дает ошибку ..
- v8: Не могу подключиться из V8 к V8
- v8: есть ли аналоги openconf для 1с v8
- v8: Как удалить 1С v8 ?
- v8: глюк в СКД, не выводит поле запроса
- v8: Как получить на клиенте результат запроса на сервере?
В этой группе 1С
- Пометить на удаление в ТЗ клавишей DEL
- SQL : сервер не существует или отсутствует доступ.
- Как поменять разрешение экрана в терминальной сессии?
- v8: Как установить поля для сортировки в форме списка справочника?
- Запрет повторной печати документа
- Обработка проведения и начать транзакцию.
- Внешняя обработка не открывается конфигуратором
- Как организовать суммовой учет товаров в рознице?
- надо чтобы на накладной печатался долг контрагента
- как перенести контрагентов из одной базы в другую
- Нумерация РКО и ПКО
- офф/2 Как из ADO вызвать хранимую функцию?
- Отбор по значению реквизита в форме списка подчиненного справочника
- Постоянно вываливается ошибка Locking File c:Base1SUSERS.DBF
- Нужен драйвер Posiflex pd-2200c
- Ошибка при работе 1С "abnormal program termination"
- ВК Status1C.dll
- Как удалить документ из самого документа ?
- Вопрос о SQL Enterprise и Developer Edition
- 1Сv8 клиент сервер, сбрасывается пароль юзера под которым пускается служба 1СV8