Иной раз проходишь мимо давно существующих вещей, пока кто-нибудь пальцем не ткнёт.
Вот, попробую поделиться маленьким опытом, может кому пригодится.
У объекта РасширениеФормы есть свойство Иконка - если его прописать, то эта иконка отображается в панели окон, получается симпатишно.
Например так:
//в ГМ
Процедура ПослеСозданияФормы(Конт) Экспорт
Попытка
фф = Конт.Форма;
Исключение
Возврат;
КонецПопытки;
_оФорма = СоздатьОбъект("РасширениеФормы");
_оФорма.УстановитьФорму(Конт.Форма);
Тип = _оФорма.ПолныйТипОбъекта();
Если Тип = "ВнешнийОтчет" Тогда
//ИмяФайла.ert
Имя = "";
Конт.РасположениеФайла(, Имя);
сзЧасти = СтрокуВСписок(Имя, ".", 1);
Имя = сзЧасти.ПолучитьЗначение(1);
Иначе
сзТип = СтрокуВСписок(Тип, ".");
Если сзТип.РазмерСписка() < 2 Тогда
Возврат;
КонецЕсли;
Тип1 = сзТип.ПолучитьЗначение(1);
Имя = "";
Если (Тип1 = "Обработка") ИЛИ (Тип1 = "Отчет") Тогда
Имя = сзТип.ПолучитьЗначение(2);
КонецЕсли;
КонецЕсли;
Путь = КаталогИБ()+"Images\Icons\"+Имя+".ico";
Если ФС.СуществуетФайл(Путь) <> 1 Тогда
ИмяИконки = сзИконкиФорм.Получить(Имя);
Путь = КаталогИБ()+"Images\Icons\"+ИмяИконки+".ico";
КонецЕсли;
Если ФС.СуществуетФайл(Путь) = 1 Тогда
_оФорма.Иконка = Путь;
КонецЕсли;
КонецПроцедуры
Поддерживаю и предлагаю создать на форуме цельный раздел для такого благого дела.
Хм... А у меня почти не получилось. Из трех внешних обработок иконка показалась только для одной. Иконки выдирал из Imagecol.bmp.
Иконки рабочие. Проверил на той обработке, где показывает. Менял на другие иконки - показывает. Интересно, что может мешать?
Цитата: alyuev от 09 апреля 2024, 13:58Хм... А у меня почти не получилось. Из трех внешних обработок иконка показалась только для одной. Иконки выдирал из Imagecol.bmp.
Предполагаю, с именами файлов что-то не то. В моём примере файл с иконкой должен быть тупо <ИмяВнешнейОбработки>.ico . Или с правами в винде облом :)
Кстати, иконки показываются любые, не только 16x16.
Пишет, что файл есть. Проходит строку присвоения - но по факту - иконка стандартная.
А только для отчетов можно заменить? Или другие объекты тоже (Журналы, Справочники...)?
Если указан путь к файлу иконки, то грузится с помощью функции WinAPI LoadImage. Соответственно, должна картинка укладываться в требования этой функции.
Можно попробовать предварительно загрузить файл в объект Картинка и его уже присвоить в качестве иконки.
Иконка устанавливается для любых форм, не только для отчетов.
Чтобы отключить скроллинг в табличном документе,
достаточно задать большее число <ФиксСтрок> или/и <ФиксСтолбцов> в Опциях, например 100.
Кто знал о этом?
Цитата: item от 09 апреля 2024, 15:11Чтобы отключить скроллинг в табличном документе,
достаточно задать большее число <ФиксСтрок> или/и <ФиксСтолбцов> в Опциях, например 100.
Кто знал о этом?
Разве это не сломает навигацию по таблице?
Цитата: АЛьФ от 09 апреля 2024, 15:27Разве это не сломает навигацию по таблице?
Вот, гляньте, я немного не понял про навигацию.Да, понял, сломает, но иногда она, навигация, и не нужна.
Кстати, может кому-то пригодится вышеупомянутый на фото гаджет, эдакий навигатор по истории периодических реквизитов элемента, честно показывает что, где и когда поменялось.
Внедрение минимальное: "Обработка.Экскурсовод", функция глОткрытьЭкскурс(Контекст), иконка "Экскурсовод" в галереее и плоди кнопки на формах.
Обработка, функция и иконки формы/кнопки в архиве.
Есть такой символ - НеразрывныйПробел - код 160, помогает творить.
1. Использую его как заменитель РазделителяСтрок, чтобы
хранить небольшие тексты в строках ограниченной длины.
Для ввода такой строки предназначен специальный диалог,
по завершении ввода заменяю РазделителиСтроки на НеразрывныеПробелы.
А функция глПолнНаименование() преобразовывает строку обратно в текст.
Благодаря этой хитрости ПолнНаименование и ему подобные получают бонус в печатных формах,
могут использоваться в Запросе, не тормозят формы списков и читаются в текстах на форме.
2. Маска элемента диалога имеет известнные проблемы с пробелом.
И здесь нам также поможет НеразрывныйПробел, сотворить, например ДатуВремя.
ОТКЛЮЧИТЬ ВЫЗОВ ПОМОЩИ ПО F1
Для обработки нажатия кнопки F1 используем Ф-штатные, например, ПриНажатииКнопкиКлавиатуры().
Чтобы отключить показ "помощи", выполняемый системой, дополнительно в ГМ ставим
Процедура ПриПолученииКомандыГлавнымОкном(Команда, НулевойПараметр, ФСО)
Если Команда = 57670
Тогда // нажата F1
ФСО = 0;
Возврат;
КонецЕсли;
КонецПроцедуры // ПриПолученииКомандыГлавнымОкном()
Предлагаю здесь НЕ ОБСУЖДАТЬ приводимые здесь фичи/опыт, обсуждать в отдельных ветках!
МОДИФИЦИРУЕМ ИНТЕРФЕЙС ТЗ НА ФОРМЕ
АтрибутФормы = РФорма.ПолучитьАтрибут("ТЗФорма");
АтрибутФормы.ИзменитьСтиль(2097152); //без вертикального скроллбара
АтрибутФормы.ИзменитьСтиль(8388608); //без двойной рамки
@АЛьФ Предлагаю закрепить ветку вверху тем раздела
А также перенести ветку в гоблинарий 77
ПОЛУЧИТЬ ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ ЧЕГО-ТО...
Есть Документ.ПриходнаяНакладная.Товар,
где Товар - нетипизированный справочник.
.
Чорный запрос с выражением
|Код = Документ.ПриходнаяНакладная.Товар.Код;
Возвращает интересную штуку - какой-то внутренний код (id?)
(https://wdfiles.ru/plugins/imageviewer/site/thumb.php?s=2Pg4z)
@АЛьФ, предлагаю ветку еще раз закрепить вверху форума.
А то не видно, и "дубли" рождаются...
РОДСТВЕННАЯ ВЕТКА
ветка по 77 (https://forum.dorex.pro/index.php?topic=191.0)