Хотелки от пользователей :-)

Автор MWW_Ruza, 19 февраля 2024, 22:01

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

Djelf

1. Я бы предпочел тему от самого создателя ВК и форума (так будет правильнее).
2. Спасибо, это пригодится (такая хотелка 100% бы возникла через некоторое время).
3. Я Йоксель месяца 3 пытался собрать (я упоротый), без билд-машины все равно не собиралось (Олег билд-машину дал, за что ему низкий поклон).
Какая-то мелочь с 1с++ мешает, но вот какая это не понятно. Сдался...

Злоп

Цитата: АЛьФ от 26 февраля 2024, 12:58Ну, вы, блин, даете...
- так я ж говорЮ. что не поню как обнаружил, может и чтением на ночь вместо Устава СИП... ;-)
Вообще если СП регулярно чиатть - способствует повышению квалификации...

Злоп

А может можно незатратно сделать обход/исправление проблемы тупняка при сохранении мокселей штатным вариантом? ВК для этого есть (как минимум две), но если это можно впихнуть незатратно в формекс? если это не противоречит концепции формекса?

АЛьФ

Цитата: Злоп от 26 февраля 2024, 17:38А может можно незатратно сделать обход/исправление проблемы тупняка при сохранении мокселей штатным вариантом? ВК для этого есть (как минимум две), но если это можно впихнуть незатратно в формекс? если это не противоречит концепции формекса?
Теоретически можно. Проблема известная и решение ее можно даже готовое стащить. Надо подумать.

Djelf

Цитата: АЛьФ от 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");
				КонецЕсли;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры //ПриПолученииКомандыГлавнымОкном

Arbuz

Цитата: Djelf от 28 февраля 2024, 14:131. Патч Ромикса довольно грубый, он портит отображение в 1с (это он сам писал), можно завернуть установку/снятие патча памяти в НачалоСохраненияФайла/ОкончаниеСохраненияФайла, можно и так наверное...
P.S. Ошибка не там где он ее нашел, циклит выше по стеку вызовов, но как костыль это действительно работает.


Это который MXL_DOCTOR? Не знал, что он портит отображение в 1С, а что конкретно портит?

АЛьФ

Цитата: 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");
				КонецЕсли;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры //ПриПолученииКомандыГлавнымОкном


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

Djelf

Цитата: АЛьФ от 28 февраля 2024, 15:17В принципе, можно попробовать добавить процедуру ПриЗаписиТаблицы(КонтекстТаблицы, ИмяФайла, ФорматФайла, ФлагСтандартнойОбработки).
Вроде как компромисс.
Событие ПриЗаписиТаблицы будет немного проще и понятнее, чем вылавливать событие по wParam
Поддерживаю.

Злоп

Цитата: АЛьФ от 28 февраля 2024, 15:17У нас же есть FormEx!
я как-то где-то у кого-то спрашивал, но ввиду редкости использования теряю...
.
Процедура ПриПолученииКомандыГлавнымОкном(wParam, lParam)
.
wParam, lParam - как определить какие занчения чему соответствуют?

Злоп

Цитата: Djelf от 28 февраля 2024, 15:27проще и понятнее,
Поддерживаю.
А это будет срабатывать при программной записи мокселя?

Злоп

Цитата: Злоп от 25 февраля 2024, 22:58Сервис.ПолучитьСписокШрифтов()
еще это пригодилось бы весьма для автомасштабирания надписей на форме (все собираюсь допилить пример Альфа, он немного косячит при коротких надписях, когда получается крупноватый размер шрифта). Еще иногда ставиишь, например, шрифт 22 - а он в реальности смотришь показывает типа 21.5...

АЛьФ

Цитата: Злоп от 28 февраля 2024, 16:16
Цитата: АЛьФ от 28 февраля 2024, 15:17У нас же есть FormEx!
я как-то где-то у кого-то спрашивал, но ввиду редкости использования теряю...
.
Процедура ПриПолученииКомандыГлавнымОкном(wParam, lParam)
.
wParam, lParam - как определить какие занчения чему соответствуют?
Самое простое - определить эмпирическим путем возникает ли сообщение при нужном событии и какие параметры передаются.
Если мало в жизни веселья, то читай документацию WinAPI по поводу WM_COMMAND.

АЛьФ

Цитата: Злоп от 28 февраля 2024, 16:17
Цитата: Djelf от 28 февраля 2024, 15:27проще и понятнее,
Поддерживаю.
А это будет срабатывать при программной записи мокселя?

Должно.

ADirks

Хотелка: хочется программно открывать диалог настроек принтера, с указанием имени принтера. Нужно для двустороннего принтера включать/выключать режим двусторонней печати.
В интерфейсе это диалог 'Параметры страницы', кнопочка 'Принтер' в правом нижнем углу.

alyuev

Цитата: Злоп от 28 февраля 2024, 16:16я как-то где-то у кого-то спрашивал, но ввиду редкости использования теряю...
.
Процедура ПриПолученииКомандыГлавнымОкном(wParam, lParam)
.
wParam, lParam - как определить какие занчения чему соответствуют?

Я вот эмпирическим путем заколлекционировал:

//ОПИСАНИЕ КОДОВ КОМАНД:
	//32785 - пометка удаления нажатием кнопки панели инструментов или в контекстном меню
	//32786 - новый документ нажатием кнопки панели инструментов
	//32790 - копирование документа в журнале из контекстного меню или из панели инструментов
	//32854 - команда открытия списка пользователей из конфигуратора
	//32875 - изменение времени документа в журнале из контекстного меню
	//32865 - команда открытия окна формул
	//32876 - меню "Подчиненные документы"
	//32877 - ввод документа на основании нажатием кнопки панели инструментов
	//32878 - отмена проведения документа в журнале из контекстного меню
	//32880 - меню "Движения документа" (Document Movements)
	//32886 - меню "История значений" для эл справочника или кнопка панели или контекстное меню
	//32912 - окно Операции проводок документа
	//32918 - окно проводок документа
	//33731 - меню "Изменить период расчета" 
	//33733 - меню "пометка на удаление" в Журнале расчетов
	//33747 - меню "Рассчитать документ"
	//33748 - меню "Рассчитать объект"
	//33749 - меню "Рассчитать запись"
	//33827 - масштаб 125%
	//57600 - команда "Новый документ" для открытия текстового окна или таблицы
	//57601 - меню "Открыть файл..."
	//57603 - Сохранение (напр. печатной формы)
	//57664 - кнопка ? на стандартной панели. Или меню "Помощь/О программе..."
	//57669 - кнопка Стрелка со знаком вопроса для принудительного вызова подсказки элемента
	//57670 - нажата F1
	//123170 - копирование в буфер обмена при нажатии Ctrl+C
	//98321 - пометка удаления нажатием кнопки Del, или удаление строки в документе
	//98322 - ввод нового нажатием Ins или ввод новой строки в документе
	//98326 - нажата F9 - копирование документа в журнале или копирование строки в документе
	//98413 - Alt+F9 - ввод документа на основании
	//98422 - F5 - история значений реквизитов в справочнике. Нажатие кнопки в панели и пункт в меню с помощью Formex почему-то не перехватилось 
	//70226 - отмена ввода строки в документе?
	//99298 - нажата F8 в журнале Операций = отключение проводок