|
347 | 347 | КонецЕсли; |
348 | 348 |
|
349 | 349 | Для Индекс = 0 По ДанныеФормы.Количество() - 1 Цикл |
| 350 | + |
350 | 351 | Строка = ДанныеФормы.ПолучитьПоИндексу(Индекс); |
351 | 352 |
|
352 | 353 | Если ЭтоНативныйВебСервер Тогда |
|
377 | 378 | КонецЕсли; |
378 | 379 |
|
379 | 380 | Значение = Неопределено; |
380 | | - Если Не Строка.Значение = Неопределено Тогда |
381 | | - Значение = ПолучитьСтрокуИзДвоичныхДанных(Строка.Значение); |
382 | | - КонецЕсли; |
383 | 381 |
|
384 | 382 | Если ИмяФайла = Неопределено Тогда |
| 383 | + |
385 | 384 | Контейнер = Результат.Данные; |
| 385 | + |
| 386 | + Если Не Строка.Значение = Неопределено Тогда |
| 387 | + Значение = ПолучитьСтрокуИзДвоичныхДанных(Строка.Значение, КодировкаТекста.UTF8); |
| 388 | + КонецЕсли; |
| 389 | + |
386 | 390 | Иначе |
| 391 | + |
387 | 392 | Контейнер = Результат.Файлы; |
| 393 | + |
| 394 | + Заголовки = Строка.Метаданные["Заголовки"]; |
| 395 | + Если Не Заголовки = Неопределено Тогда |
| 396 | + ТипКонтента = ЗначениеЗаголовка(Заголовки, "Content-Type"); |
| 397 | + Иначе |
| 398 | + ТипКонтента = Неопределено; |
| 399 | + КонецЕсли; |
| 400 | + |
| 401 | + Если Не Строка.Значение = Неопределено Тогда |
| 402 | + ТипКонтента = ?(ТипКонтента = Неопределено, "application/octet-stream", ТипКонтента); |
| 403 | + Значение = ТекстовоеПредставлениеДвоичныхДанных(Строка.Значение, ТипКонтента); |
| 404 | + КонецЕсли; |
| 405 | + |
388 | 406 | КонецЕсли; |
389 | 407 |
|
390 | 408 | НайденноеЗначение = Контейнер[Имя]; |
|
397 | 415 | МассивЗначений.Добавить(НайденноеЗначение); |
398 | 416 | МассивЗначений.Добавить(Значение); |
399 | 417 | Контейнер.Вставить(Имя, МассивЗначений); |
400 | | - КонецЕсли; |
| 418 | + КонецЕсли; |
| 419 | + |
401 | 420 | КонецЦикла; |
402 | 421 |
|
403 | 422 | Возврат Результат; |
404 | 423 |
|
405 | 424 | КонецФункции |
406 | 425 |
|
| 426 | +Функция ТекстовоеПредставлениеДвоичныхДанных(ДвоичныеДанные, ТипКонтента) |
| 427 | + |
| 428 | + Если ДвоичныеДанныеСодержатУправляющиеСимволы(ДвоичныеДанные) Тогда |
| 429 | + |
| 430 | + Возврат СтрШаблон("data:%1;base64,%2", ТипКонтента, Base64Строка(ДвоичныеДанные)); |
| 431 | + |
| 432 | + Иначе |
| 433 | + |
| 434 | + Возврат ПолучитьСтрокуИзДвоичныхДанных(ДвоичныеДанные, КодировкаТекста.UTF8); |
| 435 | + |
| 436 | + КонецЕсли; |
| 437 | + |
| 438 | +КонецФункции |
| 439 | + |
| 440 | +Функция ДвоичныеДанныеСодержатУправляющиеСимволы(ДвоичныеДанные) |
| 441 | + |
| 442 | + ЧтениеДанных = Новый ЧтениеДанных(ДвоичныеДанные); |
| 443 | + |
| 444 | + Пока Истина Цикл |
| 445 | + |
| 446 | + Если ЧтениеДанных.ЧтениеЗавершено Тогда |
| 447 | + Прервать; |
| 448 | + КонецЕсли; |
| 449 | + |
| 450 | + Байт = ЧтениеДанных.ПрочитатьБайт(); |
| 451 | + |
| 452 | + Если Байт > 0 И Байт < 8 Или Байт > 13 И Байт < 26 Тогда |
| 453 | + Возврат Истина; |
| 454 | + КонецЕсли; |
| 455 | + |
| 456 | + КонецЦикла; |
| 457 | + |
| 458 | + Возврат Ложь; |
| 459 | + |
| 460 | +КонецФункции |
| 461 | + |
407 | 462 | Функция ЗаголовкиДляJson(Заголовки) Экспорт |
408 | 463 |
|
409 | 464 | Если ЭтоНативныйВебСервер Тогда |
|
0 commit comments