Задвоение контрагентов при обмене через HTTP-сервис

1. _Domovoe_ 22.11.22 08:44 Сейчас в теме
Добрый день. Может кто знает, как найти ошибку задвоения контрагентов?
Есть в конфигурации http-сервис DocumentExchange. В модуле есть функция чтения Json. Как найти где сами данные и как отладить, раньше не работала с веб-сервисами. И вот в модуле идет код проверки контрагента, он задваивает их. Помогите. пожалуйста?
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. tamidi 8 22.11.22 09:37 Сейчас в теме
(1)Где именно контрагенты задваиваются, какие данные надо искать? Ничего не понятно.
3. _Domovoe_ 22.11.22 09:47 Сейчас в теме
(2) при чтении файла Json я так понимаю. Как вообще найти этот файл откуда данные грузятся и как можно попасть на отладку их?
4. Westonline82 22.11.22 10:07 Сейчас в теме
(3)
На втором скрине после "Сообщение = Запрс.ПолучитьТелоКакСтроку..."
Напиши
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = Сообщение ;
Сообщение.Сообщить();

Это и будет "файл" json
5. _Domovoe_ 22.11.22 10:17 Сейчас в теме
(4) А как найти, где сам файл с данными лежит? Раньше не работала с веб-сервисами((
6. Westonline82 22.11.22 10:18 Сейчас в теме
(5) он нигде не лежит, он прилетает с http запросом
user1089020; +1 Ответить
7. _Domovoe_ 22.11.22 10:23 Сейчас в теме
(6)
прилетает с http запросом
а как посмотреть тогда когда он прилетает и запустить отладку? Через Отладка - автоматическое подключение HTTP-Сервисы поможет?
8. minarenko 22.11.22 10:25 Сейчас в теме
(7)если отладка на сервере включена, то да
9. Westonline82 22.11.22 10:34 Сейчас в теме
(7)
У нас на сервере нет отладки, поэтому не подскажу как подключится. Поправь процедуру с последнего скрина, что бы писала в журнал регистрации все исключения и то что передается в функцию Проверка НаНаличиеКонтрагентаВБазе(). И станет понятно почему не находится контрагент а создается новый
10. _Domovoe_ 22.11.22 10:45 Сейчас в теме
(9)
Проверка НаНаличиеКонтрагентаВБазе()
вообще нет отладки? Или она отключена в агенте сервера 1с? А где посмотреть примерную запись в журнал регистрации. Может просто поставить в условие вместо = вид сравнения ПОДОБНО?
Прикрепленные файлы:
12. anton13m 2 22.11.22 10:54 Сейчас в теме
(10)
Перед выполнением запроса что-нибудь такое вывести и проверить какой параметр пустой.
ЗаписьЖурналаРегистрации("DocumentExchange", УровеньЖурналаРегистрации.Информация, , ,
  СтрШаблон("Наименование: %1, ИсточникИНН: %2, ИсточникКПП: %3, ДатаРождения: %4", 
	ИсточникНаименованиеКонтрагента,
	ИсточникИНН,
	ИсточникКПП,
	ДатаРождения));


Все же проще через отладку найти.
13. tamidi 8 22.11.22 11:19 Сейчас в теме
(10)Так вы в этой функции поставьте отладку, посмотрите какие данные по контрагенту прилетают по http и почему не находится контрагент в вашей базе по этим данным
user1089020; +1 Ответить
15. _Domovoe_ 22.11.22 11:43 Сейчас в теме
(13) Вопрос в какой момент поставить отладку? И просто ждать? + Наверное это задержит работу пользователей
11. Westonline82 22.11.22 10:53 Сейчас в теме
(10) Вообще отладки нету...
Примерная запись
ЗаписьЖурналаРегистрации("ЗагрузкаКантрагента",УровеньЖурналаРегистрации.Ошибка, Метаданные.Документы.ЗаказПоставщику,,"Исключение №... "+ ОписаниеОшибки())
Ты погляди в чем ошибка, что не так работает, а потом уже ищи пути решения
16. _Domovoe_ 22.11.22 11:44 Сейчас в теме
(11) Спасибо думаю ошибка в самом запросе

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Контрагенты.Ссылка
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| НЕ Контрагенты.ПометкаУдаления
| И (&НеИспИНН
| ИЛИ Контрагенты.ИНН = &ИНН)
| И (&НеИспКПП
| ИЛИ Контрагенты.КПП = &КПП)
| И (&НеИспНаименование
| ИЛИ Контрагенты.Наименование = &Наименование)
| И (&НеИспДатуРождения
| ИЛИ Контрагенты.ДатаРождения = &ДатаРождения)";

Запрос.УстановитьПараметр("НеИспИНН" , обЗначениеНеЗаполнено(ИсточникИНН));
Запрос.УстановитьПараметр("НеИспКПП" , обЗначениеНеЗаполнено(ИсточникКПП));

Если ЗначениеЗаполнено(ИсточникИНН) И ЗначениеЗаполнено(ИсточникКПП) Тогда
Запрос.УстановитьПараметр("НеИспНаименование" , Истина);
Запрос.УстановитьПараметр("НеИспДатуРождения" , Истина);
Иначе
Запрос.УстановитьПараметр("НеИспНаименование" , обЗначениеНеЗаполнено(ИсточникНаименованиеКонтрагента));
Запрос.УстановитьПараметр("НеИспДатуРождения" , обЗначениеНеЗаполнено(ДатаРождения));
КонецЕсли;

Запрос.УстановитьПараметр("ИНН", ИсточникИНН);
Запрос.УстановитьПараметр("КПП", ИсточникКПП);
Запрос.УстановитьПараметр("Наименование", ИсточникНаименованиеКонтрагента);
Запрос.УстановитьПараметр("ДатаРождения", ДатаРождения);

РезультатЗапроса = Запрос.Выполнить().Выбрать();
14. starik-2005 3046 22.11.22 11:29 Сейчас в теме
1. В винде есть клевая программа, называется "Ножницы". Не благодарите.
2. Обычно, контрагенты задваиваются, когда они не находятся по указанным параметрам. Ну, например, ища по имени, ИНН, КПП, ОГРН и чему-либо еще, при том по какой-то причине не находя это (забыли КПП передать или ОГРН), система создает еще одного контрагента. Также иногда умные программисты проверяют, что найдено одно значение, а если таких значений не одно (ноль - что верно, или два - что неверно), то типа и не найдено.
3. Это справедливо для вообще любого справочника.
17. _Domovoe_ 22.11.22 11:47 Сейчас в теме
(14) ахахаха...спасибо огромное....)))) Улыбнуло. А как правильно искать контрагентов если встречаются частники без инн и юр лицас инн? Сперва по инн, если не находит, то наименование и дата рождения?
18. starik-2005 3046 22.11.22 11:52 Сейчас в теме
Ну сначала надо разделить ту кучу, что на входе. Гасторбайтеры без инн - направо, остальные налево. Ну и искать в разных группах разными методами. Если есть ИНН и КПП - искать по ним, если нет КПП - искать по ИНН, если нет ИНН - искать по ФИО, если нет фио - ну повеситься.
19. _Domovoe_ 22.11.22 11:55 Сейчас в теме
(18) хорошо, я попробую))) Спасибо. Покажу попозже, что получилось с Вашего разрешения
20. starik-2005 3046 22.11.22 11:57 Сейчас в теме
(19) Мы, его святейшество starik-2005 настоящим уведомляем, что разрешение даем.
21. _Domovoe_ 22.11.22 13:38 Сейчас в теме
(20) ну как?
Прикрепленные файлы:
22. starik-2005 3046 22.11.22 16:52 Сейчас в теме
(21)
ну как?
Не знаю, не запускал. Если работает, значит хорошо.
23. user1826630 22.11.22 16:56 Сейчас в теме
(20) Я думал, ты дал ему разрешение повеситься (((
24. starik-2005 3046 22.11.22 18:53 Сейчас в теме
(23) Разрешаю все вообсче, ну кроме совсем уж неправильного.
_Domovoe_; +1 Ответить
26. _Domovoe_ 02.12.22 07:37 Сейчас в теме
(24) Добрый день вообщем не помогло и нужно прям настроить отладку http сервиса. Не подскажите с чего начать?
25. _Domovoe_ 23.11.22 04:55 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот