![]() |
![]() |
![]() |
|
v7: 1С++. Табличное поле. | ☑ | ||
---|---|---|---|---|
0
Asakra
02.06.14
✎
12:06
|
Подскажите, как сделать, что бы по enter переходить в следующую колонку, для ввода.
|
|||
1
an-korot
02.06.14
✎
12:47
|
Процедура ОбработкаЯчейкиТаблицы(<?>,,,)
Синтаксис: ОбработкаЯчейкиТаблицы(<Значение>,<ФлагСтандОбраб>,<Таблица>,<Адрес>) в ней после своих манипуляций с ячейкой задай нужную активную область: АктивнаяОбласть(<Адрес>) |
|||
2
Asakra
02.06.14
✎
12:54
|
щас попробую... но это ж вроде для штатной Таблицы. не?
так то я уже сделал. FormEx рулит :) |
|||
3
an-korot
02.06.14
✎
13:00
|
(2) по твоему вопросу не понять что ты говоришь про таблицу на форме документа.
|
|||
4
Asakra
02.06.14
✎
13:01
|
(3) ОбработкаЯчейкиТаблицы - это для объекта "Таблица", а у меня "Табличное поле" от 1С++
|
|||
5
an-korot
02.06.14
✎
13:01
|
(2) и каким извратом нужно заниматься чтобы понадобился formex?
на форме документа тоже все просто, при окончании редактирования строки меняешь колонку и проблема решена. |
|||
6
Asakra
02.06.14
✎
13:03
|
(5) по-моему ввод в штатную ТЗ изврат не меньше. да и в том и задача упростить ввод...
|
|||
7
Ёпрст
гуру
02.06.14
✎
13:11
|
(0)
пользуй событие ПослеРедактированияЗначения(Источник, строка, колонка, ТипРегиона) там делай текущаяколонка = .... |
|||
8
Ёпрст
гуру
02.06.14
✎
13:15
|
||||
9
Asakra
02.06.14
✎
13:42
|
(8) Спасибо! Получилось.
Еще нужно начать редактирование текущей ячейки. через "РедактироватьЗначение" чет не срастается. |
|||
10
Ёпрст
гуру
02.06.14
✎
13:47
|
(9) а че там ?
в событии Выбор втыкай РедактироватьЗначение .. и усё.. в (8) должны быть примеры |
|||
11
Asakra
02.06.14
✎
13:50
|
говорит: "Неверно задана колонка '2'" - это следующая колонка
|
|||
12
Ёпрст
гуру
02.06.14
✎
13:52
|
больше кода
|
|||
13
Asakra
02.06.14
✎
13:56
|
(12) пробовал так:
Процедура ТПНастройкиПослеРедактированияЗначения(стр, кол, рег) ТабличноеПоле = ПоставщикДанных.Данные.ТабличноеПоле; ТабличноеПоле.ТекущаяКолонка = ТабличноеПоле.Колонки.Получить(кол + 1); выбзнач = 0; ТабличноеПоле.РедактироватьЗначение(стр, кол, рег, выбзнач, 5, 0, "", 0); КонецПроцедуры // ТПНастройкиПослеРедактированияЗначения() |
|||
14
Asakra
02.06.14
✎
13:56
|
(13) так от:
ТабличноеПоле.РедактироватьЗначение(стр, кол + 1, рег, выбзнач, 5, 0, "", 0); |
|||
15
Ёпрст
гуру
02.06.14
✎
14:07
|
(13)
см (7) первый параметр - это само табличное поле |
|||
16
Ёпрст
гуру
02.06.14
✎
14:07
|
потом ужо строка, колонка и тип региона
|
|||
17
Asakra
02.06.14
✎
14:19
|
так же ругается:
//****************************************************************************** // Asakra // Процедура ТПНастройкиПослеРедактированияЗначения(Источник, стр, кол, ТипРегиона) //Если АктивизироватьСледующуюКолонку = 1 Тогда // Сервис.ЭмулироватьКлавиатуру("{TAB}"); // Сервис.ЭмулироватьКлавиатуру("{ENTER}"); // // АктивизироватьСледующуюКолонку = 0; //КонецЕсли; ТабличноеПоле = ПоставщикДанных.Данные.ТабличноеПоле; ТабличноеПоле.ТекущаяКолонка = ТабличноеПоле.Колонки.Получить(ТабличноеПоле.Колонки.Индекс(ТабличноеПоле.ТекущаяКолонка) + 1); выбзнач = 0; ТабличноеПоле.РедактироватьЗначение(Источник, стр, ТабличноеПоле.ТекущаяКолонка, ТипРегиона, выбзнач, 5, 0, 0); КонецПроцедуры // ТПНастройкиПослеРедактированияЗначения() |
|||
18
Asakra
02.06.14
✎
14:21
|
если использовать ЭмулироватьКлавиатуру, то все работает как надо.
|
|||
19
Asakra
02.06.14
✎
14:59
|
(5) кстати... после перехода с ТЗ на табличное поле - кода стала в 3 раза меньше!
|
|||
20
Ёпрст
гуру
02.06.14
✎
15:13
|
Процедура ТаблПолеПослеРедактированияЗначения(Источник,СтрокаТП, КолонкаТП, ТипРегиона)
Источник.ТекущаяКолонка = Источник.Колонки.Получить(Источник.Колонки.Индекс(КолонкаТП) + 1); КонецПроцедуры |
|||
21
Ёпрст
гуру
02.06.14
✎
15:14
|
только это, учитывать надо крайнюю колонку.. условие сам впихнешь
|
|||
22
Asakra
02.06.14
✎
16:11
|
(20) ну дык тоже самое будет, т.к.
Источник = ПоставщикДанных.Данные.ТабличноеПоле смысл то в том что б начать редактирование следующей колонки. |
|||
23
Asakra
02.06.14
✎
16:13
|
(21) ето то понятно. т.к. решить в тесте так не получается, писать этого уже не стал, а при эмуляции кнопок, это проверка не нужна.
|
|||
24
Ёпрст
гуру
02.06.14
✎
16:49
|
(22) ну , активация есть, дальше ниже написать вызов редактирования и усё.
|
|||
25
Asakra
02.06.14
✎
17:00
|
(24) дык вот она и ругается :)
решил уже так оставить. проблем не выявлено. Процедура ПриНажатииКнопкиКлавиатуры(КодКнопки, _а, _ш, _к) Если _а + _ш + _к > 0 Тогда Возврат; ИначеЕсли (Форма.АктивныйЭлемент() = "РедактированиеТП") И (КодКнопки = 13) Тогда Сервис.ЭмулироватьКлавиатуру("{TAB}"); Сервис.ЭмулироватьКлавиатуру("{ENTER}"); КонецЕсли; КонецПроцедуры // ПриНажатииКнопкиКлавиатуры() |
|||
26
Ёпрст
гуру
02.06.14
✎
17:19
|
(25) кто ругается ?
код в (20) рабочий 225 % |
|||
27
Asakra
02.06.14
✎
17:21
|
(26) кто? кто? :)
ТабличноеПоле.РедактироватьЗначение(Источник, стр, ТабличноеПоле.ТекущаяКолонка, ТипРегиона, выбзнач, 5, 0, 0); код в (20) рабочий, я не спорю... |
|||
28
Asakra
02.06.14
✎
17:23
|
(26) говорит: "Неверно задана колонка '1'"
|
|||
29
Ёпрст
гуру
02.06.14
✎
17:24
|
Процедура ТаблПолеПослеРедактированияЗначения(Источник,СтрокаТП, КолонкаТП, ТипРегиона)
Источник.ТекущаяКолонка = Источник.Колонки.Получить(Источник.Колонки.Индекс(КолонкаТП) + 1); //тут определяешь тип/вид длину точность редактируемой колонки и делаешь вызов Источник.РедактироватьЗначение(СтрокаТП, Источник.ТекущаяКолонка, ТипРегиона,ТипВид,Длина,Точность,,флаг); КонецПроцедуры |
|||
30
Asakra
02.06.14
✎
17:39
|
(29) вот.. а все лень :)
надо было на Источник все исправить. все работает... спасибо, за терпение! Процедура ТПНастройкиПослеРедактированияЗначения(Источник,СтрокаТП, КолонкаТП, ТипРегиона) Источник.ТекущаяКолонка = Источник.Колонки.Получить(Источник.Колонки.Индекс(КолонкаТП) + 1); ТекущееЗначение = Источник.ТекущиеДанные.Получить(Источник.Колонки.Индекс(Источник.ТекущаяКолонка) + 1) ; Источник.РедактироватьЗначение(СтрокаТП, Источник.ТекущаяКолонка, ТипРегиона, ТекущееЗначение,5,0,,0); КонецПроцедуры |
|||
31
Asakra
02.06.14
✎
17:43
|
(30) у меня там еще первый параметр Источник был...
|
|||
32
Asakra
02.06.14
✎
17:54
|
:) зепа получилась
надо по Enter прыгать в следующую колонку, а теперь всегда туда прыгает. т.к. так и так формекс использовать придется, да и кода через формекс меньше, не нужно проверять кончились ли колонки... оставлю все через формекс. ЕПРСТ, спасибо, за помощь! оставлю так: Процедура ПриНажатииКнопкиКлавиатуры(КодКнопки, _а, _ш, _к) Если (Форма.АктивныйЭлемент() = "РедактированиеТП") И (КодКнопки = 13) И (_а + _ш + _к = 0) Тогда Сервис.ЭмулироватьКлавиатуру("{TAB}"); Сервис.ЭмулироватьКлавиатуру("{ENTER}"); КонецЕсли; КонецПроцедуры // ПриНажатииКнопкиКлавиатуры() |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |