|
v7: Как спозиционироваться из модуля формы документа на ячейке в табличной части | ☑ | ||
---|---|---|---|---|
0
Palll
21.06.16
✎
11:35
|
Необходимо при вводе значения в табличную часть документа, позиционироваться на следующую строку табличной части и войти в режим редактирования. Пробовал использовать метод Активизировать(), получаю ошибку {Документ.ПоступлениеТМЦ.Форма.Модуль(3524)}: В данной формуле не может быть вызвана эта процедура(функция).
|
|||
1
Ёпрст
21.06.16
✎
11:38
|
автоввод строки галку воткнуть и на всех остальных колонках - пропускать при вводе. усё
|
|||
2
Palll
21.06.16
✎
11:42
|
(1) Позиционироваться нужно в пределах уже существующих строк, как я понимаю автоввод строки будет добавлять пустую строку?
|
|||
3
Ёпрст
21.06.16
✎
11:46
|
(2) да, а тебе, разве не это надо ?
Если в уже существующие, то АктивизироватьСтроку + Активизировать + ложное закрытие формы |
|||
4
Palll
21.06.16
✎
11:50
|
(3) Я таким образом и пытаюсь сделать, но на Активизировать() получаю ошибку.
Вот кусок кода: АктивизироватьСтроку(НомерСтроки+1); Активизировать("Марка",1); |
|||
5
Palll
21.06.16
✎
11:55
|
(4)
Функция ПереводСтроки() АктивизироватьСтроку(НомерСтроки+1); Активизировать("Марка",1); КонецФункции Функция НайтиМарку() АлкогольныйКод = РасшифроватьМарку(Марка); Сообщить(Строка(АлкогольныйКод)); ПереводСтроки(); КонецФункции; |
|||
6
Palll
21.06.16
✎
14:03
|
(5)
Попробовал таким образом, безрезультатно. // глобальный модуль Процедура глАктивизироватьПоле(Конт, Поле) Экспорт Сп=СоздатьОбъект("СписокЗначений"); Сп.Установить("Контекст", Конт); Сп.Установить("Поле", Поле); ОткрытьФормуМодально("Обработка.АктивизироватьПоле", Сп); КонецПроцедуры // модуль формы Обработка.АктивизироватьПоле Процедура ПриОткрытии() Сп=Форма.Параметр; Если НРег(ТипЗначенияСтр(Сп))<>"списокзначений" Тогда Сообщить("'Активизировать поле': неверный вызов","!"); СтатусВозврата(0); Возврат; КонецЕсли; Конт=Сп.Получить("Контекст"); Поле=Сп.Получить("Поле"); Конт.Активизировать(Поле, 1); СтатусВозврата(0); КонецПроцедуры Соответственно - вызов в коде: глАктивизироватьПоле(Контекст, "Артикул"); |
|||
7
Ёпрст
21.06.16
✎
14:16
|
да ё
Перем Вася; Функция ПереводСтроки() Вася=НомерСтроки; Форма.Закрыть(0); КонецФункции Процедура ПриЗакрытии() Если ПустоеЗначение(Вася)=0 Тогда АктивизироватьСтроку(Вася+1); Активизировать("Марка",1); Вася=""; СтатусВозврата(0); КонецЕсли; КонецПроцедуры |
|||
8
Palll
21.06.16
✎
15:30
|
(7) Спасибо за помощь. Не понял с ходу что АктивизироватьСтроку + Активизировать + ложное закрытие формы означает вызывать АктивизироватьСтроку и Активизировать в процедуре при закрытии :)
|
|||
9
Ёпрст
21.06.16
✎
15:41
|
(8) это просто стандартный трюк переноса события из обработчиков через ложное событие формы. Можно еще и через функцию текста делать, только затратнее по ресурсам
|
|||
10
Palll
21.06.16
✎
15:44
|
(9) Как раз начинал уже через текст делать, но через закрытие удобнее. Теперь буду знать, еще раз спасибо :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |