Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Смена текущей страницы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
pablo
Захотелось мне по нажатию кнопки Добавить в табличной части обработки сменить текущую страницу управляемой формы. Написал код:
&НаКлиенте
Процедура ТабличнаяЧасть1ПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    Если НоваяСтрока тогда
        Элементы.Группа1.ТекущаяСтраница=Элементы.Группа1.ПодчиненныеЭлементы.Группа3;
    КонецЕсли;    
КонецПроцедуры

И... ничего не случилось. Я понимаю, что система после обработки события принудительно меняет активный элемент (и, следовательно, страницу).
Теперь вопрос. Можно ли как-то обойти это, кроме как созданием своей собственной кнопки Добавить?
andr_andrey
pablo @ Сегодня, 17:19 необходимо зарегистрироваться для просмотра ссылки,
"кроме как созданием своей собственной кнопки Добавить?"

"Правильно поставленный вопрос содержит до 90% ответа."
Vofka
&НаКлиенте
Процедура ТабличнаяЧасть1ПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    
    Если НоваяСтрока Тогда
        Объект.ТабличнаяЧасть1.Удалить(Объект.ТабличнаяЧасть1.НайтиПоИдентификатору(Элемент.ТекущаяСтрока));
        Элементы.Группа1.ТекущаяСтраница = Элементы.Группа3;
    КонецЕсли;
    
КонецПроцедуры


*Поправил немножко код
pablo
Vofka, такой способ мне не подходит, т.к. мне нужно, чтобы строка осталась (я ее реквизиты вынес на отдельную закладку).
Я нашел один немного окольный способ обхода
&НаКлиенте
Процедура Группа1ПриСменеСтраницы(Элемент, ТекущаяСтраница)
    Если ТекущаяСтраница<>Элемент.ПодчиненныеЭлементы.Группа3
            тогда
            
            Если ПроверитьЗаполнение() тогда
            иначе
                Элементы.Группа1.ТекущаяСтраница=Элемент.ПодчиненныеЭлементы.Группа3;
            КонецЕсли;
    КонецЕсли;        
КонецПроцедуры

при этом реквизиты формы со страницы Группа3 не заполнены и помечены как "Выдавать ошибку".

но может есть более прямые?
Vofka
Цитата(pablo @ 10.03.16, 17:40) необходимо зарегистрироваться для просмотра ссылки
Vofka, такой способ мне не подходит, т.к. мне нужно, чтобы строка осталась (я ее реквизиты вынес на отдельную закладку).

Если в момент ввода новой строки происходит переход на другую страницу, можно предположить, что в новой строке ничего не заполнено. Поэтому такую пустую строку можно добавить программно одной строчкой кода.
logist
Подключить обработчик ожидания через 0,1 процедура которая сменит страницу.
andr_andrey
logist @ Сегодня, 18:22 необходимо зарегистрироваться для просмотра ссылки,
Как цивилизованно можно ожидать интервал?
logist
andr_andrey, ? 0,1 секунды выполнится сразу после окончания процедуры, ну 0,2 можете поставить, такой подход используется в функционале УНФ.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.