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