Обработка очень помогла при переходе из КА1.1 в ЗУП Корп 2.5. При этом это была реорганизация путем присоединения к другой организации. Надо было перенести регистры расчета "Основные начисления работников организаций" и "Дополнительные начисления работников организаций" для целей расчета средней при начислении отпуска, к примеру. Но в обработке мной замечены небольшие недостатки, которые мне пришлось исправить.
1. на закладке "Настройка" реквизит "Период действия конец" имеет тип дата с составом дата и это невозможно поменять. Это приводит к тому, что время из исходных данных теряется и система ставит по умолчанию 00:00:00, а это ведет к потере дня. Потом при расчете среднего в графе "Дней расчетного периода" при отработанном полном месяце получается 28,35, а не 29,3.
2. Для регистра расчета "Дополнительные начисления сотрудников организаций" не заполнялись поля "Год учета премий по итогам года" и "Дата начала базового периода".
Обе проблемы были решены разом небольшой правкой процедуры "ЗаполнитьНастройкиКолонокРегистраСведений":
//***********************************************************************************************************************
//Начало моей правки. Код автора закоментирован
//ЗагружаемыйРеквизит = ТаблицаЗагружаемыхРеквизитов.Добавить();
//ЗагружаемыйРеквизит.ИмяРеквизита = "ВидРасчета";
//ЗагружаемыйРеквизит.ПредставлениеРеквизита = "ВидРасчета";
//ЗагружаемыйРеквизит.МожетБытьПолемПоиска = Истина;
//ЗагружаемыйРеквизит.ПолеПоиска = Истина;
Если МетаданныеИсточника.ПланВидовРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций Тогда
ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("ПланыВидовРасчета.ОсновныеНачисленияОрганизаций", , , ,);
ИначеЕсли МетаданныеИсточника.ПланВидовРасчета = ПланыВидовРасчета.ДополнительныеНачисленияОрганизаций Тогда
ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("ПланыВидовРасчета.ДополнительныеНачисленияОрганизаций", , , ,);
ИначеЕсли МетаданныеИсточника.ПланВидовРасчета = ПланыВидовРасчета.СреднийЗаработок Тогда
ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("ПланыВидовРасчета.СреднийЗаработок", , , ,);
ИначеЕсли МетаданныеИсточника.ПланВидовРасчета = ПланыВидовРасчета.УдержанияОрганизаций Тогда
ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("ПланыВидовРасчета.УдержанияОрганизаций", , , ,);
//ИначеЕсли МетаданныеИсточника.ПланВидовРасчета = ПланыВидовРасчета.УправленческиеНачисления Тогда
// ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("ПланыВидовРасчета.УправленческиеНачисления", , , ,);
//ИначеЕсли МетаданныеИсточника.ПланВидовРасчета = ПланыВидовРасчета.УправленческиеУдержания Тогда
// ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("ПланыВидовРасчета.УправленческиеУдержания", , , ,);
КонецЕсли;
//***********************************************************************************************************************
//Продолжение моей правки. Код автора закоментирован
//ЗагружаемыйРеквизит = ТаблицаЗагружаемыхРеквизитов.Добавить();
//ЗагружаемыйРеквизит.ИмяРеквизита = "ПериодДействияНачало";
//ЗагружаемыйРеквизит.ПредставлениеРеквизита = "Период действия начало";
//ЗагружаемыйРеквизит.МожетБытьПолемПоиска = Истина;
//ЗагружаемыйРеквизит.ПолеПоиска = Истина;
//ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("Дата", , , ,Новый КвалификаторыДаты(ЧастиДаты.Дата));
//
//ЗагружаемыйРеквизит = ТаблицаЗагружаемыхРеквизитов.Добавить();
//ЗагружаемыйРеквизит.ИмяРеквизита = "ПериодДействияКонец";
//ЗагружаемыйРеквизит.ПредставлениеРеквизита = "Период действия конец";
//ЗагружаемыйРеквизит.МожетБытьПолемПоиска = Истина;
//ЗагружаемыйРеквизит.ПолеПоиска = Истина;
//ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("Дата", , , ,Новый КвалификаторыДаты(ЧастиДаты.Дата));
//
//ЗагружаемыйРеквизит = ТаблицаЗагружаемыхРеквизитов.Добавить();
//ЗагружаемыйРеквизит.ИмяРеквизита = "Сторно";
//ЗагружаемыйРеквизит.ПредставлениеРеквизита = "Сторно";
//ЗагружаемыйРеквизит.МожетБытьПолемПоиска = Истина;
//ЗагружаемыйРеквизит.ПолеПоиска = Истина;
//ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("Булево", , , ,);
КонецЕсли;
КонецЕсли;
//***********************************************************************************************************************
//Добавленный мной код начало
Для каждого Реквизит Из МетаданныеИсточника.СтандартныеРеквизиты Цикл
Если Реквизит.Имя = "Активность" ИЛИ Реквизит.Имя = "Регистратор" ИЛИ Реквизит.Имя = "НомерСтроки" ИЛИ Реквизит.Имя = "Период" Тогда
Продолжить;
КонецЕсли;
ЗагружаемыйРеквизит = ТаблицаЗагружаемыхРеквизитов.Добавить();
ЗагружаемыйРеквизит.МожетБытьПолемПоиска = Истина;
ЗагружаемыйРеквизит.ИмяРеквизита = Реквизит.Имя;
ЗагружаемыйРеквизит.ПредставлениеРеквизита = Реквизит.Представление();
ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = МетаданныеИсточника.СтандартныеРеквизиты[ЗагружаемыйРеквизит.ИмяРеквизита].Тип;
КонецЦикла;
//Добавленный мной код окончание
//***********************************************************************************************************************
Показать
Автору огромное спасибо!