Имя: Пароль:
1C
1С v8
1С в режиме предприятия сама закрывается при выполнении долгой процедуры
0 Vito
 
24.10.22
08:08
УНФ файловая, написал расширение, которое при записи документа берет остатки и отправляет их по REST API на внешний web-сервис. При попытке выгрузить все остатки после 10-15 мин. работы этой процедуры 1С просто закрывается без всяких ошибок и т.п. в журнале ничего не показывает.
В чем может быть проблема?
Заранее спасибо!
1 PuhUfa
 
24.10.22
08:11
(0) Проблема в твоем расширении -)
Логируй действия сам. Отправляй остатки частями. Нужно больше информации
2 Михаил Козлов
 
24.10.22
10:03
"...при записи документа..." - прямо в транзакции?
3 Kassern
 
24.10.22
10:06
(2) судя по (0), то да))
(0) Завершайте транзакцию и грузите остатки рег заданием. Можно создать очередь через регистр сведений при необходимости.
4 craxx
 
24.10.22
10:09
(0) ТЖ что говорит?
5 lodger
 
24.10.22
10:37
жуть какая.
я знаю что это не вылечит кривую архитектуру ваших бизнес-процессов, но вот этот костыль - https://blagin.ru/fonovoe-zadanie-pri-provedenii/
закроет эту дыру.
6 Vito
 
26.10.22
10:38
(2) Видимо, получилось прямо в транзакции. Запускается по подписке на событие ПриЗаписи в РегистрНакопленияНаборЗаписей.Запасы . Но это уже не имеет значения, т.к. см. ниже.
(3) Потом переделаю под рег. задание, нужно перейти на последнюю версию, чтобы они поддерживались в расширении.
(4) Ничего там не вижу, возможно не настроено логирование на подобные события, пока не разобрался.
(5) Возможно где-то и кривовато, делаю быстр, чтобы успеть за потребностями бизнеса :) Но Спасибо за подсказку, как раз искал это решение,  поэтому обязательно воспользуюсь.

Вывел я процедуру полностью из транзакции, запускаю по кнопке. При это выяснилось, что 1с вылетает просто при возникновении любой ошибки в этой процедуре. При ошибках в основной конфе заметил пока только один вылет. Соответственно не могу понять что за ошибка, не могу поставить остановку при ошибке в процессе отладки.
В чем может быть проблема? Что делать?
7 lodger
 
26.10.22
10:56
(6) попытка
твой..код()
исключение
ТекстОшкибки = ОписаниеОшибки();
ЗаписьЖурналаРегистрации("Случилось.Ахтунг",УровеньЖурналаРегистрации.Ошибка,,,ТекстОшкибки);
конецпопытки
8 Vito
 
26.10.22
11:16
(7) Спасибо! Сделаю!
9 Kassern
 
26.10.22
11:45
(6) "нужно перейти на последнюю версию, чтобы они поддерживались в расширении" - не обязательно делать через расширение. Если конфа на БСП, то можно через внешние обработки создать рег задание
10 Vito
 
26.10.22
20:22
(7) Повторил Ваш код, но почему-то никакие записи в ЖураналеРегистрации не появляются, может быть что-то нужно поправить?

А ошибка возникает вот в этой строке (ее и поставил в попытку):

ЗаписатьJSON(ЗаписьJSON,Тело);

Причем, из 1000 вариантов Тело, ошибка возникает только в одном. Тип данных Соответствие, но вот никак не пойму в чем может быть ошибка в данных.
11 H A D G E H O G s
 
26.10.22
20:31
(10) Кинь вот этот файл
https://disk.yandex.ru/d/ADq4lm--J9lHaw
в папку
C:\Program Files\1cv8\conf
или
C:\Program Files (x86)\1cv8\conf

запусти 1С в режиме предприятия, запомни PID-ы rphost.exe и 1Cv8(c).exe, выполни ошибку и поищи в папке C:\1Clogs с нужными PID-ом логи.
12 Vito
 
26.10.22
22:52
(11) Конфиг файл точно такой, логи пишутся. Но логов за сегодня для 1Cv8(c).exe нет вообще, логи пишутся, т.к. логи WEB-сервера есть. Процесса rphost.exe не увидел, как и логов для него.
13 Kassern
 
27.10.22
09:07
(10) А запись json в файл пишет, или в оперативку?
14 Vito
 
27.10.22
20:21
(13) В оперативку
15 OldCondom
 
28.10.22
00:15
остатки выгружаются более 10 минут? Может все таки привести код и логику в порядок? Тем более как сказали  в (13) может вся оперативка кончается.