|
Установить курсор на предыдущую выбранную строку в справочнике товары | ☑ | ||
---|---|---|---|---|
0
prilforreal
28.09.17
✎
10:00
|
Доброго времени суток форумчанам! Конфа самописная, 8.3 Уже очень долго долго мучаюсь с таким вопросом: Есть у нас иерархический справочник товары, нужно восстанавливать позицию выбора предыдущего элемента, стоит галка при открытии восстанавливать позицию, в форме списка (она же форма выбора) прописано ВосстанавливатьТекущуюСтроку=Истина; но к моему сожалению позиция восстанавливается только если элемент находится не глубже 3-о уровня, иначе возвращает в корень на папку в которой находится папка с данным элементом, поиск решения в гуглах результата не дал, помогите люди добрые!
|
|||
1
DrShad
28.09.17
✎
10:09
|
ну так не закрывайте при выборе
|
|||
2
prilforreal
28.09.17
✎
10:14
|
(1) Как это?
|
|||
3
DrShad
28.09.17
✎
10:17
|
ну вы же подбор в документ реализовываете?
|
|||
4
prilforreal
28.09.17
✎
10:22
|
(3) Да, подбор реализован, для удобного подбора и нужно восстанавливать позицию, но при выборе элемента он не сразу залетает в табличное поле документа, а нужно нажать кнопку заполнить, тогда при условии что он есть на складе элемент появляется в списке (Документ Ревизия)
|
|||
5
DrShad
28.09.17
✎
10:23
|
ЯННП
|
|||
6
Serg_1960
28.09.17
✎
10:26
|
"позиция восстанавливается только если элемент находится не глубже 3-о уровня" - не зная конфигурации сложно сказать, но такое "ограничение" - программное скорее всего. Озвучьте алгоритм восстановления позиции (если он есть).
|
|||
7
prilforreal
28.09.17
✎
10:33
|
(6) Процедура ТабличноеПоле1ПриАктивизацииСтроки(Элемент)
Надпись1=ПолучитьОстатокТовара(); ТекЭлемент=?(ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные=Неопределено,Справочники.Товары.ПустаяСсылка(),ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Ссылка); если ТТ<>ТекЭлемент тогда Если НЕ ТекЭлемент.ЭтоГруппа тогда ТТ=ТекЭлемент; ТЦены.Очистить();//.УдалитьСтроки(); Ц=Справочники.ЦеныТоваров.Выбрать(,ТТ);//создатьобъект("Справочник.ЦеныТоваров"); Пока Ц.Следующий() Цикл СтрТЦены=ТЦены.Добавить(); СтрТЦены.Тип=Ц.ТипЦенТоваров; СтрТЦены.Цена=Ц.Цена; Конеццикла; конецесли; конецесли; КонецПроцедуры Процедура ПриОткрытии() // Вставить содержимое обработчика. ВосстанавливатьТекущуюСтроку=Истина; если ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные<>Неопределено тогда Тов=ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Ссылка; ЭлементыФормы.ТабличноеПоле1.Текущаястрока=Тов конецесли; КонецПроцедуры |
|||
8
prilforreal
28.09.17
✎
10:35
|
(6) Конфигурацию писал не я, я лишь ее правлю, и как знаете в чужих джунглях найти что-то не так то просто.
|
|||
9
vicof
28.09.17
✎
10:35
|
ну и г-код
|
|||
10
vicof
28.09.17
✎
10:36
|
Удали его полностью и напиши свой
|
|||
11
prilforreal
28.09.17
✎
10:43
|
(9) И все таки насчет восстановления позиции?
|
|||
12
Serg_1960
28.09.17
✎
11:06
|
Процедура ПриОткрытии()
ЭлементыФормы.СправочникСписок.ВосстанавливатьТекущуюСтроку = Истина; КонецПроцедуры |
|||
13
prilforreal
28.09.17
✎
11:20
|
(12) {Справочник.Товары.Форма.ФормаСписка.Форма(195)}: Поле объекта не обнаружено (СправочникСписок)
ЭлементыФормы.СправочникСписок.ВосстанавливатьТекущуюСтроку = Истина; Насколько я понимаю восстановление не работает из-за того что в справочнике дерево реализовано. Как быть в этом случае? |
|||
14
Сияющий Асинхраль
28.09.17
✎
11:31
|
(13) В твоем случае скорее всего вместо СправочникСписок будет ТабличноеПоле1
|
|||
15
prilforreal
28.09.17
✎
11:35
|
(14) Ошибки не выдает, но позицию не восстанавливает
|
|||
16
Serg_1960
28.09.17
✎
11:57
|
Возможно позиционирование "теряется" при обработке событий формы, событий других табличных полей. Надо смотреть в алгоритмах / проверять в отладке.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |