Событие после добавления строки в ТЧ управляемой формы.

1. baracuda 2 29.04.16 15:57 Сейчас в теме
Итак моя "любимая" конфа УТ11.2.
Рабочее место кассира. Нужно добавить в ТЧ колонку Остаток. То есть после подбора, будь то подбор вручную, будь то сканером, нужно для текущей строки вычислить еще и остаток.

Ребят подскажите как это сделать. Предопределенные процедуры ТоварыПриИзменении(), ТоварыПриНачалеРедактирования(), ТоварыПриОкончанииРедактирования() не перехватывают событие.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Boneman 298 29.04.16 16:01 Сейчас в теме
(1) baracuda, по идее приизменении.
Но, там ведь могут стоять в предшествующих обработчиках перехватывающие "стандартная обработка = ложь"

нет конфы под рукой, посмотреть не могу ))
3. baracuda 2 29.04.16 16:03 Сейчас в теме
(2) Boneman, ПриИзменинии() было 1-ое что я заюзал отладчиком. Точка останова не срабатывает. Строка добавляется.
5. sommid 29.04.16 16:19 Сейчас в теме
(3) а зачем проверять добавление строки? интерактивное добавление строки еще не содержит информации для определения остатков - она будет пустая, без номенклатуры, без характеристики. Если добавляется сканером, то события ТоварыПриНачалеРедактирования(), ТоварыПриОкончанииРедактирования() и не сработают, это нужно ловить в ОбработатьШтрихкоды
4. sommid 29.04.16 16:16 Сейчас в теме
думаю так:
1. ТоварыПриОкончанииРедактирования
2. если без характеристик, то ТоварыНоменклатураПриИзменении
если по характеристикам, то ТоварыХарактеристикаПриИзменении
3. ОбработатьШтрихкоды
6. sommid 29.04.16 16:21 Сейчас в теме
+ возможно еще спец. подборы какие надо учесть.. мы их не пользуем, поэтому не подскажу
7. r.moschenskiy 23 29.04.16 16:48 Сейчас в теме
Нужно смотреть событие формы ОбработкаВыбора.
10. baracuda 2 29.04.16 17:26 Сейчас в теме
(7) r.moschenskiy, Спасибо за дельный совет. То что надо.
Не пойму одно, при добавлении товаров срабатывает событие
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)


Я для интереса для ТЧ также определил событие
&НаКлиенте
Процедура ТоварыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	// Вставить содержимое обработчика.
	Сообщить("Привет");
КонецПроцедуры

но оно почему то не отрабаывает
11. spacecraft 29.04.16 17:31 Сейчас в теме
(10) baracuda, это зависит от того, что передали в форму подбора в качестве владельца. Если передали ЭтаФорма, то и вернется в обработчик ОбработкаВыбора самой формы. Если передали табличную часть, то вернется в обработчик табличной части.
Еще не плохо бы посмотреть код открытия формы подбора. В последнее время обычно передают обработчик оповещения. Вот туда так же вернется выбранное значение.
12. baracuda 2 30.04.16 13:30 Сейчас в теме
(11) spacecraft,
&НаКлиенте
Процедура ОткрытьПодбор(Команда)
	
	// &ЗамерПроизводительности
	ОценкаПроизводительностиКлиентСервер.НачатьЗамерВремени(
		"Документ.ЧекККМ.ФормаДокументаРМК.Команда.ОткрытьПодбор");
	
	ПараметрЗаголовок = НСтр("ru = 'Подбор товаров в %Документ%'");
	Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
		ПараметрЗаголовок = СтрЗаменить(ПараметрЗаголовок, "%Документ%", Объект.Ссылка);
	Иначе
		ПараметрЗаголовок = СтрЗаменить(ПараметрЗаголовок, "%Документ%", НСтр("ru='чек ККМ'"));
	КонецЕсли;
	
	ПараметрыФормы = Новый Структура;
	ПараметрыФормы.Вставить("ВидЦены", Объект.ВидЦены);
	ПараметрыФормы.Вставить("РежимПодбораБезСоглашенийСКлиентами ", Истина);
	ПараметрыФормы.Вставить("ВариантАнализаНоменклатурыПродаваемойСовместно", ПредопределенноеЗначение("Перечисление.ВариантыАнализаНоменклатурыПродаваемойСовместно.РозничнаяТорговля"));
	ПараметрыФормы.Вставить("РежимОтбораПоАссортименту", КонтролироватьАссортимент);
	
	ПараметрыФормы.Вставить("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС);
	ПараметрыФормы.Вставить("РежимПодбораИспользоватьСкладыВТабличнойЧасти", Ложь);
	ПараметрыФормы.Вставить("ИспользоватьДатыОтгрузки",                      Ложь);
	ПараметрыФормы.Вставить("СкрыватьПодакцизныеТовары",               Объект.НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД"));
	ПараметрыФормы.Вставить("ОтображатьФлагСкрыватьПодакцизныеТовары", Объект.НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД"));
	ПараметрыФормы.Вставить("Склад",                                   Объект.Склад);
	ПараметрыФормы.Вставить("Валюта",                                  Объект.Валюта);
	ПараметрыФормы.Вставить("Заголовок",                               ПараметрЗаголовок);
	ПараметрыФормы.Вставить("Дата",                                    Объект.Дата);
	ПараметрыФормы.Вставить("Документ",                                Объект.Ссылка);
	ПараметрыФормы.Вставить("СкрыватьКолонкуВидЦены",                  Истина);
	
	ОткрытьФорму("Обработка.ПодборТоваровВДокументПродажи.Форма", ПараметрыФормы, ЭтотОбъект, УникальныйИдентификатор);
	
КонецПроцедуры
Показать


Код открытия подбора
13. spacecraft 30.04.16 15:18 Сейчас в теме
(12) baracuda, в данном случае обработчик оповещения не используется.
в форму выбора передается ЭтотОбъект, что в данном контексте управляемой формы равнозначно ЭтаФорма. Значит и выбранное значение вернется в обработчик выбора самой формы.
namazi74; baracuda; +2 Ответить
8. aka Любитель XML 29.04.16 16:54 Сейчас в теме
Потому что событие ПриИзменении надо накладывать на отдельную колонку в тз, тогда сработает. У меня так автоматом при выборе номенклатуры подтягивается несколько полей
9. baracuda 2 29.04.16 17:15 Сейчас в теме
(8) aka Любитель XML, да пробовал я так тоже. Для колонки Номенклатура есть процедура
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)

если поле редактирую точка останова в процедуре срабатывает, если добавляю новую строку то нет.
14. strelvan 74 10.08.23 09:43 Сейчас в теме
В вашем варианте лучше всего подходит событие "ОбработкаВыбора" по ячейки, например по номенклатуре: процедура будет называться ТоварыНоменклатураОбработкаВыбораПосле (....) . После - рекомендуется, если через расширение. Отлавливает добавление новой строки или новый выбор справочника.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот