Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Очень популярная тема (более 25 ответов) Для чего нужен поток Picture->Gallery в Ert? (число прочтений - 11459 )
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Для чего нужен поток Picture->Gallery в Ert?
08. Сентября 2008 :: 09:39
Печать  
История вопроса:

У меня есть обработка, в которой на форме использовано несколько картинок (22 штуки на 28кб в сумме). В то же время объем файла обработки составлял где-то 400кб. Оказалось, что из этого объема 350кб занимает поток Picture->Gallery. Разобрав ert-шник GComp-ом, стало видно что Gallery - это некий BMP-шник, фактически дублирующий информацию о картинках, сводя их в одну мозаику. Провел эксперимент - открыл из разобранной обработки файл Gallery.bmp Paint-ом, уменьшил размер до 1х1 пикселей и сохранил обратно. Размер Gallery сократился до 189 байт. После сборки GComp-ом обратно, размер ert-шника сократился в результате до 50кб. Все работает, все открывается и в режиме предприятия и в режиме конфигуратора, картинки видны, все сохраняется (и притом Gallery уже не растет), глюков не замечено.

Вопрос:

Нахрена вообще в обработке нужен этот Gallery? И не сделать ли в GComp автоочистку этого потока по аналогии с тем, как он очищает Main MetaData Stream в тех же отчетах/обработках?
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #1 - 09. Сентября 2008 :: 13:22
Печать  
По следам своего вопроса наклепал простенькую обработку, которая уменьшает размер ert-шников, в диалогах которых использованы картинки, за счет "кастрации" потока Gallery. Может кому пригодится...

http://infostart.ru/profile/1782/projects/2512/
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #2 - 09. Сентября 2008 :: 19:50
Печать  
maljaev писал(а) 08. Сентября 2008 :: 09:39:
Вопрос:

Нахрена вообще в обработке нужен этот Gallery?

Это просто отвязка используемых картинок от конкретной конфигурации.
Ну, т.е. благодаря ей, ert отображает нужные картинки независимо от конфигурации запуска.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #3 - 09. Сентября 2008 :: 20:30
Печать  
kms писал(а) 09. Сентября 2008 :: 19:50:
Это просто отвязка используемых картинок от конкретной конфигурации.
Ну, т.е. благодаря ей, ert отображает нужные картинки независимо от конфигурации запуска.

Миш, картинки отдельно тоже лежат. А в гэллери они все собраны в кучу.
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #4 - 10. Сентября 2008 :: 03:56
Печать  
maljaev писал(а) 08. Сентября 2008 :: 09:39:
Все работает, все открывается и в режиме предприятия и в режиме конфигуратора, картинки видны, все сохраняется

Новую картинку можно добавить?
  
Наверх
www  
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #5 - 10. Сентября 2008 :: 06:01
Печать  
kms писал(а) 09. Сентября 2008 :: 19:50:
maljaev писал(а) 08. Сентября 2008 :: 09:39:
Вопрос:

Нахрена вообще в обработке нужен этот Gallery?

Это просто отвязка используемых картинок от конкретной конфигурации.
Ну, т.е. благодаря ей, ert отображает нужные картинки независимо от конфигурации запуска.


Тоже так думал. Оказывается нифига подобного. Обрезаю Gallery - открывается со всеми картинками под любой конфой.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #6 - 10. Сентября 2008 :: 06:10
Печать  
maljaev писал(а) 10. Сентября 2008 :: 06:01:
Тоже так думал. Оказывается нифига подобного. Обрезаю Gallery - открывается со всеми картинками под любой конфой.

А, вот оно как.

Тогда и правда загадка, зачем там галерея.
Может быть, она используется при вставке ert в конфигурацию?
« Последняя редакция: 10. Сентября 2008 :: 07:43 - kms »  

De quelle planète es-tu?
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #7 - 10. Сентября 2008 :: 06:47
Печать  
Не испольпользуется. Тоже проверял. При вставке упакованной обработки в конфигурацию галлерея конфигурации заполняется картинками обработки, несмотря на то что Gallery в обработке практически нулевой. Пробовал даже, по совету Абадонны, проделать все манипуляции над обработкой (в режиме предприятия и конфигуратора) в абсолютно пустой конфе - тоже все работает. Нонсенс однако, но факт.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #8 - 10. Сентября 2008 :: 07:39
Печать  
А погляди, что у меня получилось (чуть подубил прайс из типовой ТиС).
Смотрю на две кнопки в правом нижнем углу.

Предприятие:
1. Видны ли картинки в предприятии? - видны (+)

Конфигуратор - пустая конфигурация:
2. Видны ли картинки в конфигураторе? - видны (+)
3. Работает ли "Картинка/Изменить картинку" - не работает (-)
4. Корректно ли работает "Вставить внешний отчет/обработку"? - нет, некорректно (-)

П.4 - некорректность в том, что в галлерею картинок добавляется не три, а больше картинок, остальные - пустые.
Лечится перезаписью ert, при этом галлерея изменяет (по крайней мере) размер.

Видимо, чтобы избавиться от п.4 надо чуть по-другому формировать пустую галерею (х.з. каким образом).
Т.е. 189b не везде подойдет.

А вот п.3 без галереи, видимо, вообще не работает.
Или здесь я что-то не улавливаю?

А вообще, интересно; я в свое время думал над этим вопросом, но из-за п.3/п.4 это дело забросил.
  

price950.ert ( 52 KB | Загрузки )

De quelle planète es-tu?
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #9 - 10. Сентября 2008 :: 08:03
Печать  
п.3 - сказать что совсем не работает неправильно. то что при нажатии закладки "картинка" открывается пустое окно (без картинки) - факт (но в то же время при изменении способа растяжения картинка не слетает), а вот в режиме "изменить картинку" в чем некорректность? Высвечивается текущая галлерея конфигурации, разумеется без картинок обработки (если ее в конфу не залили), вроде так и должно быть (по крайней мере с неупакованными то же самое).

п.4 - просто моя ошибка, поток gallery содержит информацию о количестве картинок (и какую-то еще служебную хрень) - в сумме 131 байт, и саму галлерею BMP-шник (58 байт). Я взял поток gallery из той обработки, в которой у меня 22 картинки - вот тебе 22 картинки и вставляется Улыбка Поправлю обязательно - либо сделаю gallery с информацией только об одной картинке (надо пробовать, как 1С отреагирует), либо просто буду менять gallery при сжатии под реальное количество картинок в обработке.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #10 - 10. Сентября 2008 :: 08:12
Печать  
maljaev писал(а) 10. Сентября 2008 :: 08:03:
п.3 - сказать что совсем не работает неправильно.
...
вроде так и должно быть (по крайней мере с неупакованными то же самое).

А, и правда на обычных ert то же самое в пустой конфе.
Каюсь, верил в лучшее Улыбка

Цитата:
п.4 - просто моя ошибка, поток gallery содержит информацию о количестве картинок (и какую-то еще служебную хрень) - в сумме 131 байт, и саму галлерею BMP-шник (58 байт). Я взял поток gallery из той обработки, в которой у меня 22 картинки - вот тебе 22 картинки и вставляется Улыбка Поправлю обязательно - либо сделаю gallery с информацией только об одной картинке (надо пробовать, как 1С отреагирует), либо просто буду менять gallery при сжатии под реальное количество картинок в обработке.

Ага, что-то в этом роде.
В пустой конфе при перезаписи этого ert gallery становится 113b, т.е., видать, и служебная часть - переменного размера.
Ну, вообще, если п.4 удастся забороть, будет, видимо, совсем зашибись. Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #11 - 10. Сентября 2008 :: 08:20
Печать  
Воооот! Было 189 байт (22 картинки), стало 113 байт (3 картинки). Разница 76 байт, 19 картинок. 76/19= ровно 4 байта на картинку - видимо че-то он хранит, возможно идентификаторы потоков -картинок.
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #12 - 11. Сентября 2008 :: 09:38
Печать  
Разобрался в структуре Gallery.

Сначала Gallery.head (28 байт)

49 4C 01 01 [01] 00 0A 00 08 00 50 00 50 00 FF FF FF FF 10 00 FF FF FF FF FF FF FF FF

Меняется 5-й байт - количество картинок в шестнадцатеричном виде

Потом Gallery.bmp (58 байт)

42 4D 36 00 00 00 00 00 00 00 36 00 00 00 28 00 00 00 01 00 00 00 01 00 00 00 01 00 18 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF 00

И наконец Gallery.tail (переменная длина)

Сначала заголовок

01 00 00 FF [01] 00 00 00

Меняется 5-й байт - количество картинок в шестнадцатеричном виде

Далее на каждую картинку

[01] 00 00 1F

Меняется 1-й байт - идентификатор картинки в шестнадцатеричном виде (два последних символа в "__Picture.1f00001b" - как пример)

Далее подвал

[01] 00 00 0F 02 7B 7D

Меняется 1-й байт - количество картинок в шестнадцатеричном виде


Соответственно переделал свою обработку-упаковщик. Качать там же. А можно здесь:
« Последняя редакция: 11. Сентября 2008 :: 12:25 - maljaev »  

pack_ert_001.zip ( 41 KB | Загрузки )
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #13 - 11. Сентября 2008 :: 10:03
Печать  
В принципе, можете это учесть в следующем релизе G-Comp.
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Для чего нужен поток Picture->Gallery в Ert?
Ответ #14 - 11. Сентября 2008 :: 11:24
Печать  
Попробовал, размер ert не изменился ни на байт.
Так и должно быть?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать