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

Обсуждение проектов => FormEx => Тема начата: АЛьФ от 21 февраля 2024, 15:40

Название: Выполненные хотелки
Отправлено: АЛьФ от 21 февраля 2024, 15:40
(http://www.dorex.pro/images/ok.jpg)

Цитата: MWW_Ruza от 19 февраля 2024, 22:39Общались по мылу, но, там ничего по делу и не было, просто просьба обратить внимание на тему на Мисте: Перехватить и подменить системные сообщения штатных инструментов справочника... Возможно? (https://forum.mista.ru/topic.php?id=885526)

Цитата: Arbuz от 20 февраля 2024, 16:58Дык, в том то и проблема, что не "перехватываются команды тулбаров форм документов/справочников/журналов". Из общих панелей, из меню Действия, Горячие клавиши — перехватываются, а из панели инструментов формы те же действия — нет.
Название: Выполненные хотелки
Отправлено: АЛьФ от 21 февраля 2024, 15:43
(http://www.dorex.pro/images/ok.jpg)

Цитата: Грузчик от 20 февраля 2024, 16:37А насколько трудно будет реализовать нечто вроде:
глСервис.ВключитьРаскраскуТаблиц(0);
глСервис.ИспользоватьПланРаскраски(1);
// для таблиц без колонки "FormEx_ПланРаскраски" включим хоть курсор во всю строку
глСервис.ПланРаскраскиПоУмолчанию("(BRUSH_S[255])");
Название: Re: Выполненные хотелки
Отправлено: АЛьФ от 21 февраля 2024, 15:48
(http://www.dorex.pro/images/ok.jpg)

Цитата: АЛьФ от 21 февраля 2024, 14:47
Цитата: Djelf от 21 февраля 2024, 14:25Так, ладно, раз хотелки так хотелки...
Процедура ПриЧтенииНастройки(<?>,) вызывается перед чтением Настройки, т.е. это по факту ПередЧтениемНастройки.
Иногда могут потребоваться некоторые изменения в сохраненных Настройках, но Настройки еще не загружены. Т.е. хочется событие ПослеЧтенияНастройки.
Вариантов костылей для исправления достаточно много, но это дополнительные переменные формы, не так чтобы сложно, но это утомительно и забывается как это работает по факту.
Зачем нужно?
Например баг с загрузкой сохраняемой тз на форму, если еще помните, то это "тз не загружается если фокус на тз"?
Мерд, старый винт унес код костылей с собой, но он не совсем умер, есть шанс восстановить...

В момент вызова этой процедуры настройки уже загружены из файла и готовы для загрузки в форму.
Можно передавать в процедуру список значений с загружаемыми значениями с возможностью его изменить.
Название: Re: Выполненные хотелки
Отправлено: АЛьФ от 21 февраля 2024, 15:57
(http://www.dorex.pro/images/ok.jpg)

Загрузка внешних обработок и печатных форм (http://forum.dorex.pro/index.php?topic=6.0)
Название: Re: Выполненные хотелки
Отправлено: АЛьФ от 26 февраля 2024, 12:29
(http://www.dorex.pro/images/ok.jpg)

Цитата: sau от 25 февраля 2024, 20:16Использовать "ПоложениеКолонкиТаблицы" с МногострочнойЧастью
Название: Re: Выполненные хотелки
Отправлено: АЛьФ от 26 февраля 2024, 15:09
(http://www.dorex.pro/images/ok.jpg)

Цитата: Djelf от 26 февраля 2024, 15:03АтрибутФормы = РасширениеФормы.ПолучитьАтрибут(Идентификатор);
Выдает исключение, если АтрибутаФормы нет, через исключение можно, но может вот так стоит дополнить?
АтрибутФормы = РасширениеФормы.ПолучитьАтрибут(Идентификатор,ВыводитьИсключение);
Где ВыводитьИсключение это не обязательное поле, по-умолчанию = 1 (для совместности), при 0 исключение не выдает (для удобства).
При отсутствии АтрибутаФормы видимо должно возвращать ПустоеЗначение().

Попутно изменен метод АтрибутФормы::УстановитьАтрибут(). Теперь метод принимает три параметра, третий - ВыводитьИсключение. И возвращает значение 1 - атрибут получен, 0 - ошибка получения атрибута.
При исключении выводится номер или строка, переданные в методы.
Название: Re: Выполненные хотелки
Отправлено: АЛьФ от 28 февраля 2024, 15:35
(http://www.dorex.pro/images/ok.jpg)

Цитата: АЛьФ от 28 февраля 2024, 15:17
Цитата: Djelf от 28 февраля 2024, 14:13
Цитата: АЛьФ от 26 февраля 2024, 18:33
Цитата: Злоп от 26 февраля 2024, 17:38А может можно незатратно сделать обход/исправление проблемы тупняка при сохранении мокселей штатным вариантом? ВК для этого есть (как минимум две), но если это можно впихнуть незатратно в формекс? если это не противоречит концепции формекса?
Теоретически можно. Проблема известная и решение ее можно даже готовое стащить. Надо подумать.
IMHO не стоит даже пытаться.
1. Патч Ромикса довольно грубый, он портит отображение в 1с (это он сам писал), можно завернуть установку/снятие патча памяти в НачалоСохраненияФайла/ОкончаниеСохраненияФайла, можно и так наверное...
P.S. Ошибка не там где он ее нашел, циклит выше по стеку вызовов, но как костыль это действительно работает.
2. Есть еще MxlBoost (https://www.1cpp.ru/forum/YaBB.pl?num=1215033727), работает корректнее, но исходников нет, декомпиляция даже Гидрой выводит какую-то чушь, а не вменяемый код. Обфускатор детектед.
Скорость сохранения значительно увеличивавется, но все равно она довольно медленная.
Надо копать глубже...
3. Йоксель справляется с этой задачей значительно быстрее.
И... У нас же есть FormEx! Если так сделать - замучаетесь не ждать пока файл сохранится.
Процедура ПриПолученииКомандыГлавнымОкном(wParam, lParam)
Перем Конт;
Если (wParam=57603) ИЛИ (wParam=123139) Тогда // 57603 иконка сохранить, 123139 ctrl+s
Если Сервис.АктивныйКонтекст(Конт)=1 Тогда
Если ТипЗначенияСтр(Конт)="Таблица" Тогда
СтатусВозврата(0);
ИмяФайла    = "";
ИмяКаталога = ФС.ТекКаталог();
Заголовок   = "Сохранить как";
Фильтр      = "Microsoft Excel 97-2003 (*.xls)|*.xls";
Если ФС.ВыбратьФайл(1,ИмяФайла,ИмяКаталога,Заголовок,Фильтр)=1 Тогда
ПолноеИмяФайла = ИмяКаталога+ИмяФайла;
ТабличныйДокумент = СоздатьОбъект("ТабличныйДокумент");
ТабличныйДокумент.ЗагрузитьИзТаблицы(Конт);
ТабличныйДокумент.Записать(ПолноеИмяФайла,"xls");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры //ПриПолученииКомандыГлавнымОкном


Этот код не будет работать при программном сохранении.
В принципе, можно попробовать добавить процедуру ПриЗаписиТаблицы(КонтекстТаблицы, ИмяФайла, ФорматФайла, ФлагСтандартнойОбработки).
Вроде как компромисс.
Название: Re: Выполненные хотелки
Отправлено: АЛьФ от 03 марта 2024, 09:16
(http://www.dorex.pro/images/ok.jpg)

Цитата: Злоп от 25 февраля 2024, 22:58Хотелка77: хотелось бы типа
Сервис.ПолучитьСписокШрифтов()
чтобы возвращалось как-то список шрифтов (элемент списка - строка с именем шрифта?) и для каждого шрифта - список допустимых размеров шрифта как-то (например, в виде строки с разделителем "10,12,14")
.
Хотелка больше для отладочных целей, когда майстрячишь фейс - задалбывает править/перебирать в конфигураторе и перезапускать обработку для подбора
Название: Re: Выполненные хотелки
Отправлено: АЛьФ от 10 марта 2024, 12:12
(http://www.dorex.pro/images/ok.jpg)

Цитата: АЛьФ от 08 марта 2024, 20:46
Цитата: Злоп от 08 марта 2024, 00:13Чисто плюшкинская хотелка интерфейсная:
- можно ли сделать так, что в ТЗ (на форме), значение в ячейке отображалось не прилепленная к левой/правой границе ячейки, а с отступом(padding-left/padding-right) (в пикселях/символах/кактоиначе)..?

Можно добавить в виде макроса раскраски.
Название: Re: Выполненные хотелки
Отправлено: АЛьФ от 11 марта 2024, 20:39
(http://www.dorex.pro/images/ok.jpg)

Цитата: АЛьФ от 11 марта 2024, 08:59Много думал... Пожалуй, выходом будет убрать в плане раскраски обязательность скобок. Переделаю, чтобы если макрос раскраски задан без скобок и включен план раскраски, то макрос действует на всю строку. При этом COUNT и INDENT будут игнорироваться. И если надо будет как-то сложно строку раскрашивать по ячейкам, то там уже придется использовать план раскраски со скобками.
Название: Re: Хотелки в работе
Отправлено: АЛьФ от 12 марта 2024, 16:14
(http://www.dorex.pro/images/ok.jpg)

Цитата: recop от 12 марта 2024, 16:11Получить, неким образом, номер позиции выбранного значения. Спасибо.
Название: Re: Хотелки в работе
Отправлено: АЛьФ от 13 марта 2024, 14:23
(http://www.dorex.pro/images/ok.jpg)

Цитата: АЛьФ от 13 марта 2024, 13:11Могу добавить в возвращаемую ТЗ тип Функция/Процедура/Модуль.
Название: Re: Re: Хотелки в работе
Отправлено: АЛьФ от 13 марта 2024, 15:29
(http://www.dorex.pro/images/ok.jpg)

Цитата: АЛьФ от 13 марта 2024, 15:29
Цитата: alyuev от 13 марта 2024, 14:48При ПоказыватьПроцент=1 и установленном атрибуте Заголовок - можно ли сделать регулировку/парметр, где выводить процент - в начале или в конце? Сейчас только в конце строки, после заголовка.

Ок. Сделаю, чтобы при "ПоказыватьПроцент = 2" процент показывался перед заголовком.
Название: Re: Re: Хотелки в работе
Отправлено: АЛьФ от 13 марта 2024, 15:32
(http://www.dorex.pro/images/ok.jpg)

Цитата: АЛьФ от 13 марта 2024, 08:57Возникла в связи с этим мысль - сделать возможным задавать в колонке ТЗ формулу. Типа как формула в многострочной части. Опять же, не знаю получится ли такое сделать. Но должен быть интересным этот функционал. И задачу вывода номера строки, как частный случай, решало бы.
Цитата: АЛьФ от 13 марта 2024, 10:45Т.к. ТЗ не предназначена для такого функционала и никаких внутренних флагов для расчетных колонок я не нашел, придется как-то обозначать, что в данной колонке хранится именно формула. Пока мысль использовать некие макросы, как макрос раскраски. Должно выглядеть как-то так:

тз.НоваяСтрока();
тз.Товар = ВыбТовар;
тз.фНомерСтроки = "{ф}НомерСтроки";
тз.FormEx_ПланРаскраски = "{ф}ПолучитьРаскраску(Товар, МестоХранения)";

Название: Re: Re: Хотелки в работе
Отправлено: АЛьФ от 14 марта 2024, 13:19
(http://www.dorex.pro/images/ok.jpg)

Цитата: Злоп от 12 марта 2024, 00:05Вынести флажок ИспользоватьПланРаскраски на форму визуальной настройки.
.
также попутно: м.б. на этой форме версию указывать полную v.2.0.5.197, а не просто v.2.0
Название: Re: Хотелки в работе
Отправлено: АЛьФ от 20 марта 2024, 12:27
(http://www.dorex.pro/images/ok.jpg)

Цитата: Титович Эдуард от 19 марта 2024, 17:56Возможно ли для строки ОкнаСообщений добавить скрытый параметр "Расшифровка", чтобы использовать его например для хранения ссылки на документ и другой информации?
Конечно, потребуется и обработка события аля ПриВыбореСтрокиОкнаСообщений.

Название: Re: Re: Хотелки в работе
Отправлено: АЛьФ от 28 марта 2024, 09:21
(http://www.dorex.pro/images/ok.jpg)

Цитата: item от 28 марта 2024, 09:19
Цитата: АЛьФ от 27 марта 2024, 21:48При активном текстовом документе или окне сообщений так и не получается отловить команды.
АЛьФ, а можно АктивныйКонтекст научить понимать текстовый документ по аналогии с табличным документом?
В последнем случае, в отличие от обычных форм, АктивныйКонтекст возвращает объект Таблица, и это просто супер штука, напр. для конвертации таблиц одним кликом.
Может ли в принципе АктивныйКонтекст возвратить объект Текст?
Название: Re: Re: Хотелки в работе
Отправлено: АЛьФ от 28 марта 2024, 10:16
(http://www.dorex.pro/images/ok.jpg)

Цитата: item от 26 марта 2024, 10:14В поле агрегатного типа Справочник, как известно, может выводится либо код, либо наименование элемента, а возможно ли обмануть форму и вывести произвольный текст?
Добавить в АтрибутФормы условный реквизит Представление, куда можно будет установить формулу/шаблон для отображения пользовательского представления элемента?
Цитата: АЛьФ от 26 марта 2024, 11:08обратный вариант - задавать предварительно явно какие тип.вид отправляются в процедуру.
Как-то так:

глСервис.ДобавитьФункциюПредставления("Справочник.Номенклатура", "глПолучитьПредставлениеНоменклатуры");
глСервис.ДобавитьФункциюПредставления("Документ.Реализация", "глПолучитьПредставлениеРеализации");
И в глобальнике:
Функция глПолучитьПредставлениеНоменклатуры(Объект)
    Возврат "(" + СокрЛП(Объект.Актикул) + ") " + СокрЛП(Объект.Наименование);
КонецФункции

Функция глПолучитьПредставлениеРеализации(Объект)
    Возврат "" + СокрЛП(Объект.НомерДок) + " от " + Объект.ДатаДок + " :: " + Объект.Контрагент;
КонецФункции
Название: Re: Re: Хотелки в работе
Отправлено: АЛьФ от 02 апреля 2024, 16:14
(http://www.dorex.pro/images/ok.jpg)

Цитата: item от 02 апреля 2024, 13:02Если есть в Сервисе возможность получить внешний модуль, насколько трудоемко получить модуль встроенной обработки?
Перекопал все алсы по 1спп, но так и не нашел возможности создать ВыполняемыйМодуль на основе модуля конфигурации, а реализация объектов на внешних файлах имхо есть моветон.