|
Не отображается картинка в присоединенные файлы
arsik, Fish, DiMel_77, mralexshapovalov, ОбновляторОдинЭс, Мультук, Garykom, Волшебник, Михаил_, abfm, dmt, Prog_man, phabeZ, craxx, Хряк, d4rkmesa, maxab72, АгентБезопаснойНацио, butterbean, Дмитрий, alexis_nov, Vstur
| ☑ |
0
mralexshapovalov
05.06.25
✎
09:24
|
Ребят,всем привет! Пытаюсь реализовать программно добавление картинки в "СправочникПрисоединенные Файлы" ,файл создает но не открывает,можете подсказать в чем проблема? Может что-то добавить нужно?
СтрокаBase64 = ПолучениеСтрокивВBase64; // Замените на вашу строку в формате Base64
ЗаказПокупателя = Документы.ЗаказПокупателя.НайтиПоНомеру("НомерЗаказа"); // Замените на нужный номер заказа
НовыйФайл = Справочники.СправочникПрисоединенныеФайлы.СоздатьЭлемент();
НовыйФайл.ВладелецФайла = ЗаказПокупателя;
НовыйФайл.Наименование = "Картинка";
НовыйФайл.Расширение = "jpg";
НовыйФайл.Автор = Пользователи.ТекущийПользователь();
ДвоичныеДанныеФайла = Base64Значение(СтрокаBase64);
НовыйФайл.Хранилище = Новый ХранилищеЗначения(ДвоичныеДанныеФайла, Новый СжатиеДанных(9));
НовыйФайл.Записать();
|
|
1
Волшебник
05.06.25
✎
09:29
|
Может покажете реальный программный код?
|
|
2
mralexshapovalov
05.06.25
✎
09:33
|
(1) А в чем он не реальный? Что в нем не так?
|
|
3
Fish
гуру
05.06.25
✎
09:40
|
(2) Где данные самой картинки?
|
|
4
mralexshapovalov
05.06.25
✎
09:46
|
(3) Получается идет преобразование СтрокаBase64 в двоичные данные. Это есть картинка. В 1С она отображается,но засунуть в хранилище не получается.
|
|
5
Fish
гуру
05.06.25
✎
09:48
|
(4) А что у тебя в СтрокаBase64 ?
|
|
6
mralexshapovalov
05.06.25
✎
09:57
|
(5) Если весь алгоритм. У меня есть ComОбъект,который делает скриншот и передает в 1С качестве строки который кодирован в Base64. Потом методом Base64Значение,получаю уже двоичные данные.
|
|
7
arsik
гуру
05.06.25
✎
10:23
|
Может для начала записать двоичные данные в файл и проверить. Может этот файл и не открывается.
Ну или скинь сюда что внутри СтрокаBase64
|
|
8
mralexshapovalov
05.06.25
✎
11:10
|
(7) Я сейчас единственное заметил,что НовыйФайл.Хранилище имеет тип ХранилищеЗначения,но в регистр ХранилищеФайлов не попадает. Может в этом есть какая-то связь?
|
|
9
Волшебник
05.06.25
✎
11:11
|
(8) что за регистр ХранилищеФайлов?
|
|
10
Мультук
гуру
05.06.25
✎
11:14
|
(8)
Наверняка в вашей конфе есть БСП
А значит есть общие модули "РаботаСФайлами"
А значит есть функция
Функция ДобавитьФайл(<Всякие параметры>)
А это в свою очередь означает, что "всё уже написано за нас"
|
|
11
craxx
05.06.25
✎
11:19
|
(10) Наверняка в вашей конфе есть БСП
не факт, может какая-то самописка ручной работы 17 века.
|
|
12
mralexshapovalov
05.06.25
✎
11:28
|
Да,БСП. Только не понятно как можно добавить двоичный файл в данную функцию?
|
|
13
Мультук
гуру
05.06.25
✎
11:46
|
(12)
Чуть выше данной функции должна быть написана куча текста.
Эта функция по идее в конфе должна использоваться (примеры)
Имя (и версия) конфигурации слишком интимное, чтобы называть его по имени?
Или всё же самописка ?
|
|
14
mralexshapovalov
05.06.25
✎
11:50
|
(13) Спасибо тебе добрый человек!Все получилось!
|
|
15
DiMel_77
05.06.25
✎
13:03
|
(12) должно быть что-то типа такого:
СсылкаНаВладельца = Документы.ЗаказПокупателя.НайтиПоНомеру("НомерЗаказа"); // Ваш пример
ДвоичныеДанныеФайла = Base64Значение(СтрокаBase64);
АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанныеФайла, Новый УникальныйИдентификатор);
ПараметрыФайла = Новый Структура;
ПараметрыФайла.Вставить("Автор", Неопределено);
ПараметрыФайла.Вставить("ВремяИзмененияУниверсальное", Дата(0001,1,1));
ПараметрыФайла.Вставить("ВладелецФайлов", СсылкаНаВладельца);
ПараметрыФайла.Вставить("ИмяБезРасширения", "Картинка");
ПараметрыФайла.Вставить("РасширениеБезТочки", "jpg");
РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, АдресФайлаВоВременномХранилище);
УдалитьИзВременногоХранилища(АдресФайлаВоВременномХранилище);
|
|
16
mralexshapovalov
05.06.25
✎
11:55
|
(15) Еще раз спасибо большое! Примерно все так и у меня получилось!
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший