Имя: Пароль:
1C
1С v8
Обработка КонвертацияОбъектовИнформационныхБаз и отладка обработчиков
0 formista2000
 
23.04.25
16:18
Привет!
У кого есть опыт отладки обработчиков КД при использовании обработки КонвертацияОбъектовИнформационныхБаз?
Поделитесь пожалуйста советом, как реализовать сие. А то обработка не пригодна для интерактивного использования.
Спасибо!
1 mikecool
 
23.04.25
16:36
если ты про КД2, то проще Сообщить() вставлять в проблемных местах
2 formista2000
 
23.04.25
16:41
(1) Казалось бы да, но есть свои сложности с загрузкой - она происходит фоновым заданием с использованием этой обработки.
3 formista2000
 
23.04.25
16:43
(1) + стандартная обработка универсальный обмен хмл не подходит.
4 AneJIbcuH
 
23.04.25
21:02
(2) Тогда пиши в текстовый файл
5 timurhv
 
23.04.25
21:22
Добавляете общий модуль и процедуру в расширение.
Из правил вызываете ее (зависит от того это выгрузка или загрузка - не перепутайте где добавлять расширение).

В процедуру передаете параметрами что нужно, какие объекты и переменные используются в коде как обычно пишете при написании кода в КД2.

В коде процедуры пишите логику, отлаживаете и после того как ОК копируете из расширения в КД2.
6 timurhv
 
23.04.25
21:26
Условно (1) можно написать:
ОбщегоНазначения.СообщитьПользователю(Текст)

Вот и по такой же логике в КД2 пишите:
https://infostart.ru/upload/iblock/5ad/5ad64e9b92df3bb49c4ff965296aa513.png

ИмяМодуляРасширения.ВашаПроцедураОтладки(Объект, Валюта_Руб)

И в отладке уже смотрите что не так
7 craxx
 
23.04.25
21:58
(6)
ОбщегоНазначения.СообщитьПользователю(Текст)

тогда уж в журнал регистрации писать события, там можно ссылки на объекты вставлять
8 d4rkmesa
 
24.04.25
08:35
(0) Если запустить с параметром "РежимОтладки", в e1cib/app/Обработка.РегламентныеИФоновыеЗадания есть кнопка "Запустить не в фоне" в вашей конфе? Так то обработка отлаживается вполне.
9 formista2000
 
24.04.25
08:54
Обработчик "Поля поиска" выполняется на стороне базы-приёмника ведь, да?
10 formista2000
 
24.04.25
09:50
+ У меня сложилось такое впечатление, что в обработчик "Поля поиска" программа вообще не заходит.
Почему такое может быть?
В настройках "Искать объект приемника по внутреннему идентификатору объекта источника" галка стоит, "Продолжить поиск по полям поиска, если по идентификатору объект приемник не найден" галка стоит.
ЧЯДНТ?
11 d4rkmesa
 
24.04.25
10:18
(10) В онлайн-обменах НЯП поиск срабатывает только при первом обмене. В регистре "Соответствия объектов информационных баз"  есть запись с найденной ссылкой? Там несколько иная логика поиска объектов. По-хорошему, такие объекты нужно было предварительно сопоставить (т.е. "ручками" в форме), а далее уже синхронизировать по УИДу.
https://forum.infostart.ru/forum15/topic227376/  тут пишут, что можно отключить поиск по УИД-у в таких случаях, но не проверял. Просто нужно понимать, что все что вы знаете про универсальный обмен и КД2, здесь (синхронизации через БСП) работает [несколько] иначе и, возможно, не нужно.
12 formista2000
 
24.04.25
10:13
(11) Есть.
ЗЫ: Вариант поиска на закладке "Поиск объектов в приёмнике" надо вариант поиска делать?
13 formista2000
 
24.04.25
10:17
(11) + я в обработчике "Поля поиска" и хочу искать по этому регистру.
14 mikecool
 
24.04.25
10:25
(10) так может по УИД надходит?
15 formista2000
 
24.04.25
10:30
(14) В приёмнике <Объект не найден> (54:b2828a5174c21d0548b934ccbcef0b13)
В журнале регистрации моих записей из обработчика нет.
Складывается впечатление, что не попадает в обработчик.
16 d4rkmesa
 
24.04.25
11:36
(15) Удалите запись и попробуйте снова.
17 d4rkmesa
 
24.04.25
11:52
(13) Зачем? Если записи в регистре нет, обмен и должен поискать и создать эту запись. Т.е. обработчик с поиском по полям уже подразумевает, что записи нет.
18 scanduta
 
24.04.25
13:47
(0) Про обработчик поля поиска есть неочевидный нюанс, кстати.
В этом обработчике можно использовать только те поля, которые проставлены для поиска в ПКО галочками.
19 formista2000
 
24.04.25
13:59
(18) Да, у меня помечено.
В обработчике использую ПараметрыОбъекта.Получить("УИД_Синхронизации") или СвойстваПоиска.Получить("УИД_Синхронизации") - всё один хрен в обработчик не заходит. ((
20 formista2000
 
24.04.25
16:41
Оказывается, надо так: ПродолжитьПоискПоПолямПоискаЕслиПоИдентификаторуНеНашли, а в обработке КонвертацияОбъектовИнформационныхБаз так: ПродолжитьПоиск.