Получение скана документа через http-сервис (покритикуйте решение)

1. user1218207 10.10.24 14:47 Сейчас в теме
Всем привет,

Покритикуйте, пожалуйста, логику:

Будем получать сканы документов через http-сервис.
Сторонняя система (клиент) отправляет, 1С принимает.

Клиент будет на своей стороне преобразовывать jpeg или pdf или что-то еще в строку в каком-то формате (хочу base64) и передавать нам внутри json.

На стороне 1С надо преобразовать полученную строку из base64 в двоичные данные, и уже из двоичных данных получить присоединенный файл (через БСП - РаботаСФайлами.ДобавитьФайл).

Если клиент преобразует pdf в base64, то я в 1С смогу преобразовать строку обратно в pdf.
А если клиент преобразует pdf в bin, то я в 1С не смогу преобразовать строку обратно, не вижу такого метода.
Выглядит, что base64 - единственный вариант.

Еще почему-то jpeg с первой попытки "взлетел", а с пдф долго ковыряюсь.

У кого какой опыт на эту тему? Поделитесь, пожалуйста.
Найденные решения
5. SlavaKron 10.10.24 16:02 Сейчас в теме
(1)
в каком-то формате (хочу base64)
Так другого и не дано, если речь идёт о передаче произвольных двоичных данных. Не понятно, почему с пдф что-то не получается, разницы никакой по сравнению с jpeg.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1880116 10.10.24 15:22 Сейчас в теме
(1)
base64 - единственный вариант
В заголовках передавайте имя файла, прикрытое base64. В теле - сырые двоичные данные файла. Можете пожать в zip для полного счастья.

А если клиент преобразует pdf в bin, то я в 1С не смогу преобразовать строку обратно
Что такое "bin"?
13. user1218207 11.10.24 10:46 Сейчас в теме
(2)
Что такое "bin"?


это формат файла, но в 1С такого нет
В этом и фишка, что если зашифрует картинку в bin, то мы не сможем с таким работать.
22. user1880116 11.10.24 21:18 Сейчас в теме
(13)
это формат файла, но в 1С такого нет
Прелесть.
5. SlavaKron 10.10.24 16:02 Сейчас в теме
(1)
в каком-то формате (хочу base64)
Так другого и не дано, если речь идёт о передаче произвольных двоичных данных. Не понятно, почему с пдф что-то не получается, разницы никакой по сравнению с jpeg.
7. user1880116 10.10.24 16:06 Сейчас в теме
(5)
Так другого и не дано, если речь идёт о передаче произвольных двоичных данных
Вот сейчас смешно было, спасибо.

Ты когда порнуху дистрибутив платформы скачиваешь по http, оно к тебе в base64 что-ли льется?
9. SlavaKron 10.10.24 16:28 Сейчас в теме
10. user1880116 10.10.24 16:50 Сейчас в теме
(9) Json вообще строки гоняет. Ему дела нет, чем двоичные данные в строку превращены. Хоть base64, хоть Base122, хоть uuencode, простигосподи.
15. user1218207 11.10.24 10:50 Сейчас в теме
(10)
хоть Base122, хоть uuencode


понятно, что json мне пригонит что угодно в текстовом формате, но я ведь не всё могу преобразовать.
Получу base122, а преобразовать нечем, в 1С нет метода.

В этом и вопрос, неужели на base64 варианты заканчиваются.
23. user1880116 11.10.24 21:22 Сейчас в теме
(15)
в 1С нет метода.
У тебя - нет. Он пишется буквально на коленке через буфер двоичных данных и потоки. Но у тебя его не будет.

Кроме этого, ты даже про банальный HEX не знаешь.
14. user1218207 11.10.24 10:47 Сейчас в теме
(7)
дистрибутив платформы скачиваешь по http


не
речь только про http-сервис
скачивание файлов по http здесь не при чем
24. user1880116 11.10.24 21:22 Сейчас в теме
(14) Там очевидно какой-то другой протокол, ага.
11. user1218207 11.10.24 10:41 Сейчас в теме
(5)
Не понятно, почему с пдф что-то не получается, разницы никакой по сравнению с jpeg.


Сегодня легко получилось, ура. Вы правы)

Ошибки были, когда я пдф конвертировала в base64 не онлайн-редактором, а средствами 1С.
12. user1218207 11.10.24 10:42 Сейчас в теме
(5)
Так другого и не дано, если речь идёт о передаче произвольных двоичных данных.

Именно это и хотелось услышать. Есть альтернатива base64 или нет.
8. spacecraft 10.10.24 16:14 Сейчас в теме
16. user1218207 11.10.24 10:52 Сейчас в теме
(8)
опыт от 1С подойдет?


не совсем
буду, во-первых, принимать, а не получать, а во-вторых pdf, а не jpeg
18. spacecraft 11.10.24 10:57 Сейчас в теме
(16)
буду, во-первых, принимать, а не получать

Прочитайте статью полностью. Там есть раздел: "Разбор составного сообщения на стороне клиента"


(16)
а во-вторых pdf, а не jpeg

Принимаются двоичные данные. Разница только в обработке полученных данных.

PS. "принимать, а не получать". А в чем разница? Кроме того, что будете получать, а не запрашивать? Сообщение по сути не будет отличаться от ответа запроса.
3. user1880116 10.10.24 15:27 Сейчас в теме
Хотя кошерней, конечно, через multipart/form-data;
https://its.1c.ru/db/intgr83#content:243:hdoc
17. user1218207 11.10.24 10:54 Сейчас в теме
(3)
через multipart/form-data;


здесь про get
а я наоборот буду "принимать составное сообщение"))

в любом случае спасибо, еще раз не помешает пробежаться по теме
4. user1218207 10.10.24 15:42 Сейчас в теме
В теле - сырые двоичные данные файла.

Я думала, что "двоичные данные" - это термин 1С, а в остальном мире есть base64 и еще другие варианты двоичных данных, наверное.

По идее, меня как раз двоичные данные интересуют.
В какой формат обычно преобразуют картинки?
6. user1880116 10.10.24 16:04 Сейчас в теме
(4)
В какой формат обычно преобразуют картинки?
Ээээ, что?
20. starik-2005 3090 11.10.24 14:08 Сейчас в теме
(4)
В какой формат обычно преобразуют картинки?
Любой формат - это совокупность нулей и единиц. восемь таких штук - вот те и байт, 8 х 1024 - кибибайт (килобайт, кста, по новым правилам международным - это 1000 х 8 бит).
25. пользователь 11.10.24 21:25
Сообщение было скрыто модератором.
...
19. starik-2005 3090 11.10.24 14:06 Сейчас в теме
А чито, получитьТелоКакДвоичныеДанные() уже не работает? Или Вы просто не умеете послать ДД в теле? А для пдф/джипег - для этого параметры есть. Типа хттпс://сервер/сервис/отправитьпдф или хттпс://сервер/сервис/отправитьджипег...

Чета народ все усложняет и усложняет...
21. пользователь 11.10.24 21:18
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

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