helpf.pro
Регистрация

v8: Программный переход между колонками табличной части документа

NNN
27.11.2012 16:45Прочитано: 8933
Подскажите,пожалуйста, как реализовать программно переход с одной колонки табличной части документа в 1С8.2 (обычная форма) на любую другую.
Все спасибо!
Изменено 03.12.12 16:32:53
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
27.11.2012 17:36Ответ № 1
(0) NNN, именно колонки или строки? вообще-то выделяется ячейка
NNN
28.11.2012 16:01Ответ № 2
E_Migachev , да именно переход к нужной колонке текущей строки.
Спасибо за внимание!
Mokey
29.11.2012 14:58Ответ № 3
например: ТЧ.ТекущаяКолонка = ТЧ.Колонки["Сумма"];

ТекущаяКолонка (CurrentColumn)
Использование:
Чтение и запись.
Описание:
Тип: КолонкаТабличногоПоля. Содержит текущую колонку табличного поля. Если данному свойству присвоить значение Колонка ТабличноеПоле, то произойдет активизация указанной колонки, если устанавливается значение Неопределено, то активная колонка сбрасывается.
Изменено 29.11.12 14:59:52
NNN
30.11.2012 12:41Ответ № 4
Mokey! Большое спасибо за подсказку. Я тоже это "крутил", но видно не так и не в ту сторону.
Предложенный вариант на прямую не прошел. Получилось, вот что:
ЭлементыФормы.ТЧ.ТекущаяКолонка=ЭлементыФормы.ТЧ.Колонки.Сумма;
Правда есть одна заковырка. При изменении значения в текущей колонке хочу перейти на нужную, это делается, но поле ввода этой колонки не активируется на ввод, а просто выделяется. Нужно делать лишний клик для ввода. Если есть соображения, буду рад их "выслушать".
NNN
Mokey
30.11.2012 15:06Ответ № 5
Я как пример привёл, чтобы Вы в правильном направлении начали думать, а чтобы колонка активировалась для ввода:
ИзменитьСтроку (ChangeRow)
Синтаксис:
ИзменитьСтроку()
Описание:
Начинает интерактивное изменение данных текущей строки, аналогично выполнению команды "Изменить".
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Примечание:
Режим редактирования устанавливается, если текущая колонка доступна для редактирования. Если первая колонка не редактируемая (например, картинка), рекомендуется устанавливать нужную текущую колонку.
Если табличное поле связано с набором записей регистра сведений, то записи можно изменять "вручную" только если для регистра установлен режим записи "Независимый" (задается при конфигурировании). Если набор записей принадлежит регистру накопления либо для регистра сведений установлен режим записи "Подчинение регистратору", то "ручное" изменение записей не допускается.
Пример:
ЭлементыФормы.ТабличноеПоле.ИзменитьСтроку();
NNN
30.11.2012 17:45Ответ № 6
Mokey! К сожалению, последний код у меня не работает как надо. Изменяю текущую колонку, нажимаю клавишу ТАБ или Enter делается переход на последнюю колонку строки и в ней активизируется ввод. Если завершаю ввод текущей колонки выполнение команды "Изменить" (F2), то все работает корректно,т.е. делается переход на нужную колонку с активацией ввода.
Пробовал изменить режим редактирования текущей колонки. Результат не тот.
Mokey
03.12.2012 11:32Ответ № 7
Я несовсем понял, что именно не получается, если бы привели кусочек кода после изменения значения текущей колонки, что и куда должно переместиться
NNN
03.12.2012 15:07Ответ № 8
Создается документ. Основные реквизиты ТЧ: Наим,КолВо,Цена и Сумма.
Сумма рассчитывается через функцию при изменении КолВо или Цена.
Наим выбирается из справочника.
(1)После выбора Наим, КолВо по умолчанию устанавливается в 1 и нужно сделать переход на колонку Цена с активизацией этой колонки на ввод.
(2)После ввода цены, автоматически переходим на колонку Сумма с активизацией этой колонки на ввод.
(3)Если необходимо оператор, меняет КолВо. После изменения КолВо нужно перейти на колонку Сумма и активизировать эту колонку на ввод.
В приведенном ниже коде: (1) - получается, (2) – при завершении ввода через Enter нет активизации ввода с выделением ранее полученной суммы (нужно на сумме делать 2 клика), а при завершении через Таб делается переход на следующую за Суммой колонкой. Хотя требуемое выполняется при нажатии F2. (3) –при получается тоже, что и в случае (2).
Процедура ТЧНаименованиеОбработкаВыбора(……)
СтандартнаяОбработка=Ложь;
ЭлементыФормы.ТЧ.ТекущиеДанные.Количество=1;
ЭлементыФормы.ТЧ.ТекущиеДанные.Наименование=ВыбранноеЗначение;
ЭлементыФормы.ТЧ.ТекущаяКолонка=Неопределено;
ЭлементыФормы.ТЧ.ТекущаяКолонка= ЭлементыФормы.ТЧ.Колонки.Цена;
ЭлементыФормы.ТЧ.ИзменитьСтроку();
КонецПроцедуры
Процедура ТЧКоличествоПриИзменении(Элемент)//Для Цены процедура таже.
СтрокаТабличнойЧасти = ЭлементыФормы.ТЧ.ТекущиеДанные;
РассчитатьСумму(СтрокаТабличнойЧасти);
ЭлементыФормы.ТЧ.ТекущаяКолонка= ЭлементыФормы.ТЧ.Колонки.Сумма;
ЭлементыФормы.ТЧ.ИзменитьСтроку();
КонецПроцедуры
Извиняюсь за длинный текст, зато высказал наболевшее.
E_Migachev
03.12.2012 16:32Ответ № 9
(8) NNN, для (2) - программной реализации открытия поля для редактирования в 1С нет ) , для этого используйте SendKey ( Имитация (программное) нажатия Клавиш )и передавайте F2
NNN
03.12.2012 17:31Ответ № 10
Mokey! Большое спасибо!
Теперь Enter обрабатывается как надо! Осталось только Таб.
Перескакивает через Сумму ).
NNN
14.12.2012 17:11Ответ № 11
Вопрос закрыт!
Подсказка: Для быстрого поиска ответов - используйте 'Поиск'
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.