0
serz165
01.11.18
✎
17:35
|
Здравствуйте, я начинающий программист 1С работаю 6 с 1С пол года.
1С:Предприятие 8.3 (8.3.13.1549) ЗУП 3.1
Подскажите пожалуйста. Мне поставили задачу автоматически по регламенту создавать документ разовое начисление. Я создал его с помощью регламента, все ок. Дальше я хочу его пересчитать вызвав типовую процедуру 1С РасчетЗарплатыРасширенный.ПересчитатьСотрудникаНаСервере. В регламенте это сделать невозможно так как он требует передать форму. А типовой документ править не хочу. Да и рекомендуют так не делать.
Я решил эту ситуацию так я добавил форму документа в расширение и написал вот такой код.
&НаСервере
Процедура тн1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
Если Лев(Объект.Комментарий,1) = "#" Тогда
Сообщить("Этот документ был создан автоматически");
Для Каждого Стр из Объект.Начисления Цикл
Элементы.Начисления.ВыделенныеСтроки.Добавить(Стр.НомерСтроки - 1);
КонецЦикла;
ВыбранныеСтроки = Элементы.Начисления.ВыделенныеСтроки;
РасчетЗарплатыРасширенный.ПересчитатьСотрудникаНаСервере(ЭтаФорма,"Начисления",ВыбранныеСтроки,"Сотрудник",Тип("СправочникСсылка.Сотрудники"));
КонецЕсли;
КонецПроцедуры
Моя коллега меня критикует за это решение и говорит что не надо добавлять в расширение, если что то поменяется все отвалится. Я понимаю что если что то поменяется то отвалится. Это ясно но на мой взгляд это кажется не достаточной аргументацией почему так нельзя делать.
Подскажите как мое решение на ваш взгляд и как лучше сделать. Заранее спасибо!
|
|