1С бухгалтерия

Переносил данные в 2-х базах, примерно одинаковых размеров и состава видов начислений. Одна база перенеслась без проблем стандартными средствами, а вот со второй базой вдоволь намучился.
Первая ошибка проявилась в общем модуле ЗарплатаКадры в процедуре УстановитьРеквизитыВПодчиненныхПодразделениях.
Разбираться не стал и просто закомментировал в этом модуле строки в конце процедуры:

//Пока ВыборкаПодразделений.Следующий() Цикл
//	ПодразделениеОбъект = ВыборкаПодразделений.Ссылка.ПолучитьОбъект();
//	Попытка
//		ПодразделениеОбъект.Заблокировать();
//	Исключение
//		ТекстИсключенияЗаписи = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
//		НСтр("ru = 'Не удалось изменить подчиненное подразделение %1 при записи %2.
//		|Возможно, подразделение редактируется другим пользователем'"),
//		ПодразделениеОбъект.Наименование,
//		?(ИсточникДанных = Неопределено, НСтр("ru = 'всех подразделений'"), ИсточникДанных.Наименование));
//		ВызватьИсключение ТекстИсключенияЗаписи;
//	КонецПопытки;
//	
//	ЗаполнитьПодчиненноеПодразделение(ПодразделениеОбъект, СтрокаСтруктурныеЕдиницы.Ключ);
//	Если ИсточникДанных <> Неопределено И ВыполняетсяЗаписьОрганизации Тогда
//		Если Не ИсточникДанных.ЕстьОбособленныеПодразделения И ПодразделениеОбъект.ОбособленноеПодразделение Тогда
//			ПодразделениеОбъект.ОбособленноеПодразделение = Ложь;
//		КонецЕсли;
//	КонецЕсли;
//	
//	ПодразделениеОбъект.ДополнительныеСвойства.Вставить("ОбработкаЗаписиРодителя", Истина);
//	ПодразделениеОбъект.ОбменДанными.Загрузка = Истина;
//	ПодразделениеОбъект.Записать();
//КонецЦикла;

Эту ошибку проскочил и наткнулся на "Номер года в литерале типа Дата превышает 3999". Ссылался на объект Перенос данных с префиксом "РОтп". Т.е. при переносе реестр отпусков. Как уж только я не искал эту дату. Накатал отчетик и просмотрел в семерке все документы по датам (нашел парочку, дату подправил, но не помогло). Потом просмотрел все кадровые и не кадровые документы с реквизитами Начало и Окончание. В этих реквизитах тоже дат не обнаружил. Закомментировать и проскочить этот объект в обработке УниверсальныйОбменДаннымиXML не получилось, т.к. проблемная дата закралась не в дате самого документа Перенос данных, а в регистре, регистратором которого выступает этот документ.
Пришлось вытаскивать правила обмена и править их. Находятся в ЗУП-е в общих макетах "ЗарплатаКадрыПереносДанныхИзЗиК23". Выгружаем данные, которые являются архивом, распаковываем и загружаем xml файл в конфигурацию Конвертация данных. Там есть алгоритм РеестрОтпусковВыгрузить. Я решил что раз такое дело, то обойдусь без реестра и вышел из выполнения данной процедуры.
Выгрузил правила, выгрузил модуль обработки, снова все запаковал и запихнул обратно в конфигурацию. Почему не захотел выгружать из ЗиК просто обработкой по правилам, а потом загружать в ЗУП? Потому что не очень хотел разбираться в куче параметров, которые сопровождают правила выгрузки. Что там указывать, какие даты и т.д. не совсем понятно.
В общем кое как данные загрузились и даже без предупреждения об ошибках. Но почему-то без начальной задолженности. Пришлось все таки делать выгрузку из ЗиК с помощью обработки и правил выгруженных из ЗУП-а.
Открыл в ЗиК обработку, загрузил правила, попробовал установить в параметрах даты на конец года. Поставил галку для выгрузи только задолженности по зарплате. При выгрузке получил ошибку:
Ошибка получения значения свойств объекта
Объект: Иванов Иван Иванович , свойство: Физическое лицо
Ошибка получения значения свойств объекта
Объект: Иванов Иван Иванович , свойство: Уточнение наименования
Посмотрел в правила конвертации как там выгружается справочник сотрудников. Действительно там прописано, что данные свойства должны выгружаться, но этих свойств у сотрудников в ЗиК нет, они есть только в ЗУП.

В итоге плюнул окончательно на все и полез напрямую править обработку выгрузки из 7-ки. Какие там вносил мелкие поправки по процедурам приводить не стану. У каждого своя специфика будет.

Комментарии

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Я тоже очень долго ковырялся, но всё таки наковырял.
я добавил вот такой код в обработку выгрузки, в функцию РеестрОтпусковВыгрузить().

Если ПустоеЗначение(ТаблицаОтпуск.ДатаС) = 0 Тогда
Если ТаблицаОтпуск.ДатаС > Дата(2017,12,31) Тогда
Сообщить(Строка(Сотрудник)+" "+ТаблицаОтпуск.ДатаС+" "+ТаблицаОтпуск.Документ);
КонецЕсли;
КонецЕсли;

Если ПустоеЗначение(ТаблицаОтпуск.ДатаПо) = 0 Тогда
Если ТаблицаОтпуск.ДатаПо > Дата(2017,12,31) Тогда
Сообщить(Строка(Сотрудник)+" "+ТаблицаОтпуск.ДатаПо+" "+ТаблицаОтпуск.Документ);
КонецЕсли;
КонецЕсли;

Если ПустоеЗначение(ТаблицаОтпуск.ПериодС) = 0 Тогда
Если ТаблицаОтпуск.ПериодС > Дата(2017,12,31) Тогда
Сообщить(Строка(Сотрудник)+" "+ТаблицаОтпуск.ПериодС+" "+ТаблицаОтпуск.Документ);
КонецЕсли;
КонецЕсли;

Если ПустоеЗначение(ТаблицаОтпуск.ПериодПо) = 0 Тогда
Если ТаблицаОтпуск.ПериодПо > Дата(2017,12,31) Тогда
Сообщить(Строка(Сотрудник)+" "+ТаблицаОтпуск.ПериодПо+" "+ТаблицаОтпуск.Документ);
КонецЕсли;
КонецЕсли;

Оказалось что в приказе на отпуск дата окончания отпуска был 7010 год вместо 2010.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <1c7>, <drupal5>, <drupal6>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".