1c 8 как сортировка по реквизиту документ

Обновлено: 06.07.2024

Рано или поздно но штатному системному администратору любой организации придется столкнуться с такой программой как 1С Предприятие. Как правило администрирование 1С полностью возлагается на админа. Настройка прав, создание пользователей, обновление, настройка серверов 1С и многое другое. Но в некоторых случаях особо умные работодатели пытаются навязать еще и программирование, доработку отчетов. Например, настроить сортировку по возрастанию или убыванию в каком нибудь типовом отчете.

Во первых. Ни когда не соглашателе на это если не уверены в своих силах.

Во вторых. Если согласились то просите за это оплату. Ни когда не берите на себя дополнительные обязанности бесплатно. Так как если вы это сделаете один раз то второй вас ни кто спрашивать не будет. Проверено на собственном опыте.

В третьих. Перед тем как начать что-то изменять сделайте резервную копию а лучше сохраните обработку как внешнею. И уже в нее вносите изменения.

Перед тем как лезть в код хорошо просмотрите настройки отчета. Так как в большинстве отчетов сортировку можно настроить не прибегая к программированию.

Сортировка номенклатуры в любом типовом отчете

И так у вас есть вот такой отчет. В котором не задана сортировка номенклатуры.

Сортировка по номенклатуре

Как открыть внешнию обработку

Как открыть модуль отчета

Как изменить запрос

Как сделать сортировку в отчете

Сохраняем обработку, и смотрим на результат. Как видите номенклатура у нас отсортировалась.

1С сортировка по номеклатуре

Сортировку можно выполнить по любому необходимому полю. По аналогии можно изменить любой другой типовой отчет.

Описанные ниже методы могут применяться для форм списка любых объектов (СправочникСписок, ДокументСписок, РегистрСведенийСписок, ПланОбменаСписок и т.д.).

Для программного создания сортировки в форме списка можно использовать свойство расширения табличного поля списка НастройкаПорядка или свойство списка Порядок. Возможно также совместное использование этих свойств.

Свойство НастройкаПорядка используется для предоставления доступа к полям упорядочивания.

Свойство Порядок содержит объект, по которому осуществляется текущее упорядочивание элементов в списке.

Ниже приведён пример использования указанных свойств:

При открытии формы список будет упорядочен по Валюте по убыванию и по Цене по возрастанию:

Сортировка в форме списка по умолчанию

Если открыть форму настройки отбора и сортировки, то возможность изменения сортировки будет закрыта, так как программно установлено упорядочивание по полю Валюта, которое недоступно для интерактивной настройки порядка.

Настройки сортировки заблокированы от изменения

Если интерактивно изменить сортировку (нажатием на заголовок колонки, по которой возможно упорядочивание или через контекстное меню), то сортировка по Валюте более не будет доступна, так как её доступность не включена в НастройкеПорядка. В то же время есть возможность упорядочивания по ЕдиницеИзмерения, хотя эта колонка и не отображается на форме.

Доступные поля сортировки
Настройка сортировки

Упорядочивание возможно по любому реквизиту объекта, как отображаемому на форме, так и не отображаемому, за исключением реквизитов, имеющих тип Строка неограниченной длины.

Войдите как ученик, чтобы получить доступ к материалам школы

Система компоновки данных 1С 8.3 для начинающих: делаем отбор и сортировку на уровне СКД

Автор уроков и преподаватель школы: Владимир Милькин

Ставим цель

  • Создать новый отчёт "Урок5.erf".
  • Вывести в этом отчёте города (включая название города, мэра и численность).
  • Упорядочить города в списке по численности (по возрастанию)
  • Прямо на форме отчёта дать пользователю возможность делать отбор городов по минимальной численности.

Создаём новый отчёт в конфигураторе

Открываем базу "Гастроном" в конфигураторе.

Из главного меню конфигуратора выбираем пункт "Файл"->"Новый. ":

Вид документа: "Внешний отчет":

В качестве имени пишем "Урок5" и нажимаем кнопку "Открыть схему компоновки данных":

Соглашаемся с именем схемы компоновки данных по умолчанию:

В открывшейся схеме компоновки данных добавляем набор данных - запрос:

Составляем запрос

Запускаем конструктор запроса:

Из таблицы справочника "Города" выбираем поля: "Наименование", "Мэр" и "Численность":

Получился такой запрос:

Выводим отчёт в виде списка

Переходим на закладку "Настройки" и нажимаем волшебную палочку, чтобы вызывать конструктор настроек:

Тип отчёта выбираем "Список":

В отчёте будут отображаться следующие поля:

Сохраняем отчет и тут же проверяем в режиме пользователя:

Сортируем города по численности

Теперь давайте упорядочим записи отчёта по возрастанию численности.

Для этого переходим на вкладку "Настройки", выбираем пункт "Отчет", ниже выбираем вкладку "Сортировка" и перетаскиваем поле численность из первой колонки во вторую.

Направление сортировки указываем "По возрастанию":

Сохраняем отчёт и проверяем в режиме пользователя:

Делаем отбор городов по численности

Теперь давайте сделаем так, чтобы в отчёте выводились только города с численностью от 1 миллиона человек (включительно). Такая возможность называется отбор.

Переходим на вкладку "Настройки", выбираем пункт "Отчет", далее переходим на вкладку "Отбор" и перетаскиваем поле "Численность" из левой колонки в правую.

