Имя: Пароль:
1C
1С v8
Динамический список, 8.2
0 raytan
 
22.04.17
09:08
Есть динамический спискок с произвольным запросом, у которого выбрана основная таблица. Ситуация: на список накладываю отбор. После определенных манипуляций с Текущей строкой, она отбор не проходит. Как следствие из списка пропадает. Это правильно. НО вылезает такая проблема: автоматически выделяется последняя отображаемая строка, а хотелось бы, чтобы выделялась просто следующая строка после "пропавшей".
Как вариант: убираю основную таблицу в дин. списке. И перед манипуляциями с текущей строкой запоминаю ее Индификатор, после того как сработает отбор ТекущейСтроке присваиваю Индификатор. Вроде бы добились, чего хотели. НО из за того, что нет основной таблицы стандартные механизмы начинают плохо работать: например после отмены поиска позиционируется на первую строку списка, а не на найденную.
Идеальное решение (как я вижу): как то узнавать ссылку в следующей строке перед манипуляциями с текущей и после присваивать свойству ТекущаяСтрока = Ссылка.
У кого нибудь есть мысли по этому поводу ?
1 raytan
 
26.04.17
09:03
Попробовал такое решение:
Основную таблицу дин.списка оставил нужным справочником. Перед "манипуляциями" исполняю код:

ЭтаФорма.ТекущийЭлемент = эСписокНоменклатура;
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.SendKeys("{DOWN}");                
ТекущаяСтрока = эСписокНоменклатура.ТекущаяСтрока;
СвязатьНаСервереБезКонтекста(Номенклатура,Продукция); //После этой процедуры текущая строка не проходит установленный отбор в списке
эСписокНоменклатура.Обновить();            УстановитьАктивнуюСтроку(эСписокНоменклатура,ТекущаяСтрока);


&НаКлиенте
Процедура УстановитьАктивнуюСтроку(Таблица,Индетификатор)
Если ТипЗнч(Индетификатор) = Тип("СправочникСсылка.Номенклатура") ИЛИ Индетификатор >= 0   Тогда
   Таблица.ТекущаяСтрока = Индетификатор;
КонецЕсли;
КонецПроцедуры
    
В ТекущаяСтрока сохраняется нужная ссылка, но почему то код не работает ((
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший