Ошибка при обновлении Бухгалтерии для Украины 1.2 -> 2.0 (ЗарплатаКадрыОбновлениеСПредыдущейРедакции)

При обновлении 1С Бухгалтерия для Украины 1.2 на версию 2.0 возникает следующая ошибка:

{ОбщийМодуль.ЗарплатаКадрыОбновлениеСПредыдущейРедакции.Модуль(4485)}: Ошибка при вызове метода контекста (Записать)

                               НаборЗаписей.Записать();

по причине:

Запись с такими ключевыми полями существует! : ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам: 01.08.2015, ТОВ "РОМАШКА", С****  Анастасія Олександрівна,  (Регистр сведений: Лицевые счета сотрудников по зарплатным проектам; Номер строки: 4)

Очевидно, что ошибка возникает при записи в периодический регистр сведений «ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам». По какой-то причине обработка обновления пытается продублировать уже существующий в этом регистре набор записей.

Не удалось выполнить обновление с версии 1.2 на 2.0

Журнал регистрации с подобным описанием ошибки

В регистре сведений «ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам» 3 измерения: Организация, ФизЛицо и Банк.

3 измерения РС "ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам"

Исходный код обработки обновления конфигурации

Чтобы воспроизвести ситуацию, исходя из кода обработки, составим следующий запрос и выполним его в архивной копии Бухгалтерии 1.2:

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ПараметрыВыплатыЗПРаботниковСрезПоследних.Период КАК Период,
	ПараметрыВыплатыЗПРаботниковСрезПоследних.Организация КАК Организация,
	ПараметрыВыплатыЗПРаботниковСрезПоследних.Банк КАК Банк,
	ПараметрыВыплатыЗПРаботниковСрезПоследних.НомерКарточки КАК НомерКарточки,
	ПараметрыВыплатыЗПРаботниковСрезПоследних.ДатаДействия КАК ДатаДействия,
	ПараметрыВыплатыЗПРаботниковСрезПоследних.Сотрудник.ФизЛицо КАК ФизическоеЛицо
ПОМЕСТИТЬ ВТДанныеОБанковскихКарточках
ИЗ
	РегистрСведений.ПараметрыВыплатыЗПРаботников.СрезПоследних() КАК ПараметрыВыплатыЗПРаботниковСрезПоследних
ГДЕ
	ПараметрыВыплатыЗПРаботниковСрезПоследних.Активность = ИСТИНА
	И ПараметрыВыплатыЗПРаботниковСрезПоследних.СпособВыплаты = ЗНАЧЕНИЕ(Перечисление.СпособыВыплатыЗарплаты.ЧерезБанк)
;

ВЫБРАТЬ
	НАЧАЛОПЕРИОДА(ДанныеОБанковскихКарточках.Период, МЕСЯЦ) КАК Месяц,
	МАКСИМУМ(ДанныеОБанковскихКарточках.Период) КАК Период,
	ДанныеОБанковскихКарточках.Организация КАК Организация,
	ДанныеОБанковскихКарточках.ФизическоеЛицо КАК ФизическоеЛицо
ПОМЕСТИТЬ ВТВТДанныеОБанковскихКарточкахПоПериодам
ИЗ
	ВТДанныеОБанковскихКарточках КАК ДанныеОБанковскихКарточках

СГРУППИРОВАТЬ ПО
	ДанныеОБанковскихКарточках.Организация,
	ДанныеОБанковскихКарточках.ФизическоеЛицо,
	НАЧАЛОПЕРИОДА(ДанныеОБанковскихКарточках.Период, МЕСЯЦ)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ДанныеОБанковскихКарточкахПоПериодам.Период КАК Период,
	ДанныеОБанковскихКарточках.Организация КАК Организация,
	ДанныеОБанковскихКарточках.Банк КАК Банк,
	ДанныеОБанковскихКарточках.НомерКарточки КАК НомерЛицевогоСчета,
	ДанныеОБанковскихКарточках.ДатаДействия КАК ДатаДействия,
	ДанныеОБанковскихКарточках.ФизическоеЛицо КАК ФизическоеЛицо
ИЗ
	ВТВТДанныеОБанковскихКарточкахПоПериодам КАК ДанныеОБанковскихКарточкахПоПериодам
		ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОБанковскихКарточках КАК ДанныеОБанковскихКарточках
		ПО ДанныеОБанковскихКарточкахПоПериодам.Период = ДанныеОБанковскихКарточках.Период
			И ДанныеОБанковскихКарточкахПоПериодам.ФизическоеЛицо = ДанныеОБанковскихКарточках.ФизическоеЛицо
			И ДанныеОБанковскихКарточкахПоПериодам.Организация = ДанныеОБанковскихКарточках.Организация

Результат наблюдения

После изучения результатов выяснилось:

  1. В БД есть 2 сотрудника, у которых реквизит ФизЛицо указывает на один и тот же элемент справочника «Физические лица»
  2. В Бухгалтерии для Украины 1.2 параметры выплаты зарплаты  хранятся в РС «ПараметрыВыплатыЗПРаботников» в разрезе сотрудников
  3. В Бухгалтерии для Украины 2.0 параметры выплаты по банку хранятся в разрезе физических лиц

Решение проблемы

Во избежание ошибок подобного рода, каждый элемент справочника «Сотрудники» должен ссылаться на отдельное физическое лицо.

В моем случае удобнее всего было поменять элемент справочника с помощью «Редактор объекта БР» в панели Инструменты разработчика.

Редактор объекта БД "Физические лица"


Похожие материалы

Комментарии