Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Интересный баг платформы 8.3 при работе с картинками

Интересный баг платформы 8.3 при работе с картинками
Я
   k23
 
04.10.18 - 10:34
Вот такой код:
Результат = Новый Картинка(“c:\test.xlsx”, Ложь);
Если Результат.Формат() = ФорматКартинки.НеизвестныйФормат Тогда
Сообщить("НеизвестныйФормат");
Иначе
Сообщить("Ok");
КонецЕсли;

Естественно, вместо указанного имени файла нужно указать что-то существующее. Именно файл формата excel - xlsx. С xls всё нормально.
Из xlsx создаётся кривая картинка. На платформе 8.2 всё нормально.
Вместо xlsx можно использовать zip. Тот же эффект. Вероятно, все типы файлов, сжатые по zip-алгоритму, будут так себя проявлять.
 
 
   Aleksey
 
1 - 04.10.18 - 10:55
в чем баг? В чем кривость картинки. Ничего не понятно
   Cool_Profi
 
2 - 04.10.18 - 11:14
(1) Баг в том (по мнению ТС) что картинка не отдаёт НеизвестныйФормат, а вылетает в исключение
   vis_tmp
 
3 - 04.10.18 - 11:25
"Из xlsx создаётся кривая картинка" - а это штатное поведение было?
   Aleksey
 
4 - 04.10.18 - 11:42
(3) Кривая это как? Цвета не те, или что? Или вместо подписи xls стоит подпись doc? Я просто не знаю что должно быть и что отдает
   k23
 
5 - 04.10.18 - 11:56
(3) штатное поведение - создавать объект картинка, к свойствам и методам которого можно обратиться без выпадания в исключение.
(4) что вы курите по утрам? какие такие цвета в картинке из файла екселя :-)
   spiller26
 
6 - 04.10.18 - 12:08
xlsx - это архив
   spiller26
 
7 - 04.10.18 - 12:10
(0) Возьми любой файл xlsx, поменяй расширение на zip, распакуй и увидишь чудо.
   НЕА123
 
8 - 04.10.18 - 12:12
(4)
>Цвета не те, или что?

из (5) следует, что монохромная картинка
   Cyberhawk
 
9 - 04.10.18 - 12:14
Это карма за неумение внятно изъясняться у тебя такая
   Йохохо
 
10 - 04.10.18 - 12:28
(9) надо было "зацените пацаны сувал в картинку всякую шнягу и уронил с1!, 8.3 сырая гуся в чат"
 
 Рекламное место пустует
   Cyberhawk
 
11 - 04.10.18 - 12:39
(10) А что за "гуся в чат"? ))
   k23
 
12 - 04.10.18 - 13:34
(6)(7) вы сами то читали (0) ?
   spiller26
 
13 - 04.10.18 - 13:37
(12) естественно.
   Tatitutu
 
14 - 04.10.18 - 13:38
(7) зачем так напрягаться ?
зажал SHIFT и ПКМ - открыть с помощью - выбрать любой архитор
(главное не назначить действие по умолчанию;)

(12) смысл твоего послания...
что если подсунуть какую то хрень (в виде XLSX)
то 1С не сообщит, что это ФорматКартинки.НеизвестныйФормат
а сделает вид что все ок ?
   spiller26
 
15 - 04.10.18 - 13:42
(15) когда то давно рассказывали байку про пользователя, который пытался ввести "30 февраля".
   bolobol
 
16 - 04.10.18 - 14:02
(15) Законодательно?
   k23
 
17 - 04.10.18 - 17:55
(14) > а сделает вид что все ок ?
Да, именно так. 1с не будет никакой вид делать, метод Формат() вернёт то или иное значение.

(15) а по вашему какие файлы можно использовать для программного создания объекта Картинка? Вы как определяете можно из них создать картинку или нельзя? на глаз?
   sechs
 
18 - 04.10.18 - 18:02
Это не баг, а фича. Платформа рассматривает zip как набор картинок с разным разрешением для разных экранов. Ну и подпихиваешь мусор - получаешь мусор.

Загляни в любую современную типовую.
   k23
 
19 - 04.10.18 - 21:31
(18) да, действительно, если подсунуть архив с картинками, то Формат() возвращает неопределено и не валится в исключение.Назвать это фитчей не рискнул бы.
Можно поподробней о современных типовых, где используются картинки в архивах?
У картинки есть метод Преобразовать(), в котором что-то есть про некий манифест вариантов картинки, если картинка представлена архивом.
В тех современных типовых, что у меня, нет подобных вариантов использования.
Может есть ссылка на описание сего секретного зафитченного механизма?
   sechs
 
20 - 04.10.18 - 21:47
Дык эта... какбэ не с 8.3.3 уже.

Открываешь, например книжку/страничку:
Разработка и администрирование/Методическая поддержка для разработчиков и администраторов 1С:Предприятия 8/Перевод конфигураций на платформу "1С:Предприятие 8.3" без режима совместимости с версией 8.2/Перевести картинки в наборы картинок

А там внезапно:

Для возможности масштабирования картинок управляемой формы в интерфейсе Такси на платформе "1С:Предприятие 8.3" версии 8.3.10 и выше рекомендуется все картинки в конфигурации перевести в наборы картинок. Для этого необходимо выполнить следующие действия:
Сделать несколько вариантов картинки в размерах для масштаба в 85, 100, 125, 150, 175, 200, 300 и 400 %%, так же вариант для приложения в интерфейсе 8.2 и 8.2 (обычное приложение), если предусмотрены эти режимы работы.
Поместить картинку в zip-архив.
Включить в архив файл manifest.xml с описанием соответствия размеров и типов экрана.
Загрузить zip-архив в конфигурацию как картинку.
Пример manifest.xml для набора из картинок:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Picture>
    <PictureVariant name="85.png" screenDensity="bldpi" glyphWidth="14" glyphHeight="14"/>
    <PictureVariant name="100.png" screenDensity="ldpi" glyphWidth="16" glyphHeight="16"/>
    <PictureVariant name="125.png" screenDensity="aldpi" glyphWidth="20" glyphHeight="20"/>
    <PictureVariant name="150.png" screenDensity="mdpi" glyphWidth="24" glyphHeight="24"/>
    <PictureVariant name="175.png" screenDensity="amdpi" glyphWidth="28" glyphHeight="28"/>
    <PictureVariant name="200.png" screenDensity="hdpi" glyphWidth="32" glyphHeight="32"/>
    <PictureVariant name="300.png" screenDensity="xdpi" glyphWidth="48" glyphHeight="48"/>
    <PictureVariant name="400.png" screenDensity="udpi" glyphWidth="64" glyphHeight="64"/>
    <PictureVariant name="Picture.png" interfaceVariant="version8_2" screenDensity="ldpi" glyphWidth="16" glyphHeight="16"/>
    <PictureVariant name="Picture.png" interfaceVariant="version8_2_OrdinaryApp" screenDensity="ldpi" glyphWidth="16" glyphHeight="16"/>
</Picture>

Открываешь, например ERP2, а там внезапно ОбщаяКартинка.ДлительнаяОперация48 в формате zip

Открываешь, например СП, а там внезапно Картинка.НаборВариантов Тип Булево, Истина - картинка содержит несколько вариантов изображений.
   sechs
 
21 - 04.10.18 - 21:53
   sechs
 
22 - 04.10.18 - 21:58
Точнее, начиная 8.3.3 начали впиливать в вариант могильного клиента, а к 8.3.10 дотянули до всех вариантов...
   k23
 
23 - 05.10.18 - 09:13
(21)(22) сильный ответ! спасиб. покопаюсь.
Прогер, кодирующий разбор картинки в 1с явно накосячил. Где-то у него код падает не до конца инициализируя объект.
   НЕА123
 
24 - 05.10.18 - 09:38
тут про ZIP файлы

Интересный баг платформы 8.3 при работе с картинками

похоже, что файлы (0) тоже такие.
   НЕА123
 
25 - 05.10.18 - 09:40
(24) сторно.
не в эту ветку.
   НЕА123
 
26 - 05.10.18 - 09:42


Список тем форума
Рекламное место пустует  Рекламное место пустует
2 + 2 = 3.9999999999999999999999999999999...
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует