Выполненные хотелки

Автор АЛьФ, 21 февраля 2024, 15:40

« назад - далее »

АЛьФ



Цитата: MWW_Ruza от 19 февраля 2024, 22:39Общались по мылу, но, там ничего по делу и не было, просто просьба обратить внимание на тему на Мисте: Перехватить и подменить системные сообщения штатных инструментов справочника... Возможно?

Цитата: Arbuz от 20 февраля 2024, 16:58Дык, в том то и проблема, что не "перехватываются команды тулбаров форм документов/справочников/журналов". Из общих панелей, из меню Действия, Горячие клавиши — перехватываются, а из панели инструментов формы те же действия — нет.

АЛьФ

#1


Цитата: Грузчик от 20 февраля 2024, 16:37А насколько трудно будет реализовать нечто вроде:
глСервис.ВключитьРаскраскуТаблиц(0);
глСервис.ИспользоватьПланРаскраски(1);
// для таблиц без колонки "FormEx_ПланРаскраски" включим хоть курсор во всю строку
глСервис.ПланРаскраскиПоУмолчанию("(BRUSH_S[255])");

АЛьФ

#2


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

В момент вызова этой процедуры настройки уже загружены из файла и готовы для загрузки в форму.
Можно передавать в процедуру список значений с загружаемыми значениями с возможностью его изменить.

АЛьФ


АЛьФ

#4


Цитата: sau от 25 февраля 2024, 20:16Использовать "ПоложениеКолонкиТаблицы" с МногострочнойЧастью

АЛьФ

#5


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

Попутно изменен метод АтрибутФормы::УстановитьАтрибут(). Теперь метод принимает три параметра, третий - ВыводитьИсключение. И возвращает значение 1 - атрибут получен, 0 - ошибка получения атрибута.
При исключении выводится номер или строка, переданные в методы.

АЛьФ

#6


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


Этот код не будет работать при программном сохранении.
В принципе, можно попробовать добавить процедуру ПриЗаписиТаблицы(КонтекстТаблицы, ИмяФайла, ФорматФайла, ФлагСтандартнойОбработки).
Вроде как компромисс.

АЛьФ

#7


Цитата: Злоп от 25 февраля 2024, 22:58Хотелка77: хотелось бы типа
Сервис.ПолучитьСписокШрифтов()
чтобы возвращалось как-то список шрифтов (элемент списка - строка с именем шрифта?) и для каждого шрифта - список допустимых размеров шрифта как-то (например, в виде строки с разделителем "10,12,14")
.
Хотелка больше для отладочных целей, когда майстрячишь фейс - задалбывает править/перебирать в конфигураторе и перезапускать обработку для подбора

АЛьФ

#8


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

Можно добавить в виде макроса раскраски.

АЛьФ



Цитата: АЛьФ от 11 марта 2024, 08:59Много думал... Пожалуй, выходом будет убрать в плане раскраски обязательность скобок. Переделаю, чтобы если макрос раскраски задан без скобок и включен план раскраски, то макрос действует на всю строку. При этом COUNT и INDENT будут игнорироваться. И если надо будет как-то сложно строку раскрашивать по ячейкам, то там уже придется использовать план раскраски со скобками.

АЛьФ

#10


Цитата: recop от 12 марта 2024, 16:11Получить, неким образом, номер позиции выбранного значения. Спасибо.

АЛьФ

#11


Цитата: АЛьФ от 13 марта 2024, 13:11Могу добавить в возвращаемую ТЗ тип Функция/Процедура/Модуль.

АЛьФ

#12


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

Ок. Сделаю, чтобы при "ПоказыватьПроцент = 2" процент показывался перед заголовком.

АЛьФ

#13


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

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


АЛьФ

#14


Цитата: Злоп от 12 марта 2024, 00:05Вынести флажок ИспользоватьПланРаскраски на форму визуальной настройки.
.
также попутно: м.б. на этой форме версию указывать полную v.2.0.5.197, а не просто v.2.0