Имя: Пароль:
1C
1C 7.7
v7: Таблица значений - получить данные по строке (не даблклик)
0 gugolovski
 
26.09.23
04:34
Можно ли в таблице значений получить данные по строке одинарным нажатием клавиши мыши?
1 victuan1
 
26.09.23
06:08
Только через Формекс
2 Bigbro
 
26.09.23
06:19
ну или реквизит типа текст с формулой положить за пределами формы.
3 andrewalexk
 
26.09.23
06:38
(2) :) вроде бы там переход по строке можно поймать а по колонке нет
4 Bigbro
 
26.09.23
06:56
может быть, уже не помню, но  в целом всегда и нужна была фактически строка только. а дальше уже делай что надо со всеми данными строки.
5 АгентБезопасной Нацио
 
26.09.23
07:41
ТабличноеПоле, и ПриАктивизацииЯчейки()
6 uno-group
 
26.09.23
10:32
Если достаточно отслеживать перемещение по строкам то тест с функцией.
Если нужно отслеживать и клики по столбцам и устроит задержка в пределе 1 секунды то можно как то так.
Перем Положение;
//--------------------------------------------------------------------------------------------
Процедура гдеЯ()   Экспорт
    Если Тз.ТекущаяСтрока()=0 Тогда
        положение= "";
    КонецЕсли;
    Если Тз.ТекущаяКолонка()=0 Тогда
        положение= "";
    КонецЕсли;
    положение= "("+Тз.ТекущаяСтрока()+";"+ТЗ.ТекущаяКолонка()+")= "+Тз.ПолучитьЗначение( Тз.ТекущаяСтрока(),Тз.ТекущаяКолонка());
КонецПроцедуры
//--------------------------------------------------------------------------------------------
Процедура ПриОткрытии()
    Форма.ОбработкаОжидания("ГдеЯ",1);
КонецПроцедуры
В остальных случаях только с помощью ВК.
7 Злопчинский
 
26.09.23
10:47
ну недавно же было...
8 Злопчинский
 
26.09.23
10:50
без обработок ожидания и без нагрузки на систему
Финт с выводом текущей колонки с функцией на форме - как?&p=last20#F
пост в самом конце ветки
9 Злопчинский
 
26.09.23
12:48
кладем на форму текст с идентификатором тТекущаяКолонка, в формулу пишем ТекущаяКолонка - получаем вывод идентификатора текущей колонки...

Можно положить формулу посложнее, типа
"текущая колонка: "+ТекущаяКолонка+" = "+Шаблон("["+ТекущаяКолонка+"]")

//******************************************************************************************
//
Процедура ВывестиТекКолонку()
    
   ТекущаяКолонка = Форма.ТекущаяКолонка();
   Если Форма.тТекущаяКолонка.Заголовок()<>ТекущаяКолонка Тогда
        Форма.тТекущаяКолонка.Заголовок(ТекущаяКолонка);
   КонецЕсли;
  
   //{--- ОТЛАДКА
   //Если Форма.Заголовок()<>лТекущаяКолонка Тогда
   //    Форма.Заголовок(лТекущаяКолонка);
   //КонецЕсли;
   //}--- ОТЛАДКА

КонецПроцедуры // ВывестиТекКолонку()

//******************************************************************************************
//
Процедура ПриОтжатииКнопкиКлавиатуры(КодКлавиши,Альт,Шифт,Кнтрл,Символ,ФСО)
    ВывестиТекКолонку();
КонецПроцедуры

//******************************************************************************************
//
Процедура ПриОтжатииЛевойКнопки(СостояниеМыши,КоординатаПоГоризонтали,КоординатаПоВертикали,ФСО)
    ВывестиТекКолонку();
КонецПроцедуры

//******************************************************************************************
//
Процедура ПриОтжатииПравойКнопки(СостояниеМыши,КоординатаПоГоризонтали,КоординатаПоВертикали,ФСО)
    ВывестиТекКолонку();
КонецПроцедуры

//******************************************************************************************
//
Процедура ПослеОткрытия() // или ПриАктивацииОкна() или ПослеСозданияФормы()
   ВывестиТекКолонку();
КонецПроцедуры
10 andrewalexk
 
26.09.23
11:23
(9) :) шаблон - сила ... ох уж эти полезные недокументированные функции в 1с77
11 MWWRuza
 
26.09.23
12:42
(9) Эээээ.... Туплю...
Как-то ранее не приходилось использовать метод ТекущаяКолонка() для формы.
Он работает для любой табличной части формы - ТЗ в обработке, табличная часть документа, формы списка справочника-?
Или есть какие-то нюансы?
Для ТЗ на форме, понятно - <ИмяТЗ>.ТекущаяКолонка(), возвращает идентификатор колонки...
А так - Форма.ТекущаяКолонка() пусто - "". На форме обработки есть ТЗ с добавленными колонками...
Что я не так делаю?
12 Злопчинский
 
26.09.23
12:50
(11) по сабжу - валандались с формой списка справочника
и там собственно вопрос в том, что при перемещении курсора по  колонкам без изменения строки - не вызывало обновления формы.
13 Злопчинский
 
26.09.23
13:00
для работы с ТЗ - надо просто идентификатор поменять

Процедура ВывестиТекКолонку()
    
   ТекущаяКолонка = ТЗ.ТекущаяКолонка(); //здеся ТЗ
14 MWWRuza
 
26.09.23
13:06
(12) Да, в форме списка справочника - метод отрабатывает(да собственно, и понятно, почему с ТЗ не работает - на форме ТЗ может быть много, и как без указания ее имени, понять какой ТЗ мы хотим получить текущую колонку? А табличная часть объекта только одна, нет смысла указывать ее имя).
То, что мы пытались отлавливать событие изменения текущей колонки кучей разных способов - тоже понятно, и работает через ФормЕксовские отжатия хорошо из примера.

Непонятно только, что в твоем примере такое "тТекущаяКолонка" - ???
15 Bigbro
 
26.09.23
13:11
текстТекущаяКолонка видимо.
16 Злопчинский
 
26.09.23
13:14
(14) см (9), тТекущаяКолонка - ид текста на форме, в котором показывается какая-либо инфа по текущей колонке
17 MWWRuza
 
26.09.23
13:26
(15)(16) Ага, понял...
18 MWWRuza
 
26.09.23
13:46
Да, все отлично работает.
Просто вот это немного сбило - "в формулу пишем ТекущаяКолонка - получаем вывод идентификатора текущей колонки..."
Тут имеется в виду не в формулу текста на форме, а формула внутри модуля, в процелуре ВывестиКолонку(). В формуле текста ничего быть не должно.
19 MWWRuza
 
26.09.23
13:50
(10) А шаблон, да, супер! Тоже никогда не использовал...
Как говорится, век живи, век учись, и все равно дураком подохнешь :-)
20 Злопчинский
 
26.09.23
13:50
(18) да, правильно. Криво изложил. От бездуховности.
21 Злопчинский
 
26.09.23
13:54
(19) например у меня есть обработка выгрузки ВСЯКИХ документов - на вход документ. Я не пишу код типа
Если Док.Вид()="Реализация" Тогда ВыгрузитьПоРеализации()
ИначеЕсли Док.Вид()="Перемещение" Тогда ВыгрузитьПоПеремещению()
ИначеЕсли...
.
а пишу просто
.
Результат = Шаблон("[ВыгрузитьПо"+ДокВид()+"]");
22 Arbuz
 
26.09.23
14:18
(9) >в формулу пишем ТекущаяКолонка
Это ещё зачем? ТекущаяКолонка это, что? Переменная формы? И на кой она в формуле нужна, если в той теме FN предложил "Надо по событию исполнять код, а не по таймеру [и не из формулы атрибута]", и использовались 3( 4) формесовских события? Т.е. по факту этот атрибут-текст нахрен не нужен в контексте задачи ТС, финт с неявным вызовом формулы атрибута здесь не используется. Просто ВывестиТекКолонку() должна быть не процедурой, а функцией возвращающей то, что ты кладёшь-ложишь в заголовок (который не нужен, как и эта переменная - от слова совсем).

ЗЫ: А, про формулу-переменную увидел. Но остальное в силе.
23 Arbuz
 
26.09.23
14:24
И попробуйте ещё в тч дока как это работает в режиме редактирования строки при горизонтальном перемещении по столбцам (в пределах одной строки).
24 Злопчинский
 
26.09.23
14:36
(22) ну оно так и есть.
По событию устанавливается заголовок текстового атрибута
25 Злопчинский
 
26.09.23
14:37
(23) ага, побежал... Вприпрыжку... ;-)
Чуть позже
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший