На предприятии часто просят одну и ту же цифру дать в разных разрезах, данная статья о том, как быстро сделать сортировку по каким либо показателям.
На форме документа создадим новую кнопку «Сортировать», в свойствах этой кнопки на вкладке "Дополнительно" укажем формулу «СортироватьСотрудников()» (без кавычек)
В модуле формы создаем процедуру:
Процедура СортироватьСотрудников()
ТзС = СоздатьОбъект("ТаблицаЗначений");
ТзС.очистить();
ТзС.НоваяКолонка("Сотр");//сотрудники
ТзС.НоваяКолонка("Сумма");
ТзС.НоваяКолонка("подр");//подразделение
Меню = СоздатьОбъект("СписокЗначений");
//Создаем меню где будем выбирать по какому принципу будем сортировать
Меню.ДобавитьЗначение(1, "ФИО");
Меню.ДобавитьЗначение(2, "Подразделение");
Меню.ДобавитьЗначение(3, "Сумма");
Если Меню.ВыбратьЗначение(ВыбранныйНомер,,,,1)=0 Тогда
Возврат
КонецЕсли;
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
ТзС.НоваяСтрока();
ТзС.Сотр = Сотрудник;
ТзС.Сумма = Сумма;
ТзС.Подр = Сотрудник.Подразделение.Получить(ДатаДок)
КонецЦикла; //Пренесли все данные в таблицу значения
УдалитьСтроки(); //удаляем старые данные
Если ВыбранныйНомер=1 Тогда
ТзС.Сортировать("Сотр");
ИначеЕсли ВыбранныйНомер=2 Тогда
ТЗС.Сортировать("подр,сотр");
ИначеЕсли ВыбранныйНомер=3 Тогда
ТЗС.Сортировать("Сумма,сотр") ;
КонецЕсли;
ТзС.ВыбратьСтроки();
Пока ТзС.ПолучитьСтроку() = 1 Цикл
НоваяСтрока();
Сотрудник = ТзС.Сотр;
Сумма = ТзС.Сумма;
КонеЦЦикла
КонецПроцедуры
Сохраняем и проверяем.
П.С. Для многих это покажется слишком легко и смешно, этот пример рассчитан на новичков. И дорогие ветераны 1С, если вы знаете, как можно еще сильнее упростить данный модуль, пожалуйста, сообщите…