|
Изменение в документе с помощью внешней обработки | ☑ | ||
---|---|---|---|---|
0
Alt321
30.05.22
✎
10:18
|
У меня есть внешняя обработка которая может изменять цену в некоторых документах. Как мне оставить всю логику которая есть в процедуре модуле формы ТоварыЦенаПриИзменении() которая выполняется на клиенте ?
|
|||
1
Kassern
30.05.22
✎
10:21
|
(0) Берете конфигуратор, открываете это событие у формы и отладчиком с F12 скачите по процедурам, пока не наткнетесь на серверный метод БСП, который пересчитывает строки.
|
|||
2
Мультук
гуру
30.05.22
✎
10:25
|
(0)
Копи-паст, анализ и портирование этого кода в свою обработку. пример &НаКлиенте Процедура ТоварыЦенаПриИзменении(Элемент) ТекущаяСтрока = Элементы.Товары.ТекущиеДанные; //твоя строка из коллекции СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект); //Твой ДокОбъект СтруктураДействий = Новый Структура; СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСумму"); СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь)); СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина)); СтруктураДействий.Вставить("ЗаполнитьДубликатыЗависимыхРеквизитов", ЗависимыеРеквизиты()); //Копи-пасти в свою обработку из формы СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов"); СтруктураДействий.Вставить("ПересчитатьСуммуСверхЗаказа", Новый Структура("РеализацияПоступлениеПоЗаказу, ТребуетсяЗалогЗаТару", Объект.РеализацияПоЗаказам, Объект.ТребуетсяЗалогЗаТару)); ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения); //КэшированныеЗначения для тебя можно = неопределено ПродажиКлиентСервер.РассчитатьИтоговыеПоказателиРеализации(ЭтаФорма); //анализируем, думаем СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма); //анализируем, думаем КонецПроцедуры |
|||
3
Dmitrii
гуру
30.05.22
✎
10:28
|
(0) Никак. Не знаю какая у тебя конфигурация, но пути только два.
Либо повторить в своей обработке тот алгоритм, что выполняется в нужном тебе обработчике. Естественно не просто скопипастить (скорее всего так не получится), а повторить по сути. Либо, как советует (1), найти какие серверные методы вызываются из твоего обработчика и выполняют нужные действия, и использовать их в своей обработке. Есть ещё третий вариант - написать что-то своё. Если всё, что тебе нужно, это посчитать "Сумма = НоваяЦена*Количество", то написать этот упрощенный код, а не дёргать весь обработчик, где наверняка выполняется ещё куча ненужных тебе телодвижений. |
|||
4
Alt321
30.05.22
✎
10:36
|
Ок, буду пробовать
|
|||
5
rozer76
30.05.22
✎
11:10
|
(4) главное в (2) что есть не только ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ но и ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ ...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |