Как избежать дублирования при выгрузке
В КД 2.1 сделал правила обмена из одной конфигурации 8.3 в другую конфигурацию 8.3. По этим правилам выгружаются в файл xml с помощью обработки универсальный обмен данными в формате XML физические лица вместе с контактной информацией и данными о документах физических лиц. В приемник физ. лица загружаются через файл xml обработкой универсальный обмен данными в формате XML. Как избежать дублирование физ. лиц и их данных в приемнике при повторной выгрузке одинаковых физ. лиц из источника?
По теме из базы знаний
- Перенос данных из БП 3.0 / БП 2.0 в УПП 1.3 / КА 1.1. Переносятся документы, остатки и справочники
- Из Excel в 1С запросом
- Правила обмена для выгрузки реализаций в поступления со счетами-фактурами для БП 3.0
- Настройка синхронизации 1С: УНФ 3.0 и 1С: БП 3.0
- Как не внедрить 1С:ERP 2 за один год, но через три распилить монолит?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)Все верно. Только это надо прописать в обработчике Поля поиска
Что то типа того
Что то типа того
Если СсылкаНаОбъект.Пустая() Тогда
//Не нашли по УИД
Если ЗначениеЗаполнено(СвойстваПоиска["ИНН"]) Тогда
СтрокаИменСвойствПоиска("ИНН");
Иначе
СтрокаИменСвойствПоиска("Наименование,ДатаРождения");
КонецЕсли;
КонецЕсли;
(3) Достаточно в обработчике "Поля поиска", предварительно указав поля поиска:
Если НомерВариантаПоиска = 1 Тогда
СтрокаИменСвойствПоиска = "ЭтоГруппа, Код, ИНН, Наименование, ДатаРождения";
ИначеЕсли НомерВариантаПоиска = 2 Тогда
СтрокаИменСвойствПоиска = "ЭтоГруппа, Код, ИНН, Наименование";
ИначеЕсли НомерВариантаПоиска = 3 Тогда
СтрокаИменСвойствПоиска = "ЭтоГруппа, Код, ИНН";
ИначеЕсли НомерВариантаПоиска = 4 Тогда
СтрокаИменСвойствПоиска = "ЭтоГруппа, Код";
Иначе // по умолчанию
СтрокаИменСвойствПоиска = "ЭтоГруппа, Код";
КонецЕсли;
Показать
(3) Как выгрузить данные о документах физ. лиц если данное физ. лицо уже есть в приемнике, а в базе источнике добавили еще один новый паспорт в регистр сведений данные о документах физ. лиц по нему? Сейчас выгрузка документов физ. лиц осуществляется из ПКО ФизическиеЛица в обработчике после выгрузки в файл:
ВыгрузитьПоПравилу(Выборка, , , , "ДокументыФизическихЛицПКО")
(4) Вам надо задать отбор - указать поля по которым будет идти поиск в приемнике и использовать не ВыгрузитьПоПравилу, а ВыгрузитьРегистр:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ДокументыФизическихЛиц.Период КАК Период,
| ДокументыФизическихЛиц.Физлицо КАК Физлицо,
| ДокументыФизическихЛиц.ВидДокумента КАК ВидДокумента,
| ДокументыФизическихЛиц.Серия КАК Серия,
| ДокументыФизическихЛиц.Номер КАК Номер,
| ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи,
| ДокументыФизическихЛиц.СрокДействия КАК СрокДействия,
| ДокументыФизическихЛиц.КемВыдан КАК КемВыдан,
| ДокументыФизическихЛиц.КодПодразделения КАК КодПодразделения,
| ДокументыФизическихЛиц.ЯвляетсяДокументомУдостоверяющимЛичность КАК ЯвляетсяДокументомУдостоверяющимЛичность,
| ДокументыФизическихЛиц.Представление КАК Представление,
| ДокументыФизическихЛиц.УдалитьВидДокумента КАК УдалитьВидДокумента
|ИЗ
| РегистрСведений.ДокументыФизическихЛиц КАК ДокументыФизическихЛиц
|ГДЕ
| ДокументыФизическихЛиц.Физлицо = &Физлицо";
Запрос.УстановитьПараметр("Физлицо", Источник.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Отбор = Новый ТаблицаЗначений;
Отбор.Колонки.Добавить("Имя");
Отбор.Колонки.Добавить("Значение");
Отбор.Колонки.Добавить("Использование");
СтрокаОтбора = Отбор.Добавить();
СтрокаОтбора.Имя = "Физлицо";
СтрокаОтбора.Значение = Выборка.Физлицо;
СтрокаОтбора.Использование = Истина;
СтрокаОтбора = Отбор.Добавить();
СтрокаОтбора.Имя = "ВидДокумента";
СтрокаОтбора.Значение = Выборка.ВидДокумента;
СтрокаОтбора.Использование = Истина;
Строки = Новый ТаблицаЗначений;
Строки.Колонки.Добавить("Период");
Строки.Колонки.Добавить("Физлицо");
Строки.Колонки.Добавить("ВидДокумента");
Строки.Колонки.Добавить("Серия");
Строки.Колонки.Добавить("Номер");
Строки.Колонки.Добавить("ДатаВыдачи");
Строки.Колонки.Добавить("СрокДействия");
Строки.Колонки.Добавить("КемВыдан");
Строки.Колонки.Добавить("КодПодразделения");
Строки.Колонки.Добавить("ЯвляетсяДокументомУдостоверяющимЛичность");
Строки.Колонки.Добавить("Представление");
Строки.Колонки.Добавить("УдалитьВидДокумента");
Строка = Строки.Добавить();
ЗаполнитьЗначенияСвойств(Строка,Выборка);
НаборЗаписей = Новый Структура("Отбор, Строки");
НаборЗаписей.Отбор = Отбор;
НаборЗаписей.Строки = Строки;
ВыгрузитьРегистр(НаборЗаписей,,,,"ДокументыФизическихЛиц");
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот