Консультация № 101203
07.09.2007, 15:46
0.00 руб.
0 2 2
Здравствуйте, Умы! :)
помогите плз разобраться.
Есть конфигурация, напр. ТиС
Документы - Общий журнал - Быстрый отбор - устанавливаем значение.
В журнале отобраны документы. (напр. по проекту - иванов). Выбираем документ, меняем проект - сидоров, созраняем, закрываем, в журнале курсор показывает верхнюю строку.
Как сделать, что бы курсор перескакивал не вверх а на строку выше, чем до изменения?
был такой вариант как в приложении, но что то не получилось :(
Спасибо за совет.


Приложение:
В модуле журнала:Процедура ПриВыбореСтроки () Перем ПредДок; ТекДок = ТекущийДокумент; ОткрытьФорму (ТекущийДокумент); поз5 = СформироватьПозициюДокумента(ТекДок.ПолучитьПозицию(),-1); РазобратьПозициюДокумента (поз5, , , , , ПредДок); АктивизироватьОбъект (ПредДок);КонецПроцедуры

Обсуждение

Неизвестный
07.09.2007, 16:25
общий
это ответ
Здравствуйте, Muxa!
Дело в том, что ОткрытьФорму (ТекущийДокумент);
открывает форму и выполнение идет дальше. Дальше Вы меняете позицию журнала. Это происходит моментально, в доли секунды. После этого Вы редактируете документ, и записываете. Информация в журнале, естественно, обновляется, и курсор перескакивает вверх (или в низ, в зависимости от настроек пользователя).
А вот ОткрытьФормуМодально (ТекущийДокумент);
приостанавливает выполнение кода, пока форма не закроется.

Неизвестный
07.09.2007, 16:43
общий
это ответ
Здравствуйте, Muxa!

Получить предыдущий документ через Позицию Вы не сможете. Попробуйте метод, который у меня в Приложении.

Приложение:
Док=СоздатьОбъект("Документ"); Док.ОбратныйПорядок(1); Док.ВыбратьДокументы(,ТекущийДокумент); Док.ПолучитьДокумент(); Док.ПолучитьДокумент(); АктивизироватьОбъект(Док.ТекущийДокумент());
Форма ответа