Задание - При нажатии на кнопку числа сортируются в порядке возрастания.
Проблема в том что Он сортирует слова не числа. Что делать?
Проблема в том что Он сортирует слова не числа. Что делать?
Процедура Сортировать(Команда)
Массив = СтрРазделить(Числа,",");
Список = Новый СписокЗначений;
Список.ЗагрузитьЗначения(Массив);
Список.СортироватьПоЗначению(НаправлениеСортировки.Возр);
Сообщить(Список);
КонецПроцедуры
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- Нетривиальные подходы в решении всем известных проблем: ускорение «больших» документов в 1С и ускорение поиска по подстроке. Как добиться эффекта в разы?
- Описание формата внутреннего представления данных 1С в контексте обмена данными
- Строковые отборы в 1С
- Конвертер данных 1С в JSON и обратно
- Регулярная интеграция 1С+RabbitMQ
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
&НаКлиенте
Процедура Сортировать(Команда)
Массив = СтрРазделить(Числа,",", Ложь);
Список = Новый СписокЗначений;
Для Каждого ЭлементМассива Из Массив Цикл
ЗначениеЧислом = СтрокаВЧисло(ЭлементМассива);
Список.Добавить(ЗначениеЧислом);
КонецЦикла;
Список.СортироватьПоЗначению();
Сообщить(Список);
КонецПроцедуры
// Функция из БСП. Не вызывает исключений, судя по описанию
&НаКлиенте
Функция СтрокаВЧисло(Знач Значение) Экспорт
Значение = СтрЗаменить(Значение, " ", "");
Если СтрНачинаетсяС(Значение, "(") Тогда
Значение = СтрЗаменить(Значение, "(", "-");
Значение = СтрЗаменить(Значение, ")", "");
КонецЕсли;
СтрокаБезНулей = СтрЗаменить(Значение, "0", "");
Если ПустаяСтрока(СтрокаБезНулей) Или СтрокаБезНулей = "-" Тогда
Возврат 0;
КонецЕсли;
ТипЧисло = Новый ОписаниеТипов("Число");
Результат = ТипЧисло.ПривестиЗначение(Значение);
Возврат ?(Результат <> 0 И Не ПустаяСтрока(СтрокаБезНулей), Результат, Неопределено);
КонецФункции
Показать
(3)
&НаКлиенте
Процедура Сортировать(Команда)
Массив = СтрРазделить(Числа,",");
Сортировать(Массив);
КонецПроцедуры
&НаСервере
Процедура Сортировать(Массив)
Таб = Новый ТаблицаЗначений;
Таб.Колонки.Добавить("Числа");
Для Инд = 0 По Массив.Вграница() Цикл
Таб.Добавить();
КонецЦикла;
Таб.ЗагрузитьКолонку(Массив , "Числа");
Таб.Сортировать("Числа");
Массив = Таб.ВыгрузитьКолонку("Числа");
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот