[РЕШЕНО] Не происходит ОбработкаВыбора

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем MixaBel, 12 мар 2014.

  1. TopicStarter Overlay
    MixaBel
    Offline

    MixaBel

    Регистрация:
    24 янв 2014
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Добрый день, возник вопрос с которым не смог разобраться ни сам, ни с помощью Гугла.
    Ситуация такая:

    Код:
    //(В форме) Вызываю обработку:
    &НаКлиенте
    Процедура НО_РД_НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка, РД)
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("ОбъектПоискаПереданный", "РД");
    //.....еще параметры
    ОткрытьФорму("Обработка.УниверсальныеПодборИОбработкаОбъектов1.Форма.ПодборИОбработка", ПараметрыФормы);
    КонецПроцедуры
    
    //(В обработке) Обработка отрабатывает и закрывается после "ОповеститьОВыборе":
    &НаКлиенте
    Процедура НайденныеОбъектыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    //......Код
    ОповеститьОВыборе(НайденныеОбъекты[ВыбраннаяСтрока].Объект);
    //......Код
    КонецПроцедуры
    
    //(В форме) Но не происходит события "ОбработкаВыбора":
    &НаКлиенте
    Процедура НО_РД_ОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    //точка останова ниже этой строки
    СтандартнаяОбработка = Ложь;
    //и ниже этой
    НО_РД_ОбработкаВыбораСервер(Элемент, ВыбранноеЗначение, СтандартнаяОбработка);
    КонецПроцедуры
    П.С. -ОбработкаВыбора должна запускаться автоматически после ОповеститьОВыборе?
    -Если до точек останова не доходит, значит ОбработкаВыбора не происходит?
    -В форме в таблице значений функции привязаны к определенным событиям в свойствах поля
    -В чем может быть проблема?
  2. TopicStarter Overlay
    MixaBel
    Offline

    MixaBel

    Регистрация:
    24 янв 2014
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    При указании владельца открываемой формы результат не меняется
    Код:
    ОткрытьФорму("Обработка.УниверсальныеПодборИОбработкаОбъектов1.Форма.ПодборИОбработка", ПараметрыФормы, ЭтаФорма);
    Посоветуйте хоть куда смотреть.
  3. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Оповестить о выборе происходит из формы в которой выбираете, а обработка выбора - уже в "родительской" форме
  4. TopicStarter Overlay
    MixaBel
    Offline

    MixaBel

    Регистрация:
    24 янв 2014
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Именно так и сделано,"ОткрытьФорму" и "ОбработкаВыбора"
    из первого поста относятся к родительской форме документа,
    а "ОповеститьОВыборе" из формы обработки.
    Извиняюсь если запутал.
    Или как раз в этом ошибка? тогда что-то не понимаю в 1С, точнее ничего...
  5. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Отладчик что говорит ?
    Сорь, не до конца прочитал первый пост.
  6. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Тут видимо что-то намудрили с клиентом, по идее на сервере проще отладчиком отловить
  7. TopicStarter Overlay
    MixaBel
    Offline

    MixaBel

    Регистрация:
    24 янв 2014
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Может хоть вы объясните как он может что то говорить?
    По точкам останова:
    Те которые указаны в первом посте, до них не доходит, просто основная форма после закрытия обработки ожидает дальнейших действий пользователя не запуская ОбработкуВыбора.

    Другие точки останова в коде обработки и основной формы показывают нужные мне результаты на каждом из этапов, проверял через Shift+F9.

    Каким еще образом можно использовать отладчик?)

    P.S. сейчас попробую ОбработкуВыбора запускать на сервере, по результату отпишусь
  8. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Ну видимо никаким. Объясните, что хотите сделать. Организовать что-то типа подбора ?
  9. TopicStarter Overlay
    MixaBel
    Offline

    MixaBel

    Регистрация:
    24 янв 2014
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Убрал часть
    Код:
    //(В форме) Но не происходит события "ОбработкаВыбора":
    &НаКлиенте
    Процедура НО_РД_ОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    //точка останова ниже этой строки
    СтандартнаяОбработка = Ложь;
    //и ниже этой
    НО_РД_ОбработкаВыбораСервер(Элемент, ВыбранноеЗначение, СтандартнаяОбработка);
    КонецПроцедуры
    Теперь сразу запускаю на сервере
    Код:
    &НаСервере
    Процедура НО_РД_ОбработкаВыбора(ВыбранноеЗначение, СтандартнаяОбработка)
        СтандартнаяОбработка    = Ложь;
    //.......
    Точки останова в процедуре НО_РД_ОбработкаВыбора() не срабатывают, я так понимаю что до них просто не доходит очередь т.к. ОбработкаВыбора не запускается?

    Ошибок никаких нет, ну по крайней мере ни я, ни конфигуратор не нашли...
  10. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    А вы эти процедуры назначили обрабочикам поля ?
  11. TopicStarter Overlay
    MixaBel
    Offline

    MixaBel

    Регистрация:
    24 янв 2014
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Требуется реализовать подбор, из основной формы вызывается обработка, в обработке происходит поиск платежки/уведомления,
    по выбору конкретного платежа происходит запись в РегистрСведений.СвязанныеДокументы, после этого требуется в основной форме, в ячейке из которой и инициализирована процедура подбора указать все привязанные платежки.

    До записи в РегистрСведений все идет нормально, запись происходит штатно, а вот в основной форме, в толстом клиенте, привязано к событию ОбработкаВыбора процедура обновления ячейки и расчета зависимых сумм, в тонком клиенте хотелось бы реализовать так же, но ОбработкаВыбора не происходит...

    Процедуры НО_РД_НачалоВыбора и НО_РД_ОбработкаВыбора привязаны к соответствующим событиям поля таблицы.
  12. TopicStarter Overlay
    MixaBel
    Offline

    MixaBel

    Регистрация:
    24 янв 2014
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    И спасибо что помогаете разобраться, а то на одном "волшебном" игнорируют, ладно бы хоть ссылкой на учебник кинули, так нет даже этого(
  13. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    В обработчкиках этих полей привязаны ваши процедуры ?
  14. TopicStarter Overlay
    MixaBel
    Offline

    MixaBel

    Регистрация:
    24 янв 2014
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    В свойствах поля, в блоке события на НачалоВыбора и ОбработкаВыбора привязаны соответственно НО_РД_НачалоВыбора и НО_РД_ОбработкаВыбора.
    Где то еще привязать необходимо?
  15. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Так-то больше нигде.
  16. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Тему прочитал бегло, "по диагонали", поэтому мог что-то упустить....Но мне кажется, Вам надо проверить соответствие владельца, которого передаете в открываемую форму, и того элемента формы (или самой формы), для которого назначаете обработчик "ОбработкаВыбора".

    Смотрите, событие "ОбработкаВыбора" есть и у самой формы, и у элементов формы.
    Когда Вы программно открываете форму, надо обязательно в соответствующем параметре передать владельца открываемой формы. Когда в открывшейся форме вызываете метод "ОповеститьОВыборе()", у Вас срабатывает событие "ОбработкаВыбора". Так вот, срабатывает оно у того объекта, который Вы передали в качестве владельца открываемой формы.
    Т.е. если передали саму форму,
    Код:
    ОткрытьФорму("Обработка.УниверсальныеПодборИОбработкаОбъектов1.Форма.ПодборИОбработка", ПараметрыФормы, ЭтаФорма);
    то сработает событие "ОбработкаВыбора" самой формы.
    Если передали в качестве владельца какой-то элемент формы,
    Код:
    ОткрытьФорму("Обработка.УниверсальныеПодборИОбработкаОбъектов1.Форма.ПодборИОбработка", ПараметрыФормы, Элемент);
    то сработает событие "ОбработкаВыбора" этого элемента формы.
    ЕкатеринаНик и MixaBel нравится это.
  17. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Андрей - в точку!
    MixaBel нравится это.
  18. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Надеюсь :)
  19. TopicStarter Overlay
    MixaBel
    Offline

    MixaBel

    Регистрация:
    24 янв 2014
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Вы были правы, я дошёл до этого уже под утро. Обидно было немного когда с утра таки заработал инет и я увидел ваше готовое решение(

    Код:
    ОткрытьФорму("Обработка.УниверсальныеПодборИОбработкаОбъектов1.Форма.ПодборИОбработка", ПараметрыФормы, Элемент)
    Спасибо за помощь!
  20. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Вот из-за таких ляпов и идет недопонимание. Кажется банальная вещь - а не тут-то было.... дело было не в бабине...

Поделиться этой страницей