Запись регистра расчетов измененные пользователем данные

1. Malcev_a 16.09.24 14:34 Сейчас в теме
Всем добрый день!

Задача такая, не могу понять как решить -

В модуле формы при нажатии на команду Рассчитать заполняются поля табличной части результат и количество дней. Там два запроса и условные операторы. Это все ок, все работает. Данные берутся из регистра.

Далее пользователь в форме документа может поменять эти данные в ручную и эти новые данные при проведении документа, должны попасть в регистр расчета. При проведении попадают данные, которые рассчитываются в алгоритмах.

В форме документа процедуре обработка проведения в конце анализируется поле документа "Результат" - если оно заполнено (значит пользователь либо нажал на кнопку Расчитать, либо внес что то сам) то в стандартную структуру "дополнительные параметры" добавляю запись с ключом "Рассчитать" и значением Истина.

Далее если Этот параметр истина то регистр расчетов должен очищаться от предыдущей записи, которую сделал этот регистратор (документ), и должна попасть запись с новыми полями (все поля прежние, кроме поля Количество дней и Результат - эти данные должны быть взяты из формы документа)., но этого не происходит.
Если добавить после проверки метод Очистить, то вообще записи в регистр не добавляются.
В общем нужна помощь
Мне кажется что решение тут какое то элементарное)

  Процедура ОбработкаПроведения(Отказ, Режим)
	
	Движения.ОсновныеНачисления.Записывать = Истина;
	Движения.ДополнительныеНачисления.Записывать = Истина;
	
	Для Каждого ТекСтрокаНачисления Из Начисления Цикл
		Если ТипЗнч(ТекСтрокаНачисления.ВидРасчета) = Тип("ПланВидовРасчетаСсылка.ОсновныеНачисления") Тогда
			Движение = Движения.ОсновныеНачисления.Добавить(); 
			Движение.ПериодДействияНачало = ТекСтрокаНачисления.ДатаНачала;
			Движение.ПериодДействияКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);
			Если ТекСтрокаНачисления.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.БольничныйЛист Тогда
				Движение.ТипГрафика = Константы.Пятидневка.Получить(); 
			Иначе
				Движение.ТипГрафика = ТекСтрокаНачисления.ТипГрафика;
			КонецЕсли; 
			
			//Движение.ОтработаноДней = ТекСтрокаНачисления.ОтработаноДней;
			
			Если ТекСтрокаНачисления.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Отпуск Тогда
				НачалоМесяца = НачалоМесяца(Движение.ПериодДействияНачало);	
				Движение.БазовыйПериодНачало = ДобавитьМесяц(НачалоМесяца,-3);
				Движение.БазовыйПериодКонец = НачалоМесяца-1;
			КонецЕсли;
		ИначеЕсли ТипЗнч(ТекСтрокаНачисления.ВидРасчета) = Тип("ПланВидовРасчетаСсылка.ДополнительныеНачисления") Тогда
			Движение = Движения.ДополнительныеНачисления.Добавить();
			Движение.БазовыйПериодНачало = ТекСтрокаНачисления.ДатаНачала;
			Движение.БазовыйПериодКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);
		Иначе
			Продолжить;
		КонецЕсли;
		Движение.Сторно = Ложь;
		Движение.ВидРасчета = ТекСтрокаНачисления.ВидРасчета;
		Движение.ПериодРегистрации = Дата;
		Движение.Сотрудник = ТекСтрокаНачисления.Сотрудник;
		Движение.Подразделение = ТекСтрокаНачисления.Подразделение;
		Движение.Размер = ТекСтрокаНачисления.Размер; 
		
		//Движение.Результат = ТекСтрокаНачисления.Результат;
	КонецЦикла;
	
	Движения.Записать();

	РасчетЗП.РасчитатьРегистрРасчета(Движения.ОсновныеНачисления, Отказ);
	РасчетЗП.РасчитатьРегистрРасчета(Движения.ДополнительныеНачисления, Отказ); 

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

 
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. electr1chka 16.09.24 14:40 Сейчас в теме
(1)
В форме документа процедуре обработка проведения


Разве в форме существует такая обработка?
3. Malcev_a 16.09.24 14:42 Сейчас в теме
(2)
нта процедуре обр


В модуле объекта, сори)
Оставьте свое сообщение

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