Переход на следущую запись в многострочной части из другого слоя данного документа. 1С 7.7
10.07.2009
16:48
#1
"Есть документ.<br>слой1 - Табличная часть<br>слой2 - Ввод данных (при помощи ПолейВвода), "ФИО" и "Должность" беруться из Слоя1.<br><br>На Слой2 добавляю кнопки "следущая запись" и "предыдущая запись" и процедуры к ним<br>НомерСтроки=НомерСтроки+1; // и соответственно -1<br>ПолучитьСтрокуПоНомеру (НомерСтроки);<br>АктивизироватьСтроку(НомерСтроки);<br>ОбновитьСлой2();<br><br>Результат:<br>Номерстроки=1<br>Первый раз нажимаю кнопку "Следущая запись"<br>НомерСтроки=2<br>ФИО и должность изменились<br>А тут происходит глюк.<br>Второй раз нажимаю кнопку "Следущая запись"<br>НомерСтроки=2<br>и т.д.<br>Что я делаю не правильно. Редактирование с помощью табличной части не устраивает т.к. слишком много параметров, в которых девушки путаются, а редактирование в форме им привычние. <br>"
10.07.2009
17:18
#2
"НомерСтроки=НомерСтроки+1; - не надо использовать такое в контексте форм документов, так как НомерСтроки - скрытый реквизит табличной части и изменять его вам система позволит только с помощью<br>ПолучитьСтрокуПоНомеру (НомерСтроки);<br>АктивизироватьСтроку(НомерСтроки);<br>и т.п.<br>конструкция НомерСтроки=НомерСтроки+1; вообще всегда должна срабатывать вхолостую. Делаем так:<br><br>Процедура ИзменитьСтроку(Арг)<br> АктивизироватьСтроку(НомерСтроки+Арг);<br>КонецПроцедуры<br><br>и вызываем ее из ваших кнопок, Арг - это +1 или -1<br>"
10.07.2009
17:34
#3
Всеравно получается не то<br>При активной Слое1, все получается, переходит на следующую строку и так до конца многострочной части.<br>А при нахождении в Слое2, переключается только на следующую запись, а дальше будет переключаться только при переходе вручную на Слой1 и обратно.
10.07.2009
17:59
#4
"Хм, точно. Видимо, методы эти расчитаны на визуализированную форму. Обманем ее:<br><br>Перем НомерСтрочки;<br><br>Процедура ПриОткрытии()<br> НомерСтрочки=?(КоличествоСтрок()>0,1,0);<br> Форма.ИспользоватьСлой("Слой2");<br> ОбновитьСлой2();<br>КонецПроцедуры<br><br>Процедура ИзменитьСтроку(Арг)<br> НомерСтрочки=НомерСтрочки+Арг;<br> ПолучитьСтрокуПоНомеру(НомерСтрочки);<br> ОбновитьСлой2();<br>КонецПроцедуры<br><br>Только проверки надо вставить на не превышение количества строк этой переменной НомерСтрочки"
Читают тему
(гостей: 1)