Имя: Пароль:
1C
1С v8
Хитрый фокус в дереве. Как ?
0 Aleks73
 
06.04.12
09:08
1С:Предприятие 8.2 (8.2.13.219)
в дереве формы выбора псравочника хочу сделить за выделенной строкой - чтобы она находилась в фокусе по нажатию чегото там.
Но
если прокрутить форму так, чтобы выделенная по нажатию строка осталась, но исчезла из поля зрения,
то повторное нажатие с использованием
ЭлементыФормы.Характеристики.ТекущаяСтрока
не помогает для перехода к фокусу.
Сейчас пытаюсь извернуться, но не хочу изобретать велосипед.
Кто-нибудь победил ?
1 vmv
 
06.04.12
09:10
задача о том как сидеть сразу на двух стульях

решение: отрастить задницу большого размера, работай - невазможное вазможно
2 vmv
 
06.04.12
09:11
"Но
если прокрутить форму так, чтобы выделенная по нажатию строка осталась, но исчезла из поля зрения"(с)

технологии 22-го века, пал ниц
3 Aleks73
 
06.04.12
09:12
(1) В профиле у тебя не указано, в стандартах мисты не значится...какой размер нужен ?
4 Aleks73
 
06.04.12
09:13
(2) если ты включил телевизор и отвернулся -
телевизор останется включенным, но ты его не видишь .
Вот как-то так...
5 vmv
 
06.04.12
09:16
(4) мне нравиться ход твоих мыслей.

надо привлечь в ветку десяток философов и будем искать решение
6 vmv
 
06.04.12
09:18
(4) а если я отвернулся в сторону где стоит другой телевизор?
7 Aleks73
 
06.04.12
09:19
(6) речь идет о конкретном тебе и конкретном телевизоре в ситуации (4)
8 vmv
 
06.04.12
09:23
(7) ок, я один телевизора два, но ини показывают одно и тоже)
9 Aleks73
 
06.04.12
09:25
(8) я тебе сказал, что ты включил И второй телевизор ?
10 Serg_1960
 
06.04.12
09:29
Что-то я фишки юмора не понял, хотя и тяпница :(

Если ТабличноеПоле.ВыделенныеСтроки.Количество() = 1 Тогда
  ...ТабличноеПоле.ВыделенныеСтроки[0]...
11 НЕА123
 
06.04.12
09:31
(0)
эмуляция нажатия клавиш вверх-вниз?
12 vmv
 
06.04.12
09:32
(9) он включился как только я бросил на него взгляд, иными словами 2-й телевизор попал в мой фокус, чувак технологии это уже позволяют и 1С тожа
13 Aleks73
 
06.04.12
09:33
(10) мне не считать надо, а перейти по форме - т.е. держать в фокусе визуально
14 Aleks73
 
06.04.12
09:34
(11) не понял. Выделить другую потом снова эту ?
15 Aleks73
 
06.04.12
09:35
(12) когда у меня будет платформа, которая загрузит пофигуратор по одному моему взгляду - поговорим...
16 vmv
 
06.04.12
09:35
(13) состряпай рисунок и кинь цилко, хватит болтать ниачом - показывай кино уже
17 Serg_1960
 
06.04.12
09:38
(13) Чукча не писатель?

ТабличноеПоле.ТекущаяСтрока = ТабличноеПоле.ВыделенныеСтроки[0];
18 НЕА123
 
06.04.12
09:40
(14)типа
   WSHShell = СоздатьОбъект("WScript.Shell");
   WSHShell.SendKeys("{DOWN}");

перейдет на следующую строку и будет видимость.
19 Aleks73
 
06.04.12
09:41
(18) не умею такие писать.
8-((((
20 НЕА123
 
06.04.12
09:45
(19)
а кули писать? копи-паст.
21 НЕА123
 
06.04.12
09:48
(0) на (17) глянь.
22 Aleks73
 
06.04.12
09:54
(21) ещё не тестировал такой вариант, протестирую - отпишусь
23 Aleks73
 
06.04.12
09:54
(20) куда ? в процедуру нажатия по которой всё двигается ?
24 Reset
 
06.04.12
10:02
(0) // Такое не помогает разве?
Если ТекущаяСтрока=НужнаяСтрока тогда
 ТекущаяСтрока=КакаяНибудьДругаяСтрока;
 ТекущаяСтрока=НужнаяСтрока;
КонецЕсли;
25 Reset
 
06.04.12
10:03
Если ТекущаяСтрока=НужнаяСтрока тогда
 ТекущаяСтрока=КакаяНибудьДругаяСтрока;
КонецЕсли;
ТекущаяСтрока=НужнаяСтрока;
26 Aleks73
 
06.04.12
10:03
(24) пустая не помогла
27 Reset
 
06.04.12
10:04
(26) Естеественно.
28 Aleks73
 
06.04.12
10:07
(27) гадость в том, что в списке они не по порядку кодов расположены, не поймешь, какая следуюшая. нужно писать вычисление, и оно должно отрабатывать и следовательно задерживать выполнение процедуры
29 Reset
 
06.04.12
10:08
(28) При чем тут следующая? ЛЮБАЯ другая. Подчеркиваю - другая. Платформу нужно убедить что фокус сместился и необходимо перепозиционироваться
30 Aleks73
 
06.04.12
10:11
(17) Попробовал. Не работает в том варианте, когда выделяешь одну строку, а набираешь номер другой
31 Aleks73
 
06.04.12
10:11
(29) в теории ты конечно прав, но пока что ни пробую..
32 НЕА123
 
06.04.12
10:12
мда... действительно - пятница.
33 Reset
 
06.04.12
10:13
(30) ТабличноеПоле.ТекущаяСтрока = ТабличноеПоле.ВыделенныеСтроки[0];
при отключенном мультивыборе равнозначно
ТабличноеПоле.ТекущаяСтрока=ТабличноеПоле.ТекущаяСтрока
Непонятно, что добиваемся.

(31) В теории... да уж.
34 Reset
 
06.04.12
10:14
(32) +1
35 Aleks73
 
06.04.12
10:17
(34) Шоб ты знал, что я старался...
и отладчиком...
Процедура *****ПриИзменении(Элемент)

   если Элемент.Значение > 0 тогда
       ном =  ЭтаФорма.ПараметрВыборПоВладельцу;
       ВыделеннаяХарактеристика = справочники.ХарактеристикиНоменклатуры.НайтиПоКоду(Элемент.Значение,,,ном);
       
       Если ЗначениеЗаполнено(ВыделеннаяХарактеристика) Тогда
           
           СтрХарактеристика = Характеристики.Строки.Найти(ВыделеннаяХарактеристика, "ХарактеристикаСсылка", Ложь);
           СтрХарактеристика1 = Характеристики.Строки.Найти(справочники.ХарактеристикиНоменклатуры.ПустаяСсылка(), "ХарактеристикаСсылка", Ложь);
           
           Если СтрХарактеристика <> Неопределено Тогда
               если  ЭлементыФормы.Характеристики.ТекущаяСтрока = СтрХарактеристика тогда
                   //                попытка
                   //ЭлементыФормы.Характеристики.ТекущаяСтрока = СтрХарактеристика1;
                   //исключение
                   ОтобратьХарактеристики(ВыделеннаяХарактеристика);
                   //конецпопытки ;
                   //ЭлементыФормы.Характеристики.ОбновитьСтроки();
                   ЭлементыФормы.Характеристики.ТекущаяСтрока = ЭлементыФормы.Характеристики.ВыделенныеСтроки[0];
               иначе
                   ЭлементыФормы.Характеристики.ТекущаяСтрока = СтрХарактеристика;
               конецесли ;    
           КонецЕсли;        
       КонецЕсли;
   конецесли ;
36 Aleks73
 
06.04.12
10:20
(18)
{Справочник.ХарактеристикиНоменклатуры.Форма.ФормаВыбораСРасширеннымОтбором.Форма(788,13)}: Процедура или функция с указанным именем не определена (СоздатьОбъект)
   WSHShell = <<?>>СоздатьОбъект("WScript.Shell"); (Проверка: Толстый клиент (обычное приложение))
37 НЕА123
 
06.04.12
10:27
новый  сомобъект("WScript.Shell")
38 Aleks73
 
06.04.12
10:28
(37) это где нужно вписать ? в процедуре или в начале формы ?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший