|
ЗаписатьJSON в фоновом задании | ☑ | ||
---|---|---|---|---|
0
ДенисЧ
06.10.21
✎
17:42
|
Коллеги, хелп.
То ли лыжи, то ли я... БП2 Корп Есть примитивный код // Новая запись - строка в ТЧ, выгруженная из РС КонтактнаяИнформация // копируем строку в структуру копияЗаписи = Новый Структура; Для Каждого кол из новаяЗапись.Владелец().Колонки Цикл копияЗаписи.Вставить(кол.Имя, новаяЗапись[кол.Имя]); КонецЦикла; стАдрес = РаботаСАдресами.БГУ_СтруктураАдресаВСтруктуруJSON(копияЗаписи); // Типовая функция, модуль на поддержке и замке Тут стАдрес - структура, частично заполненная. Потом зап = Новый ЗаписьJSON; зап.УстановитьСтроку(); ЗаписатьJSON(зап, стАдрес); И вот тут начинается. В клиентском режиме (запускаем руками, уходим на сервер, там этот код выполняется) всё хорошо, всё красиво. Потом этот код начинает вызываться из фонового задания и вылетает ошибка Ошибка при вызове метода контекста (ЗаписатьJSON): Передано значение недопустимого типа Непечатных символов в структуре нет, проверили. Беда в том, что не можем этот вызов фонового поймать отладчиком, приходится печатью... Что это может быть такое? |
|||
1
pechkin
06.10.21
✎
17:44
|
сделай в попытке + в исключении логгируй полный состав стАдрес
|
|||
2
pechkin
06.10.21
✎
17:44
|
а может там вообще неопределено?
|
|||
3
Topol-M
06.10.21
✎
17:49
|
Может эту структуру временно в xml запихать для наглядности и посмотреть что в ней.
|
|||
4
PLUT
06.10.21
✎
17:50
|
||||
5
PLUT
06.10.21
✎
17:51
|
||||
6
ДенисЧ
06.10.21
✎
17:51
|
(1) "Непечатных символов в структуре нет, проверили" Уже сделано.
(2) А что, неопределено не jsonится? Так в клиентском же работает. |
|||
7
Kassern
06.10.21
✎
17:52
|
(0) а в чем проблема отладкой поймать фоновое задание?
|
|||
8
ДенисЧ
06.10.21
✎
17:53
|
(5) Не, там про NULL. А тут его тупо е может быть.
(7) Там через shop'у оно вызывается, не ловится пока. Если только принудительно пробежать и проверить на неопределено... Но почему тогда на тех же данных в ручном режиме работает? |
|||
9
pechkin
06.10.21
✎
17:57
|
(6)а как ты определил по какому объекту идет ошибка?
|
|||
10
ДенисЧ
06.10.21
✎
17:58
|
(9) А в системе, которая валит данные, можно отослать один объект. И да, получить пакет, который валится в обмен, тоже можно получить и даже (!!) сохранить в файл в том же формате, что и прилетает к записи.
|
|||
11
pechkin
06.10.21
✎
17:59
|
в ручном режиме вызов на сервере?
|
|||
12
Kassern
06.10.21
✎
17:59
|
вот вам в помощь) https://its.1c.ru/db/edtdoc/content/10410/hdoc
|
|||
13
Ёпрст
06.10.21
✎
17:59
|
(0) а там точно структура то возвращается с аботаСАдресами.БГУ_СтруктураАдресаВСтруктуруJSON(копияЗаписи) ?
|
|||
14
pechkin
06.10.21
✎
18:01
|
да не нужно фоновое отлаживать, достаточно на сервере запустить
|
|||
15
Ёпрст
06.10.21
✎
18:01
|
ну и воткни в код запись структуры в файл какой нить рекурсивной выборкой. если там вложенные структуры есть
|
|||
16
ДенисЧ
06.10.21
✎
18:03
|
(11) Ммм... А в чём проблема?
(13) да (!5) Там два массива есть со структурами. Но это опять же в ручном режиме проходит. |
|||
17
Garykom
гуру
06.10.21
✎
18:05
|
(0) уже проверил на другой базе и на другом сервере да?
|
|||
18
pechkin
06.10.21
✎
18:05
|
(16) так с сервера или нет?
|
|||
19
Ёпрст
06.10.21
✎
18:06
|
(16) ну значит в структуре есть значение недопустимого типа )))
выведи в файлик значение и тип :) |
|||
20
pechkin
06.10.21
✎
18:06
|
(17) чем другая база поможет?
|
|||
21
Garykom
гуру
06.10.21
✎
18:06
|
(20) баг это или фича понять
|
|||
22
ДенисЧ
06.10.21
✎
18:06
|
(17) А для этого нужно найти свободный другой сервер и развернуть на нём три системы )))
Кто ж мне это даст? (18) с клиента вызывается чисто серверный модуль и да, выполняется на сервере. |
|||
23
Garykom
гуру
06.10.21
✎
18:07
|
(22) эээ какие три системы?
|
|||
24
ДенисЧ
06.10.21
✎
18:08
|
(23) Обмена, разумеется. Одна источник, вторая среда-передатчик, третья - получатель. Это чтобы чистый эксперимент был.
|
|||
25
Garykom
гуру
06.10.21
✎
18:09
|
Все же фоновые в отладчик и остановку по ошибке этой
|
|||
26
pechkin
06.10.21
✎
18:11
|
А с клиента запускаешь процедуру фонового?
|
|||
27
ДенисЧ
06.10.21
✎
18:12
|
И тут мне внезапно пришла в голову мысль, что отладчик не поможет )))
Код загрузки лежит в РС и выполняется через Выполнить(). Так что отладчик не поможет... |
|||
28
ДенисЧ
06.10.21
✎
18:12
|
(26) Нет. Серверную процедуру.
|
|||
29
pechkin
06.10.21
✎
18:13
|
(28) я имел ввиду туже процедуру что и фоновое.
если ничто не помогает, то (1) |
|||
30
ДенисЧ
06.10.21
✎
18:14
|
(29) ту же, пятый (? лень считать) повторяю.
|
|||
31
Garykom
гуру
06.10.21
✎
18:17
|
(27) а ты уверен что нужный код выполняется?
|
|||
32
Ёпрст
06.10.21
✎
18:19
|
давно бы уже закодил получение лога, делов то..демоническое обновление рулит жешь.
|
|||
33
Ёпрст
06.10.21
✎
18:20
|
можно и в ЖР нафлудить..
|
|||
34
pechkin
06.10.21
✎
18:20
|
(32) там код вообще в регистре лежит
|
|||
35
pechkin
06.10.21
✎
18:22
|
Что-то сегодня у всех помощники нашептывают: полтергейстов нет, а просто "косяк платформы 100%"
|
|||
36
Ёпрст
06.10.21
✎
18:26
|
(34) тем более, проверить ышо быстрее
|
|||
37
pechkin
06.10.21
✎
18:27
|
(36) сначала надо на мисте потрещать
|
|||
38
pechkin
06.10.21
✎
18:27
|
потом статью запилить
|
|||
39
Garykom
гуру
06.10.21
✎
18:29
|
(32) там код в РС лежит и через Выполнить()
хотя бы сам код в файл писать при запуске ну и туда же лог |
|||
40
pechkin
06.10.21
✎
18:30
|
в жр можно записать ЗначениеВСтрокуВнутр(стАдрес )
на клиенте достать и расшифровать |
|||
41
ДенисЧ
06.10.21
✎
18:52
|
(31) Да.
|
|||
42
ДенисЧ
06.10.21
✎
18:53
|
(36) Ага, быстрей ))) вызвонить человека, который в первой изменение внесёт, потом второго, чтобы тот проследил ход выполениия и вытащил обишки...
А у них ещё куча своих дел есть... |
|||
43
polosov
06.10.21
✎
18:56
|
Не понимаю, что мешает сделать как (1)
|
|||
44
ДенисЧ
06.10.21
✎
19:01
|
(43) Читай (42) ))))
В общем, нашёл вызов УправлениеКонтактнойИнформациейСлужебный.СтруктураВСтрокуJSON(), завтра попробуем. Там как раз чистка идёт специально для адресов. |
|||
45
Ёпрст
06.10.21
✎
19:03
|
(42) вот-вот.. не гонялся бы ты поп за дешевизной..т.е халтурой.
Нефик другим помогать :) |
|||
46
ДенисЧ
06.10.21
✎
19:05
|
(45) Что значит "другим помогать"? Мы работаем в одной конторе, у них одна зона ответственности, у меня другая.
И я вообще-то так просто в базы, за которые отвечаю, других не пускаю... |
|||
47
Ёпрст
06.10.21
✎
19:08
|
(46) Странно, что у тебя нет доступа к этим базам, чтоб покодить, думал, ты халтуришь на стороне ...
|
|||
48
ДенисЧ
06.10.21
✎
20:01
|
(47) Если у меня будет доступ ко всем базам в холдинце - я повешусь.
|
|||
49
pechkin
06.10.21
✎
20:17
|
С какого х... ты занимаешься этим вопросом?
|
|||
50
ДенисЧ
06.10.21
✎
20:19
|
(49) Забавный вопрос.... Наверное, потому что это моя работа?
|
|||
51
pechkin
06.10.21
✎
20:37
|
(50) чинить базы к которым нет доступа?
|
|||
52
ДенисЧ
06.10.21
✎
20:38
|
(51) Чинить загрузчик, который работает в моих базах.
Чуйствуешь разницу? |
|||
53
pechkin
06.10.21
✎
20:50
|
Базы мои, но доступа у меня к ним нет
|
|||
54
Garykom
гуру
07.10.21
✎
12:02
|
Как там лыжи? Мазь помогла?
|
|||
55
ДенисЧ
07.10.21
✎
12:03
|
(53) Ты не вкурил.
(54) да, та функция сработала как надо. |
|||
56
Kassern
07.10.21
✎
12:05
|
а в чем проблема то была в итоге?
|
|||
57
Почему 1С
07.10.21
✎
12:14
|
ЗаписатьJSON(зап, стАдрес); обернуть функцией общего модуля, заменить функцию на обертку, в обертке поставить точку останова и все равно что код выполняется через выполнить поймаем
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |