Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Добавил пару методов в FormEx - 2

v7: Добавил пару методов в FormEx - 2
Я
   Злопчинский
 
07.04.21 - 15:36
ветка-1 Добавил пару методов в FormEx
здесь продолжаем содержательно про формекс (и, по теме ветки)
   Злопчинский
 
1 - 07.04.21 - 16:07
Продолжение про запретить максимизацию формы

//

Процедура ПриИзмененииРазмераОкна(ТипСобытия)
    
    //Если ТипСобытия = 2

    //Тогда // максимизирована

    //    РФорма = СоздатьОбъект("РасширениеФормы");

    //    АтрибутФормы = РФорма.ПолучитьАтрибут("Максимизирована"); 

    //    АтрибутФормы.Максимизирована = 0; 

    //КонецЕсли;    

        
        РФорма = СоздатьОбъект("РасширениеФормы");
        РФорма.УстановитьФорму(Форма);
        РФорма.Максимизирована = 0;
    
КонецПроцедуры    // ПриИзмененииРазмераОкна()


Вот такой код создает интересный эффект - форма максимизируется (при нажатии юзером на максимизацию, но при этом кнопки управления дочерним окном - отсутствуют как класс). Запрета максимизации не проходит ибо видимо процедура - стопудово - отрабатывает ДО изменения размеров окна
   Злопчинский
 
2 - 07.04.21 - 16:07
Вывернулся так
.
//************************************************************************************************************

//
Процедура ЗапретитьМаксимизацию()
    РФорма.Максимизирована = 0;
    РФорма = "";
КонецПроцедуры    // ЗапретитьМаксимизацию()


//************************************************************************************************************

//
Процедура ПриИзмененииРазмераОкна(ТипСобытия)
    
    Если ТипСобытия = 2
    Тогда// максимизирована

        РФорма = СоздатьОбъект("РасширениеФормы");
        Рформа.ОбработкаОжидания("ЗапретитьМаксимизацию",5);
        Возврат;
    КонецЕсли;    
    
КонецПроцедуры    // ПриИзмененииРазмераОкна()
   Злопчинский
 
3 - 07.04.21 - 16:08
.. при бОльшем таймауте видно промаргивание формы
   Злопчинский
 
4 - 07.04.21 - 16:08
но тут ВОПРОС: а не херню ли я сделал.
можно как-то проще?
   Salimbek
 
5 - 07.04.21 - 16:40
(4) Ну... для начала - ты запускаешь обработку ожидания, но не останавливаешь ее. А смысл? Может проще так:

//************************************************************************************************************
//

Процедура ЗапретитьМаксимизацию()
    РФорма.Максимизирована = 0;
    Рформа.ОбработкаОжидания("ЗапретитьМаксимизацию",0);// Отключаем

    РФорма = "";
КонецПроцедуры    // ЗапретитьМаксимизацию()



//************************************************************************************************************


//

Процедура ПриИзмененииРазмераОкна(ТипСобытия)
    
    Если ТипСобытия = 2
    Тогд// максимизирована


        РФорма = СоздатьОбъект("РасширениеФормы");
        Рформа.ОбработкаОжидания("ЗапретитьМаксимизацию",1);//Включаем как можно быстрее

        Возврат;
    КонецЕсли;    
    
КонецПроцедуры    // ПриИзмененииРазмераОкна()
   Volodja
 
6 - 07.04.21 - 16:45
Можно ли программно задать тип диаграммы.
В конфигураторе в таблице можно выбрать тип диаграммы: График,Круговая и т.д.
Но методов для программных изменений типа нет, можно ли достучаться до объекта?
   trdm
 
7 - 07.04.21 - 17:16
(0) Здорова.
Не нашел решения впроса относительно отмены вопроса на индексацию?
Что-бы индекация без вопроса запускалась...
   Злопчинский
 
8 - 07.04.21 - 18:27
(5) ну, извините, облажался..
не в продакшене чай
   Злопчинский
 
9 - 07.04.21 - 18:28
(7) нет. даже не искал. занят
   Cthulhu
 
10 - 07.04.21 - 18:33
(7): индексацию без вопросов можно запускать стандартно - используя пакетный режим запуска 1с.
echo ------- Создание временного файла настройки пакетного режима (только индексация) ...
echo [General] > _ReIndex.prm
echo Output=_ReIndexxx.mlg >> _ReIndex.prm
echo Quit=1 >> _ReIndex.prm
echo CheckAndRepair=1 >> _ReIndex.prm
echo UnloadData=0 >> _ReIndex.prm
echo SaveData=0 >> _ReIndex.prm
echo AutoExchange=0 >> _ReIndex.prm
echo [CheckAndRepair] >> _ReIndex.prm
echo Repair=0 >> _ReIndex.prm
echo PhysicalIntegrity=0 >> _ReIndex.prm
echo Reindex=1 >> _ReIndex.prm
echo LogicalIntegrity=0 >> _ReIndex.prm
echo RecalcSecondaries=0 >> _ReIndex.prm
echo RecalcTotals=0 >> _ReIndex.prm
echo Pack=0 >> _ReIndex.prm
echo SkipUnresolved=1 >> _ReIndex.prm
echo CreateForUnresolved=0 >> _ReIndex.prm
echo Reconstruct=1 >> _ReIndex.prm
echo [UnloadData] >> _ReIndex.prm
echo ; UnloadToFile=#ED-UpLoadOnReindex >> _ReIndex.prm

echo ; IncludeUserDef=1 >> _ReIndex.prm
echo ; Password=ytlkzdct[ >> _ReIndex.prm
echo [SaveData] >> _ReIndex.prm
echo ; SaveToFile=#ED-SaveOnReindex >> _ReIndex.prm

echo ; FileList= >> _ReIndex.prm
1cv7.exe CONFIG /D<База> /N<Юзер> /P<пароль> /@_ReIndex.prm
   Злопчинский
 
11 - 07.04.21 - 18:44
(5) тьфу! что ты меня путаешь?!
ОО аннигилируется вместе с аннигиляцией РФорма!
Рформа = "";
   Злопчинский
 
12 - 07.04.21 - 18:53
(10) ни, так не прокатит. это хорошо для регламента ночью например (у меня так и делается, только сначала киляются все процессы 1С)
   Злопчинский
 
13 - 07.04.21 - 18:56
(10) вот например получилось что в течении дня - все вышли из базы, кто первый входит - получает "делать индексацию"..?
что за индексация? куда кому пенсии зарплаты? хз. и жмет отмена..
.
клюшки же писали когда за компами сидеи квалифицированные люди.
а сейчас данное сообщение д.б. примерно так:

"Обнаружено, что заавершение работы 1С выполнено неправильно. Данные в базе могут быть кривыми. Вы берете на себя ответственность отвечать за милионные убытки фирмы и пересдачу всей отчетности из-за некорректного завершения работы 1С..?" Отвечает - ДА - индексация не делается....
   Злопчинский
 
14 - 07.04.21 - 18:58
Можно ли манипулировать размерами формы окна просмотра текста, который
Т.Показать()
?
в перечне форм вормексом эта форма словится (надо проверить)? - форма то словится скорее всего, далее к ней сделать расширение формы - и манипулировать размероами?
   Cthulhu
 
15 - 07.04.21 - 19:18
(12): покатит.
1) первый приходит - запускается начиная с этого - индексирует - входит, поехал..
2) все следующие - запускаются начиная с этого - НЕ индексирует (есть юзеры) - блымает невнятная ошибка - экран очищается - входит, поехал..
   Cthulhu
 
16 - 07.04.21 - 19:19
(13): где ты там вопрос увидел???
   Cthulhu
 
17 - 07.04.21 - 19:22
(12),(13): по слогам. cmd-шный код в (10) запускает 1с в пакетном режиме для индексации базы без всяких вопросов. если это возможн. если же в базе уже кто-то есть - тупо блымает ошибкой и ничего не делает. сразу после него вставить программу запуска 1цв7.ехе с параметрами, перетянутыми из параметров замуска цид-шника - и можно спокойно стартовать все 1с-ки этим цмд-шником. ну кроме пофигуратора программерского...
   trdm
 
18 - 07.04.21 - 20:11
(10) Вопрос ни о том был, а о том, как залочить вопрос, выбрав безусловное "Да".
   Cthulhu
 
19 - 07.04.21 - 20:15
(18): а в (10) и есть оно - принудительное "Да". с первым входящим.
   trdm
 
20 - 07.04.21 - 20:24
(19) не а, не запоминает..
https://prnt.sc/116ni0g
   Cthulhu
 
21 - 07.04.21 - 20:30
(20): а повнимательнее? CONFIG есть в строке запуска?
   trdm
 
22 - 07.04.21 - 20:31
(21) а нафига конфиг, если лочить надо при энтерпрайзном старте?
   Cthulhu
 
23 - 07.04.21 - 20:36
(22):
при пакетном режиме ... в строке запуска должны быть указаны все необходимые параметры:
· параметр CONFIG;
· каталог информационной базы (параметр /D);
· имя пользователя, если для данной информационной базы ведется
список пользователей (параметр /N);
· пароль пользователя, если для пользователя задан пароль (параметр
/Р).
Файл пакетного режима имеет по умолчанию расширение .prm, если используется
другое расширение, то оно должно явно указываться в имени файла.
(с)
---
ты бы попробовал чистый эсперимент прежде чем критиковать. вариант (10) - это кусок моего стопудово рабочего смд-шника из продакшена.
   Cthulhu
 
