1с получить файл по http

Обновлено: 06.07.2024

Как восстановить любое значение из файла в 1с 8.3, 8.2

Как записать текстовый файл в 1с 8.3, 8.2

Ложь // перезаписывать файл, а не дописывать в конец (необязательно.)

Как прочитать текстовый файл в 1с 8.3, 8.2

Как проверить существование файла в 1С 8.3, 8.2

Как скопировать файл в 1с 8.3, 8.2

Как переместить файл в 1с 8.3, 8.2

Как найти файлы в каталоге в 1с 8.3, 8.2

Ложь // если Истина, то будет искать и в подкаталогах

Как удалить файл в 1с 8.3, 8.2

Как удалить файлы в каталоге по маске в 1с 8.3, 8.2

) ; // если маску не указать, то удалятся все файлы вместе с каталогом

Как получить имя временного файла в 1с 8.3, 8.2

Сообщить ( ПолучитьИмяВременногоФайла ( ) ) ; // например, c:\Temp\v8_11AE_4.tmp

Сообщить ( ПолучитьИмяВременногоФайла ( ".txt" ) ) ; // например, c:\Temp\v8_11AE_5.txt

Как прочитать атрибуты файла в 1с 8.3, 8.2

Как установить атрибуты файла в 1с 8.3, 8.2

Как узнать размер файла в 1с 8.3, 8.2

Сообщить ( Файлег . Размер ( ) ) ; // покажет размер в байтах

Как узнать по пути, файл это или каталог в 1с 8.3, 8.2

Как вытащить расширение файла из его пути в 1с 8.3, 8.2

Как вытащить имя файла без расширения в 1с 8.3, 8.2

Как создать каталог в 1с 8.3, 8.2

Как проверить существование каталога в 1с 8.3, 8.2

Как удалить каталог вместе с содержимым в 1с 8.3, 8.2

Как получить каталог временных файлов в 1 с 8.3 , 8.2

Как сохранить произвольное значение во временное хранилище в 1с 8.3, 8.2

АдресВХранилище = ПоместитьВоВременноеХранилище ( Список ) ;

Как прочитать произвольное значение из временного хранилища в 1с 8.3, 8.2

СписокИзХранилища = ПолучитьИзВременногоХранилища ( АдресВХранилище ) ;

Сообщить ( "Значение по этому адресу уже удалено из хранилища." ) ;

Как перезаписать уже сохраненное значение во временном хранилище в 1с 8.3, 8.2

ПоместитьВоВременноеХранилище ( Массив , АдресВХранилище ) ;

Как сохранить значение во временное хранилище на всё время жизни формы в 1с 8.3, 8.2

ПоместитьВоВременноеХранилище ( Массив , ЭтаФорма . УникальныйИдентификатор ) ;

Как сохранить значение во временное хранилище на всё время сеанса пользователя в 1с 8.3, 8.2

АдресВХранилище = ПоместитьВоВременноеХранилище ( Массив , Новый УникальныйИдентификатор ) ;

Как удалить значение из временного хранилища в 1с 8.3, 8.2

Как узнать является ли строка адресом во временном хранилище в 1с 8.3, 8.2

Если ЭтоАдресВременногоХранилища ( АдресВХранилище ) Тогда

Как передать файл с клиента на сервер в 1с 8.3, 8.2

ОповещениеОЗавершени и = Новый ОписаниеОповещения ( "ВыполнитьПослеПомещенияФайла" , ЭтотОбъект ) ;

// если опустить последний параметр, то помещенный файл

// а если указать - то только после удаления объекта формы

// выбрать файл самому четвёртый параметр (интерактивно)

Процедура ВыполнитьПослеПомещенияФайла ( Результат , Адрес , ВыбранноеИмяФайла , ДополнительныеПараметры ) Экспорт

ВыбранноеИмяФайла + " передан на сервер и сохранён во " +

Как прочитать файл на сервере из временного хранилища в 1с 8.3, 8.2

Процедура ПрочитатьФайлНаСервереИзХранилищаНаСервере ( )

Сообщить ( "Сначала нужно передать файл с клиента на сервер." ) ;

ДвоичныеДанные = ПолучитьИзВременногоХранилища ( АдресФайлаВХранилище ) ;

Как передать файл с сервера на клиент в 1с 8.3, 8.2

АдресФайлаВХранилище // адрес в хранилище на сервере

Процедура ВыполнитьПослеПолученияФайлов ( ПолученныеФайлы , ДополнительныеПараметры ) Экспорт

Сообщить ( "Получен " + Файл . Имя + " из " + Файл . Хранение ) ;

Поиск по сайту

Okolokompa в Яндекс Дзен


Сначала файл помещается во временное хранилище и получается его адрес. Адрес передается на сервер. На сервере файл получается из временного хранилища и записывается на диск компьютера сервера:

ПослеПомещения = Новый ОписаниеОповещения ( "ПослеПомещения" , ЭтотОбъект ) ; НачатьПомещениеФайлаНаСервер ( ПослеПомещения , , , , ПутьКФайлу ) ; Процедура ПослеПомещения ( ОписаниеПомещенногоФайла , ДопПараметры ) Экспорт Расширение = ОписаниеПомещенногоФайла . СсылкаНаФайл . Файл . Расширение ;

Первый параметр процедуры из описания оповещения имеет тип ОписаниеПомещенногоФайла. Данный объект имеет 3 свойства:

В результате через параметр Адрес можно получить файл из временного хранилища. А через параметр СсылкаНаФайл.Файл можно получить всю необходимую информацию о файле.

По умолчанию файл будет удален из временного хранилища после окончания серверного вызова. Однако, если последним параметром указать уникальный идентификатор формы, то файл будет удален только после закрытия этой формы:

НачатьПомещениеФайлаНаСервер ( ПослеПомещения , , , , ПутьКФайлу , УникальныйИдентификатор ) ;

Если до помещения файла в хранилище известен адрес во временном хранилище, куда нужно поместить файл, то его можно указать четвертым параметром:

НачатьПомещениеФайлаНаСервер ( ПослеПомещения , , , Адрес , ПутьКФайлу ) ;

Проверка файла до помещения во временное хранилище

Если до помещения файла во временное хранилище нужно выполнить какие-то проверки, то это можно сделать в специальной процедуре, выполняемой до помещения файла во временное хранилище. Имя этой процедуры нужно указать в описании оповещения, которое указывается третьим параметром в методе НачатьПомещениеФайлаНаСервер:

ПослеПомещения = Новый ОписаниеОповещения ( "ПослеПомещения" , ЭтотОбъект ) ; ПередПомещением = Новый ОписаниеОповещения ( "ПередПомещением" , ЭтотОбъект ) ; НачатьПомещениеФайлаНаСервер ( ПослеПомещения , , ПередПомещением , , ПутьКФайлу ) ;

У данной процедуры должно быть 3 параметра:

Например, можно проверить размер файла и если он слишком большой, то отказаться от помещения во временное хранилище:

ПослеПомещения = Новый ОписаниеОповещения ( "ПослеПомещения" , ЭтотОбъект ) ; ПередПомещением = Новый ОписаниеОповещения ( "ПередПомещением" , ЭтотОбъект ) ; НачатьПомещениеФайлаНаСервер ( ПослеПомещения , , ПередПомещением , , ПутьКФайлу ) ; Процедура ПередПомещением ( ПомещаемыйФайл , ОтказОтПомещенияФайла , ДопПараметры ) Экспорт

Помещение файла во временное хранилище с диалогом выбора

Можно предоставить пользователю самому выбрать файл, который нужно поместить во временное хранилище. В этом случае сначала будет открыт диалог выбора файла, пользователь выберет файл и данный файл будет помещен во временное хранилище.

Для открытия диалога выбора файла нужно пятым параметром вместо пути к файлу указать объект ПараметрыДиалогаПомещенияФайлов. Данный объект схож с объектом ДиалогВыбораФайла, но имеет только 4 свойства:

  • Заголовок
  • МножественныйВыбор
  • Фильтр
  • ИндексФильтра
ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов ; ПослеПомещения = Новый ОписаниеОповещения ( "ПослеПомещения" , ЭтотОбъект ) ; НачатьПомещениеФайлаНаСервер ( ПослеПомещения , , , , ПараметрыДиалога ) ; Процедура ПослеПомещения ( ОписаниеПомещенногоФайла , ДопПараметры ) Экспорт

В этом случае сначала будет открыто диалоговое окно для выбора файла:


Выбранный файл будет помещен во временное хранилище.

Если пользователь нажмет на кнопку Отмена и откажется от выбора файла, то первый параметр в процедуре, вызываемой после помещения файла во временное хранилище будет равен Неопределено.

Если использовалась процедура, вызываемая до помещения файла во временное хранилище, то она будет вызвана после того как пользователь выберет файл.

Можно вообще не указывать объект ПараметрыДиалогаПомещенияФайлов, в этом случае все равно будет открыт диалог выбора файла:

ПослеПомещения = Новый ОписаниеОповещения ( "ПослеПомещения" , ЭтотОбъект ) ;

Прогресс помещения файла во временное хранилище

Если файл большой, то он может долго загружаться во временное хранилище. В этом случае неплохо было бы показать пользователя прогресс помещения файла во временное хранилище. Для этого в метод НачатьПомещениеФайлаНаСервер вторым параметром можно передать описание оповещения с именем процедуры, которая будет периодически вызываться в процессе помещения файла во временное хранилище. У данной процедуры должно быть 4 параметра:

ПослеПомещения = Новый ОписаниеОповещения ( "ПослеПомещения" , ЭтотОбъект ) ; ХодВыполнения = Новый ОписаниеОповещения ( "ХодВыполнения" , ЭтотОбъект ) ; НачатьПомещениеФайлаНаСервер ( ПослеПомещения , ХодВыполнения , , , ПутьКФайлу ) ; Процедура ХодВыполнения ( ПомещаемыйФайл , Помещено , ОтказОтПомещенияФайла , ДопПараметры ) Экспорт Процедура ПослеПомещения ( ОписаниеПомещенногоФайла , ДопПараметры ) Экспорт

В результате в процессе помещения файла во временное хранилище будет показано окно состояния с прогрессом:


Количество вызовов процедуры ХодВыполнения не определено. Для маленького файла это может быть только 1 раз, для большого даже больше 100.

Если в этой процедуре присвоить параметру ОтказОтПомещенияФайла = Истина, то в процедуре, которая будет вызвана после помещения файла у первого параметра свойство ПомещениеФайлаОтменено тоже будет равно Истина и файл не будет помещен во временное хранилище:

ПослеПомещения = Новый ОписаниеОповещения ( "ПослеПомещения" , ЭтотОбъект ) ; ХодВыполнения = Новый ОписаниеОповещения ( "ХодВыполнения" , ЭтотОбъект ) ; НачатьПомещениеФайлаНаСервер ( ПослеПомещения , ХодВыполнения , , , ПутьКФайлу ) ; Процедура ХодВыполнения ( ПомещаемыйФайл , Помещено , ОтказОтПомещенияФайла , ДопПараметры ) Экспорт Процедура ПослеПомещения ( ОписаниеПомещенногоФайла , ДопПараметры ) Экспорт Сообщить ( ОписаниеПомещенногоФайла . ПомещениеФайлаОтменено ) ; //Истина

Асинхронный метод через обещание

Есть аналогичный метод ПоместитьФайлНаСерверАсинх. Данный метод тоже является асинхронным, но вместо описания оповещения использует обещание.

Параметры данного метода полностью совпадают с параметрами метода НачатьПомещениеФайлаНаСервер, только здесь не используется первый параметр с описанием оповещения с именем процедуры, которая вызывается после помещения файла во временное хранилище. Вместо этого обещание возвращает объект ОписаниеПомещенногоФайла (или Неопределено, если использовался диалог выбора и пользователь отказался от выбора файла):

Обещание = ПоместитьФайлНаСерверАсинх ( , , , ПутьКФайлу ) ; Расширение = ОписаниеПомещенногоФайла . СсылкаНаФайл . Расширение ;

Помещение во временное хранилище нескольких файлов

Параметры данного метода схожи с параметрами метода НачатьПомещениеФайлаНаСервер, только там где был один файл или объект, здесь будет массив файлов/объектов.

Вместо пути к файлу нужно передать массив объектов ОписаниеПередаваемогоФайла. Данный объект имеет 2 свойства:

ПослеПомещения = Новый ОписаниеОповещения ( "ПослеПомещения" , ЭтотОбъект ) ; НачатьПомещениеФайловНаСервер ( ПослеПомещения , , , ПомещаемыеФайлы , УникальныйИдентификатор ) ; Процедура ПослеПомещения ( ПомещенныеФайлы , ДопПараметры ) Экспорт Расширение = ОписаниеФайла . СсылкаНаФайл . Файл . Расширение ;

В данном примере последним параметром был указан уникальный идентификатор формы. Если его не указать, то второй файл не будет записан на сервер. Дело в том, что в данном примере вызов сервера происходит дважды: сначала для первого файла, потом для второго. Если не указан уникальный идентификатор формы, то файл будет удален из временного хранилища после окончания серверного вызова, то есть после записи первого файла. А при втором вызове сервера, для записи второго файла, временное хранилище уже будет пустым.

Поэтому нужно или указывать уникальный идентификатор формы в методе НачатьПомещениеФайловНаСервер или записывать все файлы на сервер за один серверный вызов.

Процедура, которая вызывается до помещения файлов во временное хранилище ничем не отличается от метода НачатьПомещениеФайлаНаСервер. Только в данном случае первым параметром будет не объект СсылкаНаФайл, а массив объектов СсылкаНаФайл, по одному для каждого файла. Второй параметр отменяет помещение во временное хранилище не одного файла, а сразу всех файлов:

GET запросы в 1С 8.3

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

Отличительной особенностью GET запроса является отсутствие тела запроса, наличествуют только заголовки.

Для начала рассмотрим вопрос, как же нам сформировать сам текст запроса. На самом деле в отношении файла с картинкой это совсем не сложно. Воспользуемся инструментами браузера. Я буду использовать Оперу, в Вашем браузере процесс может несколько отличаться, но принцип один.

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Откроется окно с кодом, где нас интересует тэг img src= и далее адрес картинки:

получение url адреса

Вот этот адрес и нужно скопировать. В разных браузерах по-разному можно это сделать, в Опере это проще всего сделать, перейдя сначала в режим редактирования (правая кнопка мышки – Edit attribute).

Теперь разберем ее на две части:

    – это наш сервер;
  • /wp-content/themes/govpress-new/images/GOODWILL.jpg – это и есть текст запроса.

Теперь можно переходить к написанию кода. Я приведу весь код сразу, целиком. А пояснения будут в комментариях. Готовую обработку можно скачать здесь.

пример обработки для http запросов

POST запросы в 1С 8.3

POST запросы кроме заголовков могут содержать еще и тело. Тем самым они предоставляют гораздо большие возможности, чем GET запросы. Они широко применяются, например, для авторизации на ресурсе и последующих действий. Также с помощью POST запросов можно запускать сложные процессы, зависящие от входящих данных, и так далее. Кроме того, POST запросы бывают двух типов:

Практический пример я рассматривать не буду, так как область применения POST запросов очень обширна и, как правило, связана со сложными процессами, достойными отдельной разработки. Я дам лишь пример общей схемы работы с такими запросами. Если у Вас возникнут вопросы или затруднения, мы всегда рады ответить на вопросы или выполнить разработку под заказ.

Итак, отправка POST запроса средствами платформы 1С: Предприятие 8.3 осуществляется следующим образом:

Читайте также: