8.х Как программно снять активизацию строки формы выбора справочника?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Ярик, 4 апр 2010.

  1. xm78z9
    Offline

    xm78z9

    Регистрация:
    17 янв 2011
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Всё та же проблема, не получится выбрать сразу первую строку, при первоначальном запуске формы, так как она уже активна (снчала надо щелкнуть на какуюнибудь другую строку, а потом на нее)

    Получается что в форме с таблицей, автоматически создается сразу 2 фокуса для формы и для таблицыЗначений. хоть в текущем элементе будет другой объект формы, все равно в таблице будет активизирвана строка
  2. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    А если создать на форме какую-нубудь кнопку (как вариант невидимую) и программно нажать на нее
    Код:
    Shell = Новый COMОбъект("WScript.Shell");
    Shell.SendKeys("Комбинация клавиш на кнопке");
    
    ?
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Неужели это нельзя предусмотреть в алгоритме вашей обработки?
    Я так понимаю у вас картинка при открытии не обображается?
  4. xm78z9
    Offline

    xm78z9

    Регистрация:
    17 янв 2011
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Я в начале говорил, что это пример, с картинками, у меня аналогичная проблема. Ладно, сейчас быстренько накидаю конфигурацию...
  5. xm78z9
    Offline

    xm78z9

    Регистрация:
    17 янв 2011
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Вот, сделал на скорую руку, вроде всё отображается.

    yzek, я даже не знаю как применить этот код :angry:

    Вложения:

  6. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    Разполагаете кнопку на форме, назначаете ей комбинацию клавиш, допустим "Ctrl+F3".
    При открытии формы имитируем нажатие кнопки (средствами ОС), чтобы для этого используем COMобъект:
    Код:
    Shell = Новый COMОбъект("WScript.Shell");
    Shell.SendKeys("^+{F3}");
    
    
    Но это все равно тут не поможет.
  7. xm78z9
    Offline

    xm78z9

    Регистрация:
    17 янв 2011
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Видимо ни у кого больше нет предложений, тогда попробую я.

    При открытии формы добавлять в таблицу пустую строку, и ставить на нее фокус, при этом изменять цвет выделения. А при выборе другой строки возвращать всё обратно

    Реально вообще изменить цвет выделения?
  8. wolf3d
    Offline

    wolf3d Опытный в 1С

    Регистрация:
    5 мар 2011
    Сообщения:
    83
    Симпатии:
    0
    Баллы:
    26
    значиЦЦо так.
    1. при открытии любого справочника указатель устанавливается на левую верхнюю колонку - а это картинка - или папка(для иерархического) или элемент
    Пользователь врядли полезет именно на это МАЛЮСЕНЬКОЕ поле дабы жмякнуть именно по нему))).
    2. при клике мышОй по элементыформы.справочниксписок срабатывает 2 интересующих нас события, это "При активизации строки" и "При активизации колонки"

    вывод:
    1. нужно повесить один обработчик на оба этих события, причем чтобы при первом отображении они пропускались.
    2. так как мы открываем отдельную форму с картинкой товара, нужно отследить чтобы эта внешняя форма открывалась 1 раз при любых комбинациях нажатия мышки

    вот код:
    Код:
    перем флаг,признак;
    
    Процедура ПриОткрытии()
    флаг=0;
    признак=ложь;
    КонецПроцедуры
    
    Процедура СправочникСписокПриАктивизацииКолонки(Элемент)
    если флаг >1 тогда 
    если признак = ложь тогда
    //делаем что нам нужно
    КонецЕсли;
    // чисто для эстетики не даем значению флагу вырасти до огромных значений
    если флаг > 2 тогда 
    флаг = 2;
    КонецЕсли;
    //меняем значение признака срабатывания на противоположное - добиваемся срабатывания нашего обработчика только 1 раз
    если признак=ложь тогда
    признак=истина;
    иначе
    признак=ложь;
    КонецЕсли;
    КонецЕсли;
    флаг=флаг+1;
    КонецПроцедуры
    
    
    
  9. Euronymous
    Offline

    Euronymous Опытный в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    206
    Симпатии:
    0
    Баллы:
    26
    Спустя 5 лет...
    Появилось ли нормальное решение у данной проблемы?:)

Поделиться этой страницей