Имя: Пароль:
1C
 
Есть отсортированный динамический список справочника
0 Гений 1С
 
гуру
11.05.21
15:00
Как сделать, чтобы при изменении строки курсор перескакивал на следующую, а не оставался на текущей строке?
1 Малыш Джон
 
11.05.21
15:13
(0) Спозиционировать, не?
2 Kassern
 
11.05.21
15:15
(0)  Элементы.ДС.ТекущаяСтрока=НужнаяСтрока
3 Kassern
 
11.05.21
15:16
(2) не знаю на счет динамического, но в обычно таблице такая тема работает
4 Гений 1С
 
гуру
11.05.21
15:44
(2) а как определить следующую строку?
5 pechkin
 
11.05.21
15:50
(3) в обычной таблице нужно идентификатор передавать, а не индекс
6 Kassern
 
11.05.21
15:55
(5) я в общих чертах расписал как спозиционироваться на нужной строке, какой там тип проще в СП глянуть. Давно этим не занимался.
(4) Запомнить идентификатор текущей строки и добавить к нему +1. Скорее всего так
7 pechkin
 
11.05.21
15:56
(6) в дин списках нет идентификаторов
8 Kassern
 
11.05.21
16:18
(7) ну да ну да, а вы пробовали формировать динамический список произвольным запросом без указания основной таблицы? В этом случае решение будет очень простым: ТекущаяСтрока это будет число. Можно спокойно сделать +1 и присвоить текущей строке и будет вам следующая строка.
9 RomanYS
 
11.05.21
16:23
(8) Идентификаторы не обязаны идти по порядку. Они же должны сохраняться на время жизни формы
10 BIP1
 
11.05.21
17:17
(0) Через ПолучитьИсполняемуюСхемуКомпоновкиДанных() не вариант? Получаем ТЗ с данными текущего списка и, зная ссылку на элемент Элементы.Список.ТекущаяСтрока, получить следующую в ТЗ? Всё это &НаСервере, а не &НаКлиенте..
11 mistеr
 
11.05.21
17:38
(0) Слушай, ты в своем ламерстве опускаешься уже ниже плинтуса. Тебе даже лень внятно сформулировать название темы и вопрос. Совсем коллег не уважаешь. Не думал, что состоявшийся программист в то же время может быть ламером, однако вот.

По теме сказать нечего, извини, т.к. не понял постановку задачи. Что значит "при изменении строки"?
12 Fragster
 
гуру
11.05.21
17:39
(4) может поможет https://infostart.ru/1c/articles/559370/
13 BeerHelpsMeWin
 
11.05.21
17:40
(9) У него же отсортированный список, т.е. существует какое-то поле, которое можно увеличит на условный 1. Ну или самому пронумеровать, как надо.
14 BeerHelpsMeWin
 
11.05.21
17:54
(11) редактирование динамических списков, как в фузине!
15 RomanYS
 
11.05.21
18:04
(13) отсортировал по другому полю, пользователь же будет ожидать что переход будет на следующую строку а не на ту которая раньше была следующей
16 BeerHelpsMeWin
 
11.05.21
18:09
(15) Логично. Ну что же, придется запретить сортировку по другим полям. /s
17 RomanYS
 
11.05.21
18:15
(16) )). В любом случае ДС справочника это неприменимо, там идентиифкатором является ссылка же
18 Базис
 
naïve
11.05.21
18:41
1.  Сделай для глупых вопросов левый ник.
2. Sendkey на УФ не работает?
19 RomanYS
 
11.05.21
18:45
(10) тяжеловато получится
(18) вроде работает
&НаКлиенте
Процедура СписокПриИзменении(Элемент)
    Shell= Новый COMОбъект("Wscript.Shell");
    Shell.SendKeys("{DOWN}");
КонецПроцедуры
20 Ненавижу 1С
 
гуру
11.05.21
18:49
(19) а теперь я в форме элемента нажимаю "сохранить" без закрытия формы.
21 Cthulhu
 
11.05.21
18:51
(0) см. https://forum.infostart.ru/forum9/topic73522/ комментарий 14 (martemp 11.05.16 13:08)
22 RomanYS
 
11.05.21
18:56
(20) на тестовой перехода не было - вроде так и нужно
23 RomanYS
 
11.05.21
18:58
+ (22) правда если записать, а потом закрыть без записи - перехода тоже нет
24 BIP1
 
11.05.21
19:00
(22) Если на форме элемента кликать мышкой "Записать и закрыть", то переход срабатывает. Если нажать Ctrl+Enter, то курсор не переходит на следующую строку.
25 BIP1
 
11.05.21
19:07
(24) ПодключитьОбработчикОжидания("КурсорВниз", 0.1, Истина) помогает:)
26 RomanYS
 
11.05.21
19:08
(22) на самом деле клавиша "нажалась", но применилось не к списку. Можно сказать удачное совпадение)
27 BIP1
 
11.05.21
19:10
(26) Событие списка ПриИзменении() же происходит, конечно
28 BIP1
 
11.05.21
19:23
(23) Через ПодключитьОбработчикОжидания() и ВводДоступен() можно извратиться, чтобы и такая ситуация отрабатывала:)
29 RomanYS
 
11.05.21
19:27
(28) ага, Геня в восторге должен быть от таких велосипедов))
&НаКлиенте
Процедура СписокПриИзменении(Элемент)
    ПодключитьОбработчикОжидания("Сдвинуть", 0.3, Истина);
КонецПроцедуры

&НаКлиенте
Процедура Сдвинуть()
    Если ВводДоступен() Тогда
        Shell= Новый COMОбъект("Wscript.Shell");
        Shell.SendKeys("{DOWN}");
    Иначе
        ПодключитьОбработчикОжидания("Сдвинуть", 0.3, Истина);
    КонецЕсли;
КонецПроцедуры
30 BIP1
 
11.05.21
19:33
(29) во-во:)

&НаКлиенте
Процедура СписокПриИзменении(Элемент)
    ПодключитьОбработчикОжидания("КурсорВниз", 0.1, Истина)
КонецПроцедуры

&НаКлиенте
Процедура КурсорВниз()
    
    Если НЕ ЭтаФорма.ВводДоступен() Тогда
        ПодключитьОбработчикОжидания("КурсорВниз", 0.1, Истина);
        Возврат
    КонецЕсли;
    
    Shell= Новый COMОбъект("Wscript.Shell");
    Shell.SendKeys("{DOWN}")
    
КонецПроцедуры
31 Kassern
 
12.05.21
11:14
(29) (30) я думал до этого не дойдет))
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший