Как реализовать автоматическое подставление значений в табличной части обычной! формы?

1. G_112708749323588293243 31.08.21 17:20 Сейчас в теме
В управляемой форме я, в принципе, понимаю как, например цены последние, что тут надо поменять, что бы в обычной форме работало?
Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент)
	// Получить текущую строку табличной части.
	СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;
	//Установим цену.
	СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(ДокументОбъект.Дата, СтрокаТабличнойЧасти.Номенклатура);
КонецПроцедуры

Функция РозничнаяЦена(АктуальнаяДата, ЭлементНоменклатуры) Экспорт
// Создать вспомогательный объект "Отбор".
Отбор = Новый Структура("Номенклатура", ЭлементНоменклатуры);
// Получить актуальные значения ресурсов регистра.
ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор);
Возврат ЗначенияРесурсов.Цена;
КонецФункции



Показать
По теме из базы знаний
Найденные решения
8. spacecraft 31.08.21 20:35 Сейчас в теме
(7) потому что это не имена процедур такие магические и они срабатывают.
Срабатывают только процедуры, которые назначены как процедуры соответствующих обработчиков.
Закладка свойств "События". Находите нужное событие для элемента формы и назначаете нужную процедуру.
У табличного поля обычных форм нет обработчика ПриИзменении.
Попробуйте использовать обработчик ПередОкончаниемРедактирования
Процедура ПереченьНоменклатурыПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
	ТекДанные = Элемент.ТекущиеДанные;
	ТекДанныеЦена = РаботаСоСправочниками.РозничнаяЦена(ДокументОбъект.Дата, ТекДанные.Номенклатура);
КонецПроцедуры
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 31.08.21 17:36 Сейчас в теме
да примерно тоже самое, только текущую строку чуть по другому получить

лкТекущиеДанные = ЭлементыФормы.ТаблицаРезультата.ТекущаяСтрока;
3. G_112708749323588293243 31.08.21 17:57 Сейчас в теме
Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент) а в этой строке ничего менять не надо? Просто указал "ЭлементыФормы" и ничего не поменялось
4. DJ_Codebase 31.08.21 19:45 Сейчас в теме
(3) Вот так не работает?
СтрокаТабличнойЧасти = ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;
    //Установим цену.
    СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(ЭтотОбъект.Дата, СтрокаТабличнойЧасти.Номенклатура);
5. G_112708749323588293243 31.08.21 20:07 Сейчас в теме
(4) Так тоже не работает, посоветуйте пожалуйста, хоть где можно что то прочитать про обычные формы, ничего толкого в поисковике не нахожу, уже 3 час вожусь в этим(
6. DJ_Codebase 31.08.21 20:15 Сейчас в теме
(5) Про отладчик что нибудь слышал? Что конкретно не получается? что не работает? может у тебя цены в регистре нет?
давай уже конкретику!
7. G_112708749323588293243 31.08.21 20:22 Сейчас в теме
(6) Слышал, ставлю точку останова на обеих строчках процедуры, ни на одной она не срабатывает. Цены в регистрах есть, с управляемыми формами этот код спокойно работает. Не могу понять толькол почему действие процедуры не запускается
8. spacecraft 31.08.21 20:35 Сейчас в теме
(7) потому что это не имена процедур такие магические и они срабатывают.
Срабатывают только процедуры, которые назначены как процедуры соответствующих обработчиков.
Закладка свойств "События". Находите нужное событие для элемента формы и назначаете нужную процедуру.
У табличного поля обычных форм нет обработчика ПриИзменении.
Попробуйте использовать обработчик ПередОкончаниемРедактирования
Процедура ПереченьНоменклатурыПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
	ТекДанные = Элемент.ТекущиеДанные;
	ТекДанныеЦена = РаботаСоСправочниками.РозничнаяЦена(ДокументОбъект.Дата, ТекДанные.Номенклатура);
КонецПроцедуры
10. DJ_Codebase 31.08.21 20:37 Сейчас в теме
(8)
У табличного поля обычных форм нет обработчика ПриИзменении

У табличного поля нет, но есть у ячейки ТП
11. spacecraft 31.08.21 20:39 Сейчас в теме
(10) так выше код для табличного поля.
Да и если это табличное поле таблицы значений, в которой колонки создаются программно...
15. DJ_Codebase 31.08.21 20:45 Сейчас в теме
(11) Дак там не очевидно что за код, параметр то один, да и имя как бы подразумевает - ПереченьНоменклатурыНоменклатураПриИзменении. Очень похоже что именно для ячейки.
А какая разница как создается таблица?
18. spacecraft 31.08.21 20:51 Сейчас в теме
(15)
А какая разница как создается таблица?

Добавить на форму табличное поле с привязкой к новой таблице значений.
Найти на этом поле ячейку и назначьте ей событие.
19. DJ_Codebase 31.08.21 21:00 Сейчас в теме
(18)
Найти на этом поле ячейку и назначьте ей событие.

Если новая ТЗ то и колонок в таб. поле нет. Но это решается через ДобавитьОбработчик при связывании
20. DJ_Codebase 31.08.21 21:14 Сейчас в теме
(18) еще вот такой вариант есть
ТабличноеПоле.Колонки.ИмяКолонки.ЭлементУправления.УстановитьДействие("ПриИзменении", Новый Действие("ПриИзменении"))
21. spacecraft 31.08.21 21:19 Сейчас в теме
(20) есть и даже отрабатывает.
Но вот пример, когда события не срабатывают.
Прикрепленные файлы:
Тест1.epf
22. DJ_Codebase 31.08.21 21:27 Сейчас в теме
(21) КоличествоПриИзменении отрабатывает, а Кол-ка1 и 2 не отрабатывают, т.к. у ТП был вызван СоздатьКолонки(). И вроде как имена колонок остались тами же... Могу предположить что обработчики назначаются указателям на объекты
23. spacecraft 31.08.21 21:30 Сейчас в теме
(22) так в том то и дело, что неоднозначная ситуация.
Т.е. добавили программно колонку в ТЗ (а это довольно частая ситуация) и все... обработчики назначенные на форме не работают.
24. DJ_Codebase 31.08.21 21:43 Сейчас в теме
(23) Метод СоздатьКолонки() по сути удаляет уже существующие колонки, и добавляет новые. соответственно они хоть и называются одинаково, но они уже другие - у них другие указатели. Т.е. Новый Структура = Новый Структура - это ложь.
А если в существующую коллекцию добавить новую колонку - все обработчики ЭУ сохранятся.
12. G_112708749323588293243 31.08.21 20:41 Сейчас в теме
(8) Так у обычных форм же нет событий, что бы к ним прцедуру привязать
13. spacecraft 31.08.21 20:44 Сейчас в теме
(12) события есть. куда им деться.
Прикрепленные файлы:
9. DJ_Codebase 31.08.21 20:35 Сейчас в теме
(7)
Цены в регистрах есть, с управляемыми формами этот код спокойно работает. Не могу понять толькол почему действие процедуры не запускается

а процедура-обработчик связана с событием элемента управления? что то мне подсказывает что нет
Ну или не подключен предмет отладки
14. G_112708749323588293243 31.08.21 20:44 Сейчас в теме
(9) Так не же у обычных форм событий, есть какой нибудь аналог?
16. DJ_Codebase 31.08.21 20:46 Сейчас в теме
(14) твою ж дивизию!... как это нет событий?!!
G_112708749323588293243; +1 Ответить
17. G_112708749323588293243 31.08.21 20:47 Сейчас в теме
25. user2111668 29.10.24 10:40 Сейчас в теме
как сделать так чтобы декорация автоматический вставлялось во всех формах
Оставьте свое сообщение

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