|
Происходит задвоение в справочнике "Контрагенты" при обмене | ☑ | ||
---|---|---|---|---|
0
Айрат_116
02.05.20
✎
13:16
|
Здравствуйте, у кого была такая проблема, что при обмене происходит задвоение в справочнике (https://wampi.ru/image/6omsk20)
Начал смотреть в журнале когда было добавление этого контрагента (https://wampi.ru/image/6omARog) И там не было такого что два раза он был добавлен |
|||
1
Маленький Вопросик
02.05.20
✎
13:19
|
сопоставление конграгентов идет по ГУИД внутреннему. значит, задвоенные были сделаны и там и там.
|
|||
2
Айрат_116
02.05.20
✎
13:21
|
(1) В той базе от куда она приходит?
|
|||
3
Айрат_116
02.05.20
✎
13:23
|
(1) В этой базе не типовой обмен
Вот функция где загружает контрагентов Функция ЗагрузитьКонтрагентов(Ответ) НаличиеОшибокЗагрузкиКонтрагентов = Ложь; ОбменДаннымиЗагрузка = Истина; МКонтрагенты = Справочники.Контрагенты; Для Каждого Стр Из Ответ.Контрагенты.Строки Цикл Если СокрЛП(Стр.Код)="" Тогда ЗаписьЖурналаРегистрации("ВебСервисУХ.ЗагрузитьКонтрагентов_НетКода", УровеньЖурналаРегистрации.Ошибка); НаличиеОшибокЗагрузкиКонтрагентов = Истина; Продолжить; КонецЕсли; Если Стр.ЭтоГруппа Тогда Продолжить; КонецЕсли; ГУИД = новый УникальныйИдентификатор(Стр.Ссылка); КонтрагентСсылка = МКонтрагенты.ПолучитьСсылку(ГУИД); КонтрагентОбъект = Неопределено; СсылкаСуществует = ОбщегоНазначения.СсылкаСуществует(КонтрагентСсылка); Если НЕ СсылкаСуществует Тогда КонтрагентСсылка = ВернутьКонтрагентаПоКодуSAP(Стр.Код); КонецЕсли; Если НЕ ЗначениеЗаполнено(КонтрагентСсылка) Тогда КонтрагентСсылка = ВернутьКонтрагентаПоИННКПП(Стр.ИНН, Стр.КПП); КонецЕсли; Если НЕ ЗначениеЗаполнено(КонтрагентСсылка) Тогда Если Стр.ЭтоГруппа Тогда КонтрагентОбъект = МКонтрагенты.СоздатьГруппу(); Иначе КонтрагентОбъект = МКонтрагенты.СоздатьЭлемент(); КонецЕсли; КонтрагентОбъект.УстановитьНовыйКод(); Иначе КонтрагентОбъект = КонтрагентСсылка.ПолучитьОбъект(); КонецЕсли; КонтрагентОбъект.ОбменДанными.Загрузка = ОбменДаннымиЗагрузка; КонтрагентОбъект.ПометкаУдаления = Стр.ПометкаУдаления; КонтрагентОбъект.КодSAP = Стр.Код; Если Не ЗначениеЗаполнено(КонтрагентОбъект.Наименование) Тогда КонтрагентОбъект.Наименование = СокрЛП(Стр.Наименование); КонецЕсли; Если Не ЗначениеЗаполнено(КонтрагентОбъект.НаименованиеПолное) Тогда КонтрагентОбъект.НаименованиеПолное = СокрЛП(Стр.НаименованиеПолное); КонецЕсли; Если Стр.ЭтоГруппа Тогда КонтрагентОбъект.Записать(); Продолжить; КонецЕсли; КонтрагентОбъект.Комментарий= "#УХ#"; КонтрагентОбъект.ЮрФизЛицо = ?(Стр.ЮридическоеФизическоеЛицо = "ЮридическоеЛицо",Перечисления.ЮрФизЛицо.ЮрЛицо,Перечисления.ЮрФизЛицо.ФизЛицо); КонтрагентОбъект.ИНН = СокрЛП(Стр.ИНН); КонтрагентОбъект.КПП = СокрЛП(Стр.КПП); КонтрагентОбъект.КодПоОКПО = СокрЛП(Стр.ОКПО); КонтрагентОбъект.ГоловнойКонтрагент = КонтрагентСсылка; Если ЗначениеЗаполнено(Стр.ГоловнойКонтрагент) И Не Стр.ГоловнойКонтрагент = Стр.Код Тогда КонтрагентПоКодуСАП = ВернутьКонтрагентаПоКодуSAP(Стр.ГоловнойКонтрагент); Если ЗначениеЗаполнено(КонтрагентПоКодуСАП) Тогда КонтрагентОбъект.ГоловнойКонтрагент = КонтрагентПоКодуСАП; КонецЕсли; КонецЕсли; Попытка КонтрагентОбъект.Записать(); Исключение ЗаписьЖурналаРегистрации("ВебСервисУХ.Контрагент_Записать", УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки()); НаличиеОшибокЗагрузкиКонтрагентов = Истина; Продолжить; КонецПопытки; Если ЗначениеЗаполнено(Стр.АдресЮридический) Тогда НаборКонтакт = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); НаборКонтакт.Отбор.Объект.Установить(КонтрагентОбъект.Ссылка); НаборКонтакт.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Адрес); НаборКонтакт.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента); ЗаписьКонтакт = НаборКонтакт.Добавить(); ЗаписьКонтакт.Объект = КонтрагентОбъект.Ссылка; ЗаписьКонтакт.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; ЗаписьКонтакт.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента; ЗаписьКонтакт.Представление = Стр.АдресЮридический; Попытка НаборКонтакт.Записать(Истина); Исключение ЗаписьЖурналаРегистрации("ВебСервисУХ.КонтактнаяИнформация_ЗаписатьЮрАдрес", УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки()); КонецПопытки; КонецЕсли; Если ЗначениеЗаполнено(Стр.АдресФактический) Тогда НаборКонтакт = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); НаборКонтакт.Отбор.Объект.Установить(КонтрагентОбъект.Ссылка); НаборКонтакт.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Адрес); НаборКонтакт.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента); ЗаписьКонтакт = НаборКонтакт.Добавить(); ЗаписьКонтакт.Объект = КонтрагентОбъект.Ссылка; ЗаписьКонтакт.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; ЗаписьКонтакт.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента; ЗаписьКонтакт.Представление = Стр.АдресПочтовый; Попытка НаборКонтакт.Записать(Истина); Исключение ЗаписьЖурналаРегистрации("ВебСервисУХ.КонтактнаяИнформация_ЗаписатьФактАдрес", УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки()); КонецПопытки; КонецЕсли; Если ЗначениеЗаполнено(Стр.Телефон) Тогда НаборКонтакт = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); НаборКонтакт.Отбор.Объект.Установить(КонтрагентОбъект.Ссылка); НаборКонтакт.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Телефон); НаборКонтакт.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента); ЗаписьКонтакт = НаборКонтакт.Добавить(); ЗаписьКонтакт.Объект= КонтрагентОбъект.Ссылка; ЗаписьКонтакт.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон; ЗаписьКонтакт.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента; ЗаписьКонтакт.Представление = Стр.Телефон; Попытка НаборКонтакт.Записать(Истина); Исключение ЗаписьЖурналаРегистрации("ВебСервисУХ.КонтактнаяИнформация_ЗаписатьТелефон", УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецЦикла; Возврат НаличиеОшибокЗагрузкиКонтрагентов; КонецФункции |
|||
4
Маленький Вопросик
02.05.20
✎
13:28
|
КонтрагентСсылка = МКонтрагенты.ПолучитьСсылку(ГУИД);
КонтрагентОбъект = Неопределено; СсылкаСуществует = ОбщегоНазначения.СсылкаСуществует(КонтрагентСсылка); вот здесь смотри |
|||
5
Айрат_116
02.05.20
✎
13:31
|
(4) Вот что внутри
Функция СсылкаСуществует(ЛюбаяСсылка) Экспорт ТекстЗапроса = " |ВЫБРАТЬ | Ссылка КАК Ссылка |ИЗ | [ИмяТаблицы] |ГДЕ | Ссылка = &Ссылка |"; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяТаблицы]", ИмяТаблицыПоСсылке(ЛюбаяСсылка)); Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр("Ссылка", ЛюбаяСсылка); УстановитьПривилегированныйРежим(Истина); Возврат НЕ Запрос.Выполнить().Пустой(); КонецФункции Щас еще отладкой посмотрю |
|||
6
Маленький Вопросик
02.05.20
✎
13:51
|
(5) ну это фигня какая-то
|
|||
7
Маленький Вопросик
02.05.20
✎
14:00
|
поиск ссылки по гуид нужно делать так
НовыйGUID = Новый УникальныйИдентификатор(НоменклатураГуид); Номенклатура = Справочники.Номенклатура.ПолучитьСсылку(НовыйGUID); |
|||
8
Айрат_116
02.05.20
✎
14:05
|
(7) Вы про эту часть кода пишите?
ГУИД = новый УникальныйИдентификатор(Стр.Ссылка); КонтрагентСсылка = МКонтрагенты.ПолучитьСсылку(ГУИД); |
|||
9
Маленький Вопросик
02.05.20
✎
14:19
|
НоменклатураГуид - это гуид, а не ссылка 7897-8978-7897-78......
|
|||
10
Айрат_116
02.05.20
✎
14:25
|
(9) мне скорее всего нужно узнать ГУИД у контрагента с этой базы, и узнать какой ГУИД в той откуда приходит контрагент
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |