[QUOTE] написал:
Да, так и не срабатывает. Пишу код на 7 шаге обмена смарт-процессами, при загрузке в 1С в блоке "Алгоритм после загрузки данных в базу 1С". В журнале регистрации получаю запись о попытке записи в Регистр сведений со статусом "Отменена", т.к. появилось ОтменитьТранзакцию()[/QUOTE]
Там по идеи идет проверка " Если ТранзакцияАктивна() Тогда"
Если начать транзакцию, то должно быть все ок.
Может начать транзакцию в процедуре "ПолучитьЗначениеПредопределенногоАлгоритма"? Чтобы сразу везде применилось..
Да, так сработало. Будет так в след версии. На запись объекта(в данном случае СП), как бы не красиво смотрелось, не хочется транзакцию вводить, т.к. всплыть нехорошее может.
[B]В общем модуле "Б24_К_ОбщегоНазначенияВызовСервера"[/B]
Функция ПолучитьЗначениеПредопределенногоАлгоритма(Алгоритм, ПараметрыАлгоритма, ТипАлгоритма) Экспорт
Если ТипАлгоритма = "Функция" Тогда
Результат = ПараметрыАлгоритма.Результат;
Иначе
Результат = Неопределено;
КонецЕсли;
Попытка
Если НЕ Б24_К_ОбщегоНазначенияВызовСервераПовтИсп.БазаИспользуетсяВМоделиСервиса() Тогда
АлгоритмКлюча = стрЗаменить(Алгоритм, "[Результат]" , "Параметры.Результат");
АлгоритмКлюча = стрЗаменить(АлгоритмКлюча, "[СтруктураНастроек]" , "Параметры.СтруктураНастроек");
АлгоритмКлюча = стрЗаменить(АлгоритмКлюча, "[Объект1С]" , "Параметры.Объект1С");
АлгоритмКлюча = стрЗаменить(АлгоритмКлюча, "[СтрокаТаблицыОбъекта1С]" , "Параметры.СтрокаТаблицыОбъекта1С");
АлгоритмКлюча = стрЗаменить(АлгоритмКлюча, "[ОбъектПортала]" , "Параметры.ОбъектПортала");
АлгоритмКлюча = стрЗаменить(АлгоритмКлюча, "[СтруктураДанных]" , "Параметры.СтруктураДанных");
АлгоритмКлюча = стрЗаменить(АлгоритмКлюча, "[НастройкаПодключения]" , "Параметры.НастройкаПодключения");
АлгоритмКлюча = стрЗаменить(АлгоритмКлюча, "[ПараметрыРобота]" , "Параметры.ПараметрыРобота");
АлгоритмКлюча = стрЗаменить(АлгоритмКлюча, "[ИнформацияОСущности]" , "Параметры.ИнформацияОСущности");
АлгоритмКлюча = стрЗаменить(АлгоритмКлюча, "[ТипСущности]" , "Параметры.ТипСущности");
АлгоритмКлюча = стрЗаменить(АлгоритмКлюча, "[Отказ]" , "Параметры.Отказ");
НачатьТранзакцию();
ОбщегоНазначения.ВыполнитьВБезопасномРежиме(АлгоритмКлюча, ПараметрыАлгоритма);
ЗафиксироватьТранзакцию();
Если ТипАлгоритма = "Функция" Тогда
Результат = ПараметрыАлгоритма.Результат;
КонецЕсли;
КонецЕсли;
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации("ОтправкаПисемСОшибкамиСинхронизации", УровеньЖурналаРегистрации.Ошибка,,, "Не удалось выполнить пользовательский алгоритм");
ЗаписьЖурналаРегистрации("ОтправкаПисемСОшибкамиСинхронизации", УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Возврат Результат;
КонецФункции