Добры день. Для УТ 10.3 создал отчёт Сравнение продаж.
Вывел: Месяц, Продажи текущий, Продажи предыдущий, Разница.
Осталось отсортировать месяц, всё перепробовал, но месяц так и выводится хаотично.
Как отсортировать Месяц по возрастанию?
---
Во-первых, в отчете у Вас уже есть поле, приведенное к началу месяца - ПериодМесяц. Это же отлично, Вам нужно было всего лишь на закладке "Наборы данных" для данного поля в колонке оформления настроить формат:
ДФ='MMMM yyyy'.
И больше ничего дополнительно не требуется. Ни строить громоздкие конструкции в запросе для получения представления месяца в виде строки, ни потом героически пытаться победить сортировку по умолчанию.

Во-вторых, чтобы посчитать дельту в процентах, нужно использовать следующее выражение вычисляемого поля:

```1c
    ВЫБОР
    КОГДА ЗначениеЗаполнено(ПродажиТекущий)
    ТОГДА ПродажиПрошлый / ПродажиТекущий * 100
    ИНАЧЕ 0
    КОНЕЦ
```
А для выражения ресурсов так:

```1c
    ВЫБОР
    КОГДА ЗначениеЗаполнено(Сумма(ПродажиТекущий))
    ТОГДА Сумма(ПродажиПрошлый) / Сумма(ПродажиТекущий) * 100
    ИНАЧЕ 0
    КОНЕЦ
```

Дополнительно стоит для вычисляемого выражения также настроить формат представления, чтобы не видеть в отчете длинные десятичные дроби.
---
Во-первых, в отчете у Вас уже есть поле, приведенное к началу месяца - ПериодМесяц. Это же отлично, Вам нужно было всего лишь на закладке "Наборы данных" для данного поля в колонке оформления настроить формат:
ДФ='MMMM yyyy'.
И больше ничего дополнительно не требуется. Ни строить громоздкие конструкции в запросе для получения представления месяца в виде строки, ни потом героически пытаться победить сортировку по умолчанию.

Во-вторых, чтобы посчитать дельту в процентах, нужно использовать следующее выражение вычисляемого поля:

```1c
    ВЫБОР
    КОГДА ЗначениеЗаполнено(ПродажиТекущий)
    ТОГДА ПродажиПрошлый / ПродажиТекущий * 100
    ИНАЧЕ 0
    КОНЕЦ
```
А для выражения ресурсов так:

```1c
    ВЫБОР
    КОГДА ЗначениеЗаполнено(Сумма(ПродажиТекущий))
    ТОГДА Сумма(ПродажиПрошлый) / Сумма(ПродажиТекущий) * 100
    ИНАЧЕ 0
    КОНЕЦ
```

Дополнительно стоит для вычисляемого выражения также настроить формат представления, чтобы не видеть в отчете длинные десятичные дроби.
---
если у вас месяц это строковый тип, то сортировка будет по алфавиту
---
Строковый - точно, я ж его в запросе вычислял. Можно его вывести не строковым?
---
используйте

Функция Месяц

МЕСЯЦ(<Дата>)

МЕСЯЦ(<Дата>)

Принимает параметр типа ДАТА. Возвращает номер месяца даты (целочисленное значение от 1 до 12).

ВЫБРАТЬ МЕСЯЦ(ДАТАВРЕМЯ(2016, 6, 23))

ВЫБРАТЬ МЕСЯЦ(ДАТАВРЕМЯ(2016, 6, 23))

Запрос вернет – 6
---
Вы можете выбрать в запросе просто поле периодмесяц, а в условном оформлении в настройках СКД указывать формат даты для поля ММММ. Рассчитывать в запросе месяц не надо
---
Тогда пользователь увидит вместо названия месяца номер месяца - верно вас понял?
---
Необходимо выводить поле ПериодМесяц, там хранится дата, а не номер. но если в условном оформлении установить формат даты ММММ, то пользователь увидит название месяца, а сортировка будет по дате.
---
Вопрос решён. Все выше перечисленные ответы верные, но решил по другому. Сделал вычисляемое моле НомерМесяца и с помощью процедуры
Выбор
Когда Месяц = "Январь" Тогда 1
Когда Месяц = "Февраль" Тогда 2
Конец
получил из строки число, далее, добавил ещё одну колонку в отчет № месяца и по ней отсортировал.
График тоже отсортировал по номеру месяца.
---
Может заодно подскажите почему столбец Дельта% не отрабатывает?
---
То есть сначала дату в строку через число, а потом строку в число?
Осталось только снова всё это в дату преобразовать, чтобы закольцевать так сказать.
---
не надо путать представление данных и данные для сортировки.
По большому счету для сортировки может использоваться любой столбец. И настраивать сортировку можно для каждой группировки индивидуально. Используя тот столбец, который лучше всего для этого подходит. Это самый простой и наглядный способ.