Имя: Пароль:
1C
1С v8
Позиционирование строки
0 Frostik
 
02.10.12
08:08
Всем доброго времени суток)
Столкнулся с такой проблемой:
Есть форма списка , при изменении (Модификации) записи элемента в списке курсор активной строки перекидывает на начало списка, что не есть гуд т.к. нужно чтобы измененный элемент списка оставался активным.

ТН = ЭлементыФормы.Сотрудники.ТекущаяСтрока.ТН;
   // Спозиционируемся на той же строке
   ТекущаяСтрока = Сотрудники.Найти(ТН, "ТН");
   Если ТекущаяСтрока<>Неопределено Тогда
       ЭлементыФормы.Сотрудники.ТекущаяСтрока = ТекущаяСтрока;
   КонецЕсли;

Ошибок не выдает но и желаемого эффекта нет(
1 kosts
 
02.10.12
08:17
Ты ищешь ТН уже из первой строки
2 Frostik
 
02.10.12
08:33
в смысле?
P.S прошу извинить я начинающий программист
3 НикДляЗапросов
 
02.10.12
08:37
в смысле находишь
4 Frostik
 
02.10.12
08:40
а как должна выглядеть процедура на текущую?
5 kosts
 
02.10.12
08:45
(0) Не ясно почему у тебя вообще перескакивает на другую строку, не должно быть такого.
Рассказывай как редактируешь элемент.
6 Frostik
 
02.10.12
08:47
вызываю кнопкой форму редактирования элемента, выбираю нужный параметр, изменяю и вуаля.. опять первая строка
7 Frostik
 
02.10.12
08:50
СоздатьОткрыть = "Создать";
   Форма = ПолучитьФорму("ФормаДокумента");
   Форма.ВладелецФормы = ЭтаФорма;
   Результат = Форма.ОткрытьМодально();
   
   Если Результат = Неопределено Тогда
       Возврат;
   КонецЕсли;
   
   ПолучитьСотрудников();
   Сотрудники = СотрудникиПодразделения;
   
   ТН = ЭлементыФормы.Сотрудники.ТекущаяСтрока.ТН;
   Спозиционируемся на той же строке
   ТекущаяСтрока = Сотрудники.Найти(ТН, "ТН");
   Если ТекущаяСтрока<>Неопределено Тогда
       ЭлементыФормы.Сотрудники.ТекущаяСтрока = ТекущаяСтрока;
   КонецЕсли;
На кнопке вот эта процедура
8 kosts
 
02.10.12
08:53
(7) Т.е. список сотрудников это ТЗ?

Тогда эту строку заменить примерно на
ТН = ЭлементыФормы.Сотрудники.ТекущаяСтрока.ТН; -> ТН = Форма.Код;
9 kosts
 
02.10.12
08:54
И не ищи сотрудников по ТН, т.к. ТН (Код) Сотрудника в тповых это не уникальное значение. Нужно искать по ссылке.

Да и перезаполнять весь список после изменения одной строки нет смысла. Измени только одну строку .
10 kosts
 
02.10.12
08:57
В своей ТЗ колонкам давай те же имена, что и в соответствующем источнике это на много удобнее.
Тогда можно использовать типовую функцию ЗаполнитьЗначенияСвойств(ЗаполняемаяСтрока, ИсходныйЭлемент);
11 Frostik
 
02.10.12
09:09
если честно вообще не понял(
12 kosts
 
02.10.12
09:18
(11) Для исправления твоей ситуации достаточно заменить строку
ТН = ЭлементыФормы.Сотрудники.ТекущаяСтрока.ТН;
примерно на такую
ТН = Форма.Сотрудник.Код;

Остальное так как желательно делать. Вникай ...
13 Frostik
 
02.10.12
09:19
Спасибо ) буду разбираться)
Главное подсказал верное направление
14 kosts
 
02.10.12
09:19
Ты хочешь открыть форму нового документа или существующего?
15 Frostik
 
02.10.12
09:22
Открываю форму элемента из списка
16 чувак
 
02.10.12
09:28
Получился? Я тоже недавно решил эту проблему
17 Frostik
 
02.10.12
09:34
пока нет, ты как решил?
18 kosts
 
02.10.12
09:34
(15) Форму элемента справочника или форму документа? или у тебя форма элемента справочника названа как "ФормаДокумента"?
19 Frostik
 
02.10.12
09:40
Изначально есть форма списка с элементами,  модифицируешь элемент через форму документа, во как...
20 чувак
 
02.10.12
09:57
А источник данных формы списка какой? откуда список берет данные?
21 kosts
 
02.10.12
10:01
(19) Вообще через документ не рекомендуется менять реквизиты справочников.
22 kosts
 
02.10.12
10:02
А в переменную "Результат" что возвращается?
23 Frostik
 
02.10.12
10:04
с БД сервера
24 kosts
 
02.10.12
10:11
(23) Что именно?
25 Frostik
 
04.10.12
11:18
Данные по сотруднику
Независимо от того, куда вы едете — это в гору и против ветра!