СКД. Как задать сортировку в функциях Массив или Соединить строки #751858


#0 by ГдеСобакаЗарыта
1. Где вообще почитать описание этих функций СКД-ных можно? 2.Надо вывести поле с типом строка(дата через формат) списком значений по группировке и упорядочить по другому полю. В запросе сделал нужное мне упорядочивание. Но при использовании функции Массив и СоединитьСтроки они упорядочивание делают видимо свое. Условно имею: "25.04.2015" "16.05.2015" Надо получить "25.04.2015, 16.05.2015", но в результате применения Массив или СоединитьСтроки получаю "16.05.2015, 25.04.2015". Как получить нужный мне результат?
#1 by Nuobu
Найди колонку "Выражение упорядочивания" для этого поля.
#2 by ГдеСобакаЗарыта
Пробовал, не работает
#3 by Живой Ископаемый
У меня есть предложение, но оно тебе не понравится, но если не найдешь чего лучше, в крайнем случае прибегнешь. Суть в том, чтобы в СКД использовать вычисляемое поле, которое будет возвращать тебе строку  "25.04.2015, 16.05.2015" для нужной группировки. Формула вычисляемого поля будет такая: МойМодуль.ФункцияВозвращающаяСтрокуДляГруппировкиСКД(ЗначениеГруппировки) Теперь про саму функцию. во-первых нужно будет СКД строить программно, то есть должна быть форма, с твоей кнопкой "СформироватьОтчет", по нажатию на которую прежде чем выполнить сформировать отчет выполнит практически тот же запрос, но только с целью сформировать вот эти склеенные строки. Выполнишь запрос, и результат его поместишь в соотвествие - это будет твой кэш, к которому и будет обращаться КэшСклееныхСтрокДляКруппировки.Получить(ЗначениеГруппировки) Сам знаю что отвратительно.
#4 by patria0muerte
1. В конфигураторе Справка - Содержание - Система компоновки данных - Язык системы компоновки данных - функции языка системы компоновки данных
#5 by patria0muerte
В твоем случае должно сработать - Упорядочить (Order) Предназначена для упорядочивания элементов массива и таблицы значений. Синтаксис: Параметры: Выражение - Массив или ТаблицаЗначений, из которой нужно получить колонки; НомераКолонок - (если выражение имеет тип ТаблицаЗначений) номера или имена (через запятую) колонок таблицы значений, по которым нужно упорядочить. Может содержать направление упорядочивания и необходимость автоупорядочивания: Убыв/Возр + Автоупорядочивание. Возвращаемое значение: Массив или ТаблицаЗначений, с упорядоченными элементами. Пример: Упорядочить(ТаблицаЗначений(НомерТелефона, Адрес, ДатаЗвонка),"ДатаЗвонка Убыв");
#6 by Живой Ископаемый
круто... а 8.2 приходится извращаться.
#7 by Nuobu
Только что проверил упорядочивание запросом. Всё получилось. Сортирует ровно так, как сказано сортировать в запросе, не смотрит в сторону СКД. Может у тебя в настройках СКД оно сбивается? Что в полях вычисления ресурсов пишешь?
#8 by patria0muerte
Так это 8.2 и есть
#9 by patria0muerte
Судя по тексту 2. ты сначала делаешь строку из даты, а потом упорядочиваешь. Может наоборот попробовать? )
#10 by Живой Ископаемый
в 8.2 нет функций ТаблицаЗначений и Массив
#11 by patria0muerte
А где искал? Это ж не встроеного языка, это СКДшные функции.
#12 by Живой Ископаемый
В Ф1: Функции языка выражений системы компоновки данных Вычислить ВычислитьВыражение ВычислитьВыражениеСГруппировкойМассив ВычислитьВыражениеСГруппировкойТаблицаЗначений Уровень НомерПоПорядку НомерПоПорядкуВГруппировке Формат НачалоПериода КонецПериода ДобавитьКДате РазностьДат Подстрока ДлинаСтроки Год Квартал Месяц ДеньГода День Неделя ДеньНедели Час Минута Секунда Выразить ЕстьNull Функции общих модулей Представление Строка ЗначениеЗаполнено УровеньВГруппировке
#13 by Живой Ископаемый
а, правда есть "Строка" и в нее можно ТЗ или Массив передавать
#14 by ГдеСобакаЗарыта
а попробуй теперь сортировать в обратном порядке. Что будет?
#15 by patria0muerte
Агрегатные функции смотри там рядом в справке
#16 by Живой Ископаемый
блин... вот это я лох.
#17 by ГдеСобакаЗарыта
у меня элементы массива поле дата, а сортировать нужно полю НомерСтроки
#18 by Nuobu
Будет сортировка в том порядке, который установлен в запросе.
#19 by Nuobu
Пробовал.
#20 by ГдеСобакаЗарыта
Кстати, ни функции массив, ни соединитьСтроки там нет
#21 by patria0muerte
-
#22 by Живой Ископаемый
Сумма Максимум Минимум Среднее Массив ТаблицаЗначений Свернуть ПолучитьЧасть Упорядочить СоединитьСтроки ГрупповаяОбработка Агрегатные функции осуществляют некоторое действие над набором данных.
#23 by patria0muerte
В теории можно попробовать использовать функцию Упорядочить(ТаблицаЗначений(Дата, НомерСтроки), "НомерСтроки УБЫВ") Но как тогда потом от номера строки избавиться - я не знаю
#24 by ГдеСобакаЗарыта
, на простой схеме с простой выборкой и правда работает. Но в моей замороченной пока никак не хочет. Спасибо буду копать дальше
#25 by Nuobu
Тоже пробовал на простой схеме с двумя полями сортировки.
#26 by ГдеСобакаЗарыта
Оказалось если получать поля в итоговом запросе через две точки, то сортировка глючит. Через одну все заработало
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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