Но все же можно попытаться ее сменить.
Но все же можно попытаться ее сменить.
Ход мыслей простой — картинка где то должна храниться как файл, как поле БД, как часть файла, как ссылка. Надо только ее найти. Самый простой способ ее найти это запустить любую конфигурацию 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 Files1cv828.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 Files1cv828.2.16.352» и запускать 1С.
Результаты работы можно скачать тут http://yadi.sk/d/n329aa0TgpfK
Пишите свои комментарии, замечания и предложения. Буду рад, если эта статья вам поможет.
Автор изучает то, что ему интересно. Увлечения у каждого свои и иногда бывает полезно отвлечься от рутины и заняться чем-нибудь необычным.
Да, можно спорить о том, насколько это полезно. Но, во-первых, не каждый способен задаться целью и довести начатое до конца. Во-вторых, не у каждого присутствует жажда познания и соответствующий багаж знаний, чтобы решать нестандартные задачи. В-третьи, а почему нет?! Я от многих слышал, что эта картинка им не по душе.
Если вам не интересна тема, то проходите мимо. Незачем демотивировать здоровый интерес к окружающему миру.
Как говорил Ленин: «Мы пойдем другим путем». Да здравствует стиль планшетников! 😉 А за интерес к окружающему миру — плюс;)
P.S. Это чуток доделанная БП 3.0
вызывает большой вопрос законность такого метода, получается патчинг, причём не БД, а длл-ки
(4)
При сильном желании могут и докопаться.
В web-приложение сидящее за ISS можно аттачить свой CSS файл, а там пишите все что хотите.
Спасибо за труды, давно руки чесались поменять эту дурацкую иконку.
да наплохая вариация!
За работу и упорство плюс.
(0) не совсем понятна цель, но + за искания, старания и результат заслужил
Не понятен следующий момент: автор говорит, что нужна возможность изменять картинку у конфигураций со своим дизайном и патчит платформу. Как одно связано со вторым непонятно. Если у тебя тиражное решение, не будешь же ты поставлять для него отдельно патченную платформу, если ты пропатчишь платформу клиенту, у него картинка изменится во всех конфигурациях. Столько натуги результата почти нет, не говоря уже о том что это нарушение лицензионного соглашения. Согласен с (1)
(5)
Что значит докопаться? Это прямое нарушение лицензионного соглашения п4 пп2
то есть описанное здесь, можно приравнять к установке эмулятора
(11) Лично я плюс ставил за умение добиться поставленной цели. А само решение считаю, по меньшей мере, нерациональным, потому как оно не будет работать везде.
А вот (3), имхо, идеальное: ничего не патчит, картинки какие хочешь, размеры кнопок какие хочешь, рядов-колонок сколько хочешь, под любого пользователя настраивается «на ходу» с моментальным результатом.
(12)Мне кажется это немного не то. Это не подсистемы с автоматическим заполнением по ролям. И область рабочего стола, которую пользователь может заполнить как ему удобно здесь не используется, я правильно понял?
(13) 1. Это тонкий клиент, потому как БП 3.0 только на нем существует. И только на УФ
2. Это не автоматическое заполнение по подсистемам (на мой взляд — излишнее), это справочник Рабочие Столы вот такого вида.
P.S. Кнопки внедряются прямо в главное окно, никаких «прокладок» и т.п.
Без сомнений ставлю плюс. Работа проделана большая. Кому-нибудь пригодится. Хочу отметить отличное изложение. Читается как детектив!
Извращенец (в хорошем смысле этого слова) 🙂
Интересная статейка 🙂
надо попробовать интересно автору +
Огроменное спасибо. А никто не знает как в управляемом приложении вывести на рабочий стол аватар пользователя? Что-то я поискал и не нашел решения.
Интересное исследование, но, к сожалению, без прикладных перпектив. Даже если у себя вы пропатчите платформу, после обновления ресурс может оказаться уже на другом месте. Что, после каждого обновления платформы будете каждый раз патчить backend?
Совершенно верно, при каждом обновлении платформы надо повторять эти действия заново. Это я описал в недостатках. Просто заказчик ставил такое тех задание и мне пришлось искать способы решения. Метод почти не годится к использованию, и сам я его не использую, т.к. моя конфигурация работает в основном через веб-клиент.
Бесполезно, но за любопытство плюс.
Бессмысленно и, я бы сказал, беспощадно. Корректировка ресурсов платформы как метод изменения интерфейса пригодна только для индивидуальных реализаций. Я, помнится, так в радминовский клиент пароль запиливал 🙂
Смысл проделанной автором работы — есть.
Хотел для своей разработки поменять иконку рабочего стола — после прочтения статьи отказываюсь от этой затеи.
(3) это просто форма с кнопками(картинками) а под ними команды?
Афтару респект
Не мог пройти мимо. То что иконка рабочего стола не айс — дело вкуса, но всегда хочется сделать по-своему, так что автор — молодец. Но комменты повеселили.
А попробуйте в свойствах конфигурации в разделе представление —
Картинка основного раздела.
Там кстати есть и картинки логотипа и заставки.
Прежде чем копать глубоко, посмотрите не спеша на поверхности
(28) AleksSF, важное замечание: вы говорите про 1С: Предприятие 8.3, а я про 8.2
(29) ghostaz,
важное замечание: вы говорите про 1С: Предприятие 8.3, а я про 8.2
А почему бы не перейти на платформу 8.3 ?
(30) KillHunter, на момент написания статьи этой возможности не было даже в 8.3
Такой вопросик.
Может кто подскажет.
1с когда запускаешь в вэб приложении через браузер. (например 1с82 УПП)
там грузится рабочий стол.
Как его можно изменить?
его нет не в интерфейсе и нет в обработках.
спасибо заранее
Интересно как конфигурация БП 3.0 меняет картинки, ведь файлы конфы теже
(33) nghtmn_cmth,
Мне вот тоже интересно. Пишу свою подсистему в комплексной автоматизации. Картинка рабочего стола получается именно такая как в статье. А хочется, чтобы она была маленькая, как, например, в ЗУП 3.0 (которая, кстати, развернута на том же компьютере и использует тот же релиз 1С:Предприятия).
(32) to_swim, правой кнопкой мыши по основному разделу конфигурации, далее «открыть рабочую область начальной страницы».
В 8.3 всё проще конечно)http://s018.radikal.ru/i502/1602/83/c89fd2469ad1.png
Зачем так мучиться та? В свойства конфигурации есть строка «Картинка Основного раздела». Вот туда помещаешь какую хошь картинку и будет тебе и всем щастье.
(37) В 2012 такой возможности не было.
Да не вопрос.