Использование внешних ресурсов дополнительной обработкой, публикуемой во фреше

1. Дон Кихот 14.11.18 08:52 Сейчас в теме
Требуется работающую обработку загрузить во фреш, обработка использует интернет ресурс и файлы на компьютере. Вот функция СведенияОВнешнейОбработке(), я добавил строки с разрешением по рекомендации с сайта 1сfresh.com:

Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();


ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Наименование = "Импорт операций по займу ПОТОК";
ПараметрыРегистрации.Информация = НСтр("ru = ' Данная обработка получает данные с интернет ресурса, начисляет доход по физическим лицам и вычисляет НДФЛ для заполнения справок 2-НДФЛ '");
ПараметрыРегистрации.БезопасныйРежим = Истина;
ПараметрыРегистрации.Версия = "1.9";

СтрокаКоманды = ПараметрыРегистрации.Команды.Добавить();
СтрокаКоманды.Идентификатор = "ИмпортПОТОК";
СтрокаКоманды.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
СтрокаКоманды.Представление = "Импорт операций по займу ПОТОК";
СтрокаКоманды.ПоказыватьОповещение = Истина;


Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса("HTTPS","potok.digital",443,"");
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);

Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаФайловойСистемы("C:\12",Истина,Истина,"");
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);


Возврат ПараметрыРегистрации;



В итоге обработка при подготовке ее к публикации во фреше их обработкой "ПодготовкаДополнительныхОтчетовИОбработокКПубликацииВМодели­Сервиса.epf" выходит ошибка:

{ОбщийМодуль.ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест.Модуль(272)}: Ошибка при вызове метода контекста (Добавить)
Манифест.Permissions.Добавить(Разрешение);
по причине:
Несоответствие типов XDTO:
Тип '{http://www.1c.ru/1cFresh/Application/Permissions/1.0.0.2}InternetResourceAccess' не соответствует типу '{http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/1.0.0.1}PermissionBase'
Тип свойства не соответствует типу значения

Подскажите пожалуйста, кто знает что не так
Прикрепленные файлы:
Найденные решения
28. Дон Кихот 15.11.18 13:35 Сейчас в теме
Евгений, спасибо большое, на данном этапе проблему решил, до строк добавляющих разрешения:

Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса("HTTPS","potok.digital",443,"");
	ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
	
	Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаФайловойСистемы("C:\12",Истина,Истина,"");
	ПараметрыРегистрации.Разрешения.Добавить(Разрешение);

добавил строку:

ПараметрыРегистрации.Вставить("ВерсияБСП", "2.4.6.197");


версию БСП взял из конфигурации БСП, в которой посмотрел пример по рекомендации 1с фреш
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. triviumfan 97 14.11.18 09:55 Сейчас в теме
Похоже, что ОбъектXDTO "FileSystemAccess" и "InternetResourceAccess" неверной структуры или заполнены криво.
Проверь, что лежит в переменных "Разрешение".
Проверь, какая версия XDTO используется, их там несколько.
5. Дон Кихот 14.11.18 11:27 Сейчас в теме
(2)
как проверить какая версия XDTO используется, подскажи пожалуйста
10. triviumfan 97 14.11.18 12:15 Сейчас в теме
(5) Ну тебе возвращается ОбъектXDTO. Зайди в РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаФайловойСистемы() и посмотри какая версия создаётся.
Или вероятно в РаботаВБезопасномРежимеСлужебный.Пакет().
13. Дон Кихот 14.11.18 13:20 Сейчас в теме
(10)
Вот в этом месте кода в общем модуле:

Функция РазрешениеНаИспользованиеКаталогаФайловойСистемы(Знач Адрес, Знач ЧтениеДанных = Ложь, Знач ЗаписьДанных = Ложь, Знач Описание = "") Экспорт

Пакет = РаботаВБезопасномРежимеСлужебный.Пакет();
Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(Пакет, "FileSystemAccess"));

в отладке переменная пакет принимает значение:
Прикрепленные файлы:
3. Дон Кихот 14.11.18 10:49 Сейчас в теме
вот результат переменной "Разрешение" в отладке на локальном компьютере
Прикрепленные файлы:
4. Дон Кихот 14.11.18 11:10 Сейчас в теме
Это код из общего модуля, где применяется метод Добавить()

Для Каждого Разрешение Из РазрешенияОбработки Цикл

Если ТипЗнч(Разрешение) = Тип("ОбъектXDTO") Тогда

Манифест.Permissions.Добавить(Разрешение);
6. Дон Кихот 14.11.18 11:40 Сейчас в теме
вот такое значение в отладке у Манифест.Permissions
Прикрепленные файлы:
7. triviumfan 97 14.11.18 11:53 Сейчас в теме
Блин, не заметил. Ведь на первом скриншоте из темы указаны различия в версиях пакетов XDTO!
8. triviumfan 97 14.11.18 11:57 Сейчас в теме
Похоже, что у тебя ЗУП старой версии. Требуется другой тип хдто - 1.0.0.2
Прикрепленные файлы:
9. Дон Кихот 14.11.18 12:13 Сейчас в теме
Зарплата и управление персоналом, редакция 3.1 (3.1.8.155) (http://v8.1c.ru/hrm/)
Copyright © ООО "1C-Софт", 2007-2018. Все права защищены
(http://www.1c.ru)
11. Дон Кихот 14.11.18 12:26 Сейчас в теме
Платформа 1С:Предприятие 8.3 (8.3.13.1513)
12. Дон Кихот 14.11.18 12:27 Сейчас в теме
Вот в этом месте кода в общем модуле:
Функция РазрешениеНаИспользованиеКаталогаФайловойСистемы(Знач Адрес, Знач ЧтениеДанных = Ложь, Знач ЗаписьДанных = Ложь, Знач Описание = "") Экспорт

Пакет = РаботаВБезопасномРежимеСлужебный.Пакет();
Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(Пакет, "FileSystemAccess"));
в отладке переменная пакет принимает значение:
Прикрепленные файлы:
14. triviumfan 97 14.11.18 14:15 Сейчас в теме
(12) Ну вот, у вас 1.0.0.2 используется, а нужно, судя по 1 скриншоту из темы, 1.0.0.1
Либо использовать другую обработку для публикации.
15. triviumfan 97 14.11.18 14:16 Сейчас в теме
(12) Попробуй Пакет = Метаданные.ПакетыXDTO.ApplicationPermissions_1_0_0_1.ПространствоИмен;
16. Дон Кихот 14.11.18 14:39 Сейчас в теме
Версия 1.0.0.2 создается в общем модуле ЗУП, а 1.0.0.1 хочет видеть обработка скачанная с 1с фреш, они все последней версии, так получается, может я не прав, но куда дальше копать не понятно.
18. triviumfan 97 14.11.18 15:57 Сейчас в теме
(16) Ну я же тебе предложил использовать версию, которую требует фреш!
Вместо
Функция РазрешениеНаИспользованиеКаталогаФайловойСистемы(Знач Адрес, Знач ЧтениеДанных = Ложь, Знач ЗаписьДанных = Ложь, Знач Описание = "") Экспорт 
Пакет = РаботаВБезопасномРежимеСлужебный.Пакет(); 
Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(Пакет, "FileSystemAccess")); 

Используй свою:
Функция РазрешениеНаИспользованиеКаталогаФайловойСистемы(Знач Адрес, Знач ЧтениеДанных = Ложь, Знач ЗаписьДанных = Ложь, Знач Описание = "") Экспорт 
Пакет = Метаданные.ПакетыXDTO.ApplicationPermissions_1_0_0_1.ПространствоИмен; 
Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(Пакет, "FileSystemAccess")); 
19. Дон Кихот 15.11.18 08:54 Сейчас в теме
(18) Снял с поддержки, заменил строки, результат на фото ниже, в общем тот же, так я понимаю метод в
СведенияОВНешнейОбработке

Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса("HTTPS","potok.digital",443,"");
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);

Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаФайловойСистемы("C:\12",Истина,Истина,"");
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);

неправильно применен
Прикрепленные файлы:
29. ybatiaev 59 22.02.22 10:43 Сейчас в теме
(19)Добрый день!
Подскажите, а расширению как давать разрешения?
Прикрепленные файлы:
30. Iva_Irina_Iva 26.03.22 13:18 Сейчас в теме
(29) Подскажите, у Вас получилось разрешение дать?
32. ybatiaev 59 26.03.22 23:17 Сейчас в теме
(30) При установке расширения в облако откроется форма. Необходимо её заполнять(по каждой кнопке далее.. далее). Именно там и будут вопросы с ресурсами. К примеру мне надо было отправлять почту контрагентам. В основной учётной записи 1С (администрирование/органайзер) прописан был сервер, у меня mail.smtp.ru вот я его и прописал. Ему и было дано разрешение.
Ещё уточнение - в облаке нет регламентного задания. Теперь процедуру Вы сами прописываете в каждом отдельном серверном модулей. Одна экспортная процедура в одном модуле и есть типа команда.
Удачи!
Iva_Irina_Iva; +1 Ответить
33. Iva_Irina_Iva 11.05.22 11:04 Сейчас в теме
(32) Не сталкивались с ошибкой "Обращение к интернет ресурсам запрещено профилем безопасности"?
Прикрепленные файлы:
31. laperuz 47 26.03.22 13:23 Сейчас в теме
(30)
(29)
При добавлении в МС на вкладке где указывается разрешение на временные файлы, там же есть табличная часть, где нужно указать адреса интернет-ресурсов.
ybatiaev; Iva_Irina_Iva; +2 Ответить
17. Дон Кихот 14.11.18 15:06 Сейчас в теме
В отладке ->вычислить выражение

Метаданные.ПакетыXDTO.ApplicationPermissions_1_0_0_1.ПространствоИмен

показывает значение

http://www.1c.ru/1cFresh/Application/Permissions/1.0.0.1

тип строка

только эта обработка загружается во фреш, там же только типовые конфигурации
20. Дон Кихот 15.11.18 08:59 Сейчас в теме
Вот описание метода

РазрешениеНаИспользованиеИнтернетРесурса
Возвращает внутреннее описание разрешения на использование интернет-ресурса.
Синтаксис

Функция РазрешениеНаИспользованиеИнтернетРесурса(Знач Протокол, Знач Адрес, Знач Порт = Неопределено, Знач Описание = "") Экспорт
Параметры

Протокол - Строка - протокол, по которому выполняется взаимодействие с ресурсом. Допустимые значения:
IMAP,
POP3,
SMTP,
HTTP,
HTTPS,
FTP,
FTPS,
Адрес - Строка - адрес ресурса без указания протокола,
Порт - Число - номер порта через который выполняется взаимодействие с ресурсом,
Описание - Строка - описание причины, по которой требуется предоставление разрешения.
Возвращаемое значение

ОбъектXDTO - внутреннее описание запрашиваемого разрешения.
Предназначен только для передачи в качестве параметра в функции.
РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(),
РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и
РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов().
Пример вызова

Результат = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(Протокол, Адрес, Порт, Описание)
Доступность

Сервер, Толстый клиент, Внешнее соединение,

смутили строки что "Предназначен только для передачи в качестве параметра в функции.",
попробую
21. triviumfan 97 15.11.18 09:01 Сейчас в теме
Скинь обработку "ПодготовкаДополнительныхОтчетовИОбработокКПубликацииВМодели­Сервиса"
22. triviumfan 97 15.11.18 09:03 Сейчас в теме
Так ты не заполняешь "PermissionBase".
Покажи что находится в разрешениях манифеста (Manifest.Permissons).
24. Дон Кихот 15.11.18 09:13 Сейчас в теме
(22)
Это вот эту функцию?
РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(),
или "PermissionBase" как то еще заполняется?
27. triviumfan 97 15.11.18 11:15 Сейчас в теме
(24) никак, это базовый тип, я сам туплю =( какая версия зуп/бсп?
25. Дон Кихот 15.11.18 09:39 Сейчас в теме
(22)
Значение в отладчике
Manifest.Permissons
есть в сообщении 6,
а где посмотреть его разрешения?
23. Дон Кихот 15.11.18 09:10 Сейчас в теме
Обработка "ПодготовкаДополнительныхОтчетовИОбработокКПубликацииВМодели­­Сервиса"
Прикрепленные файлы:
ПодготовкаДополнительныхОтчетовИОбработокКПубликацииВМоделиСервиса.epf
28. Дон Кихот 15.11.18 13:35 Сейчас в теме
Евгений, спасибо большое, на данном этапе проблему решил, до строк добавляющих разрешения:

Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса("HTTPS","potok.digital",443,"");
	ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
	
	Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаФайловойСистемы("C:\12",Истина,Истина,"");
	ПараметрыРегистрации.Разрешения.Добавить(Разрешение);

добавил строку:

ПараметрыРегистрации.Вставить("ВерсияБСП", "2.4.6.197");


версию БСП взял из конфигурации БСП, в которой посмотрел пример по рекомендации 1с фреш
Прикрепленные файлы:
34. GrimFantango 21.11.23 12:42 Сейчас в теме
Здравствуйте, подскажите пожалуйста где можно взять эту обработку
35. GrimFantango 21.11.23 13:58 Сейчас в теме
Импорт операций по займу ПОТОК
36. strelvan 80 13.11.24 15:12 Сейчас в теме
Простой пример подключения внешней обработки в безопасном режиме ИСТИНА:

Функция СведенияОВнешнейОбработке() Экспорт

	ПараметрыРегистрации = Новый Структура;
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
	ПараметрыРегистрации.ОпределитьНастройкиФормы = Истина;
	
	ПараметрыРегистрации.Вставить("Вид", "ДополнительныйОтчет");
	ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'Прайс-заказ В Excel'"));
	ПараметрыРегистрации.Вставить("Версия", "13.11.2024");
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
	ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Прайс-заказ В Excel'")); 
   	ПараметрыРегистрации.Вставить("Разрешения", Новый Массив);
	ПараметрыРегистрации.Вставить("ВерсияБСП", "3.1.10.295");
	Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса("http","192.168.1.111",5005,"Получение картинок номенклатуры"); 
	ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
	Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина);
	ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
	Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаПрограммы(Истина, Истина);
	ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
	Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима("Привелигерованный режим");
	ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот