Имя: Пароль:
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
Оказывается, надо так: ПродолжитьПоискПоПолямПоискаЕслиПоИдентификаторуНеНашли, а в обработке КонвертацияОбъектовИнформационныхБаз так: ПродолжитьПоиск.
Программист всегда исправляет последнюю ошибку.