v7: Как узнать какую строку в документе выбрал пользователь? #652797


#0 by sysadminlk
Как узнать какую строку в документе выбрал пользователь? Табличная часть документа. В ней есть строки с товаром. И для того чтобы  упростить жизнь юзеру нужно быстро как-то разворачивать историю по товару. Я хочу выловить номер строки по которой пользователь тыкнул 2 раза.
#1 by sysadminlk
Проблема в том что документ уже проведен и Форма.ТолькоПросмотр Может есть какие-то доп.библиотеки? Формекс такое умеет?
#2 by Очкарик
давно в 7.7 не кодил. Там есть ТекущаяСтрока метод у табличной части?
#3 by МимохожийОднако
Можно сделать печатную форму и в нее прицепить расшифровку.
#4 by sysadminlk
Табличная часть документа.
#5 by Очкарик
Создай обработку, которая будет отражать табличную часть документа
#6 by Тьма
Читай номерстроки в функции УстДоступность
#7 by sysadminlk
это предопределенная? чет погуглил и нифига не понял от куда ее взять? документ то проведен и форма только просмотр
#8 by Тьма
Кинь на форму текст и в поле формула пропиши Устдоступность. В модуле формы напиши функцию Устдоступность, возвращающую пробел. Эта функция будет вызываться при любом обновлении формы, при смене строки в том числе.
#9 by Очкарик
ага, при малейшем чихе и по нескольку раз подряд
#10 by Zhuravlik
ОбработкаВыбораСтроки ?
#11 by Тьма
Не в данном случае. в форме документа она не вызывается. Присвоение одной переменной роли не сыграет. У людей при обновлении формы остатки из таблицы регистров тянутся и ниче - все живы.
#12 by Тьма
Кстати, вполне можно и формексом -  по событию ПриДвойномНажатииЛевойКнопки
#13 by Zhuravlik
Тогда в ПриНачалеВыбораЗначения, если Проведен = 1 делать что надо, и СтатусВозврата; Возврат;
#14 by Тьма
ПриНачалеВыбораЗначения не вызывается при активизации строки документа. Форма открыта только на просмотр, выбирать значения никто не будет.
#15 by Cthulhu
: вызывается. если надо.
#16 by sysadminlk
ПриДвойномНажатииЛевойКнопки и как его курить если он возвращает ГрупповойКонтекст формы, а мне нужно знать на какую строку в документе ткнул пользователь.
#17 by фобка
НомерСтроки
#18 by sysadminlk
получается никак не отловить? :( может кто-то все-таки знает?
#19 by Азазель
Выбор строки пользователем может осуществляться 1)при вводе строки 2)при установке курсора на текущую строку 3)при редактировании новой строки Соответственно, используем методы и предопределенные процедуры. Процедура ПриВводеСтроки КонецПроцедуры Синтаксис: ПриВводеСтроки Назначение: Предопределенная процедура при интерактивном вводе строки документа. Замечание: Данная процедура может располагаться только в модуле формы документа. Синтаксис: ПриНачалеРедактированияСтроки Назначение: Предопределенная процедура при интерактивном редактировании строки документа. Замечание: Данная процедура может располагаться только в модуле формы документа. НомерСтроки Синтаксис: НомерСтроки Назначение: Доступ к номеру строки многострочной части документа. Замечание: Атрибут имеет смысл только при выбранной строке.
#20 by DCKiller
Лепишь на форму дока лейбл, очищаешь ему заголовок, в формуле прописываешь имя функции, допустим ПоказатьИсториюТовара Далее, в модуле формы документа описываешь эту функцию Функция ПоказатьИсториюТовара А вообще кури функцию ИтоговаяСтрока типовых доков 1совских конфиг. Так понятно или нужно подробнее?
#21 by EdGreen
Событие не срабатывает в режиме ТолькоПросмотр Формэкс умеет выдавать события ПриДвойномНажатииЛевойКнопки Как вариант без формекса: подобно положить на форму текстовое поле с вызовом функции (например ДействияФормы) возвращающей пробел. Только надо помнить, что эта функция вызывается на каждое движение на форме, так, что надо бы поставить там контроль на дублирование действий. Типа: Иначе   ничего Не делать Правда это будет срабатывать на любой клик на форме а не на дабл клик.
#22 by DigitalDolphin
Вообще у тебя на самом деле 2 выхода. 1. Тебе уже сказали. Добавь на форму функцию и при переходе по строкам она каждый раз будет вызываться. Можешь еще добавать контроль. если при вызове функции строка не меняется. Просто делаешь возврат. Обновление может быть не только при переходе по строке. 2. Ты просто берешь и добавляешь на форму кнопку. А по кнопке вызывается твоя расшифровка. Ты ж в принципе не сказал на сколько оперативно нужна расшифровка и может расчет слишком длинный чтоб каждый раз его делать при переходе по строкам. Да и нужен он может быть только по требованию.
#23 by Стрелок
Всё отлавливается без "ТолькоПросмотр". Если надо блокировать изменение ТЧ - есть предопределённые процедуры. А для того чтобы отловить текущую строку по двойному клику делается просто 1. в ТЧ текстовый реквизит формы (НЕ ПУТАТЬ С РЕКВИЗИТОМ ТЧ). присвоить ему некое имя. Дальше в модуле формы пишем что то типа такого и вуаля (пример - по 2-му клику открывается обработка с серийными номерами товара)
#24 by Стрелок
В примере реквизит формы (повторюсь - не реквизит табличной части а текст в табличной части по типу "пиктограмки" в ТЧ - кнопка "Т" на нижней панельке инструментов-реквизитов формы) называется "СерийныеНомераСтр"
#25 by DigitalDolphin
Автор и так сказал что форма только для просмотра. Зачем реквизит формы. Можно и так при щелчке делать то что нужно.
#26 by DigitalDolphin
Да кстати. При ТолькоПросмотр твоя предопределенная процедура не сработает.
#27 by Стрелок
Вот прежде чем писать ВНИМАТЕЛЬНО прочитай 23 до просветления
#28 by DigitalDolphin
ок-ок. Прочитал мимо ушей что ты предлагаешь не использовать ТолькоПросмотр. Но на мой взгляд твоя комбинация все равно сложнее и надо думать где затыкать дырки и еще реквизит формы вводить. В данном случае не вижу смысла. Так как автор сказал что редактирование не нужно когда в режиме проведен. ПОэтому проще оставить как у него есть. А выбрать из двух способов которые ему написал.
#29 by Стрелок
я привёл пример универсальной фичи. форма.толькопросмотр не решает проблем перепроведения (и как следствия изменения проводок). Скорее всего ТолькоПросмотр используется дабы обезопаситься от изменения уже выполненных движений документа а не потому что это обязательное условие. просто автор не понимает что это не спасёт. а впрочем мне всё равно
#30 by sysadminlk
какие есть еще варианты?
#31 by sysadminlk
на форме применено ТолькоПросмотр
#32 by Popkorm
что не понятно в все написано........ а про это:
#33 by Cthulhu
: похоже, тебе самому что-то непонятно... например, несоответствие исходніх условий исходнім условиям заданного вопроса.
#34 by sysadminlk
ПриНачалеРедактированияСтроки не будет и не работает при Форма.ТолькоПросмотр
#35 by Ёпрст
формексом - как 2 пальца.. штатно -тоже можно, лень думать
#36 by sysadminlk
как? там только координаты мыши возвращаются?
#37 by Ёпрст
КонецПроцедуры
#38 by Ёпрст
можешь еще и условие воткнуть, что типа на многострочной части тыркнули мышой.
#39 by Ёпрст
и только тогда поиметь номерстроки
#40 by sysadminlk
афигеть!!!! работает!!! супер!!! реально благодарен! Ёпрст, всего тебе хорошего, здоровья, денег, счастья, любви!!!  Спасибо! Все-равно не понятно как ПриДвойномНажатииЛевойКнопки узнает номер строки в нее же попадает только сост,х,у,фсо
#41 by Ёпрст
в смысле не понял ? НомерСтроки - это же атрибут документа, ты в этой проце можешь посмотреть что угодно у документа - любой реквизит.
#42 by Ёпрст
просто нужно было как-то поймать событие, вот формекс это умеет
#43 by sysadminlk
Параметры: Контекст - контекст формы Состояние - битовая маска, показывающаяя текущее состояние кнопок мыши. КоордПоГоризонтали - значение координаты курсора мыши по горизонтальной оси (Х). КоордПоВертикали - значение координаты курсора мыши по вертикальной оси (Y). ФСО - флаг стандартной обработки. Изначально равен 1. Если в теле процедуры сбросить значение в 0, то стандартная обработка события не вызывается. Описание: Предопределенная процедура вызывается при двойном клике левой кнопкой мыши. Пример: Где тут описание того что возвратится номер строки я ПриДвойномНажатииЛевойКнопки уже пробовал по разному но Сообщить(номерстроки) даже ума в голову не могло придти
#44 by Ёпрст
та не, ты не понял, в любом событии документов (предопределенных, к примеру, у тебя доступны все атрибуты этого объекта.. вот для событий формекса это тоже работает.
#45 by sysadminlk
А различать он умеет?
#46 by Ёпрст
должен :)
#47 by sysadminlk
табличная часть там два столбца Товар и Серийный номер
#48 by sysadminlk
как понять на какой столбец щас нажали
#49 by Ёпрст
Форма.АктивнаяКолонка
#50 by Ёпрст
ну или получить атрибут формы по координатам и у него посмотреть идентификатор
#51 by Ёпрст
точнее,Форма.АктивныйЭлемент
#52 by Ёпрст
#53 by sysadminlk
да я так и сделал, а вот насчет я что-то не понял как по координатам посмотреть идентификатор?
#54 by Ёпрст
ну, получай ПолучитьАтрибутПоКоординатам и у него смотри Идентификатор
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С