|   |   | 
| 
 | Установить курсор на предыдущую выбранную строку в справочнике товары | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Возможно позиционирование "теряется" при обработке событий формы, событий других табличных полей. Надо смотреть в алгоритмах / проверять в отладке.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |