1С:Предприятие 8.2. Управляемая Форма. Меняем иконку рабочего стола.

28.09.12

Разработка - Работа с интерфейсом

Для конфигураций имеющих свой дизайн важно иметь возможность сменить не только картинки разделов для созданных подсистем, но и картинку рабочего стола, но менять ее нет возможности. Сама 1С объясняет это тем что интерфейс любой конфигурации должен быть унифицирован: "Дело не в одной картинке, а в общей стилистике для любых конфигураций. Важно чтобы пользователи привыкали к общему стилю и одинаково воспринимали одинаковые элементы в разных конфигурациях - это ускорит и освоение конфигураций и повседневную работу пользователей с ними." Но все же можно попытаться ее сменить.

Скачать файлы

Наименование Файл Версия Размер
Результат
.zip 138,68Kb
29
.zip 138,68Kb 29 Скачать
Многим разработчикам 1С наверно понравился новый подход к интерфейсу в 1С:Предприятие 8.2. Теперь не надо надо мучиться с привязками элементов, не надо рассчитывать координаты элементов, не надо думать что отображать для одного пользователя, что для другого. 1С стала "умнее". Но есть вещи которые нельзя изменить, например, расположение основных элементов интерфейса (панель разделов, панель навигации и др.). Для конфигураций имеющих свой дизайн важно иметь возможность сменить не только картинки разделов для созданных подсистем, но и картинку рабочего стола, но менять ее нет возможности. Сама 1С объясняет это тем что интерфейс любой конфигурации должен быть унифицирован: "Дело не в одной картинке, а в общей стилистике для любых конфигураций. Важно чтобы пользователи привыкали к общему стилю и одинаково воспринимали одинаковые элементы в разных конфигурациях - это ускорит и освоение конфигураций и повседневную работу пользователей с ними." (http://partners.v8.1c.ru/forum/thread.jsp?id=714007)


Но все же можно попытаться ее сменить.
Ход мыслей простой - картинка где то должна храниться как файл, как поле БД, как часть файла, как ссылка. Надо только ее найти. Самый простой способ ее найти это запустить любую конфигурацию 1С в веб клиенте. Например УТ 11. Сделать это можно со страницы http://v8.1c.ru/trade/demo/index.htm или непосредственно http://demo-ma.1c.ru/trade.

 



Далее включаем режим разработчика, в Internet Explorer 9 это делается клавишей F12 либо через меню Настроек.

 

 


Теперь надо найти элемент соответствующий картинке рабочего стола. Для этого включим возможность выделения мышью.

 

 


Выделим картинку рабочего стола.

 

 


Внизу приложения отобразится строка HTML разметки: ""

e1cib/convertPicture?sysver=8.2.15.318&url=e1csys%2Fbackend%2Fdesktop.png&w=48&h=48" становится понятно, что картинку  "desktop.png" из какого то системного хранилища  "e1csys/backend" передают в функцию конвертации картинки до размеров 48*48.

Предполагаю, что эта картинка хранится в файле из папки установки 1С. Мы отметаем предположение, что эта картинка хранится в информационной базе, т.к. при каждом обновлении платформы пришлось бы обновлять и конфигурацию базы. Отметаем предположение, что картинка хранится в сети, ведь 1с настроена на работу не только в интернете. Мало того картинка  относится к каждой отдельной версии платформы, так что она должна лежать в папке отдельной версии.

Просмотрев множество файлов из "C:\Program Files\1cv82\8.2.16.352", мое внимание привлекли файлы "backend.dll", "backend_ru.res" и "backend_root.res".
В файле "backend_root.re"s нашлось упоминание о "desktop.png". Я пробовал различные редакторы ресурсов, но видимо фирма 1с использует свой редактор. Если открыть этот файл в блокноте, то можно заметить, что файл состоит из двух частей, первая хранит названия ресурсов, а вторая ее данные.

 

 


Названия ресурсов перечислены без каких либо указаний на расположение, значит надо искать последовательно в этом файле. Следовательно надо подсчитать порядковый номер нашей картинки и найти по порядковому номеру ее данные из второй секции файла. Действий будет меньше если мы будем считать количество файлов с расширением "png", а во второй секции будем искать файл который содержит "‰PNG". Лучше использовать HEX-редактор. Я буду использовать WinHEX.
Итак найдем порядковый номер искомого файла среди файлов формата PNG.

 

 


Если долго жать F3 и считать количество нажатий то мы придем к записи "desktop.png". Для версии 8.2.16.352 он оказался 11-м.
Теперь найдем Начало данных этого файла. Для этого 11 раз нажмем F3 при установленном поиске "PNG". Не забудьте установить галочку "Match case", она дает указание, что поиск идет с учетом регистра символов.

 

 


Нажав F3 одиннадцать раз мы перешли на начало файла. Но как найти окончание файла? Для этого достаточно глянуть любой другой файл формата "PNG". Он заканчивается строкой "END®B`‚", мало того в файле  "backend_root.res" есть разделитель между ресурсами.
Ну так давайте выделим этот диапазон двоичных данных и сохраним в отдельный файл.
Мышкой протянем от начала файла.

 

 


И до следующего файла

 

 


Если вы выделяете файл так же как и я, вручную (а можно сохранить смещение начала и конца файла и выделить по адресам), то не пропустите разделитель, а то затрете другой файл.

Теперь скопируем выделенный блок в новый файл (Cntr+Shift+N). Так мы сможем проверить что нашли тот самый файл иконки рабочего стола и там же будем его править.

 

 

 


После просмотра сохраненной картинки, было понятно что хранятся они не последовательно. На 11й позиции была другая картинка. Пришлось скопировать другие блоки, что бы найти нашу картинку. Она оказалась на 18 месте.

 

 


Советую перед все эти действия выполнять на копиях файлов.

Теперь нам нужен графический редактор. Я буду использовать Paint. Меняем рисунок на свое предпочтение. Например так:

 

 

И теперь осталось поместить новый рисунок в файл ресурсов. Недостаток в том, что измененный файл должен быть не больше по размеру чем исходный. Возможно это не так, но файл большего размера у меня поместить не удалось.
Потому измененный файл надо подогнать под размер исходного файла. Откроем ИсходныйФайл.png и посмотрим размер:

 


Его размер 3145 байт.

Откроем ИзмененныйФайл.png и определим его размер.

 

 


Размер измененного файла - 2643 байта. Разница в размерах 502 байта.

Дополним измененный файл нулями до нужного размера:

 

 


Нажмем ОК и сохраним файл.

 

 


Откроем его в стандартными средствами, что бы убедится, что измененная картинка после дополнения не повредилась.

Теперь в WinHEX выделяем весь "ИзмененныйФайл.png" (Cntr+A) и копируем (Cntr+C). переходим к файлу "backend_root.res". Надо заменить блок с изображением рабочего стола на скопированную в буфер обмена  измененную пиктограмму рабочего стола. Перейдите на начало блока и вызовите команду Write(Cntr+B). Эта команда вставить содержимое буфера с заменой, а не с добавлением.

 

 


Проверьте что размер файла  "backend_root.res" не изменился и сохраните.

Можно положить файл обратно в папку  "C:\Program Files\1cv82\8.2.16.352" и запускать 1С.

 

 

Ну теперь интерфейс точно стал унифицированным! Картинка заменилась только для толстого клиента, наверняка были найдены не все файлы где хранится картинка рабочего стола. Если у вас получится сделать изменение картинки для веб клиента или тонкого клиента, то поделитесь как вам это удалось. Помимо этого есть другие недостатки, например при обновлении платформы новый файл  "backend_root.res" может конфликтовать с вашим.

Результаты работы можно скачать тут http://yadi.sk/d/n329aa0TgpfK

Пишите свои комментарии, замечания и предложения. Буду рад, если эта статья вам поможет. 
Оригинал статьи http://codenotes-1c.blogspot.com/2012/09/1-8.html
 

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61792    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54394    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    16695    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    10732    750    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

2 стартмани

10.04.2023    9606    151    acces969    31    

118

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3663    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12077    1    5    

10
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. IamAlexy 344 28.09.12 23:12 Сейчас в теме
более бессмысленного занятия придумать невозможно
11. webester 26 30.09.12 09:23 Сейчас в теме
Не понятен следующий момент: автор говорит, что нужна возможность изменять картинку у конфигураций со своим дизайном и патчит платформу. Как одно связано со вторым непонятно. Если у тебя тиражное решение, не будешь же ты поставлять для него отдельно патченную платформу, если ты пропатчишь платформу клиенту, у него картинка изменится во всех конфигурациях. Столько натуги результата почти нет, не говоря уже о том что это нарушение лицензионного соглашения. Согласен с (1)
(5)
При сильном желании могут и докопаться.

Что значит докопаться? Это прямое нарушение лицензионного соглашения п4 пп2
Вносить какие либо изменения в код программного продукта, содержимое баз данных и других наборов данных в которых система хранит информацию за исключением тех изменений которые вносятся штатными средствами входящими в состав программного продукта и описанными в сопроводительной документации

то есть описанное здесь, можно приравнять к установке эмулятора
Прикрепленные файлы:
12. Abadonna 3958 30.09.12 09:41 Сейчас в теме
(11) Лично я плюс ставил за умение добиться поставленной цели. А само решение считаю, по меньшей мере, нерациональным, потому как оно не будет работать везде.
А вот (3), имхо, идеальное: ничего не патчит, картинки какие хочешь, размеры кнопок какие хочешь, рядов-колонок сколько хочешь, под любого пользователя настраивается "на ходу" с моментальным результатом.
13. webester 26 30.09.12 09:59 Сейчас в теме
(12)Мне кажется это немного не то. Это не подсистемы с автоматическим заполнением по ролям. И область рабочего стола, которую пользователь может заполнить как ему удобно здесь не используется, я правильно понял?
14. Abadonna 3958 30.09.12 10:06 Сейчас в теме
(13) 1. Это тонкий клиент, потому как БП 3.0 только на нем существует. И только на УФ
2. Это не автоматическое заполнение по подсистемам (на мой взляд - излишнее), это справочник Рабочие Столы вот такого вида.
P.S. Кнопки внедряются прямо в главное окно, никаких "прокладок" и т.п.
Прикрепленные файлы:
2. bforce 481 29.09.12 00:31 Сейчас в теме
Автор изучает то, что ему интересно. Увлечения у каждого свои и иногда бывает полезно отвлечься от рутины и заняться чем-нибудь необычным.

Да, можно спорить о том, насколько это полезно. Но, во-первых, не каждый способен задаться целью и довести начатое до конца. Во-вторых, не у каждого присутствует жажда познания и соответствующий багаж знаний, чтобы решать нестандартные задачи. В-третьи, а почему нет?! Я от многих слышал, что эта картинка им не по душе.

Если вам не интересна тема, то проходите мимо. Незачем демотивировать здоровый интерес к окружающему миру.
SeiOkami; singapur; for_sale; FlagmanGK; alwiz3; s1ad; shatt; EarlyBird; LaNaite; sCHTASS; KovalOleg; +11 Ответить
3. Abadonna 3958 29.09.12 03:55 Сейчас в теме
Как говорил Ленин: "Мы пойдем другим путем". Да здравствует стиль планшетников! ;) А за интерес к окружающему миру - плюс;)
P.S. Это чуток доделанная БП 3.0
Прикрепленные файлы:
sergey_s_; wunderland; ghostaz; EarlyBird; Hany; anton.fly7; +6 Ответить
25. wunderland 201 13.11.12 18:22 Сейчас в теме
(3) это просто форма с кнопками(картинками) а под ними команды?
4. andrewks 1368 29.09.12 08:14 Сейчас в теме
вызывает большой вопрос законность такого метода, получается патчинг, причём не БД, а длл-ки
5. Abadonna 3958 29.09.12 09:23 Сейчас в теме
(4)
получается патчинг, причём не БД, а длл-ки

При сильном желании могут и докопаться.
6. mr zafod 23 29.09.12 11:25 Сейчас в теме
В web-приложение сидящее за ISS можно аттачить свой CSS файл, а там пишите все что хотите.
7. fishca 1254 29.09.12 15:01 Сейчас в теме
Спасибо за труды, давно руки чесались поменять эту дурацкую иконку.
8. KillHunter 7 29.09.12 18:07 Сейчас в теме
да наплохая вариация!
9. serg_gres 153 29.09.12 21:56 Сейчас в теме
За работу и упорство плюс.
10. Alien_RS_Forever 432 29.09.12 22:53 Сейчас в теме
(0) не совсем понятна цель, но + за искания, старания и результат заслужил
15. alexware 01.10.12 05:24 Сейчас в теме
Без сомнений ставлю плюс. Работа проделана большая. Кому-нибудь пригодится. Хочу отметить отличное изложение. Читается как детектив!
16. comol 5051 01.10.12 09:09 Сейчас в теме
Извращенец (в хорошем смысле этого слова) :)
17. Raminus 01.10.12 09:41 Сейчас в теме
Интересная статейка :)
18. ixbit 02.10.12 07:26 Сейчас в теме
надо попробовать интересно автору +
19. AlexanderKai 02.10.12 17:46 Сейчас в теме
Огроменное спасибо. А никто не знает как в управляемом приложении вывести на рабочий стол аватар пользователя? Что-то я поискал и не нашел решения.
20. Evil Beaver 8107 03.10.12 09:06 Сейчас в теме
Интересное исследование, но, к сожалению, без прикладных перпектив. Даже если у себя вы пропатчите платформу, после обновления ресурс может оказаться уже на другом месте. Что, после каждого обновления платформы будете каждый раз патчить backend?
21. ghostaz 143 03.10.12 10:39 Сейчас в теме
Совершенно верно, при каждом обновлении платформы надо повторять эти действия заново. Это я описал в недостатках. Просто заказчик ставил такое тех задание и мне пришлось искать способы решения. Метод почти не годится к использованию, и сам я его не использую, т.к. моя конфигурация работает в основном через веб-клиент.
22. zfilin 2337 04.10.12 13:30 Сейчас в теме
Бесполезно, но за любопытство плюс.
23. asved.ru 36 04.10.12 14:39 Сейчас в теме
Бессмысленно и, я бы сказал, беспощадно. Корректировка ресурсов платформы как метод изменения интерфейса пригодна только для индивидуальных реализаций. Я, помнится, так в радминовский клиент пароль запиливал :)
24. dm.zay 29.10.12 20:04 Сейчас в теме
Смысл проделанной автором работы - есть.
Хотел для своей разработки поменять иконку рабочего стола - после прочтения статьи отказываюсь от этой затеи.
26. sergey_s_ 28.11.12 11:37 Сейчас в теме
27. Famza 84 21.02.13 11:50 Сейчас в теме
Не мог пройти мимо. То что иконка рабочего стола не айс - дело вкуса, но всегда хочется сделать по-своему, так что автор - молодец. Но комменты повеселили.
28. AleksSF 222 05.03.14 15:16 Сейчас в теме
А попробуйте в свойствах конфигурации в разделе представление -
Картинка основного раздела.
Там кстати есть и картинки логотипа и заставки.
Прежде чем копать глубоко, посмотрите не спеша на поверхности
29. ghostaz 143 05.03.14 15:51 Сейчас в теме
(28) AleksSF, важное замечание: вы говорите про 1С: Предприятие 8.3, а я про 8.2
30. KillHunter 7 05.03.14 16:10 Сейчас в теме
(29) ghostaz,
важное замечание: вы говорите про 1С: Предприятие 8.3, а я про 8.2
А почему бы не перейти на платформу 8.3 ?
31. ghostaz 143 05.03.14 16:22 Сейчас в теме
(30) KillHunter, на момент написания статьи этой возможности не было даже в 8.3
32. to_swim 07.10.14 11:40 Сейчас в теме
Такой вопросик.

Может кто подскажет.
1с когда запускаешь в вэб приложении через браузер. (например 1с82 УПП)
там грузится рабочий стол.
Как его можно изменить?
его нет не в интерфейсе и нет в обработках.
спасибо заранее
35. Nicholas 887 03.07.15 13:45 Сейчас в теме
(32) to_swim, правой кнопкой мыши по основному разделу конфигурации, далее "открыть рабочую область начальной страницы".
33. nghtmn_cmth 8 04.12.14 17:08 Сейчас в теме
Интересно как конфигурация БП 3.0 меняет картинки, ведь файлы конфы теже
Nicholas; +1 Ответить
34. Nicholas 887 03.07.15 13:43 Сейчас в теме
(33) nghtmn_cmth,

Интересно как конфигурация БП 3.0 меняет картинки, ведь файлы конфы теже


Мне вот тоже интересно. Пишу свою подсистему в комплексной автоматизации. Картинка рабочего стола получается именно такая как в статье. А хочется, чтобы она была маленькая, как, например, в ЗУП 3.0 (которая, кстати, развернута на том же компьютере и использует тот же релиз 1С:Предприятия).
36. Hamsik 13 17.02.16 20:57 Сейчас в теме
37. vik2006 137 21.09.19 15:07 Сейчас в теме
Зачем так мучиться та? В свойства конфигурации есть строка "Картинка Основного раздела". Вот туда помещаешь какую хошь картинку и будет тебе и всем щастье.
38. ghostaz 143 24.09.19 21:30 Сейчас в теме
(37) В 2012 такой возможности не было.
serg_gres; +1 Ответить
39. vik2006 137 25.09.19 02:32 Сейчас в теме
Оставьте свое сообщение