Поменять картинку при загрузке 1с
Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Реализовано в версии 8.3.13.1513.
Благодаря тому, что в основе всех прикладных решений 1С:Предприятия находится платформа, прикладные решения имеют однотипный интерфейс, они привычны для пользователей и выглядят узнаваемо. В то же время на крупных внедрениях такая узнаваемость может являться недостатком, если вместе с 1С:Предприятием заказчик использует сторонние программные продукты, выполненные в другой палитре или в определенном корпоративном стиле, принятом в компании.
Поэтому в версии 8.3.13 мы решили сделать несколько доработок, которые позволят вам подстроить внешний вид прикладного решения под эстетические требования заказчика, под тот стиль, который используется в большинстве его программных продуктов.
Такая возможность, безусловно, будет полезна вам при внедрении корпоративных типовых решений, потому что позволит учесть корпоративный стиль заказчика.
Также эта возможность будет полезна для нетиповых решений, тесно интегрированных со сторонними продуктами заказчика. Например, когда глобальная навигация реализована в стороннем приложении, а 1С:Предприятие должно запускаться в нужные моменты и сразу переходить на требуемую точку навигации. При этом очень желательно, чтобы запуск происходил без заставки и стартовых диалогов, а само 1С:Предприятие было бы похоже на то стороннее приложение, из которого оно запускается.
Основной стиль в управляемом приложении
Все изменения, о которых пойдёт речь, мы реализовали с помощью хорошо известных вам объектов конфигурации Стиль. Они существовали в прошлых версиях платформы, они использовались в обычном приложении. Но с появлением управляемого приложения и интерфейса Такси, необходимость в этих объектах, как в инструменте «раскрашивания» интерфейса исчезла. И сейчас мы возвращаем лишь некоторые их возможности.
Во-первых, мы вернули свойство конфигурации ОсновнойСтиль. То есть вы можете указать, какой из имеющихся стилей является основным для вашего прикладного решения.
Естественно, мы вернули и сами объекты конфигурации Стиль. Теперь вы можете видеть их в дереве конфигурации. Однако в управляемом приложении вам будет доступна настройка только пяти стилевых цветов, которые используются в интерфейсе Такси:
- Цвет навигации устанавливает цвет фона панели разделов;
- Цвет дополнительной навигации устанавливает цвет фона панели функций текущего раздела;
- Цвет активности применяется к следующим элементам интерфейса:
- рамка текущего элемента формы,
- фон текущего элемента меню,
- фон текущей строки и ячейки таблицы;
- текст заголовка группы,
- отметка флажка, переключателя и полосы регулирования,
- индикатор текущей формы в панели открытых.
Для облегчения вашей работы платформа берёт на себя некоторые дополнительные действия, связанные с выбранными вами цветами. Например, если для фона вы выбираете достаточно тёмный цвет, то платформа самостоятельно инвертирует цвет текста так, чтобы он хорошо читался на этом фоне. Кроме этого часть цветов платформа рассчитывает от стилевых (выбранных вами), например цвет рамки кнопок, цвет текущей строки неактивной таблицы и тому подобное.
Кроме непосредственного указания основного стиля в Конфигураторе, вы можете сделать это и с помощью встроенного языка. В контекст управляемого приложения мы вернули свойство глобального контекста ГлавныйСтиль. Устанавливать это свойство вам нужно в обработчике события УстановкаПараметровСеанса().
Основной стиль в мобильном клиенте
Аналогичные изменения мы выполнили и в мобильном клиенте. Однако из-за специфики мобильного интерфейса в нём используется меньшее количество стилевых цветов:
- Цвет активности применяется к следующим элементам интерфейса:
- фон заголовка формы,
- фон текущего элемента меню,
- фон текущей строки и ячейки таблицы,
- индикатор,
- иконки рабочего стола;
- текст заголовка выбранной страницы,
- отметка флажка, переключателя и полосы регулирования,
- фон кнопок;
- к полосе в поле ввода в режиме редактирования,
- к полоскам на барабане при выборе даты;
Цвет навигации, цвет дополнительной навигации и цвет важного в мобильном клиенте не используются.
Так же, как и в «обычных» клиентских приложениях, платформа автоматически адаптирует цвет текста под цвет фона (на светлом фоне черный цвет, на темном фоне белый текст). Кроме этого фон кнопок контекстного меню строки таблицы рассчитывается исходя из выбранного вами цвета активности.
Отключение заставки при запуске
Теперь мы добавили к ним ещё один параметр – DisableSplash. На корпоративных внедрениях этот параметр позволяет не показывать при запуске собственную заставку 1С:Предприятия, замена которой была согласована с фирмой 1С.
Расширение стилей и картинок
Возможность изменения стиля приложения мы вынесли и в расширения. То есть, применяя то или другое расширение, вы тоже можете менять стиль прикладного решения, не меняя саму конфигурацию.
В расширениях вы можете теперь, например, создавать собственные стили, переопределять основной стиль конфигурации, а также заимствовать и переопределять стили конфигурации.
Кроме этого в расширении вы можете переопределять свойства конфигурации, содержащие картинки. Это такие свойства, как:
- Картинка основного раздела;
- Логотип;
- Заставка.
При этом происходит полное замещение картинки, то есть используется только картинка из расширения. Если одно и то же свойство переопределяют сразу несколько расширений, то в результате будет использоваться картинка из расширения, применённого последним.
Брендирование расширений
Применительно к расширениям хочется сказать ещё об одной новой возможности. Она не связана непосредственно со стилем прикладного решения, но позволяет вам обозначить авторство своего расширения, и дать ссылки на подробную информацию, связанную с ним.
Непосредственно в расширение конфигурации мы добавили поля с информацией о поставщике и о самом расширении:
- Краткая информация;
- Подробная информация;
- Авторские права;
- Адрес информации о поставщике;
- Адрес информации о конфигурации.
Эти поля имеют то же назначение, что и одноимённые свойства конфигурации, но описывают расширение. Информация из этих полей отображается в окне О программе для каждого из установленных расширений. Например, так:
Мы надеемся, что новые возможности помогут вам осуществлять более качественные внедрения, и адаптировать внешний вид приложений к корпоративным стилям.
Чтобы в терминальной сессии не тормозило открытие 1с, убиваю все заставки вообще. Тормозит как раз попиксельное проявление заставки.
Для конкретной информационной базы существует возможность изменения центральной части заставки системы в режиме запуска "1С:Предприятие". Это может быть использовано для отражения в заставке особенностей конкретной конфигурации.
Замена заставки выполняется следующим образом: Необходимо создать файл формата BMP 256 цветов (некомпрессированный). Для этого можно воспользоваться, к примеру, Microsoft Paint, или Corel Photopaint, или Adobe Photoshop. Файл должен иметь установленную цветовую палитру. В комплект поставки входят файлы палитр для различных средств редактирования графических файлов. main.cpl - для Corel Photopaint, main.act - для Adobe Photoshop, main.pal - для Microsoft Paint. Размер заменяемой области и заготовку можно взять из файла Slice.bmp комплекта поставки Созданный файл следует поместить в каталог информационной базы под именем 1cv7Splh.dib.
Этот текст взят из стандартного файла read.me идущего в поставке программ. Кроме этого в нем есть множество других полезностей и вкусностей.
Главное создать картинку с нужной цветовой палитрой, она должна иметь размер как указанная выше заготовка, а так же не забыть положить ее в каталог информационной базы с указанным именем файла. Но заменяется только центральная часть картинки.
Для конкретной информационной базы существует возможность изменения центральной части заставки системы в режиме запуска "1С:Предприятие". Это может быть использовано для отражения в заставке особенностей конкретной конфигурации.
"Замена заставки выполняется следующим образом: Необходимо создать файл формата BMP 256 цветов (некомпрессированный). Для этого можно воспользоваться, к примеру, Microsoft Paint, или Corel Photopaint, или Adobe Photoshop. Файл должен иметь установленную цветовую палитру. В комплект поставки входят файлы палитр для различных средств редактирования графических файлов. main.cpl - для Corel Photopaint, main.act - для Adobe Photoshop, main.pal - для Microsoft Paint. Размер заменяемой области и заготовку можно взять из файла Slice.bmp комплекта поставки Созданный файл следует поместить в каталог информационной базы под именем 1cv7Splh.dib.
Этот текст взят из стандартного файла read.me идущего в поставке программ. Кроме этого в нем есть множество других полезностей и вкусностей.
Главное создать картинку с нужной цветовой палитрой, она должна иметь размер как указанная выше заготовка, а так же не забыть положить ее в каталог информационной базы с указанным именем файла. Но заменяется только центральная часть картинки."
не получается что-то так
(7) imbaZeratul, не верно сказали. Нужно сделать картинку в нужной палитре, потом в конфигураторе в свойствах конфигурации на вкладке "заставка" ее установить в качестве заставки и сохранить конфу. А просто в каталог базы положить - это не работает.
(11) Простая очистка оставляет заставку 1С. Даже если свою заставку туда положить, все равно сначала лезет это окно с их заставкой. По многу раз в день любоваться на это художество и тратить драгоценные минуты жизни на ожидание реально ломает.
8.3 - вообще неповоротливая тварь, а тут еще эта заставка 50-100 раз в день, когда активно перезапускаешься, ну ооочень достает.
Нет. Я имею 1crcrus.dll в котором "выкушена" вообще заставка.
Т.е. нет ничего. После запуска сразу окно с фамилией пользователя(12) интересный вариант. Для любой версии 8.3 подойдет?
И как из мобильного приложения ее выкусить, не подскажете?Нашёл в закромах инструкцию, сам не пробовал (самое главное в первых 2-х строках)
crcrus.dll\ZLIB_DATA\1189 - основной окно (размер 10х15 см примерно)
1crcrus.dll\ZLIB_DATA\1190 - картинка где надпись конфигуратор (3х15 см)
изымаешь эти потоки в каталогdeflate.exe -d 1190.raw 1190.bmp - распакуешь потом, получаешь bmp
deflate.exe -c D:\Phoenix\tmp\!\1190_3.bmp 1190_1.raw - компилишь поток получаешь raw
потом на raw при помощи ресторатора заменяешь поток
запускаешь 1С :)Для конфигураций имеющих свой дизайн важно иметь возможность сменить не только картинки разделов для созданных подсистем, но и картинку рабочего стола, но менять ее нет возможности. Сама 1С объясняет это тем что интерфейс любой конфигурации должен быть унифицирован: "Дело не в одной картинке, а в общей стилистике для любых конфигураций. Важно чтобы пользователи привыкали к общему стилю и одинаково воспринимали одинаковые элементы в разных конфигурациях - это ускорит и освоение конфигураций и повседневную работу пользователей с ними." Но все же можно попытаться ее сменить.
Далее включаем режим разработчика, в Internet Explorer 9 это делается клавишей F12 либо через меню Настроек.
Теперь надо найти элемент соответствующий картинке рабочего стола. Для этого включим возможность выделения мышью.
Выделим картинку рабочего стола.
Внизу приложения отобразится строка HTML разметки: ""e1cib/convertPicture?sysver=8.2.15.318&url=e1csys%2Fbackend%2Fdesktop.jpg&w=48&h=48" становится понятно, что картинку "desktop.jpg" из какого то системного хранилища "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.jpg". Я пробовал различные редакторы ресурсов, но видимо фирма 1с использует свой редактор. Если открыть этот файл в блокноте, то можно заметить, что файл состоит из двух частей, первая хранит названия ресурсов, а вторая ее данные.
Названия ресурсов перечислены без каких либо указаний на расположение, значит надо искать последовательно в этом файле. Следовательно надо подсчитать порядковый номер нашей картинки и найти по порядковому номеру ее данные из второй секции файла. Действий будет меньше если мы будем считать количество файлов с расширением "png", а во второй секции будем искать файл который содержит "‰PNG". Лучше использовать HEX-редактор. Я буду использовать WinHEX.
Итак найдем порядковый номер искомого файла среди файлов формата PNG.
Если долго жать F3 и считать количество нажатий то мы придем к записи "desktop.jpg". Для версии 8.2.16.352 он оказался 11-м.
Теперь найдем Начало данных этого файла. Для этого 11 раз нажмем F3 при установленном поиске "PNG". Не забудьте установить галочку "Match case", она дает указание, что поиск идет с учетом регистра символов.
Нажав F3 одиннадцать раз мы перешли на начало файла. Но как найти окончание файла? Для этого достаточно глянуть любой другой файл формата "PNG". Он заканчивается строкой "END®B`‚", мало того в файле "backend_root.res" есть разделитель между ресурсами.
Ну так давайте выделим этот диапазон двоичных данных и сохраним в отдельный файл.
Мышкой протянем от начала файла.
И до следующего файла
Если вы выделяете файл так же как и я, вручную (а можно сохранить смещение начала и конца файла и выделить по адресам), то не пропустите разделитель, а то затрете другой файл.
После просмотра сохраненной картинки, было понятно что хранятся они не последовательно. На 11й позиции была другая картинка. Пришлось скопировать другие блоки, что бы найти нашу картинку. Она оказалась на 18 месте.
Советую перед все эти действия выполнять на копиях файлов.Теперь нам нужен графический редактор. Я буду использовать Paint. Меняем рисунок на свое предпочтение. Например так:
И теперь осталось поместить новый рисунок в файл ресурсов. Недостаток в том, что измененный файл должен быть не больше по размеру чем исходный. Возможно это не так, но файл большего размера у меня поместить не удалось.
Потому измененный файл надо подогнать под размер исходного файла. Откроем ИсходныйФайл.jpg и посмотрим размер:
Его размер 3145 байт.Откроем ИзмененныйФайл.jpg и определим его размер.
Размер измененного файла - 2643 байта. Разница в размерах 502 байта.Дополним измененный файл нулями до нужного размера:
Нажмем ОК и сохраним файл.
Откроем его в стандартными средствами, что бы убедится, что измененная картинка после дополнения не повредилась.Теперь в WinHEX выделяем весь "ИзмененныйФайл.jpg" (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" может конфликтовать с вашим.
Пишите свои комментарии, замечания и предложения. Буду рад, если эта статья вам поможет.
Здравствуйте! Помогите, пожалуйста.
Я сделала на кнопке в 1С картинку и при нажатии на эту кнопку мне нужно, что бы эта картинка на этой кнопке поменялась на другую картинку, а если нажать еще раз появилась прошлая картинка. Что бы они так менялись при каждом нажатии друг на друга
Можно ли так сделать в 1С? Помогите, заранее Спасибо!При нажатии на кнопку поменять картинку из элемента ImageList и поставить туда стандартную картинку
Всем привет! Как сделать кнопку и поставить пару картинок в ImageList я знаю. Осталось только.Как подгрузить картинку в PictureBox при нажатии на кнопку
Доброго времени суток. Появилась проблема. Как можно подгрузить картинку в PictureBox при.Как изменить картинку при нажатии на кнопку в Image
Как изменить картинку при нажатии на кнопку в ImageКак поменять фигуру при нажатии на кнопку?
Программа на подобие мини Paint, как сделать так, чтобы при нажатии на кнопку ,,квадрат,, рисование.Как у кнопки (JButton) поменять иконку при нажатии на эту кнопку?
подскажите пожалуйста, как у кнопки (JButton) поменять иконку при нажатии на эту кнопку? Заранее.Именно реквизит формы, он не сохраняется и при загрузке формы всегда будет равен 0
Нажали кнопку, счетчик стал 1, 1%2 не равно 0, картинка поменялась.
В том же сеансе жмем кнопку, счетчик = 2, А 2%2 =0, старая картинка загрузилась.
И т.д. В течении жизни формы: Четное число счетчика - стараякартинка, нечетное - новаяНу или через пометку кнопки.Если нажата, то есть Пометка истина, то 1 картинка.Иначе другая.
Или вместо счётчика булеву переменную.
При открытии формы поставить например ложь и при каждом нажатии проверять эту булеву переменную.Получить картинку при нажатии на кнопку
Здравствуйте, окажите помощь по такому вот вопросу. Есть некая директива с картинками и есть база.При нажатии на эту кнопку загружать картинку
Снова картинка. народ подскажите пожалуйста как при нажатии на эту кнопку загружать картинку.При нажатии на кнопку меняет картинку на другую
При нажатии на кнопку меняет картинку на другую.Замена кнопки на картинку при нажатии на кнопку
Здравствуйте, можете пожалуйста написать как при нажатии на кнопку эта кнопка меняется на картинку?При нажатии на кнопку изменить картинку на ней
как при нажатии на кнопку изменить ее картинку??При нажатии на кнопку менять картинку в Image из ImageList
У меня есть 3 кнопки, 10 картинок в ImageList и картинка в Image. По идеи при разном нажатии на.В этой статье научимся добавлять в табличный документ картинки. Вы узнаете, как вставить конкретную картинку в табличный документ, а также как подгрузить картинку из общих картинок конфигурации и из хранилища значений.
Вставить картинку в табличный документ 1С
Научимся вставлять картинки в макет табличного документа 1С. Для того, чтобы вставить картинку в табличный документ необходимо воспользоваться командой «Картинка…» тогда, когда табличный документ открыть и на нем установлен фокус. Команда «Картинка…» находится по следующему пути в конфигураторе 1С: «Главное меню – Таблица — Рисунки».
Откроется окно «Выбор картинки».
В этом окне есть несколько вариантов выбора. В закладке «Из библиотеки» мы можем выбрать или общую картинку конфигурации, или стандартную картинку платформы 1С.
На закладке «Из файла» мы можем загрузить нужную картинку из файловой системы.
Вставим картинку из файла. Для этого на закладке «Из файла» следует нажать на кнопку «Выбрать файл».
Найти нужный файл в открывшемся окне «Выбор картинки».
После выбора рисунка, вы можете сделать белый цвет прозрачным. Для этого следует нажать на кнопку «Установить прозрачный цвет», после этого ваш курсор станет «карандашом», и этим курсором необходимо кликнуть по белому цвету картинки.
В результате, белый цвет уйдет.
После нажатия на кнопку «Ок» окна «Выбор картинки», картинка отобразится в табличном документе.
Заметьте, что вокруг вставленной картинки имеется рамка. Для того, чтобы убрать эту рамку, откроем палитру свойств картинки.
И в свойстве Линия установим значение «Нет линии».
В результате, рамки во круг картинки не станет.
Добавим макету область, создадим форму, команду формы, в которой будем выводить табличный документ на просмотр.
И посмотрим, как выведется наш табличный документ с картинкой.
Вывести картинку в табличный документ 1С
Приведенный выше способ отображение картинок статичен: мы вручную при создании макета выбираем ту или иную картинку, которая будет всегда в этом макете отображаться. Но, очень часто возникают ситуации, когда нужно картинку подгружать или из библиотеки картинок, или из хранилища значений.
В этой статье Вы узнаете, как загружать и хранить картинки в хранилище значений:
В учебной конфигурации у справочника Контрагенты был создан реквизит Логотип, тип которого Хранилище значения.
В этом реквизите хранятся картинки.
Теперь, сделаем табличный документ, на котором будет выводиться информация об контрагенте, а также картинка, которая привязана к этому контрагенту.
Есть несколько способов вывода картинки на табличный документ, разберем один из них.
Создадим макет табличного документа, в котором создадим область и зададим несколько параметров, в которые будем выводить информацию о контрагенте.
Теперь, в макет добавим пустую картинку. Нам следует выполнить команду «Рисунок…» по уже знакомому пути «Главное меню – Таблица — Рисунки», но не выбирать ни какую картинку ни где, а просто нажать на кнопку «Ок».
Будет добавлена пуста картинка (скорее всего, она будет маленького размера).
Откроем палитру свойств этой картинки, изменим имя, уберем рамку и установим авторазмер картинки.
Всё! Макет готов, теперь создадим на управляемой форме реквизит Контрагент, поле ввода контрагента, а также команду для вывода табличного документа.
Создадим обработчик команды и функцию, в которой будем выводить в табличный документ данные контрагента.
Мы получили данные контрагента через запрос. Обращаю ваше внимание на поле «Контрагенты.Логотип КАК Логотип», так мы получаем хранилище значения. Пока все вывели табличный документ без рисунка. Реализуем возможность вывода рисунка. Для этого, вставим после вывода параметров области (ИНН,КПП, название) следующий код.
В этом коде, из хранилища значений, которое в поле Логотип выборки, получим двоичный файл (//1). Потом создадим объект Картинка конструктором на основе двоичных данных (//2), вторым параметром Истина мы установили прозрачность картинки. И присвоим свойству Картинка рисунку области табличного документа, который мы добавили пустым, созданную картинку (//3).
По сути, мы программным способом «загрузили» картинку в свойство Картинка созданного нами пустого рисунка.
Если мы сейчас попробуем показать этот табличный документ, то на нем отобразится картинка.
Рассмотрим ещё, как программным способом вывести общую картинку. Например, в моей конфигурации имеется общая картинка под названием «Общий логотип».
Выведем эту картинку в уже созданный ранее табличный документ.
Для этого, также как и в первый раз, добавим на табличный документ пустую картинку, которую назовем ОбщийЛоготип, и у которой уберем обводку.
Нам осталось вывести эту картинку при формировании табличного документа. Делается это гораздо проще, чем с картинкой из хранилища значений: просто присваиваем свойству Картинка, вновь добавленному рисунку табличного документа, общую картинку из библиотеки картинок.
После этого, общая картинка будет выведена в табличный документ.
Другие статьи про табличные документы в 1С:
Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.Читайте также: