Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 13:41

Сортировка по возрастанию в макете печатной формы

Автор Mitka90, 19 фев 2018, 23:18

0 Пользователей и 1 гость просматривают эту тему.

Mitka90

Здравствуйте! Возник такой вопрос: нужно в макете печатной формы вывести абонентов и их адреса, но чтобы адрес шёл в порядке возрастания.
Проблема состоит в том, что сортировка идёт неправильно: например, в таком порядке: "100", "101", "102", "103", "1", "2", "3" и т.д.
Как сделать так, чтобы всё-таки номера квартир в адресе шли именно так: "1", "2", "3"... "100", "101", "102", "103"?

Код прилагается:

  Процедура ПечатьНажатие(Элемент)
    // Вставить содержимое обработчика.

    Макет = Справочники.Абоненты.ПолучитьМакет("График");
    //Макет = ПолучитьМакет("График");

    ТабДок = Новый ТабличныйДокумент();
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДок.АвтоМасштаб=Истина;
    Шапка = Макет.ПолучитьОбласть("Шапка");   
    Область1 = Макет.ПолучитьОбласть("Строка");   
//       

    ТабДок.Вывести(Шапка);   
        для Каждого стр из ТабличноеПоле1 Цикл         
    ЭлементыФормы.ТабличноеПоле1.Значение.Сортировать("Адрес Возр");         
  // ТабличноеПоле1.Сортировать("Адрес Возр");       

            Область1.Параметры.Абонент = стр.Абонент;
            Область1.Параметры.Адрес = стр.адрес;
            //    сообщить(ТипЗнч(стр.Абонент));

            //Сообщить(стр.Абонент.ФИО);       

            ТабДок.Вывести(Область1);
        КонецЦикла;   
//   

    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Показать();   
КонецПроцедуры



Допустим, что нужно преобразовать строку в число.

А как быть, если квартира имеет ещё и буквенное значение (например, 3пом)?

Как в таком случае отсортировать как нужно? Ещё и есть, допустим, данные, где номер дома и квартира повторяются, а ФИО абонентов разные.
В общем, они сортируются так: сначала (вне сортировки) выходит   Иванов И.И., дом 15, кв. 17, далее идут квартиры 1, 10, 11 ... далее Петров П.П., дом 15 кв. 17, потом 2, 20... и т.д.

AIFrame

Как отсортировать строки вида "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt... ", но у меня они разной длины, разным набором и программа должна понимать, что это адреса?
Ответ: никак, пока не разложишь "дом 15, кв. 17, далее идут квартиры 1, 10, 11" на
[
    {"Дом": 15, "Квартиры":
        [
            {"Номер": 17, "Владелец": "Иванов И.И."},
            {"Номер": 17, "Владелец": "Петров П.П."},
            {"Номер": 11, "Владелец": "Петров П.П."},
        ]
    },
    {"Дом": 16, "Квартиры":
        [
            {"Номер": 1, "Владелец": "Сидоров И.И."},
            {"Номер": 33, "Владелец": "Степанов П.П."},
            {"Номер": 55, "Владелец": "Кудряшов П.П."},
        ]
    }
]

Называется структурирование.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск