Добрый день, форумчане. Помогите, пожалуйста с подключением обработки как внешней. Есть база Бухгалтерия БП 2.1 Локализация для Беларуси. Понадобилось встроенную обработку Универсальный обмен данными в формате XML подключить в эту базу как внешнюю (пожалуйста, не смейтесь, так сказано было сделать). Но оказалось все не просто, потому что не пропускает система. Пишет ошибку. При этом в коде подключения все, как и в других обработках... Только-то там есть в модуле объекта этой обработки много кода и весь предназначен для работы на сервере, или толстом клиенте или во внешнем соединении... просто подставить условие работы в тонком клиенте не получится. Что мне может помочь, подскажите, пожалуйста. Как адаптировать эту обработку. Через функции для технического специалиста "открывается без проблем"
Прикрепленные файлы:
По теме из базы знаний
- Универсальное заполнение табличных частей на основе внешнего отчета или обработки (с примером для СКД на УПП)
- Асинхронный обмен данными с JavaScript (и не только) без потерь
- Начисление премии с нестандартной расчётной базой. ЗУП 3.1
- Как быстро выгрузить / загрузить внешние отчеты и обработки
- Внедрение адресного хранения на 1С:КА 2.5. Часть 1. Теоретическая.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5) Попробуй добавить разрешения:
Функция СведенияОВнешнейОбработке() Экспорт
РегистрационныеДанные = РегистрационныеДанные();
РегистрационныеДанные.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
///-----------------
// Добавим Разрешения
МассивРазрешений = РегистрационныеДанные.Разрешения;
//МассивРазрешений.Добавить(РаботаВБезопасномРежиме.РазрешениеНаСозданиеCOMКласса("Excel.Application", "{00024500-0000-0000-C000-000000000046}"));
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима();
МассивРазрешений.Добавить(Разрешение);
Возврат РегистрационныеДанные;
КонецФункции
Показать
А попробуйте данные регистрации заменить на это:
//////////////////////////////////////////////////////////// /////////////
// РЕГИСТРАЦИЯ ВНЕШНЕЙ ОБРАБОТКИ
Функция СведенияОВнешнейОбработке() Экспорт
ИмяОтчета = ЭтотОбъект.Метаданные().Имя;
Синоним = ЭтотОбъект.Метаданные().Синоним + " " + ЭтотОбъект.Метаданные().Комментарий;
Синоним = ?(ЗначениеЗаполнено(Синоним),Синоним, ИмяОтчета);
РегистрационныеДанные = Новый Структура();
РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка");
РегистрационныеДанные.Вставить("Наименование", Синоним);
РегистрационныеДанные.Вставить("Версия", "1.0");
РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
РегистрационныеДанные.Вставить("Информация", "Обработка "+Синоним);
ТаблицаКоманд = ПолучитьТаблицуКоманд();
// Добавим команду в таблицу
ДобавитьКоманду(ТаблицаКоманд, Синоним, "1" , "ОткрытиеФормы", Истина, );
// Сохраним таблицу команд в параметры регистрации обработки
РегистрационныеДанные.Вставить("Команды", ТаблицаКоманд);
Возврат РегистрационныеДанные;
КонецФункции
Функция ПолучитьТаблицуКоманд()
// Создадим пустую таблицу команд и колонки в ней
Команды = Новый ТаблицаЗначений;
// Как будет выглядеть описание печатной формы для пользователя
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
// Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
// Тут задается, как должна вызваться команда обработки
// Возможные варианты:
// - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
// - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
// - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
// Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
// Для печатной формы должен содержать строку ПечатьMXL
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование = "ОткрытиеФормы", ПоказыватьОповещение = Ложь, Модификатор)
// Добавляем команду в таблицу команд по переданному описанию.
// Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот