Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Установить курсор на предыдущую выбранную строку в справочнике товары

Установить курсор на предыдущую  выбранную строку в справочнике товары
Я
   prilforreal
 
28.09.17 - 10:00
Доброго времени суток форумчанам! Конфа самописная, 8.3 Уже очень долго долго мучаюсь с таким вопросом: Есть у нас иерархический справочник товары, нужно восстанавливать позицию выбора предыдущего элемента, стоит галка при открытии восстанавливать позицию, в форме списка (она же форма выбора) прописано ВосстанавливатьТекущуюСтроку=Истина; но к моему сожалению позиция восстанавливается только если элемент находится не глубже 3-о уровня, иначе возвращает в корень на папку в которой находится папка с данным элементом, поиск решения в гуглах результата не дал, помогите люди добрые!
 
 
   DrShad
 
1 - 28.09.17 - 10:09
ну так не закрывайте при выборе
   prilforreal
 
2 - 28.09.17 - 10:14
(1) Как это?
   DrShad
 
3 - 28.09.17 - 10:17
ну вы же подбор в документ реализовываете?
   prilforreal
 
4 - 28.09.17 - 10:22
(3) Да, подбор реализован, для удобного подбора и нужно восстанавливать позицию, но при выборе элемента он не сразу залетает в табличное поле документа, а нужно нажать кнопку заполнить, тогда при условии что он есть на складе элемент появляется в списке (Документ Ревизия)
   DrShad
 
5 - 28.09.17 - 10:23
ЯННП
   Serg_1960
 
6 - 28.09.17 - 10:26
"позиция восстанавливается только если элемент находится не глубже 3-о уровня" - не зная конфигурации сложно сказать, но такое "ограничение" - программное скорее всего. Озвучьте алгоритм восстановления позиции (если он есть).
   prilforreal
 
7 - 28.09.17 - 10:33
(6) Процедура ТабличноеПоле1ПриАктивизацииСтроки(Элемент)
    Надпись1=ПолучитьОстатокТовара();
    ТекЭлемент=?(ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные=Неопределено,Справочники.Товары.ПустаяСсылка(),ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Ссылка);
    если ТТ<>ТекЭлемент тогда
        Если НЕ ТекЭлемент.ЭтоГруппа тогда
            ТТ=ТекЭлемент;    
            ТЦены.Очистить()//.УдалитьСтроки();

            Ц=Справочники.ЦеныТоваров.Выбрать(,ТТ)//создатьобъект("Справочник.ЦеныТоваров");

            Пока Ц.Следующий() Цикл
                СтрТЦены=ТЦены.Добавить();
                СтрТЦены.Тип=Ц.ТипЦенТоваров;
                СтрТЦены.Цена=Ц.Цена;                
            Конеццикла;
        конецесли;
    конецесли;
КонецПроцедуры

Процедура ПриОткрытии()
    // Вставить содержимое обработчика.

    ВосстанавливатьТекущуюСтроку=Истина;
        если ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные<>Неопределено тогда
        Тов=ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Ссылка;
        ЭлементыФормы.ТабличноеПоле1.Текущаястрока=Тов
    конецесли;
КонецПроцедуры
   prilforreal
 
8 - 28.09.17 - 10:35
(6) Конфигурацию писал не я, я лишь ее правлю, и как знаете в чужих джунглях найти что-то не так то просто.
   vicof
 
9 - 28.09.17 - 10:35
ну и г-код
   vicof
 
10 - 28.09.17 - 10:36
Удали его полностью и напиши свой
 
 Рекламное место пустует
   prilforreal
 
11 - 28.09.17 - 10:43
(9) И все таки насчет восстановления позиции?
   Serg_1960
 
12 - 28.09.17 - 11:06
Процедура ПриОткрытии()
  
  ЭлементыФормы.СправочникСписок.ВосстанавливатьТекущуюСтроку = Истина;
КонецПроцедуры
   prilforreal
 
13 - 28.09.17 - 11:20
(12)  {Справочник.Товары.Форма.ФормаСписка.Форма(195)}: Поле объекта не обнаружено (СправочникСписок)
    ЭлементыФормы.СправочникСписок.ВосстанавливатьТекущуюСтроку = Истина;

 Насколько я понимаю восстановление не работает из-за того что в справочнике дерево реализовано. Как быть в этом случае?
   Сияющий Асинхраль
 
14 - 28.09.17 - 11:31
(13) В твоем случае скорее всего вместо СправочникСписок будет ТабличноеПоле1
   prilforreal
 
15 - 28.09.17 - 11:35
(14) Ошибки не выдает, но позицию не восстанавливает
   Serg_1960
 
16 - 28.09.17 - 11:57
Возможно позиционирование "теряется" при обработке событий формы, событий других табличных полей. Надо смотреть в алгоритмах / проверять в отладке.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует