Типовой механизм упрощенного изменения конфигурации ERP

1. Manticor 66 28.04.17 11:03 Сейчас в теме
Доброго времени суток.

Есть такая статья:
Инфостарт

Возникла необходимость обновления 1С:ERP 2.2

В форме документа Акт выполненных работ для клиента я на форме добавил процедуру перерасчета суммы НДС:

&НаКлиенте
Процедура УслугиСуммаНДСПриИзменении(Элемент)
	ТекущаяСтрока = Элементы.Услуги.ТекущиеДанные;
	ПромСуммаНДС = ТекущаяСтрока.СуммаНДС;
	ПроцентНДС = ЦенообразованиеКлиентСервер.ПолучитьСтавкуНДСЧислом(ТекущаяСтрока.СтавкаНДС)*100;	
	РасчСуммаНДС =  (ТекущаяСтрока.СуммаСНДС/(100+ПроцентНДС))* ПроцентНДС;
	РазнНДС = РасчСуммаНДС - ПромСуммаНДС;
	
	Если (РазнНДС < -0.03) ИЛИ (РазнНДС > 0.03) Тогда	
		ТекущаяСтрока.Сумма = ТекущаяСтрока.СуммаНДС/ПроцентНДС*100;
		УслугиСуммаПриИзменении(Элемент);		
	КонецЕсли;	
	ТекущаяСтрока.СуммаНДС = ПромСуммаНДС;	
КонецПроцедуры
Показать


Также ввиду "элегантного" нового решения для несогласованных изменений пришлось добавить описание новой процедуры сюда:

&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПриИзменени­и(Элемент)
....................
ИначеЕсли Элемент.Имя = "УслугиСуммаНДС" Тогда
		УслугиСуммаНДСПриИзменении(Элемент);
..........................
КонецПроцедуры


Каким теперь образом на основании статьи, что привел выше возможно все это хозяйство перенести в специально отведенный модули для обновления?

Каким образом при помощи этого механизма возможно переопределять типовые процедуры модуля формы?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. TODD22 20 28.04.17 11:08 Сейчас в теме
А внешнюю обработку табличной части к Акту выполненных работ нельзя приделать?

Если ничего не путаю то пересчёт табличной части в управляемых формах надо делать на стороне сервера для минимизации вызовов сервера.
3. Manticor 66 28.04.17 12:32 Сейчас в теме
(2) Борян, внешняя обработка она что подразумевает?

заполнение или модификацию ТЧ, а мне нужно ИМЕННО событие при изменении, чтобы при изменении именно конкретного поля пересчитались значения.
надо делать на стороне сервера для минимизации вызовов сервера

Зачем же к серверу обращаться, если все данные доступны на клиенте.
4. TODD22 20 28.04.17 12:36 Сейчас в теме
(3)
Зачем же к серверу обращаться, если все данные доступны на клиенте.

Да не обратил внимание что нужно пересчитывать строку. Думал надо всю ТЧ пересчитывать.
5. user633533_encantado 12 28.04.17 12:39 Сейчас в теме
Все сделано не так как надо. Из-за таких "доработок" конфигурации и становятся необновляемыми.

У вас в конфигурации есть модуль "модификация конфигурации", в нем нужно свои процедуры "подключать" к событиям типовых элементов, а не напрямую на форме.
6. Manticor 66 28.04.17 13:40 Сейчас в теме
(5) Помогите пожалуйста с примером - как мою процедурину по пересчету подключить к их модулю???
7. necropunk 11 28.04.17 14:07 Сейчас в теме
(6) Смотрите в процедуру "ПриСозданииНаСервере" вашей формы. В конце нее должен быть вызов типа "СобытияФорм.ПриСозданииНаСервере()". Зайдите в него. Увидите, что в нем вызывается что-то типа "МодификацияКонфигурацииПереопределяемый.ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка)".
Заходите в эту процедуру и пишете, как и рекомендовано вам в статье "Если Форма = ...", затем переопределяете нужные вам команды и обработчики и все. С примером не помогу - нет под рукой типовой конфы на управляемых.
8. user633533_encantado 12 28.04.17 14:35 Сейчас в теме
Процедура ПриСозданииНаСервереФормыПоступлениеТоваровУслуг(Форма, Отказ, СтандартнаяОбработка)
	
	Элементы = Форма.Элементы;
	   
	Элементы.ТоварыСтатьяРасходов.УстановитьДействие("ПриИзменении", "Подключаемый_ТоварыСтатьяРасходовПриИзменении");
	Элементы.ТоварыПодразделение.УстановитьДействие("ПриИзменении",  "Подключаемый_ТоварыПодразделениеПриИзменении");
	   
КонецПроцедуры
Показать
necropunk; +1 Ответить
9. Manticor 66 28.04.17 17:10 Сейчас в теме
(8)
Подключаемый_ТоварыПодразделениеПриИзменении


Если я вас правильно понимаю, то второй парметр действие Подключаемый_ТоварыПодразделениеПриИзменении нужно описывать тут же в модуле формы????

А есть вариант чтобы саму процедуру действия описать в общем модуле??
10. user633533_encantado 12 28.04.17 18:11 Сейчас в теме
(9) Нет, сами процедуры событий или новых команд должны быть в форме. Их можно будет сохранять при обновлении путем настройки объединения.
И такие процедуры должны иметь префикс "Подключаемый_", так рекомендуется.
Оставьте свое сообщение

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