Невозможность отменить изменения при редактировании сведений в пачках ПФР

1. jack19 148 28.01.17 10:19 Сейчас в теме
Релиз 361. Многие, наверное, сталкивались с проблемой невоможности отменить изменения при редактировании пачек ПФР. Нажимаем кнопку "Отмена", а суммы баз взносов по месяцам, не смотря на это, изменились. Ошибка обработки "РедактированиеСведенийПФР" конфигурации кроется в том, что в неё передаются из отчета "ПодготовкаСведенийДляПФР" не только данные в виде обычных значений (сумм, строк и т.д.), но и таблицы данных (базы взносов по месяцам). А таблицы передаются в виде ссылок на них, и все манипуляции с ними при редактировании данных моментально отражаются на исходных пачках ПФР независимо от того, закрываем мы обработку кнопкой "Ok" или "Отмена". Чтобы этого не происходило нужно предварительно скопировать таблицы. Для этого в обработке "РедактированиеСведенийПФР" перед процедурой ПриОткрытии() вставляем две функции:
Функция СкопироватьРаздел6РСВ_1(Раздел6РСВ_1ИзПараметра)
	Раздел6РСВ_1 = СоздатьОбъект("ТаблицаЗначений");
	Раздел6РСВ_1ИзПараметра.Выгрузить(Раздел6РСВ_1);
	Для Сч = 1 По Раздел6РСВ_1ИзПараметра.КоличествоСтрок() Цикл
		Раздел6РСВ_1ИзПараметра.ПолучитьСтрокуПоНомеру(Сч);
		Раздел6РСВ_1.ПолучитьСтрокуПоНомеру(Сч);
		Раздел6РСВ_1.ТаблицаВыплатПоКатегории = СоздатьОбъект("ТаблицаЗначений");
		Раздел6РСВ_1ИзПараметра.ТаблицаВыплатПоКатегории.Выгрузить(Раздел6РСВ_1.ТаблицаВыплатПоКатегории);
	КонецЦикла;
	Возврат Раздел6РСВ_1;
КонецФункции

Функция СкопироватьРаздел6РСВ_1_Вредн(Раздел6РСВ_1_ВреднИзПараметра)
	Раздел6РСВ_1_Вредн = СоздатьОбъект("ТаблицаЗначений");
	Раздел6РСВ_1_ВреднИзПараметра.Выгрузить(Раздел6РСВ_1_Вредн);
	Для Сч = 1 По Раздел6РСВ_1_ВреднИзПараметра.КоличествоСтрок() Цикл
		Раздел6РСВ_1_ВреднИзПараметра.ПолучитьСтрокуПоНомеру(Сч);
		Раздел6РСВ_1_Вредн.ПолучитьСтрокуПоНомеру(Сч);
		Раздел6РСВ_1_Вредн.ТаблицаВыплатПоКлассам = СоздатьОбъект("ТаблицаЗначений");
		Раздел6РСВ_1_ВреднИзПараметра.ТаблицаВыплатПоКлассам.Выгрузить(Раздел6РСВ_1_Вредн.ТаблицаВыплатПоКлассам);
	КонецЦикла;
	Возврат Раздел6РСВ_1_Вредн;
КонецФункции
Показать
В самой процедуре ПриОткрытии() заменяем строчки
		ТаблицаВыплатРаздел6РСВ_1 		 = Форма.Параметр.ПолучитьЗначение(20);//Раздел6РСВ_1
		ТаблицаВыплатРаздел6РСВ_1_Вредн  = Форма.Параметр.ПолучитьЗначение(21);//Раздел6РСВ_1
на
		ТаблицаВыплатРаздел6РСВ_1 = СкопироватьРаздел6РСВ_1(Форма.Параметр.ПолучитьЗначение(20));//Раздел6РСВ_1
		ТаблицаВыплатРаздел6РСВ_1_Вредн = СкопироватьРаздел6РСВ_1_Вредн(Форма.Параметр.ПолучитьЗначение(21));//Раздел6РСВ_1_Вредн
На всякий случай прилагаю обработку целиком
Прикрепленные файлы:
РедактированиеСведенийПФР.ert
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

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