Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перенос справочника ФизическиеЛица
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Конфигурация "1С:Конвертация данных"
vadim007
Всем привет!
Настраиваю перенос справочника ФизическиеЛица из ЗУП в ЗиК Бюджетная.
Первоначально поиск был как обычно - по Наименование, Родитель, Группа. По Код - отключен. Перенос работал нормально.
Но более логично для физических лиц поиск сделать по ИНН.
Установил поиск по ИНН, Родитель, Группа.
При таком варианте поиска, при загрузке данных, Группы создаются заново при каждой загрузке. Оно и понятно почему - у Группы нет ИНН.
Как настроить перенос, чтобы поиск Групп справочника был по Наименованию, а реквизитов справочника - по ИНН?
sava1
В полях поиска:
Если источник.этоГруппа() тогда
строкаИменСвойствПоиска=  "ЭтоГруппа,Код";
Иначе
строкаИменСвойствПоиска=  "ЭтоГруппа,ИНН";
vadim007
sava1, трошечки не так:
Если СвойстваПоиска["ЭтоГруппа"] Тогда
    СтрокаИменСвойствПоиска="Наименование,Родитель,ЭтоГруппа";
Иначе
    СтрокаИменСвойствПоиска="ИНН,Родитель,ЭтоГруппа";
КонецЕсли;
sava1
Писал по-памяти. Главное - направление......
vadim007
Хочу добавить еще одно условие в выбор правила поиска - по пустому ИНН. Если ИНН пустое - поиск будет по реквизитам Наименование, Родитель, ЭтоГруппа:
Если СвойстваПоиска["ЭтоГруппа"] Тогда
    СтрокаИменСвойствПоиска="Наименование,Родитель,ЭтоГруппа";
Иначе
    Если ПустоеЗначение(Источник.ИНН) Тогда
        Сообщить("Поиск по Наименование,Родитель,ЭтоГруппа");
        СтрокаИменСвойствПоиска="Наименование,Родитель,ЭтоГруппа";
    Иначе
        СтрокаИменСвойствПоиска="ИНН,Родитель,ЭтоГруппа";
    КонецЕсли;
КонецЕсли;

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

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

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

Нашел решение:
Если СвойстваПоиска["ЭтоГруппа"] Тогда
    СтрокаИменСвойствПоиска="Наименование,Родитель,ЭтоГруппа";
Иначе
    ТекущийИНН=СвойстваПоиска.Получить("ИНН");
    Если ПустаяСтрока(ТекущийИНН) Тогда
        СтрокаИменСвойствПоиска="Наименование,Родитель,ЭтоГруппа";
    Иначе
        СтрокаИменСвойствПоиска="ИНН,Родитель,ЭтоГруппа";
    КонецЕсли;
КонецЕсли;
stark
Как вариант:
ПустоеЗначение(СвойстваПоиска["ИНН"])
vadim007
stark, нету в восьмерке функции ПустоеЗначение. Мне самому после семерки трудно это осознавать sad.gif
stark
Проблему решили- это главное. wink.gif
logist
Цитата(vadim007 @ 31.07.15, 13:33) необходимо зарегистрироваться для просмотра ссылки
нету в восьмерке функции ПустоеЗначение

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