Имя: Пароль:
1C
1С v8
Конвертация УТ 11 - > Бух 2.0
0 rutony
 
30.10.12
13:33
Переношу УТ - > Бух

Как сделать перенос контрагентов, по следующему правилу:
Если у контрагента задан ИНН - то ищем в бухе по ИНН и КПП, без учета наименования
Если у контрагента пустое ИНН, то ищем по наименованию...
1 ptiz
 
30.10.12
13:35
(0) Так и сделать. Ты практически код на языке 1С написал.
2 rutony
 
30.10.12
13:40
(1) Дак вопрос как реализовать...
Написал в ПКО Контрагентов, перед выгрузкой:
Параметры = Новый Структура;
Если ПустаяСтрока(Источник.ИНН) Тогда
   Параметры.Вставить("Поиск","Наименование");
Иначе
   Параметры.Вставить("Поиск","ИНН, КПП");
КонецЕсли;

В "Поля поиска":
СтрокаИменСвойствПоиска = Параметры.Поиск;

Конвертация сует в файл с данными, в поля поиска СтрокаИменСвойствПоиска = Параметры.Поиск;
А я как понимаю там должно быть что то типа "Наименование" или "ИНН, КПП"
3 Alex S D
 
30.10.12
13:40
см. Обработчик "Поля поиска" , может поможет
4 rutony
 
30.10.12
13:41
Рубиться на:

Ошибка при загрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1566)}: Ошибка в обработчике события ПоследовательностьПолейПоиска
   ИмяПКО                 =  
   ТипОбъекта             =  Контрагенты
   Обработчик             =  Последовательность полей поиска
   ОписаниеОшибки         =  Поле объекта не обнаружено (Поиск)
   ПозицияМодуля          =  (1)
   КодСообщения           =  73
5 Alex S D
 
30.10.12
13:42
может помещать в параметр объекта?
6 Alex S D
 
30.10.12
13:46
или определить глобальный параметр, с признаком использования при загрузке
7 cw014
 
30.10.12
13:48
(4) =  Поле объекта не обнаружено (Поиск)
Где то в параметрах он у тебя пропадает
8 leonidkorolev
 
30.10.12
13:48
В ПКО в обработчике Поля поиска напиши код

Если НомерВариантаПоиска = 1 тогда

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

Иначе

СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";

КонецЕсли;

Обрати внимание что условие можешь проверять в прямо в обработчике Поля поиска не заморачиваясь с параметрами.
И справочник контрагенты скорей всего иерархический, поэтому надо обязательно в поля поиска включать ЭтоГруппа. И обязательно поставь галочки поиска по всем используемым ПКС.
9 leonidkorolev
 
30.10.12
13:50
+(8) Отключи синхронизацию по ГУИДу
10 rutony
 
30.10.12
13:59
(8)(9)
Источник в этом обработчике не доступен, это первое что я попробывал

Группы не нужны,
ГУИ изначально убран
Тут проблемная ситуация, в базе приемнике уже есть куча всего и вся... Полный поиск, по сути по умолчанию, не подойдет...

(5) Сделал параметр ПКС: ИНН -> ЗначениеИНН,
и в обработчике поставил:
Если ПустаяСтрока(ПараметрыОбъекта["ЗначениеИНН"]) Тогда
   СтрокаИменСвойствПоиска = "Наименование";
Иначе
   СтрокаИменСвойствПоиска = "ИНН, КПП";
КонецЕсли;    

Валиться с ошибкой, при загрузке:
   ИмяПКО                 =  
   ТипОбъекта             =  Контрагенты
   Обработчик             =  Последовательность полей поиска
   ОписаниеОшибки         =  Получение элемента по индексу для значения не определено
11 leonidkorolev
 
30.10.12
14:01
Да действительно источник недоступен. Тогда перепиши вот так

Если НомерВариантаПоиска = 1 тогда

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

Иначе

СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";

КонецЕсли;
12 rutony
 
30.10.12
14:06
(11) Спасибо, далеко не уходи, процесс написания только начался:D
13 leonidkorolev
 
30.10.12
14:06
(12) Хорошо. Я на постоянно сижу.
14 leonidkorolev
 
30.10.12
14:07
+13 на форуме
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший