Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Как сделать сортировку по нажатию на заголовок столбца справочника?

v7: Как сделать сортировку по нажатию на заголовок столбца справочника?
Я
   РусскийВедун
 
01.12.18 - 20:18
сабж. В форме списка справочника.
 
 
   Злопчинский
 
1 - 01.12.18 - 20:28
штатно - никак, а так - ПКМ-Сортировка-ВыбраттПоЧему
   РусскийВедун
 
2 - 01.12.18 - 20:31
Формексом не получится? Что такое ПКМ?
   hhhh
 
3 - 01.12.18 - 21:01
   ДенисЧ
 
4 - 01.12.18 - 21:01
Сортировку с допупорядочиванием включи...
   РусскийВедун
 
5 - 01.12.18 - 21:35
это понятно но хотят нажимать на название столбца
   vcv
 
6 - 01.12.18 - 22:04
Вариант раз - формэксом перехватить клик мышкой и определить реквизит по координатам мыша. Не уверен только, что определение реквизита сработает для заголовка колонки табличной части.
Вариант два - использовать 1С++ и класс ПоставщикДанныхСправочник. Полный фарш с сортировками и фильтрами, но поразбираться придётся.
   mishaPH
 
Модератор
7 - 01.12.18 - 22:12
(5) пошли их нафик и е парься.
   DES
 
8 - 02.12.18 - 00:27
>>>использовать 1С++ и класс ПоставщикДанныхСправочник.
O, скиньте и мне плиз на  inonemo@gmail.com
   vcv
 
9 - 02.12.18 - 11:37
>> O, скиньте и мне плиз на  inonemo@gmail.com
Всё, что надо и даже больше, на сайте http://1cpp.ru/
   DES
 
10 - 02.12.18 - 17:26
(9)не нашел там ПоставщикДанныхСправочник.
 
 Рекламное место пустует
   РусскийВедун
 
11 - 04.12.18 - 14:09
(8) нету там такого.
   Масянька
 
12 - 04.12.18 - 14:11
(5) Пусть в Excel'е работают.
Неужели не понятно, что есть некие ограничения и неудобства?
   АгентБезопаснойНацио
 
13 - 04.12.18 - 14:31
(11) шож вы напраслину-то возводите? прекрасно там все есть. И описание, которое большинству таких проектов даже не снилось...
   АгентБезопаснойНацио
 
14 - 04.12.18 - 14:32
(10) есть.
   РусскийВедун
 
15 - 04.12.18 - 14:34
(14) ну а ближе к вопросу можно на заголовок нажать и сделать сортировку? Я отловил нажатие по координатам и по координатам смог получить даже не  колонку, а только многострочнуючасть документа. Отловить заголовок не смог.
   АгентБезопаснойНацио
 
16 - 04.12.18 - 14:35
(12) а в чем проблема сделать-то?
   АгентБезопаснойНацио
 
17 - 04.12.18 - 14:35
(15) в ПоставщикДанных.Справочник?
   РусскийВедун
 
18 - 04.12.18 - 14:36
(17) Это 7.7
   АгентБезопаснойНацио
 
19 - 04.12.18 - 14:36
и я про то же
   РусскийВедун
 
20 - 04.12.18 - 14:37
(19) тогда не понимаю. formex не подходит?
   АгентБезопаснойНацио
 
21 - 04.12.18 - 14:38
(20) формекса маловато будет. хотя щазз гляну..
   Вафель
 
22 - 04.12.18 - 14:39
что-то делал подобное
http://catalog.mista.ru/public/14243/
   trdm
 
23 - 04.12.18 - 14:48
(7) > пошли их нафик и е парься.
а хотелка не такая уж и стремная.
   oslokot
 
24 - 04.12.18 - 14:51
(23) [а хотелка не такая уж и стремная.]
а главное, красивая

Выглядит это так
https://cdn1.savepice.ru/uploads/2018/12/4/eb6acdd20641c92ab7a3fe0a2ce4fa4f-full.png

Можно жмакать прямо по заголовкам табличного поля
   trdm
 
25 - 04.12.18 - 14:59
(24) это табличное поле.
такое я и сам сделаю.
а вот на классе "browse" такое сделать много труднее.
   trdm
 
26 - 04.12.18 - 15:00
   trdm
 
27 - 04.12.18 - 15:02
   oslokot
 
28 - 04.12.18 - 15:03
(27) Круто!
   АгентБезопаснойНацио
 
29 - 04.12.18 - 16:36
блин, все проще, чем кажется
   АгентБезопаснойНацио
 
30 - 04.12.18 - 16:36
Процедура ПриНажатииЛевойКнопки(сост, х , у, ФСО)
    хх=0;
    уу=0;
    ххх=0;
    ууу=0;
    _хх=0;
    _уу=0;
    _ххх=0;
    _ууу=0;
    Атр = ФормаРасш.ПолучитьАтрибутПоКоординатам(х,у);
    Если ТипЗначенияСтр(Атр) = "АтрибутФормы" Тогда
        Если Атр.Заголовок="МногострочнаяЧасть" Тогда
            ФормаРасш.ПолучитьКоординатыТекущейЯчейки("МногострочнаяЧасть",_хх,_уу,_ххх,_ууу,0);
            ФормаРасш.ПолучитьКоординатыЯчейки("МногострочнаяЧасть",0,0,хх,уу,ххх,ууу,0);
            Если (у>0) и (у <хх) Тогда
                Сообщить("Это заголовок");
                ФормаРасш.УстановитьТекущуюЯчейку("МногострочнаяЧасть",х+1,уу+1);
                КолонкаСортировки=Форма.ТекущаяКолонка();
                ФормаРасш.УстановитьТекущуюЯчейку("МногострочнаяЧасть",_хх+1,_уу+1);
                Сообщить("сортирую по "+КолонкаСортировки);
                Конт=глКонтекст(Контекст);
                Спр=Метаданные.Справочник(Конт.Вид());
                Если КолонкаСортировки="Наименование" Тогда
                    Сортировка("Наименование");
                ИначеЕсли КолонкаСортировки="Код" Тогда
                    Сортировка("Код");
                Иначе
                    Если Спр.Реквизит(КолонкаСортировки).Сортировка=0 Тогда
                        Предупреждение("Сортировка по этому реквизиту невозможна");
                    Иначе
                        Сортировка(КолонкаСортировки);
                    КонецЕсли;
                КонецЕсли;
            Иначе
                Сообщить("Не заголовок");
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
   АгентБезопаснойНацио
 
31 - 04.12.18 - 16:38
а, ну еще ФСО обнулять, если сортируем
   Злопчинский
 
32 - 04.12.18 - 16:46
шаман, однако
   АгентБезопаснойНацио
 
33 - 04.12.18 - 16:48
(32) просто в клюшках отдыхаю. от этого ёб***ного RLS. от этих ср@ных СКД...
 
 
   АгентБезопаснойНацио
 
34 - 04.12.18 - 16:49
ну а по хорошему - нужно брать или ПоставщикДанных, или вообще Садовниковский класс (там и RLS можно приделать, и все, что угодно).
   АгентБезопаснойНацио
 
35 - 04.12.18 - 17:03
О, и АЛльФ на огонек заглянул. Алексей, критика (30) горячо приветсвуется!
   DES
 
36 - 04.12.18 - 23:48
(22) а можно примерчик использования ?
   ADirks
 
37 - 05.12.18 - 08:43
(30) к сожалению, ПолучитьКоординатыЯчейки("МногострочнаяЧасть", 0, 0) фигню показывает, цифры каждый раз разные, даже если в одну ячейку тыкаешь
2.0.5.109, 2.0.5.124, 2.0.5.129
   АгентБезопаснойНацио
 
38 - 05.12.18 - 08:44
(36) там же в комплекте 2 примера!
Но мой совет - используй ПоставщикДанных. Там в т.ч. реализуется и это.
   АгентБезопаснойНацио
 
39 - 05.12.18 - 08:47
(37) 2.0.5.108 - работает
У тебя переменная ФормаРасш объявлена, в модуле формы определена, форма привязана?
   ADirks
 
40 - 05.12.18 - 08:54
(39) уже всяко попробовал, и 108 попробовал
170  -  5  -  219
Это заголовок
170  -  5  -  159
Не заголовок
170  -  5  -  159
Не заголовок
170  -  5  -  159
Не заголовок

Это я тыкал в одну ячейку, не в заголовок
цыферки
у - ВерхМнЧ - хх
   АгентБезопаснойНацио
 
41 - 05.12.18 - 08:54
(37) не, и правда фигня какая-то. то на первой строке срабатывает, то на заголовке
   РусскийВедун
 
42 - 05.12.18 - 09:32
(30) у меня по коду и наименованию работает сортировка, ошибка только в Если Спр.Реквизит(КолонкаСортировки).Сортировка=0 Тогда Поле агрегатного объекта не обнаружено (Реквизит)
   РусскийВедун
 
43 - 05.12.18 - 09:33
(41) и такое бывает
   АгентБезопаснойНацио
 
44 - 05.12.18 - 09:38
(42) значит, нет такого реквизита? текстовые колонки в справочнике?
   АгентБезопаснойНацио
 
45 - 05.12.18 - 09:53
(42) погоди, у текущего справочника вообще реквизитов нет, чтоль?
обойти-то легко, обернув в попытку. но мне интересно стало
   АгентБезопаснойНацио
 
46 - 05.12.18 - 09:57
а по работе ФормаРасш.ПолучитьКоординатыЯчейки("МногострочнаяЧасть",0,0,хх,уу,ххх,ууу,0);
- это вопрос к АЛьФ'у...
на крайняк, можно получать координаты многострочной части
Если Атр.Заголовок="МногострочнаяЧасть" Тогда
        Атр.ПолучитьКоординаты(хх,уу, ш, в);
и сравнивать мышиную позицию с уу и  уу+(высота заголовка)
   ADirks
 
47 - 05.12.18 - 10:00
(46) Так то да, но высота заголовка м.б. разная, тоже надо как-то исхитряться добывать.
Можно через WinAPI (Dynawrap), но лень.
   АгентБезопаснойНацио
 
48 - 05.12.18 - 10:12
(47) может. Но вроде для конкретнного разрешения экрана и настроек у типовых элементов она одинакова.
я, собственно, и пытался добыть высоту заголовка разницей между верхней координатой
Подождем АЛьФа, может, что посоветует
   trdm
 
49 - 05.12.18 - 10:37
(48) Охота ему себе на шею работу вешать.
Мы как-то забываем что многие компоненты родились для удовлетворения нужд их разработчиков. На что они тратили время и это время оплачивалось их работодателем.
Хотите выполнения сложной задачи - закажите и оплатите.
А эта задачка нетривиальная.
 
 Рекламное место пустует
   VladZ
 
50 - 05.12.18 - 10:38
(0) Перевести на 8.х
   АгентБезопаснойНацио
 
51 - 05.12.18 - 10:49
(49) да вроде на этой основе были первые опыты по "редактированию ячейки прямо в ТЗ"... Т.е. вроде как работало.
   АгентБезопаснойНацио
 
52 - 05.12.18 - 10:50
(50) "из-за миски холодца - всю свинью колоть?"©
   ADirks
 
53 - 05.12.18 - 11:07
(51) там ПолучитьКоординатыТекущейЯчейки() используется, и этот метод работает

На самом деле проще и правильнее переделать форму списка на ТП. И там уже можно всё что хочешь мочить.
   АгентБезопаснойНацио
 
54 - 05.12.18 - 11:22
(53) угу.
но для начала им надо найти на указанном сайте 1спп указанный класс ПоставщикДанных... а у них не получается...
имхо, у АЛьФа просто ошибка вкралась небольшая. там логика некоторая наблюдается в значениях, сейчас некогда особо ковырять... Помог бы кто с РЛС - я б это поковырял :-(
   Злопчинский
 
55 - 05.12.18 - 23:41
(48) я как-то подымал здесь вопрос как посчитать количество строк страницы ТЗ на форме. там давали код, завязанный тоже на расчет высоты заголовка


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует