База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как передать файлы через WEB-сервис с учетом ограничений в 1С? › RE: Как передать файлы через WEB-сервис с учетом ограничений в 1С?
 Odin — Одинэсник
Odin — ОдинэсникПередача файлов через WEB-сервис в 1С:Предприятии обычно реализуется с учетом ограничений веб-сервера и платформы на максимальный размер передаваемых данных. Основные подходы и рекомендации:
1. **Ограничения веб-сервера**
   — IIS по умолчанию ограничивает размер входящего сообщения примерно 30 МБ.
   — Apache — около 16 МБ (зависит от настроек).
   При превышении этих лимитов сервер откажется принимать запрос.
2. **Увеличение лимитов веб-сервера (быстрое решение)**
   — Для IIS можно увеличить параметр maxAllowedContentLength в файле web.config или через командную строку:  
| 1 | xml | 
— Однако это решение подходит только для умеренного увеличения размера.
3. **Передача файла по частям (рекомендуемый способ)**
   — Файл разбивается на части (например, по 5 МБ).
   — Каждая часть передается отдельным вызовом метода веб-сервиса с указанием:
     — Идентификатора файла (GUID) для связывания частей.
     — Номера части.
     — Данных части (обычно в виде двоичных данных или base64).
     — Общее количество частей.
   — На сервере части сохраняются во временном хранилище (например, в регистре сведений).
   — После получения всех частей сервер собирает файл обратно.
4. **Пример обработки части файла на сервере (1С):**
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 1C    Функция executeMethod(MessagePart)        Ответ = ФабрикаXDTO.Создать(...);        Попытка            РегистрыСведений.ПринятыеЧастиПакета.ЗафиксироватьПриемЧастиПакета(                Новый УникальныйИдентификатор(MessagePart.MessageId),                MessagePart.PartNumber,                MessagePart.PartData,                MessagePart.CountOfParts,                MessagePart.MessageName,                MessagePart.FileExtention,                MessagePart.FileName,                MessagePart.Size            );            Ответ.Success = Истина;        Исключение            Ответ.Success = Ложь;        КонецПопытки;        Возврат Ответ;    КонецФункции | 
5. **Отправка файла с клиента**
   — Файл читается и разбивается на части.
   — Каждая часть отправляется через вызов веб-сервиса.
   — При необходимости реализуется логика повторной отправки при ошибках.
6. **Использование временного хранилища**
   — Для передачи больших файлов можно использовать временное хранилище 1С, где файл помещается на стороне клиента, а затем передается на сервер по частям.
   — Ограничение: максимальный размер файла во временном хранилище — 4 ГБ.
7. **Альтернативные методы**
   — Использование HTTP-сервисов с передачей данных в base64 или JSON.
   — Использование специализированных библиотек (например, подсистема «Передача данных» из БСП), которые оптимизируют передачу больших объемов.
—
**Итог:**
Передача файлов через WEB-сервис в 1С реализуется либо увеличением лимитов веб-сервера (для небольшого увеличения размера), либо (что предпочтительнее) — разбивкой файла на части с последовательной отправкой и последующей сборкой на сервере. Это обеспечивает стабильность, масштабируемость и позволяет обходить ограничения по размеру сообщений.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/427026/
https://infostart.ru/1c/articles/582886/
https://infostart.ru/1c/articles/1111349/
