Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не совсем корректно срабатывает событие при Выборе закладки (1с 7.7.025)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
andrew76
Добрый день !

Не совсем корректно срабатывает событие ПриВыбореЗакладки.
Имеется форма элемента справочника с закладками.
На первой закладке есть поле, которое должно быть заполнено.
При открытии формы должно выдаваться сообщение если поле пустое.
При открытии формы элемента справочника соответственно открывается вкладка №1
и условие проверки поля не срабатывает. А когда в открытой форме бегаешь по вкладкам ,то все работает.
Как это лечить? Сэмулировать как-то выбор закладки при открытии ?
Sharzem
andrew76 @ Сегодня, 9:30 необходимо зарегистрироваться для просмотра ссылки ,
Вірно.
В кінці процедури ПриОткрытии() викличте
ПриВыбореЗакладки(1,"ВашаНазваЗакладки");
andrew76
Sharzem @ Сегодня, 13:30 необходимо зарегистрироваться для просмотра ссылки ,
Рекурсия ?
sava1
Цитата(andrew76 @ 25.01.22, 10:44) необходимо зарегистрироваться для просмотра ссылки
Рекурсия ?


Откуда ?
andrew76
Конечно не рекурсия. Действительно, откуда ?
В конце процедуры ПриОткрытии срабатывает вариант конечно,
но мне надо чтобы срабатывало когда форма уже открыта с закладками-т.е.при выборе закладки.
а чтобы мне ее выбрать надо покликать по закладкам.
sava1
добавьте формекс - там есть событие послеОткрытия.
или приОткрытии выполнить с задержкой свою процедуру
andrew76
sava1 @ Сегодня, 14:07 необходимо зарегистрироваться для просмотра ссылки ,

Значит только внешней компонентой ?
Sharzem
andrew76 @ Сегодня, 11:40 необходимо зарегистрироваться для просмотра ссылки ,
А так:
ПриВыбореЗакладки(2,"ВтораяЗакладка");
ПриВыбореЗакладки(1,"ПерваяЗакладка");
andrew76
Sharzem @ Сегодня, 15:41 необходимо зарегистрироваться для просмотра ссылки ,

А так тоже самое. Сообщение выдается во время открытия формы.
Когда открывается форма с закладками, пока не кликнешь принудительно по вкладке ,
то и сообщение не выводится.
Sharzem
andrew76 @ Сегодня, 13:39 необходимо зарегистрироваться для просмотра ссылки ,
Ну тогда, как вариант, уберите свое "детище" на другую закладку да и не мучайтесь.
andrew76
Цитата(Sharzem @ 25.01.22, 16:51) необходимо зарегистрироваться для просмотра ссылки
andrew76 @ Сегодня, 13:39 необходимо зарегистрироваться для просмотра ссылки ,
Ну тогда, как вариант, уберите свое "детище" на другую закладку да и не мучайтесь.


Как вариант остается довольствоваться тем , что предупреждение будет
выводиться перед открытием формы с закладками.
Sharzem
Цитата(andrew76 @ 25.01.22, 13:59) необходимо зарегистрироваться для просмотра ссылки
что предупреждение будет выводиться перед открытием формы

Не будет, если вывести факт того, что форма только открывается в глобальную переменную. Например так:
Перем ФормаОткрылась

Процедура ПриВыбореЗакладки(Номер,Закладка)
    Если ФормаОткрылась = 1 Тогда
        //Вот здесь понимаем что это ПриОткрытии() и сразу ж показываем, что далее она уже открыта
        ФормаОткрылась = 0;
    Иначе
        //Тут, я так понимаю, должно сидеть Ваше Предупреждение
    КонецЕсли;
КонецПроцедуры

Процедура ПриОткрытии()
    ФормаОткрылась = 1;
    ПриВыбореЗакладки(1,"ПерваяЗакладка");
КонецПроцедуры


Возможно, рагульное решение, но Вашей инфо мало...

Кстати, в ПриВыбореЗакладки(), можно еще ложный номер подсунуть, где в самой процедуре поймать его, например:
Если НомерЗакладки = "Открытие" Тогда
    //Вот только что открылась форма
Иначе
    //Тут, опять сидит Ваше Предупреждение
КонецЕсли;
andrew76
Sharzem @ Сегодня, 19:08 необходимо зарегистрироваться для просмотра ссылки ,

Цэ дило трэба обмозгуваты...
Sharzem
andrew76 @ 25.01.22, 16:25 необходимо зарегистрироваться для просмотра ссылки ,
44000000.gif
Ииии?
Победили или забили ?
Расскажите о результатах...
denis84
andrew76 @ 25.01.22, 9:30 необходимо зарегистрироваться для просмотра ссылки ,
У меня была такая задача. Надо было проверить заполнение одного реквизита при изменении другого (заполнена ли статья расходов при изменении суммы), статья расходов на второй вкладки, а сумма на первой вкладке. При изменении суммы осуществляется переход на вторую вкладку

Вот такой код был при изменении суммы:

//=============================
Процедура ИзмСумму()    
    Если ПустоеЗначение(СтатьяРасходов) = 1 Тогда
        Форма.ИспользоватьСлой("Дополнительно",2);
        Форма.Закладки.ТекущаяСтрока(2);
        Сообщить("Выберите 'Статью","!");
        Возврат;
    КонецЕсли;    
КонецПроцедуры


может вам так надо написать при открытии формы:

Процедура ПриОткрытии()
      Форма.ИспользоватьСлой("Основные",1);
      Форма.Закладки.ТекущаяСтрока(1);
КонецПроцедуры
andrew76
Цитата(Sharzem @ 28.01.22, 15:01) необходимо зарегистрироваться для просмотра ссылки
Расскажите о результатах...


Нет ,ни один из вариантов мне не помог.Форма то с закладками открывается, но не срабатывает при открытии формы Процедура ПриВыбореЗакладки
Т.е. пока в открытой форме по закладке не кликнешь - результата нет. Тему можно закрывать.
Всем спасибо за участие.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.