Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перенос ФизЛиц и записей РС "Работники" соответствующих им
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Конфигурация "1С:Конвертация данных"
Vitalii1991
Доброго дня господа и дамы форумчане.
Очень нужна Ваша помощь, надеюсь и уповаю, т.к. сам уже не могу раскурить...

Исходные данные:
Есть конвертация данных, редакция 2.1 (2.1.7.1), и две базы УТП (разные).

Требуется:
Сделать перенос спр. физлица и соответствующих этим физЛицам записей из РС "Работники" без переноса самого документа регистратора.
Вот такая вот задачка)

P.S." что такое ПВД, ПКО и тд касательно знаю" .


stark
В чем конкретно проблема: вылазят битые ссылки, дубли? Конфигурации то идентичные.
Vitalii1991
Трабл состоит в: "не хватает техники для переноса записи регистра (подчиненному регистратору)".

Тоесть, создал ПВД и ПКО для справочника физЛица, но есть одно НО: немогу перенести запись из РС (запись создана документом который не будет переноситься).

Пример: 1.Физ Лицо - Дурдас М.В.
2.Запись в РС "Работники": Измерение - Дурдас М.В. , Ресурс - Манагер.

Как перенести пункт 2?
stark
Я вижу 2 варианта (не созадавать исходные документы):
-не переносить поле "регистратор", загружать в режиме "ОбменДанными". (+втупую быстро, -битые ссылки в базе)
-создать ПКО для док. "КорректировкаЗаписейРегистров", для ПВД написать алгоритм выгрузки. (+корректная структура базы, но без корректной хронологии, минусов не вижу)

Vitalii1991
Похоже на правду для ПВД ? (Обработчик - "ПередОбработкой")

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

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

ТабРаботники = Новый ТаблицаЗначений;
ТабРаботники.Колонки.Добавить("ФизЛицо");
ТабРаботники.Колонки.Добавить("Подразделение");
ТабРаботники.Колонки.Добавить("Должность");
ТабРаботники.Колонки.Добавить("ЗанимаемыхСтавок");
ТабРаботники.Колонки.Добавить("ГрафикРаботы");
ТабРаботники.Колонки.Добавить("СпособОтраженияВУпрУчете");
ТабРаботники.Колонки.Добавить("Активность");
ТабРаботники.Колонки.Добавить("Период");
//Выборка
Выборка = запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    Строка = ТабРаботники.Добавить();
    ЗаполнитьЗначенияСвойств(Строка, Выборка);
    Строка.Период     = ТекущаяДата();
    Строка.Активность = ИСТИНА;
КонецЦикла;

ВходящиеДанные.Работники  = ТабРаботники;

// Собственно выгрузка по описанному правилу
ВыгрузитьПоПравилу( , , ВходящиеДанные, , "КорректировкаЗаписейРегистров");
stark
На первый взгляд алгоритм верный.
В ПКО нужно структуру правильно разобрать и разбросать.
Vitalii1991
что-то выгружает 47046430.gif

Как сделать отбор по физ лицам? (допустим сегодня двоих нужно выгрузить, а не все кобло 09000000.gif ).
Acid
добавляйте условие в запрос
jackill88
Vitalii1991 @ 04.01.16, 13:09 необходимо зарегистрироваться для просмотра ссылки,
Киньте мне Ваши правила обмена, я допишу
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.