Добрый день.
В книге: 1с 8.3:Практическое пособие разработчика есть пример, как задать вопрос после нажатия кнопки выбрать в форме подбора.
Здесь отменяется стандартная обработка, подскажите, что она должна была делать?
Если закомментировать "СтандартнаяОбработка = Ложь;", то ничего не меняется.
В книге: 1с 8.3:Практическое пособие разработчика есть пример, как задать вопрос после нажатия кнопки выбрать в форме подбора.
&НаКлиенте
Асинх Процедура МатериалыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Если ОтветПередДобавлением <> Истина Тогда
СтандартнаяОбработка = Ложь;
Результат = Ждать ВопросАсинх(
"Добавить номенклатуру в табличную часть?",
РежимДиалогаВопрос.ДаНет
);
Если Результат = КодВозвратаДиалога.Да Тогда
ОтветПередДобавлением = Истина;
Для Каждого ВыбранныйЭлемент Из ВыбранноеЗначение Цикл
НоваяСтрока = Объект.Материалы.Добавить();
НоваяСтрока.Материал = ВыбранныйЭлемент;
КонецЦикла;
КонецЕсли;
Иначе
Для Каждого ВыбранныйЭлемент Из ВыбранноеЗначение Цикл
НоваяСтрока = Объект.Материалы.Добавить();
НоваяСтрока.Материал = ВыбранныйЭлемент;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
ПоказатьЗдесь отменяется стандартная обработка, подскажите, что она должна была делать?
Если закомментировать "СтандартнаяОбработка = Ложь;", то ничего не меняется.
По теме из базы знаний
- Борис Нуралиев ответил на вопросы сообщества “Инфостарт”
- Тестер: частые вопросы
- Из 1С в IIKO: Передаем перемещения УТ в приходные накладные
- Универсальная загрузка из Excel в документ поступления, с интерактивным указанием номеров колонок. Для подбора номенклатуры используем «Номенклатура поставщика»
- «Таких не берут в космонавты»: тонкие сигналы в подборе и оценке кандидатов
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Имхо, ничего не должна была делать (передан какой-то массив ссылок в табличную часть, и что?).
Переопределить поведение обработчика (для изучения) лучше на колонке таблицы формы. Типа сделал выбор из справочника какого-то товара в поле Номенклатура, отменяешь стандартную обработку и пишешь что-то своё.
Переопределить поведение обработчика (для изучения) лучше на колонке таблицы формы. Типа сделал выбор из справочника какого-то товара в поле Номенклатура, отменяешь стандартную обработку и пишешь что-то своё.
Давай думать логически.
Что стандартно делает событие "НачалоВыбора":
1) Определить тип значения, связанного с элементом формы.
2) Создать форму связанную с таблицей выбираемого значения. Допустим Справочник.Номенклатура.ФормаВыбора
2а) форма или берется из конфигуратора или создается мастером если в конфигураторе не прописывается. В форме выставляется флаг что она для выбора элемента, это определяет расширение ее поведения. У формы устанавливается вызвавший ее элемент пользовательского интерфейса - или форма или элемент формы. Ему будет передано выбранное значение. Передано значение может быть передано явно в ОбработкаВыбора, а может неявно, если такая обработка не прописана. Тогда ОбработкаВыбора будет создана платформой по умолчанию неявно (стандартная).
3) По некоторому событию на форме выбора она решает что выбор осуществлен, определено выбранное значение которое передается форме/элементу ее вызвавшему.
4) В вашем случае элемент "Материалы" обрабатывает выбор. Стандартно в элементе "Материалы" происходит замещение значения этого элемента, элементом пришедшим из выбора, перерисовывается его отображение и на этом заканчивается работа выбора. Вы же это стандартное поведение можете отменить: СтандартнаяОбработка = Ложь.
5) Дальше что делать с этим выбранным значением вы решаете сами из своего кода процедуры "Обработка выбора". Хотите задавайте дополнительные вопросы, хотите используйте, хотите нет. Но ожидаемое замещение элемента не произойдет
Что стандартно делает событие "НачалоВыбора":
1) Определить тип значения, связанного с элементом формы.
2) Создать форму связанную с таблицей выбираемого значения. Допустим Справочник.Номенклатура.ФормаВыбора
2а) форма или берется из конфигуратора или создается мастером если в конфигураторе не прописывается. В форме выставляется флаг что она для выбора элемента, это определяет расширение ее поведения. У формы устанавливается вызвавший ее элемент пользовательского интерфейса - или форма или элемент формы. Ему будет передано выбранное значение. Передано значение может быть передано явно в ОбработкаВыбора, а может неявно, если такая обработка не прописана. Тогда ОбработкаВыбора будет создана платформой по умолчанию неявно (стандартная).
3) По некоторому событию на форме выбора она решает что выбор осуществлен, определено выбранное значение которое передается форме/элементу ее вызвавшему.
4) В вашем случае элемент "Материалы" обрабатывает выбор. Стандартно в элементе "Материалы" происходит замещение значения этого элемента, элементом пришедшим из выбора, перерисовывается его отображение и на этом заканчивается работа выбора. Вы же это стандартное поведение можете отменить: СтандартнаяОбработка = Ложь.
5) Дальше что делать с этим выбранным значением вы решаете сами из своего кода процедуры "Обработка выбора". Хотите задавайте дополнительные вопросы, хотите используйте, хотите нет. Но ожидаемое замещение элемента не произойдет
(3)
Не так. Материалы это табличная часть, и ничего она делать не будет в стандартном поведении.
И в асинх процедурах - обработчиках событий - нельзя отменить стандартную обработку.
4) В вашем случае элемент "Материалы" обрабатывает выбор. Стандартно в элементе "Материалы" происходит замещение значения этого элемента, элементом пришедшим из выбора, перерисовывается его отображение и на этом заканчивается работа выбора. Вы же это стандартное поведение можете отменить: СтандартнаяОбработка = Ложь.
Не так. Материалы это табличная часть, и ничего она делать не будет в стандартном поведении.
И в асинх процедурах - обработчиках событий - нельзя отменить стандартную обработку.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот