Форум Кладовочки АЛьФ`а

Обсуждение проектов => FormEx => Тема начата: ADirks от 09 апреля 2024, 12:22

Название: Делёжка опытом
Отправлено: ADirks от 09 апреля 2024, 12:22
Иной раз проходишь мимо давно существующих вещей, пока кто-нибудь пальцем не ткнёт.
Вот, попробую поделиться маленьким опытом, может кому пригодится.

У объекта РасширениеФормы есть свойство Иконка - если его прописать, то эта иконка отображается в панели окон, получается симпатишно.

Например так:
//в ГМ
Процедура ПослеСозданияФормы(Конт) Экспорт
   Попытка
      фф = Конт.Форма;
   Исключение
      Возврат;
   КонецПопытки;
   
   _оФорма = СоздатьОбъект("РасширениеФормы");
   _оФорма.УстановитьФорму(Конт.Форма);

   Тип = _оФорма.ПолныйТипОбъекта();

   Если Тип = "ВнешнийОтчет" Тогда
      //ИмяФайла.ert
      Имя = "";
      Конт.РасположениеФайла(, Имя);
      сзЧасти = СтрокуВСписок(Имя, ".", 1);
      Имя = сзЧасти.ПолучитьЗначение(1);
   Иначе
      сзТип = СтрокуВСписок(Тип, ".");
      Если сзТип.РазмерСписка() < 2 Тогда
         Возврат;
      КонецЕсли;
      
      Тип1 = сзТип.ПолучитьЗначение(1);
      Имя = "";
      Если (Тип1 = "Обработка") ИЛИ (Тип1 = "Отчет") Тогда
         Имя = сзТип.ПолучитьЗначение(2);
      КонецЕсли;
   КонецЕсли;

   
   Путь = КаталогИБ()+"Images\Icons\"+Имя+".ico";
   Если ФС.СуществуетФайл(Путь) <> 1 Тогда
      ИмяИконки = сзИконкиФорм.Получить(Имя);
      Путь = КаталогИБ()+"Images\Icons\"+ИмяИконки+".ico";
   КонецЕсли;
   
   Если ФС.СуществуетФайл(Путь) = 1 Тогда
      _оФорма.Иконка = Путь;
   КонецЕсли;
КонецПроцедуры

Название: Re: Делёжка опытом
Отправлено: Пиит от 09 апреля 2024, 12:52
Поддерживаю и предлагаю создать на форуме цельный раздел для такого благого дела.
Название: Re: Делёжка опытом
Отправлено: alyuev от 09 апреля 2024, 13:58
Хм... А у меня почти не получилось. Из трех внешних обработок иконка показалась только для одной. Иконки выдирал из Imagecol.bmp.
Название: Re: Делёжка опытом
Отправлено: alyuev от 09 апреля 2024, 14:07
Иконки рабочие. Проверил на той обработке, где показывает. Менял на другие иконки - показывает. Интересно, что может мешать?
Название: Re: Делёжка опытом
Отправлено: ADirks от 09 апреля 2024, 14:25
Цитата: alyuev от 09 апреля 2024, 13:58Хм... А у меня почти не получилось. Из трех внешних обработок иконка показалась только для одной. Иконки выдирал из Imagecol.bmp.
Предполагаю, с именами файлов что-то не то. В моём примере файл с иконкой должен быть тупо <ИмяВнешнейОбработки>.ico . Или с правами в винде облом :)
Кстати, иконки показываются любые, не только 16x16.
Название: Re: Делёжка опытом
Отправлено: alyuev от 09 апреля 2024, 14:37
Пишет, что файл есть. Проходит строку присвоения - но по факту - иконка стандартная.
Название: Re: Делёжка опытом
Отправлено: alyuev от 09 апреля 2024, 14:39
А только для отчетов можно заменить? Или другие объекты тоже (Журналы, Справочники...)?
Название: Re: Делёжка опытом
Отправлено: АЛьФ от 09 апреля 2024, 15:04
Если указан путь к файлу иконки, то грузится с помощью функции WinAPI LoadImage. Соответственно, должна картинка укладываться в требования этой функции.
Можно попробовать предварительно загрузить файл в объект Картинка и его уже присвоить в качестве иконки.
Иконка устанавливается для любых форм, не только для отчетов.
Название: Re: Делёжка опытом
Отправлено: Пиит от 09 апреля 2024, 15:11

Чтобы отключить скроллинг в табличном документе,
достаточно задать большее число <ФиксСтрок> или/и <ФиксСтолбцов> в Опциях, например 100.
Кто знал о этом?
Название: Re: Делёжка опытом
Отправлено: АЛьФ от 09 апреля 2024, 15:27
Цитата: item от 09 апреля 2024, 15:11Чтобы отключить скроллинг в табличном документе,
достаточно задать большее число <ФиксСтрок> или/и <ФиксСтолбцов> в Опциях, например 100.
Кто знал о этом?
Разве это не сломает навигацию по таблице?
Название: Re: Делёжка опытом
Отправлено: Пиит от 09 апреля 2024, 15:34
Цитата: АЛьФ от 09 апреля 2024, 15:27Разве это не сломает навигацию по таблице?

Вот, гляньте, я немного не понял про навигацию.
Да, понял, сломает, но иногда она, навигация, и не нужна.
Название: Re: Делёжка опытом
Отправлено: Пиит от 09 апреля 2024, 17:27
Кстати, может кому-то пригодится вышеупомянутый на фото гаджет, эдакий навигатор по истории периодических реквизитов элемента, честно показывает что, где и когда поменялось.
Внедрение минимальное: "Обработка.Экскурсовод", функция глОткрытьЭкскурс(Контекст), иконка "Экскурсовод" в галереее и плоди кнопки на формах.
Обработка, функция и иконки формы/кнопки в архиве.
Название: Re: Делёжка опытом
Отправлено: Пиит от 11 апреля 2024, 01:28
Есть такой символ - НеразрывныйПробел - код 160, помогает творить.

1. Использую его как заменитель РазделителяСтрок, чтобы
хранить небольшие тексты в строках ограниченной длины.
Для ввода такой строки предназначен специальный диалог,
по завершении ввода заменяю РазделителиСтроки на НеразрывныеПробелы.
А функция глПолнНаименование() преобразовывает строку обратно в текст.
Благодаря этой хитрости ПолнНаименование и ему подобные получают бонус в печатных формах,
могут использоваться в Запросе, не тормозят формы списков и читаются в текстах на форме.

2. Маска элемента диалога имеет известнные проблемы с пробелом.
И здесь нам также поможет НеразрывныйПробел, сотворить, например ДатуВремя.

Название: Re: Делёжка опытом
Отправлено: Злоп от 14 апреля 2024, 16:41
ОТКЛЮЧИТЬ ВЫЗОВ ПОМОЩИ ПО F1
Для обработки нажатия кнопки F1 используем Ф-штатные, например, ПриНажатииКнопкиКлавиатуры().
Чтобы отключить показ "помощи", выполняемый системой, дополнительно в ГМ ставим

Процедура ПриПолученииКомандыГлавнымОкном(Команда, НулевойПараметр, ФСО)

Если Команда = 57670
Тогда // нажата F1
ФСО = 0;
Возврат;
КонецЕсли;

КонецПроцедуры // ПриПолученииКомандыГлавнымОкном()
Название: Re: Делёжка опытом
Отправлено: Злоп от 24 апреля 2024, 23:53
Предлагаю здесь НЕ ОБСУЖДАТЬ приводимые здесь фичи/опыт, обсуждать в отдельных ветках!
Название: Re: Делёжка опытом
Отправлено: Злоп от 24 апреля 2024, 23:55
МОДИФИЦИРУЕМ ИНТЕРФЕЙС ТЗ НА ФОРМЕ
АтрибутФормы = РФорма.ПолучитьАтрибут("ТЗФорма");
АтрибутФормы.ИзменитьСтиль(2097152); //без вертикального скроллбара
АтрибутФормы.ИзменитьСтиль(8388608); //без двойной рамки
Название: Re: Делёжка опытом
Отправлено: Злоп от 13 октября 2024, 00:15
@АЛьФ
Предлагаю закрепить ветку вверху тем раздела
А также перенести ветку в гоблинарий 77
Название: Re: Делёжка опытом
Отправлено: Злоп от 13 октября 2024, 00:25
ПОЛУЧИТЬ ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ ЧЕГО-ТО...
Есть Документ.ПриходнаяНакладная.Товар,
где Товар - нетипизированный справочник.
.
Чорный запрос с выражением
|Код = Документ.ПриходнаяНакладная.Товар.Код;

Возвращает интересную штуку - какой-то внутренний код (id?)
(https://wdfiles.ru/plugins/imageviewer/site/thumb.php?s=2Pg4z)

Название: Re: Делёжка опытом
Отправлено: Злоп от 04 ноября 2024, 14:55
@АЛьФ, предлагаю ветку еще раз закрепить вверху форума.
А то не  видно, и "дубли" рождаются...
Название: Re: Делёжка опытом
Отправлено: Злоп от 09 ноября 2024, 21:36
РОДСТВЕННАЯ ВЕТКА
ветка по 77 (https://forum.dorex.pro/index.php?topic=191.0)