В качестве вида сравнения указываем "Больше или равно", а в качестве правого значения - 1000000:

Сохраняем отчет и проверяем в режиме пользователя:

Видим, что остались города с численностью больше миллиона и этот факт (отбора) явно отражён в заголовке отчета.

Выносим параметр отбора на форму отчета

Осталось сделать так, чтобы пользователь мог сам настраивать пороговое значение отбора. Другими словами, чтобы вместо миллиона он мог поставить свою цифру.

Заходим на вкладку "Настройки", выделяем пункт "Отчет", внизу выбираем вкладку "Отбор", выделяем элемент отбора "Численность" и нажимаем справа внизу на зелёный плюсик:

В открывшемся окне ставим галку "Включать в пользовательские настройки":

Вновь сохраняем отчет и запускаем в режиме пользователя.

Видим, что появилось поле "Численность" меняя условие и значение которого мы управляем отбором городов в отчёте:

Эталонная обработка, после выполнения всех шагов этого урока

Войдите на сайт как ученик

Для учеников

Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.

На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .

Продолжим изучать методы работы с таблицами значений. В предыдущей статье мы научились работать с поиском по таблице значений, а также копировать таблицы значений.

В этой статье мы научимся сортировать, получать итоги и сворачивать таблицу значений.

Сортировка таблицы значений 1С

Сортировка таблицы значений 1С осуществляется при помощи метода Сортировать, этот метод является процедурой, выполнение которой изменяет порядок строк в таблице значений. Данный метод имеет следующий синтаксис.

Сортировать(Колонки, ОбъектСравнения)

Колонки – обязательный параметр, который имеет тип Строка, в этой строке должны быть перечислены колонки таблицы значений, по которым осуществляется сортировка. После названия колонки можно указывать направление сортировки: или «Убыв», тогда сортировка осуществляется по убыванию, или «Возр», в этом случае сортировка будет по возрастанию. Если не указать направление сортировки, то сортировка будет по возрастанию. Можно перечислять несколько колонок, тогда таблица значений будет отсортирована сначала по первой указанной колонке, потом строки с одинаковым значением в первой колонке будут отсортированы по второй колонке и т.д.

  • Объекты сравниваются по идентификатору
  • Моменты времени сравниваются по дате и идентификатору объекта
  • Если есть элементы с разными типами, то они сравниваются по коду типа
  • Элементы остальных типов сравниваются по строковому представлению

Рассмотрим работу этого метода без второго параметра.

В этом коде мы отсортировали таблицу по окладу, поскольку название колонки было без указания направления, то сортировка осуществлялась по возрастанию. И вторая колонка для сортировки это дата рождения, здесь мы указали направление сортировки – по убыванию.

Посмотрим в отладке, какая таблица значений была до сортировки.

Сортировка таблицы значений 1С

И после сортировки.

Сортировка таблицы значений 1С

Итоги таблицы значений 1С

При работе с таблицей значений можно получить общий итог по какой-то колонке. Это осуществляется при помощи метода Итог. Этот метод является функцией, которая возвращает сумму значений определенной колонки всех строк таблицы. У этого метода следующий синтаксис:

Итог(Колонка)

Где: Колонка – это колонка, по которой будут просуммированы значения всех строк. Обычно данный метод применяется к колонкам, в которых содержатся значения с типом число.

Посмотрим, какой итог получился по указанной колонке.

Метод Итог таблицы значений

Свернуть таблицу значений 1С

Рассмотрим еще один метод, который очень полезен при работе с таблицами значений. Метод Свернуть сворачивает используемую таблицу значений по значениям одной или нескольких колонок. Данный метод является процедурой, которая изменяет текущую таблицу значений.

Рассмотрим синтаксис этого метода

Свернуть(КолонкиГруппы, КолонкиСуммы)

КолонкиГруппы – колонки, по которым будет свернута таблица значений. Это обязательный параметр типа строка, в котором нужные колонки должны быть перечислены через запятую.

КолонкиСуммы – колонки, значения по которым будут просуммированы (необязательный параметр).

Причем, обратите внимание, после применения метода, в измененной таблице значений останутся только колонки группы и колонки суммы, остальные колонки, те, что были до свертки, будут удалены и информация в них потеряется!

Данный метод производит свертку таблицы значений: значения в колонках, которые перечисленные в первом параметре (КолонкиГруппы) будут сгруппированы, а значения в колонках, которые перечислены во втором параметре (КолонкиСуммы) будут просуммированы. Одна и та же колонка не может быть указанна и в первом параметр, и во втором.

Рассмотрим пример: в таблице значений будут следующие колонки: ФИО, Вид работ , сумма выданных средств и дополнительная информация (аванс, «окончаловка» и т.п.), свернем эту таблицу значений по колонкам ФИО и Вид работ, и просуммируем колонку «Сумма».

Посмотрим в отладке, что было до свертки.

Свернуть таблицу значений

И после свертки

Свернуть таблицу значений

Как видите, произошла группировка по колонкам ФИО и ВидРабот, а значения в колонке Сумма просуммировались, причем колонка Причина была удалена и информация в ней пропала.

Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект.

Более подробно и основательно работа с таблицей значений в дается в моей книге:


Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Читайте также: