Версия для печати темы (https://pro1c.org.ua/index.php?s=336637969677b1cadf2d5d55757ac6aa&showtopic=24298)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Конфигурация "1С:Конвертация данных" _ Перенос справочника ФизическиеЛица

Автор: vadim007 27.07.15, 10:30

Всем привет!
Настраиваю перенос справочника ФизическиеЛица из ЗУП в ЗиК Бюджетная.
Первоначально поиск был как обычно - по Наименование, Родитель, Группа. По Код - отключен. Перенос работал нормально.
Но более логично для физических лиц поиск сделать по ИНН.
Установил поиск по ИНН, Родитель, Группа.
При таком варианте поиска, при загрузке данных, Группы создаются заново при каждой загрузке. Оно и понятно почему - у Группы нет ИНН.
Как настроить перенос, чтобы поиск Групп справочника был по Наименованию, а реквизитов справочника - по ИНН?

Автор: sava1 27.07.15, 11:27

В полях поиска:
Если источник.этоГруппа() тогда
строкаИменСвойствПоиска=  "ЭтоГруппа,Код";
Иначе
строкаИменСвойствПоиска=  "ЭтоГруппа,ИНН";

Автор: vadim007 28.07.15, 10:13

sava1, трошечки не так:

Если СвойстваПоиска["ЭтоГруппа"] Тогда
    СтрокаИменСвойствПоиска="Наименование,Родитель,ЭтоГруппа";
Иначе
    СтрокаИменСвойствПоиска="ИНН,Родитель,ЭтоГруппа";
КонецЕсли;

Автор: sava1 28.07.15, 10:20

Писал по-памяти. Главное - направление......

Автор: vadim007 31.07.15, 11:53

Хочу добавить еще одно условие в выбор правила поиска - по пустому ИНН. Если ИНН пустое - поиск будет по реквизитам Наименование, Родитель, ЭтоГруппа:

Если СвойстваПоиска["ЭтоГруппа"] Тогда
    СтрокаИменСвойствПоиска="Наименование,Родитель,ЭтоГруппа";
Иначе
    Если ПустоеЗначение(Источник.ИНН) Тогда
        Сообщить("Поиск по Наименование,Родитель,ЭтоГруппа");
        СтрокаИменСвойствПоиска="Наименование,Родитель,ЭтоГруппа";
    Иначе
        СтрокаИменСвойствПоиска="ИНН,Родитель,ЭтоГруппа";
    КонецЕсли;
КонецЕсли;

При загрузке данных на стороне приемника выдается ошибка:
Ошибка в обработчике события ПоследовательностьПолейПоиска
ИмяПКО =
ТипОбъекта = Физические лица
Обработчик = Последовательность полей поиска
ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(4,22)}: Переменная не определена (Объект)
ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(6198)
КодСообщения = 73

Ошибка при загрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1629)}: Ошибка в обработчике события ПоследовательностьПолейПоиска
ИмяПКО =
ТипОбъекта = Физические лица
Обработчик = Последовательность полей поиска
ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(4,22)}: Переменная не определена (Объект)
ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(6198)
КодСообщения = 73

Получается, в обработчике "Поля поиска" недоступны объекты Источник, Приемник, Объект.
Как решить эту проблему?

Нашел решение:
Если СвойстваПоиска["ЭтоГруппа"] Тогда
    СтрокаИменСвойствПоиска="Наименование,Родитель,ЭтоГруппа";
Иначе
    ТекущийИНН=СвойстваПоиска.Получить("ИНН");
    Если ПустаяСтрока(ТекущийИНН) Тогда
        СтрокаИменСвойствПоиска="Наименование,Родитель,ЭтоГруппа";
    Иначе
        СтрокаИменСвойствПоиска="ИНН,Родитель,ЭтоГруппа";
    КонецЕсли;
КонецЕсли;

Автор: stark 31.07.15, 11:53

Как вариант:

ПустоеЗначение(СвойстваПоиска["ИНН"])

Автор: vadim007 31.07.15, 12:33

stark, нету в восьмерке функции ПустоеЗначение. Мне самому после семерки трудно это осознавать sad.gif

Автор: stark 31.07.15, 12:45

Проблему решили- это главное. wink.gif

Автор: logist 02.08.15, 11:55

Цитата(vadim007 @ 31.07.15, 13:33) *
нету в восьмерке функции ПустоеЗначение

Отчего же, есть функция "не пустое значение", ее можно использовать с НЕ.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua