Имя: Пароль:
1C
1С v8
Обычные формы. Сортировка по добавленной вручную колонке табличной части.
0 Родом из детства
 
22.03.21
15:22
Здравствуйте всем. Возник следующий вопрос:
Имеется документ. В нем есть табличная часть с соответствующими реквизитами (ТЧ: Грузы(Груз, Вес, Рейс)).
В форме документа мы выводим эту табличную часть. К ней привязана командная панель со стандартными кнопками сортировки(по возрастанию/убыванию). Они работают по отношению к реквизитам ТЧ.
Однако, мы создаем дополнительные колонки к этой таблице на форме(Форма.НашаТаблица.ДобавитьКолонку - делаю это лапками, непрограммно). А дальше в обработчике тч(при получении данных/выводе строки) заполняю эту колонку(ОформлениеСтроки.Ячейки.Маркировка.Значение = Строка(мГруз.Маркировка);. Стоит вопрос над тем, можно ли как-то сортировать эти колонки? По идее нет, тк эти данные постоянно перезаполняются. Однако, заметил, что подобно созданные колонки, вне зависимости от того, каким образом мы их заполняем нельзя стандартно сортировать.
И думаю сейчас, а как лучше реализовать сортировку по маркировке? Добавлять маркировку реквизитом тчГрузы как-то неочень. Ведь там и так есть реквизит груз, а маркировка - это, как его наименование. Но других способов пока не придумал(
1 mistеr
 
22.03.21
15:33
(0) Сортировать по виртуальным колонкам нельзя, только по реальным данным.

Какие есть варианты?
1) Добавить реквизит в ТЧ.
2) Скопировать ТЧ в ТЗ и показать в табличном поле ТЗ.
3) Создать обработку с ТЧ, заполнять документ с ее помощью.
4) Запихать вашу маркировку в один из имеющихся реквизитов ТЧ.
2 mikecool
 
22.03.21
15:38
(1) + выгрузить таб часть в ТЗ, добавить колонку для сортировки, отсортировать, выгрузить в таб часть
3 hhhh
 
22.03.21
15:43
(0) это философский вопрос на самом деле: когда вы делаете сортировку, у вас в результате запускается при получении данных/выводе строки, а когда запускаете при получении данных/выводе строки, у вас запускается сортировка. Замкнутый круг получается.
4 Serg_1960
 
22.03.21
15:52
Имхо, сортировать можно всё! Даже тёплое с пушистым! Но только если делать это... как там автор сказал... лапками :)
5 runoff_runoff
 
22.03.21
16:40
если всё допилено-перепилено.. то режим управляемых форм в обычном приложении поможет..
6 Serg_1960
 
22.03.21
17:06
Зачем всё так усложнять?

    ТЗИсточник = Грузы.Выгрузить();
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    Запрос.УстановитьПараметр("ТЗИсточник", ТЗИсточник);
    Запрос.Текст =
    "ВЫБРАТЬ * ПОМЕСТИТЬ ВТПриемник ИЗ    &ТЗИсточник КАК ТЗИсточник ;
    |    ВЫБРАТЬ * ИЗ ВТПриемник КАК ВТПриемник УПОРЯДОЧИТЬ ПО ВТПриемник.Груз.Маркировка";
    Грузы.Загрузить(Запрос.Выполнить().Выгрузить());
7 Веселый собака
 
22.03.21
18:52
(2) Выгрузить можно сразу с новой колонкой, искусственно прописанной в запросе.

типа: 0 КАК МояНоваяКолонка
8 Родом из детства
 
23.03.21
08:46
Спасибо всем за ответы. Попробую ваши варианты