24 - 07.04.21 - 20:37
(22): после кода (0) опущена строка второго запуска 1св7.ехе в интерпрайсе. думал это и так понятно.
   Cthulhu
 
25 - 07.04.21 - 20:38
(24): *** "после кода (10)"
   trdm
 
26 - 07.04.21 - 20:47
(24) это чехарда с пасвордами начнется и прочее.
т.е. запускается в режиме конфиг, но если реиндексации не надо, то конфиг закрывается и дальше идет запуск интерпрайза и поехали. Так?
   Злопчинский
 
27 - 07.04.21 - 21:07
(17) вот блин зашибсь советов айтишниковских. и так понятно.
а надо решение которое работает тупо и без внешних оберток.
хотя одна хрень и так и так.
   Cthulhu
 
28 - 07.04.21 - 22:02
(26): никакой чехарды.
я запускаю индексацию под юзером БЕЗ пароля - а в приначалеработы для этого (и только этого) юзера сразу тупо статусвозврата(0).
т.е. да, индексация - и след.строкой зпуск 1с с перетаскиванием в строку %1 %2 ... %7 (люблю эту цифру). никакой чехарды с пассвордами.
(27): тупо и есть - штатно и без внешних оберток всяких.
   Arbuz
 
29 - 08.04.21 - 17:03
(28) и родной лаунчер запоминает имя этого безпарольного-самовозвратного и юзвери должны ещё и имя своё не забыть выбрать, так?
   Cthulhu
 
30 - 08.04.21 - 23:49
(29): а внимательнее?.. родной лаунчер запоминает имя пользователя из второго ентерпрайз-запуска - т.е. того самого который собственно "работать пришел", а не того. с которым перед ним индексация выполнялась.
 
 Рекламное место пустует
   АЛьФ
 
31 - 09.04.21 - 08:56
2(1) Попробуй в ПриИзмененииРазмераОкна() поставить СтатусВозврата(0).
   Злопчинский
 
32 - 09.04.21 - 09:30
(31) Логично
   Злопчинский
 
33 - 09.04.21 - 09:33
..но не работает
   Duke1C
 
34 - 09.04.21 - 16:12
Альф, можно я тоже вставлю свои "5 копеек"...
Сдаётся мне, уже были подобные вопросы, но раз пошла такая пьянка(зачеркнуто) тема с продолжением, то
Можно ли как-то перехватить системные окна для ввода Числа,Строки,Даты и вместо них запустить свою обработку?
   Вафель
 
35 - 09.04.21 - 16:13
(34) может проще код переписать?
   Mikeware
 
36 - 09.04.21 - 16:15
(34) ТКВ!
   Duke1C
 
37 - 09.04.21 - 16:16
(35) Да было б в одном-двух местах переписать...
Это для тач-скрина надобно, собственно)
   Вафель
 
38 - 09.04.21 - 16:18
Напиши свою функцию а потом сделай найтиизаменить
   Mikeware
 
39 - 09.04.21 - 16:18
(37) найти "ввестиЧисло" и ВвестиСтроку сложно?
   Duke1C
 
40 - 09.04.21 - 16:21
(36) см. (37)
Т.е. в любой конфе куча таких мест, и вот чтобы не (35), 
в ​какой-нибудь предопределённо-глобальной процедуре это дело перехватывалось и подменялось
(38), (39) я в курсе, но если этот гемор можно красиво обойти, то почему бы и нет?
   Duke1C
 
41 - 09.04.21 - 16:23
(38) Тем более, при обновлении конфы, всё это дело придётся "повторять"
   Duke1C
 
42 - 09.04.21 - 16:27
+41 Я в этом плане, как Серёга Злопчинский - девелопер)
   Mikeware
 
43 - 09.04.21 - 16:46
(42) "деловыпер"?
   Mikeware
 
44 - 09.04.21 - 16:49
(40) Хы. а прикольно. Если АЛьФ это сделае - получается такой "механизм расширений". Правится только "пара строк" в глобальнике, остальное перекрывает...
   Duke1C
 
45 - 09.04.21 - 17:33
(44) Ну почему бы и нет?
(43) "Сарказм здесь не уместен" (с)
   Mikeware
 
46 - 09.04.21 - 17:37
(45) лет 15 назад это было бы очень популярно. Но БоГ мог бы и покарать - за препятствия в продвижении снеговика...
   Злопчинский
 
47 - 09.04.21 - 18:35
(42) О, нас уже - двое!!!


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.