Сортировать(<Колонки>, <ОбъектСравнения>) Параметры:
<Колонки> (обязательный)
Тип: Строка.
Список имен колонок, разделенных запятыми, по которым производится сортировка таблицы. После каждого имени колонки через пробел может быть указано направление сортировки. Направление определяется: "Убыв" ("Desc") - упорядочивать по убыванию; "Возр" ("Asc") - упорядочивать по возрастанию. По умолчанию сортировка производится по возрастанию. Порядок указания имен колонок таблицы определяет порядок сортировки. Это означает, что сначала таблица сортируется по колонке, указанной первой. Затем группы строк с одинаковым значением в этой колонке сортируются по колонке, которая указана второй, и так далее.
<ОбъектСравнения> (необязательный)
Тип: СравнениеЗначений.
Объект для сравнения элементов. Если объект сравнения не задан, сравнение выполняется по следующим правилам:
элементы, чьи типы не совпадают, сравниваются по коду типа;
элементы простых типов сравниваются по значению;
элементы остальных типов сравниваются по строковому представлению.
Описание:
Сортирует табличную часть в соответствии с указанными правилами сортировки.
При обмене данными с веб-сайтами зачастую используется формат JSON. К сожалению, в 1С нет стандартных процедур для работы с данным форматом. В процессе реализации одного из проектов мной был разработан ряд процедур и функций облегчающих жизнь программисту 1С при работе с данными в формате JSON.
По сути, при работе с JSON требуется две операции: сформировать строку JSON (например, для передачи параметров на веб-сервер в формате JSON из 1С) и прочитать данные из строки JSON (например, когда мы получаем ответ от веб-сервера в формат JSON). Так как формат JSON в упрощенном виде представляет собой набор параметров в виде <ИмяПараметра>:<ЗначениеПараметра> то для работы с JSON в 1С мной был использован тип "Структура". Т.е. процедура чтения данных из формата JSON преобразует строку JSON в тип 1С "Структура". Так же и строка JSON в 1С формируется из структуры. Т.о. чтобы сформировать строку JSON сначала необходимо заполнить структуру необходимыми значениями, а потом вызвать функцию, преобразующую структуру в JSON. Позднее функционал функции формирования строки JSON был расширен - теперь в JSON может быть преобразован массив и таблица значений. При желании можно доработать функцию так, чтобы она "понимала" и другие типы. Такие как "Cоответствие", "ДеревоЗначений" и др. На практике это редко может пригодиться, поэтому сам я этого делать не стал.
А теперь подробней о том, как работать с функциями преобразования JSON.
Преобразование строки JSON в структуру 1С.
Для преобразования строки JSON в структуру 1С служит функция ЗаполнитьСтруктуруИзJSON().
<ТекстJSON> (обязательный) - строка в формате JSON,
которую необходимо преобразовать в структуру.
Возвращаемое значение.
Тип Структура.
Имя значения задается в структуре как Ключ, а само значение, соответственно, как значение. Поддерживаются также вложенные значение ("{}" в "{}") и массивы. В таких случаях тип значения будет Структура и Массив соответственно. Если у в JSON задан только массив, то сформируется структура с одним элементом с ключом "Значение" и типом "Массив". Ниже приведены поясняющие примеры:
Следует заметить, что все значения заполняются как строковые (тип "Строка"). Последующее преобразование (например, к числу) лежит на самом разработчике.
Формирование строки JSON в 1С.
Для формирования строки в формате JSON в 1С предназначена функция СформироватьСтрокуJSON().
<Объект> (обязательный) - объект, который необходимо
преобразовать в формат JSON. Может иметь тип "Структура",
"Массив" или "ТаблицаЗначений".
Если Объект имеет тип "ТаблицаЗначений", то она рассматривается как массив из структур, соответствующих колонкам ТЗ. Все значения приводятся к строковому типу, дата приводится в формат unixtime, значение типа булево "Истина" преобразуется в строку "true", а "Ложь" - в "false, прочие объекты просто преобразуются как "Строка(Объект)".
При работе с запросами нередко возникает ситуация, когда результат запроса необходимо упорядочить по представлению некоторого ссылочного поля. Например, необходимо упорядочить список номенклатуры по представлению. Заметим, что упорядочивание непосредственно по полю Представление приведет к не вполне ожидаемому результату - результат будет упорядочен в порядке возрастания ссылок объектов. Данный эффект проявляется из-за того, что поле Представление является виртуальным и на уровне базы данных состоит из нескольких полей, из которых уже в момент получения значения поля получается строка - представление. При упорядочивании же по этому полю произойдет последовательное упорядочивание по реальным полям, из которого оно состоит, в результате чего упорядочивание произойдет не по строковому представлению, а по внутренней ссылке поля.
Пример неправильного упорядочивания:
На самом деле, упорядочивание по представлению является довольно сомнительной операцией с точки зрения полезности результата. Для примера достаточно посмотреть на представления документов - эти строки содержат в себе даты, а упорядочивание дат как строк не даст осмысленного результата. Для того чтобы обеспечить упорядочивание, которое будет отвечать ожиданиям пользователей, следует использовать упорядочивание непосредственно по ссылочному полю и дополнительно указать в запросе ключевое слово АВТОУПОРЯДОЧИВАНИЕ. В таком случае запрос получит для каждого ссылочного поля реальные поля, по которым его необходимо упорядочить (для документа это будет дата и номер, для справочника - основное представление) и произведет упорядочивание по ним.