Имя: Пароль:
1C
1С v8
Ошибка при обмене.
,
0 cons74
 
18.12.17
15:52
Есть типововой код. УПП.

Функция ВерсияИБ(Знач ИдентификаторБиблиотеки) Экспорт
    
    Запрос = Новый Запрос(
        "ВЫБРАТЬ
        |    ВерсииПодсистем.Версия КАК Версия
        |ИЗ
        |    РегистрСведений.ВерсииПодсистем КАК ВерсииПодсистем
        |ГДЕ
        |    ВерсииПодсистем.ИмяПодсистемы = &ИмяПодсистемы");
    Запрос.Параметры.Вставить("ИмяПодсистемы", ИдентификаторБиблиотеки);
    ТаблицаЗначений = Запрос.Выполнить().Выгрузить();
    Результат = "";
    Если ТаблицаЗначений.Количество() > 0 Тогда
        Результат = СокрЛП(ТаблицаЗначений[0].Версия);
    КонецЕсли;
    Возврат ?(ПустаяСтрока(Результат), "0.0.0.0", Результат);
    
КонецФункции

При старте системы он выполняется без проблем. При запуске обмена - ошибка времени выполнения, хотя и там и там один и тот же параметр. Да и даже если б запрос не находил записей в регистре - ошибки бы не было.
1 Cyberhawk
 
18.12.17
16:07
"ошибка времени выполнения" // Показывай своего дружка
2 cons74
 
18.12.17
16:12
3 vde69
 
модератор
18.12.17
16:14
(2) бан за код на картинке
4 vde69
 
модератор
18.12.17
16:15
код на картинке = вандализм
5 Cyberhawk
 
18.12.17
17:29
Если картинка в ворде и все это в архиве - тоже бан :)
6 Cyberhawk
 
18.12.17
17:29
Прав на регистр может нет у пользователя фонового задания
7 cons74
 
10.01.18
15:29
Выполняю под собой. У меня - полные права.
8 cons74
 
10.01.18
15:51
Пишет "в данной транзакции уже происходили ошибки".
9 hhhh
 
10.01.18
17:02
(7) там не всё под тобой. Многие операции не под тобой выполняются.
10 dezss
 
10.01.18
17:30
кэш?
11 cons74
 
11.01.18
12:48
(9) ЖР выводит записи только под моим пользователем
(10) чистил, даже ТИИ запускал (без флагов)
12 Serg_1960
 
11.01.18
13:08
"в данной транзакции уже происходили ошибки" - у Вас обмен идет в рамках единой транзакции? Если "да" тогда не стоит удивляться тому, что ошибка может быть регистрироваться позже, при последующем нормальном обращении к базе.
Сложно сказал?
13 cons74
 
11.01.18
13:30
(12)"Единую транзакцию" нигде принудительно не включал.
14 Serg_1960
 
11.01.18
17:47
(13) В типовых конфигурациях она сама автоматически используется "по умолчанию" при обменах. Также, как и при проведении документов, записи элементов справочников и наборов регистров.
15 cons74
 
12.01.18
06:30
(14) это мне известно. Но теперь стало не понятно что имели в (12) в виду под "ошибка может быть регистрироваться позже, при последующем нормальном обращении к базе"
16 cons74
 
12.01.18
10:02
Как отловить первоначальную ошибку?
17 PiotrLoginov
 
12.01.18
10:33
(16)  проверить (7), проверить значение ИдентификаторБиблиотеки.

+ Выполнить сбор уведомлений и ошибок после того, как сработает исключение (?)
18 cons74
 
12.01.18
12:25
(17) проверено все. ОписаниеОшибки одно - и оно указано выше: ошибка времени выполнения.
19 Serg_1960
 
12.01.18
13:12
Не знаю кто как, а я уже привык к тому, что платформа часто промахивается и неверно сообщает о первопричине возникшей ошибки.

(15) Ошибка может возникать, например, в рамках Попытка-Исключение-КонецПопытки, не обрабатываться там и тогда первый же последующий запрос к данным выдаст ошибку исполнения.

(18) В настройке обмена уже указано обрабатывать один объект в одной транзакции? А Вы, кстати, так и не уточнили что за обмен и где и как он вызывается :(
20 cons74
 
12.01.18
13:34
(19) да, похоже на "в рамках Попытка-Исключение-КонецПопытки, не обрабатываться там и тогда первый же последующий запрос к данным выдаст ошибку исполнения"
Обмен - БСП-шный. ERP-УПП. В УПП создал новый план обмена, узлы обмена, настройку обмена. Создал правила. Ошибка возникает при попытке загрузить документ РТУ.
21 hhhh
 
12.01.18
13:44
(20) попробуйте везде наставить в правилах Сообщить(), чтобы понять где ошибка.  В каком конкретном месте правил. А также можно копробовать задать в обработке обмена количество элементов в транзакции = 1.
22 cons74
 
15.01.18
09:54
Через обработку Универсальный Обмен Данными (V8Exchan82) тот же файл обмена грузится, правда с ошибкой в начале:
   Ошибка формата файла обмена
   ИмяУзла                =  ДанныеПоОбмену
Но документ загружает.
23 MrCoffin
 
15.01.18
10:02
Включи "Остановка по ошибке" и запасись терпением.
24 cons74
 
15.01.18
10:10
В общем, ошибки наблюдаются если есть данные в ТЧ.
25 cons74
 
15.01.18
10:11
По этой же причине решил перейти со связки "БСПшный обмен в ERP - неБСПшный в УПП", в старом обмене были документы без ТЧ.
26 cons74
 
15.01.18
14:20
Найдена гадина!
Попытка в попытке. В правилах было

Попытка
    Объект.Записать(РежимЗаписиДокумента.Проведение);
Исключение
    Объект.Проведен = Ложь;
    Сообщить("Документ: " + Объект + " не проведен. Ошибка ПКО: РТУ-ПослеЗагрузки");
КонецПопытки;

Хотя в другом обмене вроде-бы работало без проблем...
27 Cyberhawk
 
22.01.18
09:30
(26) Вот поэтому отложенное проведение и было придумано (чтобы быстрее все просто записывалось в базу и чтоб какая-нибудь ошибка проведения не влияла на всю загрузку). Кстати есть сторонние решения, где реализован пропуск таких ошибочных объектов (обмен не прерывается если что-то не может записаться).