Вход | Регистрация
 
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 человек.
Рекламное место пустует