Разыскивается живой пример обработки в безопасном режиме, реализующей запросы в веб, сохранение временных файлов и изменения документов
Коллеги, не будет ли кто-нибудь столь любезен поделиться любой работающей обработкой, реализующей в безопасном режиме вот по вот этим требованиям https://1cfresh.com/articles/so_addprocess_req
1) Функции оправки/получения http запросов во внешний сервис,
2) Сохранения картинки полученной из этого сервиса во временном файле с целью последующего отображения в форме,
3) Изменения и записи документа (обработка заполнения табличной части)
1) Функции оправки/получения http запросов во внешний сервис,
2) Сохранения картинки полученной из этого сервиса во временном файле с целью последующего отображения в форме,
3) Изменения и записи документа (обработка заполнения табличной части)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(9) Цель - сделать внешнюю обработку для УНФ (как минимум, в идеале для всех БСПшных конфиг) в 1С-Fresh. Вариант "конфу допиливать" не подходит никак. Вариант "поставить не безопасно" не подходит совсем.
Ссылки по теме:
[1]https://1cfresh.com/articles/so_addprocess_req
[2]https://1cfresh.com/articles/so_addprocess_audit
Ссылки по теме:
[1]
[2]
(2) Недавно только разбирался с этим. В общем виде - да, но есть определенные разрешения, которые можно запросить и передать в массиве. Например
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(Протокол, Адрес, Порт, Описание)
Потом массив нужных разрешений можно передать в
ЗапросНаИспользованиеВнешнихРесурсов()
и так далее, в зависимости от того, какие ресурсы нужны.
Но помучался, конечно, пока разбирался.
https://1cfresh.com/articles/so_addprocess_fastaudit
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(Протокол, Адрес, Порт, Описание)
Потом массив нужных разрешений можно передать в
ЗапросНаИспользованиеВнешнихРесурсов()
и так далее, в зависимости от того, какие ресурсы нужны.
Но помучался, конечно, пока разбирался.
(5) С HTTP - нет, делал обработку, работающую с временными файлами и файловой системой. Но там просто с СведенияОВнешнейОбработке вставил:
Обработка прошла аудит и все работает.
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
ПараметрыРегистрации.Вставить("Наименование", "Обработка Импорт счетов");
ПараметрыРегистрации.Вставить("Версия", "1.1");
ПараметрыРегистрации.Вставить("БезопасныйРежим", истина);
ПараметрыРегистрации.Вставить("Информация", "Импорт счетов");
ПараметрыРегистрации.Вставить("ВерсияБСП", "2.1.2.19");
ПараметрыРегистрации.Вставить("Разрешения", Новый Массив);
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина);
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаПрограммы(Истина, Истина);
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Импорт счетов'");
НоваяКоманда.Идентификатор = "ТК_ИмпортСчетов_Упр";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.ПоказыватьОповещение = Истина;
ПоказатьОбработка прошла аудит и все работает.
(6) Вот что меня в 1С дико бесит, так это когда делаешь все вроде по инструкции, а в ответ получаешь такое
Это после вставки в ПараметрыРегистрации разрешения на работу с временными файлами
И в документации нихрена нету и на Stackowerflow искать решение бесполезно.
{ОбщийМодуль.ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный.Модуль(295)}: Значение не является значением объектного типа (Представление)
ПредставлениеРазрешения = ОписаниеРазрешения.Представление;
ПредставлениеРазрешения = ОписаниеРазрешения.Представление;
Это после вставки в ПараметрыРегистрации разрешения на работу с временными файлами
ПараметрыРегистрации.Вставить("Разрешения", Новый Массив);
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина);
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаПрограммы(Истина, Истина);
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
И в документации нихрена нету и на Stackowerflow искать решение бесполезно.
(6) во внешней обработке внесла еще и РазрешениеНаИспользованиеКаталогаФайловойСистемы,
ФайлЗачисления = Новый ЗаписьТекста(СокрЛП(ПутьККаталогу) + "\" + СокрЛП(ИмяФайла), "windows-1251"); - заработало.
Не могу найти как добавить те же разрешения если данную обработку загружаю в расширение. Может кто подскажет ссылку пример?
Отключить безопасный режим расширения не могу, т.к. грузим на фреш.
ФайлЗачисления = Новый ЗаписьТекста(СокрЛП(ПутьККаталогу) + "\" + СокрЛП(ИмяФайла), "windows-1251"); - заработало.
Не могу найти как добавить те же разрешения если данную обработку загружаю в расширение. Может кто подскажет ссылку пример?
Отключить безопасный режим расширения не могу, т.к. грузим на фреш.
А вот так ведут себя "официальные" примеры от 1С при попытке их использовать, например, в УНФ
Ошибка инициализации модуля: ВнешняяОбработка._ДемоВыгрузкиДанныхВXMLФайлВБезопасномРежиме.Форма.Форма.Форма
по причине:
{ВнешняяОбработка._ДемоВыгрузкиДанныхВXMLФайлВБезопасномРежиме.Форма.Форма.Форма(19,2)}: Переменная не определена (ДополнительныеОтчетыИОбработкиВБезопасномРежимеВызовСервера)
<<?>>ДополнительныеОтчетыИОбработкиВБезопасномРежимеВызовСервера.ВыполнитьСценарийВБезопасномРежиме(
Смотрю в коде, там и общего модуля такого нет, а сама процедура в другом модуле внутренняя, без экспорта.
Вот понимаю, что оно устарело все года три дому назад. Но где новое то?
Ошибка инициализации модуля: ВнешняяОбработка._ДемоВыгрузкиДанныхВXMLФайлВБезопасномРежиме.Форма.Форма.Форма
по причине:
{ВнешняяОбработка._ДемоВыгрузкиДанныхВXMLФайлВБезопасномРежиме.Форма.Форма.Форма(19,2)}: Переменная не определена (ДополнительныеОтчетыИОбработкиВБезопасномРежимеВызовСервера)
<<?>>ДополнительныеОтчетыИОбработкиВБезопасномРежимеВызовСервер
Смотрю в коде, там и общего модуля такого нет, а сама процедура в другом модуле внутренняя, без экспорта.
Вот понимаю, что оно устарело все года три дому назад. Но где новое то?
Столкнулся с такой же ошибкой при установке разрешения для HTTPS в обработке, которая должна запускаться в БП 3.0 Расширенная в сервисе 1cfresh и загружать с некого ресурса (базы) документы.
Требования с примерами описаны на сайтеhttps://1cfresh.com/articles/so_addprocess_req но там не сказано какое разрешение работает с какой версии БСП (например с БСП версии 2.2.2.Х или более старшей и вот так это надо учесть в обработке) - т.о. во внешней обработке в функции СведенияОВнешнейОбработке() Экспорт создавая ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("ТУТ.ДОЛЖЕН.БЫТЬ.НОМЕР.БСП"), а не оставлять переменную ВерсияБСП = "" пустой!
Требования с примерами описаны на сайте
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(СтандартныеПодсистемыСервер.ВерсияБиблиотеки());
//или так
//ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Информация = НСтр("ru = 'Бла бла бла'");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.БезопасныйРежим = Истина;
ПараметрыРегистрации.Версия = "1.2.3";
ПараметрыРегистрации.Разрешения.Добавить(РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса("HTTPS", "forum.infostart.ru", Неопределено, НСтр("ru = 'Бла бла бла'")));
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = НСтр("ru = 'Бла бла бла'");
Команда.Идентификатор = "Основная";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
Команда.ПоказыватьОповещение = Истина;
Возврат ПараметрыРегистрации;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот