Имя: Пароль:
   
1C
1C 7.7
v7: Добавил пару методов в FormEx
Ø (длинная ветка 07.04.2021 15:34)
0 АЛьФ
 
18.11.20
12:10
Понадобилось тут для работы добавить пару методов.

КопироватьОбластьТаблицы(<ТаблицаИсточник>,<СтрокаНачальная>,<КолонкаНачальная>,<СтрокаКонечная>,<КолонкаКонечная>,<ТаблицаПриемник>,<СтрокаНачальнаяПриемника>,<КолонкаНачальнаяПриемника>)
Назначение:
Метод для копирования области ячеек из одной таблицы в другую. Копируемые ячейки заменяют содержимое ячеек в таблице-приемнике.
Параметры:
ТаблицаИсточник - объект Таблица, из которого надо скопировать ячейки;
СтркаНачальная,КолонкаНачальная,СтрокаКонечная,КолонкаКонечная - координаты, задающие копируемую область ячеек;
ТаблицаПриемник - объект Таблица, в который надо скопировать ячейки;
СтрокаНачальнаяПриемника,КолонкаНачальнаяПриемника - координаты начальной ячейки области, куда надо поместить копируемые ячейки.

ОткрытьДвиженияОбъекта(<Документ>)
Назначение:
Открывает стандартное окно движений документа по регистрам. Аналогично действию ''Движения документа'' в контекстном меню журнала документов.
Параметры:
<Документ> - документ, движения которого надо показать.

Если кому интересно, сборку 2.0.5.152 качать, как обычно на formex.dorex.pro
1 Волшебник
 
18.11.20
12:19
Кладовочка АЛьФа совсем запылилась. Сдул пыль? :)
2 АЛьФ
 
18.11.20
12:28
2(1) Чойта вдруг? Я там регулярно прибираюсь.
3 Cthulhu
 
18.11.20
12:35
спасибо, Алексей!
4 mishaPH
 
модератор
18.11.20
12:35
слушай. а почему у меня формэкс последний 1.5 мега а твой тек 996864. что в нем так урезали?
5 mishaPH
 
модератор
18.11.20
12:37
6 Kigo_Kigo
 
18.11.20
12:39
(4) Ремары почистил :)
7 АЛьФ
 
18.11.20
12:43
2(4) Скорее всего, это из-за обновления библиотеки zint.
8 mishaPH
 
модератор
18.11.20
12:45
гм у меня даже есть 2.5.0 1.5 и 500 кб..

ок ориентируюсь на номер версии. а то чтото запутался

(7) ок. заберу протестирую на своих системах. у меня раскраска используется и шрифты активно
9 trdm
 
18.11.20
12:54
(0) хелло. А можешь сделать неактивный пункт в динамическом меню как-нить?
Надо иногда всетаки показывать, что возможности есть, но они задизаблены..
10 Kigo_Kigo
 
18.11.20
12:54
11 trdm
 
18.11.20
12:55
+(9) я про: https://prnt.sc/vlcx7t
12 АЛьФ
 
18.11.20
12:57
2(9) Если про меню с помощью объекта Сервис, то там надо просто поставить пометку на пункт, который недоступен.
13 alyuev
 
18.11.20
13:16
По поводу движений объекта я делаю так:

Процедура ОткрытьСистемноеОкно(КодОкна=32854) Экспорт //Получить номер команды можно с помощью метода ПриПолученииКоманды() ВК RWidjets
    //а так же в новом FormEx (120 и выше) появился аналогичный обработчик-перехватчик ПриПолученииКомандыГлавнымОкном и ПриПолученииСистемнойКомандыГлавнымОкном
    //Или с помощью ResHacker.exe в разделе Menu рядом с пунктом идет номер, например MENUITEM "&Интервал",  32881
    //Вот здесь было обсуждение http://1c.alterplast.ru/faq/tlpt_t1c/tlpt_t1c_6.html
    ТекстМодуля = "
    |Public Const WM_COMMAND = &h111
    |Public Sub GetUsersWindow()
    |    Set Wrap = CreateObject(""DynamicWrapperX"")
    |    Wrap.Register ""USER32"", ""GetForegroundWindow"", ""f=s"", ""r=l""
    |    Wrap.Register ""user32"", ""SendMessage""     ,  ""i=hull""    , ""r=l""
    |    Res = Wrap.SendMessage(Wrap.GetForegroundWindow(), WM_COMMAND, "+КодОкна+", 0)
    |End Sub";
    мScrptCtrl = СоздатьОбъект("MSScriptControl.ScriptControl");
    мScrptCtrl.Language = "vbscript";мScrptCtrl.AddCode(ТекстМодуля);
    мScrptCtrl.CodeObject.GetUsersWindow();
КонецПроцедуры

ОткрытьСистемноеОкно(32880); //Открываем движения регистров документа

И по аналогии прочие системные окна, типа списка пользователей, активных юзеров, журнал регистрации и пр.

Но за более удобный способ тоже спасибо.
И еще ж есть ОтправитьКоманду() и ПослатьКоманду(), но ими я еще не пробовал работать.
14 Масянька
 
naïve
18.11.20
13:24
(0) Как сегодня модно говорить: респект и уважуха!
Молодец!
15 tgu82
 
18.11.20
13:30
(0) Ну как всегда круто.
1. Вот только насчет нескольких обработок ожидания глобальных - нет ли возможных нюансов?
2. В локальном контексте обработки внешнего события как-то некорректно работает процедура работы со справочником акций. Вообще в отладчике куда-то идет адресация и не ловится что там внутри
16 1Сергей
 
18.11.20
13:34
Кто-то всё-таки вернулся в 2007-ой
17 АЛьФ
 
18.11.20
13:51
2(13) Это типа если открыт штатный журнал и надо программно открыть окно движений документа? У меня метод для своего журнала (внешней обработки с табличным полем). Изначально сделал обработку с движениями, но сказано было, что нужен штатный метод показа движений.
2(14) Спасибо.
2(15) В принципе, никаких нюансов с несколькими обработками ожидания нет. Там же под каждую свой объект создается, в котором таймер запускается.
18 tgu82
 
18.11.20
13:56
(17) Просто возникает странная ситуация и очень редко. Один юзер долбит по клаве и мыши, проводит документы вообще делает все что хочет как бы, но при этом остальные жестко висят по транзакции а это единственный лупит не туда - вроде в журнале это чек а на поверку заявка покупателя - короче приходится его вырубать и тогда все моут работать а ему приходится все что он набил делать по новой. Благо довольно быстро отлавливаем по ЖР и бывает такео весьма редко
19 Cthulhu
 
18.11.20
13:58
если бы еще подменить системный просмотр движений - с сохранением/восстановлением хотя бы ширины колонос (с последнего открытия такого же объекта)... ну и - гулять так гулять - управления видимостью и порядком отображения колонок... и хотя бы самый примитивный отчет по тек.просмотру...
20 АЛьФ
 
18.11.20
14:04
2(18) У нас была похожая ситуация. При этом в SQL копится очередь из "fetch_api", насколько я помню. Возникало при частом использовании журналов с отборами, журналов подчиненных и метода ВыбратьПодчиненныеДокументы. Как раз из-за этого и стали писать свой универсальный журнал документов.
2(19) А не подойдет предопределенная ПриПолученииКомандыГлавнымОкном с отловом параметра wParam = 32880?
21 tgu82
 
18.11.20
14:10
(20) У меня dbf база. Но спасибо хотя не один я в поле воин )
22 Mikeware
 
18.11.20
14:18
(18)(21) да, кстати, два раза натыкался на такое, и именно на дбф (причем на мелкой базенке, ) - но решать не стал, ибо переводил контору на снеговика.
23 АЛьФ
 
18.11.20
14:22
24 tgu82
 
18.11.20
14:39
(23) Да уж. Вот все-таки почему такое происходит?
25 Mikeware
 
18.11.20
14:41
(23) ага! от прям щазз взял, и изошёл! :-)
Но на SQL такого не помню. а на дбф было
26 tgu82
 
18.11.20
15:07
(25) А формекс использовал для работы?
27 Mikeware
 
18.11.20
15:13
(26) да ,там был стандартный джентльменский набор: 1с++, формекс, вроде еще рвиджет.
28 АЛьФ
 
18.11.20
15:48
2(24) Надо отлавливать и собирать статистику что именно запущено у работающего пользователя.
29 Злопчинский
 
19.11.20
03:49
(24) кривой код. скорее всего. так как кода у тебя тонна, то где-то неявно отрабатывает криво. и кабздец.
рефакторь код.
ну и хорошобы потестить на базе без постгянных урибобменов.
можно еще на ИС взят трейсер Олега Пономаренко и отслежтвать что где кто веткуи кода работают.
30 Злопчинский
 
19.11.20
03:50
(0) спасибо!
31 Злопчинский
 
19.11.20
03:57
(0) а как же снеговик?! ;-)
32 tgu82
 
19.11.20
07:10
(29) Да думаю что не так. Кода у меня не тонна своего - старался как-то все в отдельные глобальные процедуры его писать. А так-то ТИС и ТИС. У hogik такое встречалось а он вообще не использовал ничего кроме штатного 1С вроде как. И при чем тут кривой код когда речь идет о том что один юзер как бы работает во вложенных транзакциях чего в 1С 7.7 вообще быть не должно? Хотя я в таких дебрях плохо пока ориентируюсь.
33 АЛьФ
 
19.11.20
09:43
2(31) Да как-то не складывается у меня с ним пока.
34 Ёпрст
 
19.11.20
10:41
(0) Мот поправишь как-нить, чтоб в ДобавитьАтрибут можно было создать текстовую колонку ?..которая работала бы.
35 MWWRuza
 
19.11.20
10:50
(0) Спасибо!
36 Кодер
 
19.11.20
10:59
Спасибо, полодец!
37 Кодер
 
19.11.20
10:59
Блин. Опечатку поправьте, кто может.

Молодец, Алексей!
38 Mikeware
 
19.11.20
11:00
(29) (32) подтверждаю, в той базе, где я наблюдал - была практически типовая комплексная. 1с++/формекс использовался в основном для отчетов (ну и подсистема хранения сканов была добавлена).
39 АЛьФ
 
19.11.20
11:25
2(34) Не я делал этот функционал и мне туда даже страшно лезть :(
40 trdm
 
19.11.20
11:34
(12) Спасибо, проверил.
41 Злопчинский
 
19.11.20
13:15
(33) Здравствуй, бро! ;-)
42 Злопчинский
 
19.11.20
13:16
(32) ходжик все расписал про вложенные транзакции.
43 DEVIce
 
19.11.20
13:20
А кому это все надо? Верю что на 7.7 сидят еще много, но не верю что в ней что-то развивают на столько, что прям просят какие-то новшества в FormEx.
44 Cthulhu
 
19.11.20
13:20
(42): хде?
45 Злопчинский
 
19.11.20
13:25
(44) ну блин я человек гнеорганизованный, складываю все, но порядка нет ;-) не найду, у него лучше спрашивать
46 Злопчинский
 
19.11.20
13:25
там типа нет никаких вложенных транзакций. есть одна транзакция.
47 АЛьФ
 
19.11.20
13:30
2(43) Прикинь! У нас еще и на 1С++ с Rainbow только три года назад перешли.
48 DEVIce
 
19.11.20
13:32
(47) Т.е. кто-то с типовой 7.7 перешел на 7.7 + 1С++? Типа оптимизировался? :)
49 Mikeware
 
19.11.20
13:33
(47) вы все-таки "сделали это!"
50 oslokot
 
19.11.20
13:36
А есть ли примочки сменить унылую мышино-серую семерошную тему на нечто желтовато-ламповое снеговое ?
51 АЛьФ
 
19.11.20
13:37
2(48) Т.е. нетиповую 7.7 с прямыми запросами на Rainbow перевели на 1С++.
2(49) Мне понадобилось на это всего 7 (семь) лет.
52 АЛьФ
 
19.11.20
13:38
2(50) Нет. Потому что эта унылая серость не семерошная, а майскрософтовскомфцшная. Чтобы ее сменить надо переходить на другие графические библиотеки.
53 alyuev
 
19.11.20
13:56
2(50) Вот поднимал как-то тему на этот счет: https://www.1cpp.ru/forum/YaBB.pl?num=1358170494/0
54 Cthulhu
 
19.11.20
14:14
(20): а документ для которого вызывается перехвачиваемая операция - тоже где-то в параметре есть? и на каком этапе - на получении списка объектов, в которых могут в ринципе быть движения с галками на тех, в которых фактически они есть? а как эту всю байду вытянуть иначе при перехвате?
ну и - этот перехват сработает для ОткрытьДвиженияОбъекта?.. а документ (хтя бы!) откуда дернуть и как?
55 АЛьФ
 
19.11.20
14:49
2(54) Документа нет. Но можно отловить активный контекст и получить текущий документ оттуда.
56 Mikeware
 
19.11.20
14:55
(51) я помню, ты описывал вкратце геморрой с инициативой перехода... до сих пор удивлен.
57 DEVIce
 
19.11.20
14:59
(51) "7.7 + 1С++ и прямые запросы уделывают 8.х как Бог черепаху" Садовников О. (с) :)
58 АЛьФ
 
19.11.20
15:07
2(57) И это так. У нас часть процессов в восьмерке реализовано. Функционала чуть, пользователей с гулькин нос, ресурсов отъедает немеряно и все время тормозит. Семерка с основным функционалом с моей точки зрения летает. Хотя пользователи, конечно, недовольны периодически.
59 Mikeware
 
19.11.20
15:09
(57) и он прав, чьорт подьери!
60 DEVIce
 
19.11.20
15:14
(58) "пользователей с гулькин нос" - это сколько? У меня ERP на 150 активных пользователей и до 300 в пике не тормозила на PG (не сразу правда :)).
61 АЛьФ
 
19.11.20
15:19
2(60) Меньше 20. А в бухгалтерии типовой не больше четырех одновременно.
62 palpetrovich
 
19.11.20
15:44
(0) спасибо!
63 Araekend
 
19.11.20
15:53
ветка как машина времени в теплый ламповый 1С 15-летней давности ) Спасибо, кайфанул!
64 АЛьФ
 
19.11.20
15:54
2(63) Да уж. FormEx  в этом году отметил совершеннолетие...
65 Холст
 
19.11.20
16:34
Напомните, технически, платформа 1С 7.7 работает до 2027 года или какого ? Что делать будем (сидящие на 7.7) ?
66 ДенисЧ
 
19.11.20
16:38
(65) А чего она упасть должна?
67 trdm
 
19.11.20
16:40
(65) до 3027
68 Холст
 
19.11.20
16:41
(66) Поставь в винде, например 2040год и попробуй запусти 1С 7.7 ... а может и 2030год не осилит, запамятовал
(67) хмм... вроде было 20ХХ - какой-то
69 Sserj
 
19.11.20
16:43
(68) DBF не осилит, потому как юникстайм. SQL отлично работает, проверял.
70 Холст
 
19.11.20
16:45
2037 год не работает запуск экзешника 27 релиза проверил
71 Sserj
 
19.11.20
16:55
(70) Ну это только при запуске. Если открыть и во время работы поменять дату, то все нормально, документы записываются и проводятся. Может кто через десяток лет еще захочет взять отладчик в руки и найти где эту проверку вырезать :)
72 ДенисЧ
 
19.11.20
16:56
(70) А что говорит?
73 АЛьФ
 
19.11.20
17:13
2(70) Это как это? Первый раз о таком слышу.
74 АЛьФ
 
19.11.20
17:17
Ха! Круто! Век живи, век учись. Дураком помрешь.
75 АЛьФ
 
19.11.20
17:19
Во мне сюрприз бы был за три года до пенсии...
76 АЛьФ
 
19.11.20
17:28
"Система 1С:Предприятие не может работать корректно, если значение года установленной на компьютере системной даты больше чем 2037."
Хорошо, что патчится легко.
77 victuan1
 
20.11.20
06:09
78 victuan1
 
20.11.20
06:09
(0) Вот еще бы сделать, чтобы попытка загрузки Формекс не роняла 1С.
Есть у меня пара-тройка клиентов, у которых при попытке ЗагрзуитьВнешннююКомпоненту("formex.dll") 1С просто падает.
Думаю, проблема в окружении - но устранить ее без переустановки ОС вряд ли смогу.

Могу сделать базу-пустышку на клиенте, чтобы продемонстрировать проблему через удаленку на ПК клиента. Если конечно есть интерес в этом ковыряться.

1с++ и другие ВК при этом грузятся без проблем.
79 АЛьФ
 
20.11.20
08:38
2(78) Глядеть через удаленку смысла нет. Для начала неплохо бы найти в виндовом логе что там пишется по поводу падения. Если стабильно на любой базе валится, то могу попробовать сделать сборку с логом, чтобы понять на каком шаге загрузки вылетает.
80 vis_tmp
 
20.11.20
09:02
(76) А из-за чего?
81 Кодер
 
20.11.20
09:56
(76) Это отличная от https://ru.wikipedia.org/wiki/Проблема_2038_года ошибка?
82 АЛьФ
 
20.11.20
10:28
2(80) Что из-за чего? Просто при запуске 1С стоит вот такая проверка. Можно пропатчить, установив год намного больше и дальше будет работать.
2(81) Скорее все та самая. В (69) уже указано на это.
83 big
 
20.11.20
13:55
(78) Не занудства ради, а истины для - 1с++ правильной версии загружается, без встроенного FormEx?
84 Djelf
 
20.11.20
14:00
(81) Как раз она и есть, причем 1С об это проблеме знала! https://gyazo.com/5eb545e5fb0236412b71e39dd3cddf41
(82) ИМХО Патчить придется не только сам запуск... И начинать стоит уже сейчас ;)
85 АЛьФ
 
20.11.20
14:25
2(84) Да, почитав подробней про эту проблему понял, что это будет все же год смерти 7.7. Жаль.
86 Djelf
 
20.11.20
14:46
(85) Не факт! В принципе можно вклинится в CDate и прибавлять/вычитать из unixtime ~20 лет. Должно сработать!
87 Злопчинский
 
20.11.20
15:01
(78) Подтверждаю, есть такая проблема. у меня тоже проявляется.
88 tgu82
 
20.11.20
15:13
Да, при всех плюсах не мало и минусов. Патчить чего-то мудрить - я себе напоминаю человека у которого рядом ну скажеи Рено а он копается с велосипедом "школьник" и пытается сделать его комфортным и почти такимм же быстрым как авто. Теоретически такое наверное даже возможно ). Многие очень многие еще работают на 7.7 особенно в ТИС. В том числе и на ДБФ. Я думаю так - просто нет привычки познавать проектно и целостно. Все-таки 7.7. я познавал еще даже что-то старое на фоксе 2.6 поддерживая. Или это была 7.5. Где-то что-то читанул и бац - магазинчик игрушек автоматизировал. Или центральный рынок с арендополучателями на своей нетленке на бух. счетах но с пробитием чеков оплаты за аренду. Но опять же на основе знаний - справочник, докмуент, бух. счет, проводки, что-то про кассу АМС - ну и дальше варил из них кашу. И в этой своей ТИС - отбрасывая все - что-то делалось просто потом на терминальном сервере, потом вдруг несколкьо узлов УРБД стало - узнал про УРБД где-то. "Ну а потом вдруг бац - и вторая смена )". То есть оказывается еще надо чтоб в сети все хорошо работало и т.д. и т.п.
8-ка предполагает дял меян совершенно иной подход - сформулировал, спланировал, сделал. Просто все же рабочее боевое, игратсья как бы вживую не приходится. Ну делал я что-то когда-то в режиме кусочном. Так это был период когда это что-то только начинало запускаться с ошибками проблемками которые по  ходу решал. И даже если не работало сразу - ничего страшного не было. Была некая раскачка
89 Злопчинский
 
20.11.20
15:18
(88) "сформулировал, спланировал, сделал."
- это подразумевает что к 8-ке должен прилагаться кто 1. формулирует 2. планирует 3. делает.
;-) 3 брата из ларца... фузинаторы, мля...
90 Djelf
 
20.11.20
15:37
(88) Минус только один - скд!
Сделал что-то похожее на 7.7, но это не скд: https://gyazo.com/cd7ee9e22850318315e5772c724c0df8
Ну и фоновые задания, особенно если они с обменом с внешним ресурсом.
Пока терпят ожидание по кнопке "Обновить".
Когда СИЛЬНО затюкают, придется на GO сделать фоновое в системе и с базой на sqlite...
91 trdm
 
20.11.20
15:54
(70) 2038 год. 1С не запускается, SQL версия.
https://prnt.sc/vmtns6
92 Злопчинский
 
20.11.20
16:19
(90) я вот хз.. может у когото скорость порожденяи отчетов такая что капец.
у меня пока получается практически просто.
заказан отчет кем-то (продаванами итд). Собираю плоскую таблицу и подсовываю в "Универсальный отчет по ТЗ" - там и группирвоки есть, и шахматку можно сделать (без программирования). Этого обычно хватает. Прикрутил внутрь "УниТЗ" авторасчет относительных показателей, передается параметром название колонки относительных показателей, чтобы группирвока не нассуммировала 100500%...
.
в большинстве случаев хватает.
если что-то извращенное - сначала вчерновую на УНИТЗ обкатываю, потом уже пишу частный отчет.
93 АЛьФ
 
20.11.20
16:48
Поправил небольшой глючок: при выходе из 1С, если загружен FormEx, не сохранялись размеры и положение главного окна Предприятия.
94 Volodja
 
20.11.20
17:01
(0) Спасибо.
Мне этот метод нужен был лет 10 назад. Хотел вроде сделать одну общую таблицу для вывода членов комиссии, а потом ее подставлять в другие.
А можешь еще добавить метод УдалитьСтроки(_С,_По) для Таблицы ?
Чтобы при обновлении не перерисовывать всю таблицу.
Когда таблица на экране можно интерактивно удалить несколько строк.А можно это сделать программно?
95 Злопчинский
 
20.11.20
18:36
А что будет если читаем из таблицы например область, а кладем в другую таблицу, где ячейки области-приемника объединены?
96 Злопчинский
 
20.11.20
20:07
АЛьФ, сделай, плиз, допилку
ПолучитьGUID(Режим)
где
Режим = 0 - по умолчанию, м.б. опущен (останется совместимость без переписываняи кода), гуид возвращается СО скобками {}
Режим <> 0 - ГУИД возвращается без скобок
97 Холст
 
20.11.20
20:15
(91) Помоему (70) имел ввиду, что экзешник временно запускаем датой меньше 2037, а потом обычную работу ведём реальной датой
98 ТочноеЯдро
 
20.11.20
22:23
(0) Спасибо!
(18) Была похожая ситуация несколько раз только без транзакции. Юзер наколотил много разных документов, которые он в своей сессии видел. После выхода всё исчезло. Если бы не записи в журнале регистрации никаких следов. Т.е. его документы по факту не долетали до 1SJourn.dbf. Из-за этого другой юзер создавал свой документ с таким же ИД и после этого в журнале регистрации две записи по одному ИД: 1 запись о ПН (например) от первого юзера, 2 - о БВ от второго. По факту естественно открывается БВ.
(28) Стоят 1СРР, формекс и еще несколько
99 Mikeware
 
23.11.20
08:19
(92) "УНИверсальнаяТАблицаЗначений"?
100 Масянька
 
naïve
23.11.20
08:25
Сотка
101 АЛьФ
 
23.11.20
11:02
2(94) Удалять строки нужно в именно открытой уже таблице?
102 Злопчинский
 
23.11.20
11:38
(101) А по (96) стоит ожидать?
103 АЛьФ
 
23.11.20
11:51
2(102) Сделал уже. Тут-то вопросов никаких не возникло.
104 Злопчинский
 
23.11.20
12:08
(103) о, спсб! в 153 есть уже или в свежем релизе будет?
105 АЛьФ
 
23.11.20
12:50
2(104) В свежем.

Выложил релиз 154.
Добавил (96) и новый метод:

УдалитьОбластьТаблицы(<Таблица>,<СтрокаНачальная>,<КолонкаНачальная>,<СтрокаКонечная>,<КолонкаКонечная>,<НаправлениеСдвигаЯчеек>)
Назначение:
Метод для удаления области ячеек из таблицы.
Параметры:
Таблица - объект Таблица, в котором надо судалить ячейки;
СтрокаНачальная,КолонкаНачальная,СтрокаКонечная,КолонкаКонечная - координаты, задающие удаляемую область ячеек. Если заданы только строки, то удаляются строки целиком. Если заданы только колонки, то удаляются колонки целиком. Все параметры являются необязательными, но должен быть указан хотя бы один из параметров.
НаправлениеСдвигаЯчеек - задает направление сдвига ячеек при удалении области ячеек. 0 - по вертикали, 1 - по горизонтали. Имеет смысл только если задана область ячеек, т.е. заданы все координаты. Необязательный, по умолчанию 0.
106 Volodja
 
23.11.20
15:46
(101) да в открытой
107 Volodja
 
23.11.20
15:48
(105)О. Спасибо.
108 АЛьФ
 
24.11.20
09:36
Ну, и тогда для полноты картины добавил метод:

ВставитьОбластьТаблицы(<?>,,,,,)
Синтаксис:
ВставитьОбластьТаблицы(<Таблица>,<СтрокаНачальная>,<КолонкаНачальная>,<СтрокаКонечная>,<КолонкаКонечная>,<НаправлениеСдвигаЯчеек>)
Назначение:
Метод для вставки области ячеек в таблицу.
Параметры:
Таблица - объект Таблица, в который надо вставить ячейки;
СтрокаНачальная,КолонкаНачальная,СтрокаКонечная,КолонкаКонечная - координаты, задающие вставляемую область ячеек. Если заданы только строки, то вставляются строки целиком. Если заданы только колонки, то вставляются колонки целиком. Все параметры являются необязательными, но должен быть указан хотя бы один из параметров.
НаправлениеСдвигаЯчеек - задает направление сдвига ячеек при вставке области ячеек. 0 - по вертикали, 1 - по горизонтали. Имеет смысл только если задана область ячеек, т.е. заданы все координаты. Необязательный, по умолчанию 0.
109 Ёпрст
 
25.11.20
09:06
(108) запамятовал..а метод СкрытьОбласть или Видимость есть? Который бы не удаляя область, просто скрывал ее? В йокселе точно есть, там на этом можно строить группировки дерева...
110 АЛьФ
 
25.11.20
10:16
2(109) Нет такого. Есть штатная установка высоты строк и ширины колонок. Но, насколько я помню, в ноль установить нельзя, поэтому всегда видно, что что-то сужено.
111 trad
 
25.11.20
10:34
(109) (110) да, моксель не умеет скрывать строки/колонки, и внутри (копал как-то) предпосылок для этого нет.
А высота/ширина 0 - это авто
112 АЛьФ
 
27.11.20
10:55
По заявкам телезрителей.
Добавил новый объект "ПанельСтрокиСостояния".

Имеет четыре атрибута:
Идентификатор (только чтение) - внутренний ИД добавленной панели.
Наименование (чтений и запись) - произвольная строка для идентификации панели. По умолчанию пустая.
Заголовок (чтение и запись) - содержимое панели.
Ширина (чтение и запись) - ширина панели. Если 0, то пытается посчитать на основании длины заголовка.

Панель создает при создании объекта и живет пока объект существует. Т.е. если надо, чтобы панель постоянно была, то надо в глобальной переменной ее создавать.
113 big
 
27.11.20
10:57
Спасибо огромное!!! ))
114 Sserj
 
27.11.20
11:30
(112) А вот бы свои панели инструментов. С произвольными размерами кнопочек на них. А то приходится себя ограничивать, нубуки с UHD мониторами даже не рассматировать. Сама 1С вроде хорошо стала масштабироваться, но вот панели инструментов со своими 16х16 иконками остаются мизерными.
115 trdm
 
27.11.20
11:51
(112) Как выглядит визуально? Это отдельный кирпич в общей панели состояния или вспывающий попуп диалог?
116 АЛьФ
 
27.11.20
12:18
2(114) Это не ко мне. Слишком заморочно. Вроде ж были решения по этому поводу.
2(115) Отдельный кирпич. Спокон веку FormEx так выводит раскладку и время текущее. Сейчас пользователь сможет любые свои. Заказчик функционала курс выводит.
117 АЛьФ
 
27.11.20
12:34
Бл... Забыл вывод тестовой инфы убрать :(
118 Злопчинский
 
27.11.20
12:41
А кнопочки в панель инструментов окна можно выводить?
https://i.ibb.co/n1GpD1k/2020-11-27-123829.png
.
вроде народ как-то делал, но как..?
119 АЛьФ
 
27.11.20
12:52
2(118) Думаю над этим.
120 Злопчинский
 
27.11.20
12:54
(119) "@АЛьФ подумал. Ему понравилось и он решил подумать ещё раз."
121 Salimbek
 
27.11.20
13:50
(118) Вроде этим пользовались: https://www.1cpp.ru/forum/YaBB.pl?num=1200401337
122 АЛьФ
 
27.11.20
13:53
Для полноты картины добавил предопределенную процедуру ПриДвойномНажатииЛевойКнопкиВСтрокеСостояния(). Может быть как в форме, так и в глобальнике.
Желающие, могут скачать релиз 158 и потестить.

Все. На сегодня хватит дуэлей!
123 fisher
 
27.11.20
13:57
Ух ты! Живой АЛьФ! Живой FormEx!
124 АЛьФ
 
27.11.20
14:13
2(123) Бу!
125 Arbuz
 
27.11.20
14:25
(121) там только свои панели можно создавать, с родными не работает
126 АЛьФ
 
27.11.20
14:56
2(118) Оказывается я на эту тему уже думал когда-то. Даже метод для раскопок остался РстширениеФормы::ДобавитьКнопкуПанели().
127 alyuev
 
27.11.20
15:39
(118) - использовал класс "DWX.ToolBar" от Chessman отсюда - http://www.1cpp.ru/forum/YaBB.pl?num=1359569054/60#60
Но использовал только для подмены стандартной функции кнопки или убирания. Но не для добавления.
128 alyuev
 
27.11.20
15:39
В смысле - убирания самой кнопки.
129 alyuev
 
27.11.20
15:40
ТулБар=СоздатьОбъект("DWX.ToolBar");
ТулБар.УстановитьКонтекстФорму(Контекст,Форма);
ТулБар.УдалитьКнопку(12,5);//Убираем кнопку (индекс начинается от 0, т.е. с 13-ой 5 штук) "Открыть Проводки", "Открыть Операцию", "В журнал Транзакций","В журнал проводок","Описание в журнале"
130 alyuev
 
27.11.20
15:42
А подмену функций делал так:

Процедура ButtonClick(КодДействия) //Событие Класса DWX.ToolBar
    Если КодДействия=32786 Тогда //New
        НовыйДокПрих(); //выбираем свою функцию
    Иначе
        ПодменитьСистемноеДействие(КодДействия,Контекст); //выбираем своё действие
    КонецЕсли;
КонецПроцедуры
131 alyuev
 
27.11.20
15:46
Но метод для добавления в классе DWX.ToolBar имеется:

Процедура ДобавитьКнопку(uID, uPic, СтатусСтрока = "", Подсказка = "") Экспорт
132 ТочноеЯдро
 
28.11.20
01:15
(118) MiracleV8 ?
133 Злопчинский
 
28.11.20
01:27
(132) Может быть, не помню...
134 АЛьФ
 
28.11.20
12:31
Оказывается добавить кнопку тулбара совсем не проблема. Проблема в ее обработке. В понедельник попробую набросать первый вариант.
135 АЛьФ
 
30.11.20
13:54
Не судьба...
136 Злопчинский
 
30.11.20
14:03
Сломался?
137 АЛьФ
 
30.11.20
14:10
2(136) Начальник выздоровел. Придется возвращаться к основной деятельности.
138 trdm
 
30.11.20
14:59
(137) Лешь, а что там у тебя с деревьями? Вроде было.
Вот такую чертовню на твой контрол заменить можно?
https://prnt.sc/vst88v
я использую v7tools
139 АЛьФ
 
30.11.20
15:03
2(138) У меня есть только выбор из дерева. Очень простенький функционал. Сами мы используем дерево на основе табличного поля 1С++.
140 Mikeware
 
30.11.20
15:05
(139) а покажи, плз, как выглядит.
141 trdm
 
30.11.20
15:12
Ну, мне пометки нужны.
142 АЛьФ
 
30.11.20
15:34
2(140)
143 АЛьФ
 
30.11.20
15:35
144 АЛьФ
 
30.11.20
15:38
+(143) А вот и наврал. Это из FormEx перехват ТЗ на форме. Давно делалось, забыл совсем.
145 АЛьФ
 
30.11.20
16:00
2(141) Если так будет, устроит?
https://prnt.sc/vsup4q
146 Djelf
 
30.11.20
16:58
(140) На ТП из 1С++ можно и так https://gyazo.com/6acd1a1e5d3c11c96f755efdc958628b
147 trdm
 
30.11.20
17:30
(146) Хачу :)
148 trdm
 
30.11.20
17:31
Поиск же работает?
149 smitti911
 
30.11.20
18:14
(145) Если будет включено в сборку- напишите
150 АЛьФ
 
01.12.20
10:06
Значит так...
Добавил метод Сервис::ПолучитьМодульВнешнейОбработки(<ПолныйПутьОбработки>) для получения текста модуля внешней обработки.

Добавил функционал пометки в объект "дерево+таблица".
Если в таблице-основе есть колонка с именем "Пометка"("Check"), то включается режим пометки, добавляется бокс для пометки рядом с пиктограммой. Начальные значения берутся из колонки "Пометка". При изменении пометки, значения в этой колонке изменяются. Для контроля за пометкой добавлена предопределенная процедура ПриПометкеУзла(<НомерСтроки>,<УстанавливаемоеЗначение>,<ФСО>), которая вызывается до изменения пометки и в которой можно отменить изменение пометки.

Выложено на formex.dorex.pro
151 Ёпрст
 
01.12.20
10:55
(150) А может добавишь метод Сервис::ПолучитьАктивнуюФормуСтрокой(<Форма>) который возвращал бы открытую указанную форму в виде, как это турбомд делает и хранит в файлах ?
152 МишельЛагранж
 
01.12.20
11:00
А как все это на Win8 работает? На Win10? Или все уже забили - как только организация с WinXP уходит, так сразу и увольняются?
153 Ёпрст
 
01.12.20
11:03
(152) ты не поверишь, работает на win2016+sql2019
154 Ёпрст
 
01.12.20
11:04
ну и на 8/10x64 тоже отлично работает
155 МишельЛагранж
 
01.12.20
11:10
(154) да ну? А у нас даже на Win8 с 7.7 на SQL проблемы возникли, пришлось вернуться на dbf.
156 АЛьФ
 
01.12.20
11:40
2(152) У нас терминл на WS2016. Скуль не помню какой.
157 АЛьФ
 
01.12.20
11:41
2(151) Зачем?
158 Ёпрст
 
01.12.20
22:20
(157) Есть у меня класс, в котором я режиме предприятия элементы двигаю куда надо, хотелось бы выгрузить форму и турбомд скормить
159 Ёпрст
 
01.12.20
22:21
http://catalog.mista.ru/public/20885/

так, мот бы доделал его что ле..через активмд мог бы, но руками лень прописывать все контролы.
160 Cthulhu
 
01.12.20
23:11
Лёша, походу ты случайно хотя бы приблизительно не анализировал - в принципе проблема 2038-го года может быть решена в 77 ?.. и если да - то насколько большой кровью (затраты и объемы поправок в самой одинэсине или доп.компоненты)?..
161 Sserj
 
02.12.20
03:40
(160) Думаешь ее нужно решать? Может таки стоит подумать о смене технологий. 17 лет это достаточно чтобы с нуля даже на чем то голом типа явы переписать.
162 trdm
 
02.12.20
06:00
(161) 7-ка для мелких и средних кампаний - самое то что надо.
усложнение не всем нужно. у нее своя ниша.
163 Sserj
 
02.12.20
06:10
(162) Дело не в усложнении, дело в том что она просто не хочет работать с новым оборудованием, к примеру те-же UHD экраны, не масштабируется нормально :(
Приходится свои поделки, служившие по 15 лет, с тяжким вздохом переписывать.
164 trdm
 
02.12.20
06:15
(163) ну и что? на другом оборудовании работает.
165 АЛьФ
 
02.12.20
10:03
2(158) Понятно. Попробую сделать.
2(160) Я об этой проблеме только из этой ветки узнал. Глянул пока только место, где выводится предупреждение в 1С. Как там глубоко эта проблема в 1С сидит не анализировал. Предполагаю, что придется все же 7.7 списать на свалку истории.
166 trad
 
02.12.20
10:27
а что за проблема 2038 (в двух словах)?
167 Mikeware
 
02.12.20
10:50
(166) "не работает"© :-)
168 Злопчинский
 
02.12.20
10:55
(165) ну, к этому времени может нас уже спишут на свалку истории, так что не будем кипишить раньше времени.
но как повторял мой сисадмин "удача любит подготовленных" (Суворов?) - подготовиться лучше сейчас...
169 Mikeware
 
02.12.20
11:00
(168) странновато было бы ожидать еще 18 лет жизни клюшек.
170 Djelf
 
02.12.20
11:15
(166) В (84) я показал скрин проблемы. Там на самом деле не так много патчить придется.

  ДатаСмерти1С="01.13.2038";
  Сообщить("1С 7.7 жива = "+ДатаГод(ДатаСмерти1С));

> 1С 7.7 жива = 0
171 Злопчинский
 
02.12.20
11:21
(169) ну ты пессимист... с учетом что клюшки успешно пережили 9.0,8.1,8.2, и можно сказать и 8.3 - еще неизвестно кто выживет. динозавры вон неповоротливые вымерли. а акулы - остались...
172 АЛьФ
 
02.12.20
11:30
173 АЛьФ
 
02.12.20
11:32
Обнаружилась большая фигня с панелями строки состояния. Если кто уже нацелился на этот функционал, притормозите пока. Буду там конкретно переписывать.
174 Mikeware
 
02.12.20
11:36
(171) 9.0 ???
может, 9/11 ?
ну а если серьезно, то 40 лет - слишком большой срок жизни для программных систем. Я вполне знаю, что на клюшках можно сделать почти все. Но могу ожидать, что всех загонят в "цифровой концлагерь", где вся продукция будет маркироваться, все банковские транзакции будут возможны только по одобрению регулятора и т.п. дебилизм. И вонленс-неволенс, но придется....
т.е. причины будут далеко не технологические, а глубину сволочизма и идиотизма наших руководятлов и педопупов мы склонны недооценивать.
175 trad
 
02.12.20
11:43
(174) пока в этом цифровом концлагере http не запретят, почему бы всякие маркировки и т.п. не продолжать делать из 77, я не уловил
176 Злопчинский
 
02.12.20
11:45
(174) "ну а если серьезно, то 40 лет - слишком большой срок жизни для программных систем."
да и хрен с ним. торговля как была так и осталась торговлей.
в основе нихрена не поменялось. для кого-то достаточно "запрограммить основу".
.
вон машины вовсю развиваются, но что-то не у всех формула-1 или камаз или даже астон-мартин. народ с удовольствием на великах ездит. обвешал только всякими примочками. чисто клюшки ;-)
177 Харлампий Дымба
 
02.12.20
12:31
(170) Ну если ограничить календарь двенадцатью месяцами, то
> 1С 7.7 вполне себе жива = 2038
178 Mikeware
 
02.12.20
12:35
(175) хттп не запретят. заставят "работать в облаках". например.
и ничего тебе не отдадут и не примут по хттп.
дурь? но ведь появилась инициатива у "подозрительных клиентов" все остатки перечислять в бюджет?
я ж говорю, причины будут не технические.
(176) 40-летний автомобиль - это, например, Москвич карбюраторный с контактным зажиганием. Да, у меня сын сейчас рассекает на таком - но это у него вторая машина, и не для "повседневности".
"торговля осталась торговлей", но всякие БЭСТы, инфобухгалтеры и турбобухгалтеры как-то схлынули. СмогЁшь сделать Меркурий, шубоис, егаис и маркировку на ФинансахБезПроблем? "Основа" там запрограммлена... :-)
179 Злопчинский
 
02.12.20
12:45
(178) злой ты, непозитивный...
180 Mikeware
 
02.12.20
12:51
(179) эт да, "пессимист - это хорошо информированный оптимист".
181 Cthulhu
 
02.12.20
13:26
(161),(163),(174),(178):
дружно вспоминаем о коболе, родившемся в 1959 году. на котором (коболе) к 1997 году активно использовалось около 240 миллиардов строк кода, которым обрабатывалось около 90 % финансовых транзакций в мире и 75 % коммерческих транзакций...
еще раз, по слогам: для 77 есть своя ниша, причем весьма немалая. как бы кому ни хотелось иного.
182 Djelf
 
02.12.20
13:50
(177) Ой ;) Что то я не то сморозил! С дуру перепутал месяц и день...
Странно, по коду в type32.dll вроде из строки сначала в юникстайм, а потом обратно.
И там отрицательные значения иникстайма обнуляются.
Может это "мертвый" код и он не используется? Или используется только при запуске для вычисления текущей даты?
Тогда еще проще будет поправить.
183 Djelf
 
02.12.20
15:04
+(183) Зря поднял панику. CDate внутри себя хранит дату в днях начиная с юлианского года. Т.е. с 1721061 дня.
Текущая дата получается через kernel32::GetLocalTime((LPSYSTEMTIME)&lpSysTime); т.е. структуру разложенную на части даты.
Т.е проблеме 2038 7.7 не должна быть подвержена, на современных Windows, ну может быть на Windows 98 или 2000 проявится...
184 Злопчинский
 
02.12.20
15:08
(183) так вроде выше на вин10 пробовали = жпс типа
185 trdm
 
02.12.20
16:04
(183) на 7-ке x64  проявляется.
186 Djelf
 
02.12.20
16:15
(185) Как это можно проверить? Какая функция начинает косячить?
Ghidra же выдает шикарный код, почти везде сразу понятно что да как, а вклинится в проблемное место не так сложно.
187 trdm
 
02.12.20
16:21
(186) дату в системе поставь 01.01.2038 г. и попробуй запусть v7
188 Djelf
 
02.12.20
16:23
(184) Там другое, там 1С блокирует собственный запуск. АЛьФ же в (76) написал: "Хорошо, что патчится легко."
Это первый этап, второй этап понять где и что будет косячить.
(187) А еще если потом перезагрузить, то судя по всему будет совсем не хорошо https://habr.com/ru/post/110174/ пишут дата скаканет на ~14000 лет вперед ;)
189 Харлампий Дымба
 
02.12.20
16:58
(76) Огласите, пожалуйста, патч - положу в загажничек.
А то и ишак и шах выглядят на удивление крепкими и здоровыми.
190 АЛьФ
 
02.12.20
17:22
2(189) Ну, готового патча я не делал. Просто глянул, что там простая проверка на дату. Достаточно в этом месте dll прописать 0x0FFF и будет проверять до 4095 года.
2(151) Форму строкой не получилось. Это надо полностью писать сохранение с экрана в поток. Все, что есть у 1С сделано для разворачивания формы. Обратное, скорее всего, есть где-то в конфигураторе, но так просто из режима предприятия не достучаться.
191 MWWRuza
 
02.12.20
21:29
(190) до 4095 года.
Ууууу... А дальше что делать  :-)))
Коллеги, сколько Вам сейчас лет? Еще 18 прибавьте... А клиенты ваши, еще 18 лет просуществуют? Мне, как-то, перспектива жопы в 2038 году, сильно не напрягает... Лично мне, будет(если будет) 72 года :-(
192 Злопчинский
 
02.12.20
22:04
(191) вместе нам будет 144! это 12 в квадрате. это - неспроста!!!
193 Cthulhu
 
02.12.20
22:09
(192): https://aboutnumber.ru/144
Целое действительное трёхзначное четное число 144 – составное число. Произведение всех цифр: 16. Делители числа 144: 1, 2, 3, 4, 6, 8, 9, 12, 16, 18, 24, 36, 48, 72, 144. Обратное число к 144 – это 0.006944444444444444.
Число 144 можно представить произведением простых чисел: 2 * 2 * 2 * 2 * 3 * 3.
Число 144 в других системах счисления: двоичная система счисления: 10010000, троичная система счисления: 12100, восьмеричная система счисления: 220, шестнадцатеричная система счисления: 90. Количество информации в числе байт 144 это 144 байта .
Число азбукой Морзе: .---- ....- ....-
Синус числа: -0.4910, косинус числа: 0.8711, тангенс числа: -0.5636. Логарифм натуральный числа 144 равен 4.9698. Десятичный логарифм числа: 2.1584. Квадратный корень числа 144: 12, а кубический: 5.2415. Число в квадрате это 20736.
2 минуты 24 секунды представляет из себя число секунд 144. Нумерологическая цифра этого числа — 9.
остальное - по ссылке.
194 trad
 
02.12.20
22:56
(191) я даже на пенсию ещё не выйду )
195 Ёпрст
 
03.12.20
00:19
(190) ясно, ну и ладно, а было бы неплохо в поток её не руками.. )
196 trad
 
03.12.20
10:08
(190) .2
Попробуй сюда копнуть:
CGetDoc7::m_pEditDoc->SaveToStream(struct IStream *);

где
CEditDoc* m_pEditDoc; //420h
197 АЛьФ
 
03.12.20
10:15
2(196) Я именно туда и копал. Именно там хранится поток для инициализации формы. Все, что с формой потом происходит обратно в CEditDoc не уходит.
198 trad
 
03.12.20
10:21
(197) ааа, вот оно че
199 АЛьФ
 
04.12.20
14:14
Полностью переделал работу с панелями строки состояния.
Если есть у кого желание, потестите, пожалуйста: https://yadi.sk/d/SaGiKhu0fjokHw
200 smitti911
 
04.12.20
16:06
(199) При создании Панель = СоздатьОбъект("ПанельСтрокиСостояния"); Панель.ДобавитьПанель("Пан1","Панелька",50,,1); все остальные пропадают.
201 АЛьФ
 
04.12.20
17:20
2(200) Где именно создаётся объект (обработка, глобальник)?
202 АЛьФ
 
04.12.20
17:22
2(200) Кажется понял. В методе ДобавитПанель все параметры обязательные. Забыл закрыть значения по умолчанию.
203 smitti911
 
04.12.20
17:56
(201)в обработке
204 АЛьФ
 
04.12.20
19:10
2(203) Если указать явно все параметры, глюк проявляется? Что-то у меня не получается воспроизвести.
205 smitti911
 
04.12.20
19:37
(204) Перем Панель;
//*******************************************
Процедура Сформировать()
    Панель.ВыбратьПанели();
    Пока Панель.ПолучитьПанель() = 1 Цикл
        Сообщить("Панель Код "+Панель.Код+" заг "+Панель.Заголовок);
    КонецЦикла;

    КодНовойПанели = Панель.ДобавитьПанель("ПанПанПан","Панелька",50,0,1);
    Сообщить(" КодНовойПанели "+КодНовойПанели);
    
    Панель.ВыбратьПанели();
    Пока Панель.ПолучитьПанель() = 1 Цикл
        Сообщить("___Панель Код "+Панель.Код+" заг "+Панель.Заголовок);
    КонецЦикла;
КонецПроцедуры

//======================================================================
Процедура ПриОткрытии()
    Панель = СоздатьОбъект("ПанельСтрокиСостояния");
КонецПроцедуры // ПриОткрытии


Процедура ПриДвойномНажатииЛевойКнопкиВСтрокеСостояния(ИдентификаторПанели)
    Сообщить("Панель Иднт "+ИдентификаторПанели);
КонецПроцедуры


Открываю обработку, жмакаю по системным панелям и получаю их идентификаторы. Посля нажатия Сформировать системные панели пропадают а слева добавляется моя "Панелька".
206 smitti911
 
04.12.20
19:39
207 АЛьФ
 
04.12.20
19:43
2(205) А FormEx где грузится?
208 smitti911
 
04.12.20
19:56
(207) в глобальнике ПриНачалеРаботыСистемы
209 АЛьФ
 
04.12.20
19:58
2(208) Воспроизвел. Буду исправлять.
210 АЛьФ
 
04.12.20
20:09
2(208) Вроде поправил. Выложено по тому же адресу: https://yadi.sk/d/SaGiKhu0fjokHw
211 Злопчинский
 
04.12.20
20:12
эххх если бы еще сделал автоподбор размера шрифта чтобы текст вписывался в контрол... ну хотя бы для текстовых надписей на форме... @Hogik такую штуку сделал, но у ней есть ограничения в применении...
212 АЛьФ
 
04.12.20
20:14
2(211) Это надо отрисовку контрола перехватывать. Могу попробовать просто расчет сделать. Передаешь строку и шрифт, возвращает размер, который строка займет.
213 Злопчинский
 
04.12.20
20:15
(212) ну, можно попробовать. с учетом того надо что строка с переносами в текстовом контроле м.б. а не в одну строку...
214 Duke1C
 
06.12.20
14:22
(118) - (132) подтверждаю.
Причем сто лет назад сделано. До сих пор работает. Только что проверил на Win10х64.
При нажатии на кнопку генерируется штатное внешнее событие
215 Duke1C
 
06.12.20
14:30
216 АЛьФ
 
07.12.20
09:27
2(213) Добавил метод Окна::ПолучитьРазмерТекста(). К сожалению, системная функция GetTextExtentPoint32 воспринимает переданный текст, как одну строку. Поэтому для многострочных текстов надо будет делать цикл и каждую строку считать отдельно.

Добавил возможность вывод картинок в панель строки состояния.

Для тестов:
https://yadi.sk/d/SaGiKhu0fjokHw
217 Злопчинский
 
07.12.20
10:16
(216) ''''? а как я узнаю сколько строк НЕ В МНОГОСТРОЧНОМ ТЕСКТСЕ, а в текстовой надписи?
218 АЛьФ
 
07.12.20
10:33
2(217) Это типа при выводе с автопереносом? Берешь текст, который выводится, отправляешь в этот метод. Потом полученное число делишь на ширину атрибута формы. Получаешь на сколько строк разобьется текст при автопереносе.
219 Злопчинский
 
07.12.20
10:36
(218) ээээ, это будет приблизительно. и хорошо отрабатывать будет только когда ширина большая, а слова короткие, когда перенос хорошо попадает на пробел между словами.
.
и хочется получить размер шрифта, при котором текст вписывается в текстовый реквизит...
220 Андрей_Андреич
 
07.12.20
10:51
(219) Вспоминая из юности - выводил тексь в ячейку экселя с автовысотой строки и смотрел высоту.
221 АЛьФ
 
07.12.20
10:55
2(219) Так все в твоих руках. На основе этого метода все можно сделать.
222 Злопчинский
 
07.12.20
11:13
(221) у, блин. а как? пока непонятно...
223 АЛьФ
 
07.12.20
11:18
2(222) Берешь свой текст, берешь шрифт размером 20. Считаешь сколько текст займет по горизонтали. Берешь размер реквизита, в который надо вписать. Делишь, получаешь коэффициент увеличения/уменьшения шрифта. Вычисляешь новый размер шрифта. Считаешь размер текст для него, корректируешь при необходимости на пару пунктов.
224 Андрей_Андреич
 
07.12.20
11:29
(222) Создаешь объект экселя. Задаешь нужную ширину ячейки и выводишь в него текст. Задаешь автоперенос. Считываешь высоту ячейки. Не нравится - уменьшаешь и читаешь снова.
225 Андрей_Андреич
 
07.12.20
11:30
(224) Не нравится - уменьшаешь шрифт и читаешь высоту снова
226 Злопчинский
 
07.12.20
12:04
(224) эксель - стороннаяя хрень. ее не хочется юзать без острой необходимости.
227 Злопчинский
 
07.12.20
12:05
(223) это не дает гарантии что количество получившихся строк с учетом переносов будет совпадать с получившимся расчетом.
228 АЛьФ
 
07.12.20
12:14
2(227) Хочешь гарантию, сам вставь переносы строк в расчетных местах.
229 АЛьФ
 
07.12.20
12:15
2(227) Ты можешь расписать более подробно задачу с парой примеров?
230 Злопчинский
 
07.12.20
12:29
(229) да, сделаю, попозже.
231 Злопчинский
 
07.12.20
12:32
(229) задача аналогичная как вот здесь у меня: http://catalog.mista.ru/public/181223/
только вместо этикетки - экранная форма. на форме - реквизит "Текст". В этот реквизит может выпихиваться текст произвольной длины (разумной, конечно). Тебуется чтобы текст произвольной длины вписался в текстовый реквизит.
232 Злопчинский
 
07.12.20
12:33
.. на первом этапе считаем что в выводимом тексте нет принудительных переносов строк
233 mishaPH
 
модератор
07.12.20
13:58
Друзья. после подключения формэкса в тис выявлен неожиданный глюк.

дано.
на экран выводится монопольная форма (ввод числа или строки) если в это время продавец случайно просканирует чтото и отработает обработка внешнего события то оно срабатывает за этой якобы монопольной формой, отрабатывает нормально в чек даже товар попадает НО 1с зависает колом спасает только перезагрузка. Я так подозреваю, что и штатная обработка ожадания отработав в фоне подвешивает 1с.

все началось после запуска формэкса. т.к. до этого не жаловались много лет.

это както лечится?
234 Злопчинский
 
07.12.20
14:54
(233) есть такое в мнопольно открытой форме обработкавнешнегособытия проваливается в самую внешнюю верхнюю обработку.
235 Злопчинский
 
07.12.20
14:54
с формексом или нет - не знаю. без формекса не проверял.
236 trdm
 
07.12.20
15:53
(233) Отладчиком погулять лучше.
237 trdm
 
07.12.20
15:54
такие формы кличут модальными.
238 mishaPH
 
модератор
07.12.20
16:29
(236) (237) и что там гулять то? проблема есть перефокуссировка с модальной формы. Просто никто не жаловался на подобное до момента, пока в магазинах не завел раскраску всего и вся подключив формэкс. Вот и связал сэтим. Как будто с формэксом модальное окно уже не окно. Ранее же мод модальным ничего не работало далее

может я конечно не прав
239 trdm
 
07.12.20
16:44
(238) Ну с ВК и не такие чудеса случаются.
240 Злопчинский
 
07.12.20
16:49
..из-за этого пришлось чудить с обработкой-диспетчером для запуска молнопольных обработок. Сейчас вот тоже аналогичный проект будет. опять извращаться...
241 trdm
 
07.12.20
17:05
(240) В чем там соль?
242 trdm
 
07.12.20
17:06
(234) > есть такое в мнопольно открытой форме обработкавнешнегособытия проваливается в самую внешнюю верхнюю обработку.

Это же не особо сташно.
243 Cthulhu
 
07.12.20
17:28
(238): может и неправ.
в 77 обработка внешнего события выполняется асинхронно по месту кода привязки к нему - и плюет с высокой башни на все прочие обстоятельства. как минимум на ранних версиях 1с с этим сталкивался и с тех пор от этого программно предохраняюсь.
244 big
 
07.12.20
18:23
А если сделать запрет поступления данных со сканера, а потом только открывать модальное окно? Соответственно, после закрытия разрешать работу сканера. В атоловском драйвере это используется точно, как в штатном 1с-овском я не знаю.
245 big
 
07.12.20
18:24
(244) Собснно - костыль, конечно же, но тем не менее.
246 MWWRuza
 
07.12.20
20:38
Тут проблема похоже в том, что эта новая, самая "верхняя" форма не имеет модуля, если это ввод числа или строки. Если вы сами рисуете форму, то не трудно туда обработку внешнего события вставить, с одной  строчкой, типа "Скан.ПосылкаДанных = 1"... А так, сканер пикает, форма получает внешнее событие, и сканер задумывается в ожидании разрешения дальнейшей работы. Я думаю, в (244) правильное направление. Надо подумать, как это реализовать.
247 mishaPH
 
модератор
07.12.20
20:40
(244) да как вариант.
248 mishaPH
 
модератор
07.12.20
20:42
типа перед формой глСканерПосылкаДанных(0) делать а после глСканерПосылкаДанных(1)
249 victuan1
 
07.12.20
20:44
(248) А если в этой модальной форме нужно принять событие от сканера?
250 MWWRuza
 
07.12.20
20:49
(249) Какой? Системной ввод числа или строки? Как это можно сделать?
А если уж так нужно, то рисуй свою, аналог системной, которую будешь открывать методом ОткрытьФормуМодально, а в ней уже модуль будет, а в нем можно разместить обработку внешнего события...
251 mishaPH
 
модератор
07.12.20
20:49
(249) для моей задачи модальная форма это штатное ввестистроку() а если какая произв форма модальная то кто мешает там прописать обработкувнешнего события и сканер тогда с ней будет работать
252 Злопчинский
 
07.12.20
21:03
(250) хрен там. если в однйо модальной форме есть ОбработкаВнешнегоСобытия для сканера и она открыта первой, а из нее открыта дочерняя модальная форма также с ОбработкаВнешнегоСобытия - то при сканировании в дочерней форме - нихера не происходит, при закрытии дочерней формы - ДОЧЕРНИЕ сканирования отрабатываются в родительской. что есть жпс.
253 victuan1
 
07.12.20
21:40
(251) Не будет же, проблема в (233) описана.
254 victuan1
 
07.12.20
21:44
(253) стоп. не то... вспоминаю... в чем была у меня проблема...
255 victuan1
 
07.12.20
21:58
Вспомнил свою проблему, правильный ответ на нее таки в (244). Надо только придумать как правильно в универсальном виде заблокировать ОбработкуВнешнегоСобытия перед открытием системного модального окна.
256 Злопчинский
 
07.12.20
22:21
а по поводу (252) кто-нить может прокомментировать?
257 MWWRuza
 
07.12.20
23:46
(256) Да, ты прав. Сейчас набросал тестик небольшой, именно так и работает...
Модальное окно перехватывает внешнее событие у не модального, из которого его открыли, а если из него открыть еще одно модальное, то в нем не отрабатвает ВС.... Но, если его закрыть, в предыдущее - прилетает.

КартинкО: https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-367.jpg

Конфа для экспериментов: https://cloud.mail.ru/public/2juU/BFuX2fpNo
258 MWWRuza
 
07.12.20
23:50
Поясню. Меню Тест. Окно1 не модальное, окна 2 и 3 - модальные. По кнопкам "Выполнить" открываются последующие окна. ОбработкаВнешнегоСобытия() одинаковая во всех трех окнах. ВК грузится из ГМ при старте.
259 MWWRuza
 
07.12.20
23:55
При желании, можно конечно извратиться, через закрытие - повторное открытие формы сделать перехват данныз в Окно3 из Окна2... Или ложное закрытие попробовать применить. Но лениво... Задачи такой живой нет, только "ради науки" если :-)
260 MWWRuza
 
08.12.20
00:07
Но, кстати, добавил системное окно - "ВестиСтроку", ничего не вешается, при сканировании, но и ничего не происходит вообще. Закрываешь его - данные в предыдущее окно прилетают, все точно так-же, как и в случае своего Окна3. Только в случае своего, можно "извратиться" и перехватить данные из Окна2, а в случае системного, так не прокатит...
261 Злопчинский
 
08.12.20
00:26
(259) "Задачи такой живой нет," - да запросто.. пошаговый процесс отбора из рабочих ячеек например. да, можно все запихнуть в одну форму, на разные слои (сканирвоание ячейки, сканирование товара, еще всякие нужные сканирования), но это будет аццкая обработка... пробовал так, неподьемно и неудобно... хочется каждый отдельный "ввод данных" иметь в виде отдельно йобработки. чтобы вязать разные сценарии...
262 Злопчинский
 
08.12.20
00:28
(259) "повторное открытие формы сделать перехват данныз в Окно3 из Окна2... " - можно, но погано.. промаргивание формы будет, и вдобавок когда массив данных большой передается от формы к форме - тоже надо все учитывать...
все проще должно бьыть.
263 Злопчинский
 
08.12.20
00:28
(258) кстати, а без ВК - есть такая проблема с внешним событием в дочерних модальных окнах?
264 victuan1
 
08.12.20
04:28
(260) А если перед этим был загружен Формекс?
265 mishaPH
 
модератор
08.12.20
07:34
(260) а вот у меня с форэксом или нет но при открытой ввести число скан отрабаиывается в предыдущей немодальной форме как будто ЗО модальной, в чеке товар появляется и т.п. модальное ввод числа висит далее и ни на что уже не реагирует заблокировав 1с
266 trdm
 
08.12.20
08:28
Значит нужна пара глобальных процедур типа
ПослеСозданияФормы
ПослеЗакрытияФормы
с анализом их модальности и глобальная переменная со счетчиком открытых модальных форм и отбоем в "ОбработкаВнешнегоСобытия" в глобальнике.
У сканера вроде есть проперть "ПосылкаДанных". При открытии модальных форм ставить туда 0, после закрытия всех модалок восстановить.
267 MWWRuza
 
08.12.20
10:00
(263), (264), (265) Это голая 1С, из ВК только ScanOpos... Вечером сегодня попробую загрузить Формех, посмотрю, поменяется что или нет. Тогда отпишусь...

(265) в чеке товар появляется и т.п. модальное ввод числа висит далее и ни на что уже не реагирует заблокировав 1с

Да? Странно... У меня не получилось смоделировать такое поведение, ничего не вешается, правда без Формекса. Попробуй мою тестовую: https://cloud.mail.ru/public/2o1J/4PLvpg58X правда, там не ввод числа, а ввод строки, из модальной формы2. Но, можешь переделать в число, и  при желании перенести в форму1, не модальную... Хоть яснее станет, куда копать.
268 Злопчинский
 
08.12.20
10:05
(267) не получится, на домашнем компе нет сканера у мну
269 Злопчинский
 
08.12.20
10:06
(267) "ничего не вешается, правда без Формекса."
- т.е. если открыть модальную форму, из нее дочернюю модальную форму и в этих двух модальных формах есть ОбработкаВнешнегоСобытия - то при сканировании в открытой дочерней форме - отрабатывает ОбработкаВнешнегоСобытия дочерней формы нормально? так?
270 MWWRuza
 
08.12.20
10:07
Ну, пусть mishaPH попробует на том-же компе, где у него его рабочая конфа чудит.  Только рабочую закрыть надо, а то с ком-потами, "кто первый встал, того и тапки" :-)
271 MWWRuza
 
08.12.20
10:12
(269) Нет, не так. Не вешается, но и в дочерней модальной форме, открытой из родительской модальной, ВС не отрабатывает, его ловит родительская, и при закрытии дочерней данные в нее попадают.
НО! Ничего не вешается.
272 Злопчинский
 
08.12.20
10:13
(271) ок. у меня так же.
интересно, почему это так? и можно ли это полечить?
273 Злопчинский
 
08.12.20
10:14
..а то затрахался передвать тонну параметров для поддержания контекста выполнения...
274 MWWRuza
 
08.12.20
10:15
(268) не получится, на домашнем компе нет сканера у мну

Ну,... "Ты, это, заходи если что!(С)" - если будут какие-то идеи, набросай что-то для теста, я я попробую... У меня дома есть все.
275 MWWRuza
 
08.12.20
10:18
(271) НО! Ничего не вешается. - и для своей формы, и для системной. Это пояснение для mishaPH.
276 MWWRuza
 
08.12.20
10:37
(261) "(259) "Задачи такой живой нет," - да запросто.."

А вообще-то вспомнил. Была такая задача, давно... Из не модального окна документа ТТН_ЕГАИС, открывал форму обработки сопоставления номенклатуры, модально. В ней сканер работал, нет проблем. Если товара такого в базе не было - создавал новый, открывая его форму элемента, из этой-же формы сопоставления, тоже модально(можно было бы и не модально, но это граната для обезьян, наплодят окон, хрен разберешь потом). В нем, ВС не ловится. Но, там я как-то обошел это, уже не помню как, это в 2016 году было, как только ЕГАИС появился. Пользователи привыкли, работают, в конечном счете ШК попадают куда надо. Больше, таких задач у меня не было.
277 АЛьФ
 
08.12.20
12:11
Возвращаясь к вопросу из (219). Набросал вот предварительно: https://yadi.sk/d/V3kC9zPVoBplXQ
Отталкивая от этого, можно уже что-то свое сделать.
278 mishaPH
 
модератор
08.12.20
12:16
(266) вот хочу по этому пути пойти. завтра на действующем магазине протестирую
279 Злопчинский
 
08.12.20
12:31
(277) в 160 релизе нет такого метода?
Окна.ПолучитьРазмерТекста(_ТекстНадписи, НачальныйШрифт, РазмерТекста_Х, РазмерТекста_У);
{C:\USERS\ADMIN\DESKTOP\УЛОЖИТЬТЕКСТВНАДПИСЬ.ERT(150)}: Поле агрегатного объекта не обнаружено (ПолучитьРазмерТекста)
280 Злопчинский
 
08.12.20
12:33
(277) ага, взял тестовую сборку из этой ветки
281 Злопчинский
 
08.12.20
12:35
хм.. очень близко... уже радуюсь...
282 АЛьФ
 
08.12.20
12:39
2(281) Там главная проблема - попасть достаточно близко в начальный размер шрифта. Была мысль, что площадь, занимаемая текстом, должна быть пропорциональна площади реквизита формы. Но в зависимости от размера шрифта площадь текста не линейно изменяется. Не стал уже дальше разбираться.
283 victuan1
 
08.12.20
12:42
(277) Не попадаю размером https://prnt.sc/vy3vgh
284 Злопчинский
 
08.12.20
12:49
а вот
Сервис.СоздатьШрифт(Настройки.ШрифтФорм,РазмерШрифта, 4)
по идее Настройки.ШрифтФорм - это должно быть наименование шрифта
а там целое множество
Настройки.ШрифтФорм = "MS Sans Serif,-11,0,400,0,0,0,0,0,204,1,2,1,34"
285 АЛьФ
 
08.12.20
13:14
2(283)(284) Товарищи одинэсник, это не серьезно! Я думал, что тут люди, способные подогнать под себя и почистить глючки в готовой обработке.
Ну, вот исправление: https://yadi.sk/d/V3kC9zPVoBplXQ
286 АЛьФ
 
08.12.20
13:15
Это не готовое решение, которое типа можно взять и в рабочую конфигу запихать. Это просто направление, в котором я лично вижу решение проблемы.
287 Злопчинский
 
08.12.20
13:16
(285) Не злобствуй! если не мы - то кто бы тебя сподвиг???!!!
в этом - наша цель! ;-)
288 АЛьФ
 
08.12.20
13:29
2(287) А должна быть цель - чтобы я набухался за ваше здоровье в Новый Год на вашу благодарность.
289 Злопчинский
 
08.12.20
13:30
(288) Волшебник не разрешает! мы не хотим, чтобы тебя заебанили на год за алкоголизм! ;-)
290 Злопчинский
 
08.12.20
13:32
(288) ну ты скинь в личку кошелек, я малость поспособствую.
.
тут еще хорошо бы все эти расчеты именно расчетную часть - "унутрь" метода куда-нить запихнуть, передавая в него только параметры...
бо если Уложить() в ПослеОткрытия() вписать - замедлением малость есть...
но это пока некритично...
291 Злопчинский
 
08.12.20
13:34
..шрифт надо половинным делением подбирать, чтобы побыстрее было...
292 Злопчинский
 
08.12.20
13:40
Погонял малость.
Практически идеально.
Иногда получается что вариант "за шаг до" - визуально выглядит правильнее, типа так
https://ibb.co/3FD3Npf

- можно как-то понять, что "за шаг до" являеется приемлемым? Типа "погрешность" в 1-2 пиксела по вертикали не является критичным..?
293 АЛьФ
 
08.12.20
13:43
2(289) Пффф! Ерунда какая.
2(290) Нееее... Это ж от сердца должно идти. А тут получается я выпрашиваю.
2(291) Это как раз большое поле для размышлений.
2(292) Ну, так задай при вызове функции ТекстПомещаетсяПоВысоте значение параметра МаксимальнаяВысота на пару единиц больше.
294 АЛьФ
 
08.12.20
13:45
+(293) Но если от сердца пойдет, то у меня на сайте  КЗК есть телефон, к которому карта привязана :)
295 Злопчинский
 
08.12.20
13:45
А высота и ширина атрибута - в чем меряются?
296 Злопчинский
 
08.12.20
13:46
(293) "А тут получается я выпрашиваю."
вот тебе и трындец, будешь теперь мучатся ;-)
297 Злопчинский
 
08.12.20
13:50
(293) а вот совсем уже.
.
аналогичная хрень нужна и для мокселя.
в ранее приведенной ссылке я делал вывод в черновик в секцию-строку с автовысотой и проверял сколько страниц получилось, если больше 1 - значит шриaт надо уменьшать.
.
а хочется аналогичный метод типа
ЯчейкаМокселя.ЗамасштабироватьШрифт(ИмяШрифтаЕслиНетТоИзНастроекЯчейки,ТекстоваяСтрокаМБспереносами,ПредельныйМинимальноЖДопустимыйразмерШрифта)
298 АЛьФ
 
08.12.20
13:53
2(295) Пиксели.
2(297) Хм... Надо будет моксель копануть.
299 Злопчинский
 
08.12.20
13:57
(298) надо!
я для склада у себя сделал "печать произвольной этикетки" (бо все не напрограммишь) - вбивают в поле нужную текстовку, автомасштабирует как выше написал и получается ок. но тут плохо то, что автомасштабирвоание в проверкой вывода оно привязано к настройкам принтера...
300 trad
 
08.12.20
14:14
(298) в личку кинул свой moxel.h
вдруг чем поможет
301 АЛьФ
 
08.12.20
14:16
2(300) Спасибо.
302 Злопчинский
 
08.12.20
14:18
(299) .. и если вдруг принтер стоит не этикеточный, а а4 - то плохо. некритично, но мое чувство прекрасного бастует
303 АЛьФ
 
09.12.20
09:35
Копанул моксель.
Самое очевидное решение - перехватить CSheetView::PaintText() и вызывать глобальную предопределенную процедуру для определения масштаба текста. В этом методе есть собственно текст, размер области, в которую текст надо вписать. Туда передается формат ячейки. Там можно определить для печати рисуется ячейка или для экрана.
Главный минус, который вижу - будет тормозить отрисовка и подготовка к печати, если излишне усложнить алгоритм в своей процедуре. Вплоть до полного зависона.
304 АЛьФ
 
09.12.20
09:36
+(303) Ах, да. Там еще надо что-то придумать, чтобы определять надо этот текст масштабировать или нет. Но это, думаю, можно и через маркеры в тексте сделать.
305 АЛьФ
 
09.12.20
09:45
+(303) Еще забавную фичу можно сделать - менять текст в ячейке в зависимости от того на экран идет отрисовка или на принтер.
306 tgu82
 
09.12.20
09:54
(305) Скоро получится 7-ка на УФ такими темпами )
307 Злопчинский
 
09.12.20
09:55
(306) давно пора. а то этот снеговиктормоз
308 Mikeware
 
09.12.20
09:57
(305) прям мечта махинаторов...
(306) Невозможного нет.
309 tgu82
 
09.12.20
10:03
(307) Да если через веб-сервер - то летает просто 8-ка
310 АЛьФ
 
09.12.20
10:04
2(306) Единственная сложность, которую вижу - согласованность Конфигуратора и Предприятия. Теряется универсальность платформы разработки.
311 mishaPH
 
модератор
09.12.20
13:10
(265) короче. помогла конструкция

            глМожноработатьОбработчикуПроцессов = 0;
            глСканерПосылкаДанных(0);            
            Если ВвестиЧисло(СуммаБонусаЗапросА,"Введите сумму бонусов ",10,2,60) = 0 Тогда
                СуммаБонусаЗапросА = 0;
            КонецЕсли;
            глСканерПосылкаДанных(1);            
            глМожноработатьОбработчикуПроцессов = 1;

глМожноработатьОбработчикуПроцессов  соит в обработке ожидания. ее тоже отключаем т.к. в ней много чего запускается.
312 victuan1
 
09.12.20
14:15
(311) А разве обработка ожидания сработает если висит системное модальное окно ВвестиЧисло?
313 mishaPH
 
модератор
09.12.20
14:17
(312) вот в том проблема. что срабатывает и обработка ожидания когда например пометка списка значений и внешее событие
314 Volodja
 
09.12.20
14:18
(0) Некорректно отрабатывает УдалитьОбластьТаблицы()
Если удаляемые строки в окне видны, то все ок, удаляет.
Но если их часть не видна, то 1с отправляется в долгое плавание.
315 АЛьФ
 
09.12.20
14:23
2(314) Можешь набросать тестовую обработку?
316 Volodja
 
09.12.20
16:53
(315) Разобрался.
Если я вызываю ОбработкуЯчейкиТаблицы()
и в ней удаляю строки, в которую  входит ячейка-инициатор, тогда 1с зависает.
Вообще, можно это подлечить?
317 Volodja
 
09.12.20
16:53
(315) нужна тестовая обработка?
318 Volodja
 
09.12.20
16:57
(315) Удаляет то все корректно. Видимо 1С не ожидает что ячейки-инициатора уже нет и валится
319 АЛьФ
 
09.12.20
18:38
2(316) Боюсь, что этого не починить. Но попробую глянуть.
320 Volodja
 
09.12.20
19:18
Еще одна просьба:
После использования метода    Сервис.КопироватьОбластьТаблицы(ТабДиаграмма,1,1,ТабДиаграмма.ВысотаТаблицы(),ТабДиаграмма.ШиринаТаблицы(),ТабОстатки,ТабОстатки.ВысотаТаблицы()+1,1);

В таблице они сразу не отображаются, пока не выделишь область курсором
я пока так выкручиваюсь:
    _Окна=СоздатьОбъект("Окна");
    _Ширина=2;
    _Окна.РазмерОкна(,_Ширина);
    _Окна.РазмерОкна(,_Ширина);

Но это некрасивый костыль. Окно, особенно в терминале, видно как меняет размер
321 АЛьФ
 
10.12.20
08:52
2(316)(320) Хм... Не подтверждается у меня. И из обработки ячейки таблицы не валится, и при копировании сразу изменения отображаются. Нужна тестовая обработка, на которой явно будут воспроизводится глюки.
И проверь, плиз, что грузится последняя версия FormEx.
322 Volodja
 
10.12.20
10:03
formex 2.0.5.154 у меня.
А как здесь приложить файл?
323 Volodja
 
10.12.20
10:06
Обработка, в которой возникает зависание.
Щелкни по любому столбцу диаграммы
https://cloud.mail.ru/public/3f8u/4yfEfp3KH
324 АЛьФ
 
10.12.20
10:08
2(322) Рекомендую скачать текущую версию.
325 АЛьФ
 
10.12.20
10:08
2(323) Спасибо, гляну.
326 Volodja
 
10.12.20
10:10
А проблема с отрисовкой  может быть из-за ОС
У меня еще win 7 32х
327 АЛьФ
 
10.12.20
10:13
При щелчке по столбцу заходит в условие с выводом "Величина данного значения", а там нет удаления строк. Сейчас попробую переделать сам.
(326) Может быть поможет Таблица.Показать()
328 АЛьФ
 
10.12.20
10:16
+(327) Не, ни фига. Удаляет строки без зависания. Может быть это глюк уже исправлен. Как и отрисовка. Проверь у себя на новой версии компоненты.
329 Volodja
 
10.12.20
10:22
А это с проблемой перерисовки.
сначала нажми по ячейке "Показать диаграмму"
https://cloud.mail.ru/public/58CB/2UDRfPTD9
330 АЛьФ
 
10.12.20
10:24
2(329) И тут у меня нормально отрабатывает.
331 АЛьФ
 
10.12.20
10:43
Ребята, может кто-нибудь еще погоняет эти обработки?
332 Volodja
 
10.12.20
10:47
На win 2008 server также зависает.
Отрисовка на 164 нормально
333 Mikeware
 
10.12.20
10:49
(331) если только вечером дома.
Надо на какой-то специфической конфигурации (имею ввиду релиз математики/набор компонент/ось) ?
334 Volodja
 
10.12.20
10:51
Нет Formex только нужен объект "сервис"
335 АЛьФ
 
10.12.20
10:57
2(332) В виндовом журнале событий есть какая-нибудь ошибка?
336 Volodja
 
10.12.20
11:05
Только Application Hang
Но это только после того, когда принудительно останавливаю процесс
337 АЛьФ
 
10.12.20
11:37
2(336) Если после удаления строк поставить предупреждение, оно выводится? В ккой момнт вообще происходит зависание - в методе FormEx или уже после выхода из обработки ячейки таблицы?
338 Volodja
 
10.12.20
11:54
Видимо перед выходом из обработки ячейки. Я проверял УдалитьСтроки отрабатывют отлично. Сообщение после удаления выходит. И тут же зависает.
339 Volodja
 
10.12.20
11:56
Я уже переделал у себя, чтобы при удалении строк не удалялись строки ячейки-инициатора. Работает отлично.
340 АЛьФ
 
10.12.20
12:15
2(339) Не должно так быть. Даже в штатном режиме в обработке ячейки таблицы можно эту таблицу перестроить и ячейка-инициализатор будет удалена. Но ведь это не приводит к зависанию. Значит дело в чем-то таком, что в 1С не предусмотрено. Либо у меня недорабатываются какие-то текущие установки таблицы.
Надо отловить.
341 Злопчинский
 
10.12.20
14:10
(323) ничего не зависает. выходит предупреждение "Величина данного значения:"
вин64 домашняя
342 Злопчинский
 
10.12.20
14:12
(329) тоже все норм отрабатывает. зависаний нет.
343 Злопчинский
 
10.12.20
14:12
Formex - 164 релиз
344 smitti911
 
10.12.20
14:27
(341) у меня тоже все ок
345 Volodja
 
10.12.20
14:31
(342) У вас я понял уже появилась и вторая диаграмма.
У меня уже зависает после вывода предупреждения "Щелкнули по диаграмме"
Вторая диаграмма не появляется
346 Volodja
 
10.12.20
15:05
Вроде понял.
У вас после нажатия отрабатывает этот блок:
1.    ИначеЕсли Найти("Число,Строка",ТипЗначенияСтр(_ЗначениеРасшифровки))>0 Тогда
         Предупреждение("Величина данного значения: "+РазделительСтрок+_ЗначениеРасшифровки,10);

У меня отрабатывает этот
2.    Иначе
        Предупреждение("Щелкнули по диаграмме");
        УдалитьДвижение();
        ВывестиДвижение();

Удалите 1 блок.
347 АЛьФ
 
10.12.20
15:13
Так. Отловил. Зацикливается, когда внутренние окна развернуты.
348 Volodja
 
10.12.20
15:19
Нашлось значит. Мне надо было сразу прогнать на абсолютно другой конфигурации. _ЗначениеРасшифровки путало все.
349 SaVaNT55
 
10.12.20
15:27
Уважаемый АЛьФ. Спасибо за Ваши труды!!!

У меня возникли вопросы с перехватом ПриПолученииКомандыГлавнымОкном. В классе перехватчика не удаётся отменять команды. Не знаю внутренней "кухни" компонентов, возможно вопрос к icpp

7.70.027
icpp 3.2.4.1
FormEx 2.0.5.164 (141)

В классе так:

//======================================================================
Функция СобытиеГМ_ПриПолученииКомандыГлавнымОкном(wParam, lParam) Экспорт
    
    ОтладкаСообщитьРасш("СОБЫТИЕ FX >", "ПриПолученииКомандыГлавнымОкном", wParam, lParam);    // Обертка для Сообщить

    Рез = 1;

    Перехватчик = ?(ПустоеЗначение(Перехватчик) = 1, СоздатьОбъект("Перехватчик"), Перехватчик);
    Рез         = Перехватчик.ВыполнитьОригинальноеСобытиеГлобальногоМодуля("ПриПолученииКомандыГлавнымОкном", wParam, lParam);
    
    Если (wParam = 57607) или (wParam = 123143) Тогда
        Сообщить("Выбрана команда печать");
        Рез = 0;
    КонецЕсли;
    
    Возврат Рез;
    
КонецФункции // СобытиеГМ_ПриПолученииКомандыГлавнымОкном
350 АЛьФ
 
10.12.20
15:33
2(348) Прошу проверить вот эту версию: https://yadi.sk/d/SaGiKhu0fjokHw
351 АЛьФ
 
10.12.20
15:35
2(349) Там отмена у меня по статуса возврата.

Процедура ПриПолученииКомандыГлавнымОкном(wParam, lParam)
    Если wParam = 57670 Тогда
        Сообщить("Все вопросы о работе 1С по телефону: 224");
        СтатусВозврата(0);
    ИначеЕсли wParam = 32805 Тогда
        Сообщить("Блокировка окна 1С отключена");
        СтатусВозврата(0);
    КонецЕсли;
КонецПроцедуры
352 Volodja
 
10.12.20
15:49
(350) Супер. Все работает. Спасибо.
353 SaVaNT55
 
10.12.20
15:52
(351) Спасибо за ответ. Да собственно так работает. Хотелось реализовать принятие решения опираясь на перехват этого обработчика.

В своем поиске опираюсь на пункты 9 и 10 раздела Общая схема перехвата: по icpp
https://www.1cpp.ru/docum/icpp/html/Hooker.html#runoriginaleventofglobalmodule
354 АЛьФ
 
10.12.20
15:59
2(353) Могу добавить параметр - флаг стандартной обработки.
355 SaVaNT55
 
10.12.20
16:04
(354) Я только за.
356 АЛьФ
 
10.12.20
16:06
2(355) Не вопрос: https://yadi.sk/d/SaGiKhu0fjokHw
357 SaVaNT55
 
10.12.20
16:34
(356) Большое спасибо! Проверил, все работает как надо.


//======================================================================
Процедура СобытиеГМ_ПриПолученииКомандыГлавнымОкном(wParam, lParam, ФлВозврата) Экспорт
    
    ОтладкаСообщитьРасш("СОБЫТИЕ FX >", "ПриПолученииКомандыГлавнымОкном", wParam, lParam); // Обертка для Сообщить    

    Если (wParam = 57607) или (wParam = 123143) Тогда
       // что то делаем и запрещаем выполнение команды
       ФлВозврата = 0;
    КонецЕсли;
        
    Если (ФлВозврата = 1) Тогда
       Перехватчик = ?(ПустоеЗначение(Перехватчик) = 1, СоздатьОбъект("Перехватчик"), Перехватчик);
       ФлВозврата  = Перехватчик.ВыполнитьОригинальноеСобытиеГлобальногоМодуля("ПриПолученииКомандыГлавнымОкном", wParam, lParam, ФлВозврата);
    КонецЕсли;
    
КонецПроцедуры // СобытиеГМ_ПриПолученииКомандыГлавнымОкном
358 victuan1
 
11.12.20
05:17
(79) "Для начала неплохо бы найти в виндовом логе что там пишется по поводу падения. Если стабильно на любой базе валится, то могу попробовать сделать сборку с логом, чтобы понять на каком шаге загрузки вылетает." Вот например, у меня стабильно при определенном числе вызова вложенных функции в выполняемом модуле 1с++ валится 1С 7.7. Причем это только на ВинХР, стоит сменить на Вин7, то уже падения нет.  

https://prnt.sc/w06vju

Тип события:    Ошибка
Источник события:    Application Error
Категория события:    Отсутствует
Код события:    1000
Дата:        09.12.2020
Время:        13:29:07
Пользователь:        Н/Д
Компьютер:    COMP23
Описание:
Ошибка приложения 1cv7.exe, версия 7.70.0.27, модуль bkend.dll, версия 7.70.0.27, адрес 0x001d0029.
Данные:
0000: 41 70 70 6c 69 63 61 74   Applicat
0008: 69 6f 6e 20 46 61 69 6c   ion Fail
0010: 75 72 65 20 20 31 63 76   ure  1cv
0018: 37 2e 65 78 65 20 37 2e   7.exe 7.
0020: 37 30 2e 30 2e 32 37 20   70.0.27
0028: 69 6e 20 62 6b 65 6e 64   in bkend
0030: 2e 64 6c 6c 20 37 2e 37   .dll 7.7
0038: 30 2e 30 2e 32 37 20 61   0.0.27 a
0040: 74 20 6f 66 66 73 65 74   t offset
0048: 20 30 30 31 64 30 30 32    001d002
0050: 39 0d 0a                  9..    

Это скрин на примере падения из-за 1С++, но падение происходит не при попытке загрузить ВК, а при выполнении кода в выполняемом модуле.
В таком виде нужны ошибки? Они помогут? Если да, то постараюсь у клиента вызвать падения при попытке загрузить Формекс.
359 victuan1
 
11.12.20
05:22
Тип события:    Ошибка
Источник события:    Application Hang
Категория события:    (101)
Код события:    1002
Дата:        10.12.2020
Время:        10:57:31
Пользователь:        Н/Д
Компьютер:    COMP23
Описание:
Зависшее приложение 1cv7.exe, версия 7.70.0.27, зависший модуль hungapp, версия 0.0.0.0, адрес 0x00000000.
Данные:
0000: 41 70 70 6c 69 63 61 74   Applicat
0008: 69 6f 6e 20 48 61 6e 67   ion Hang
0010: 20 20 31 63 76 37 2e 65     1cv7.e
0018: 78 65 20 37 2e 37 30 2e   xe 7.70.
0020: 30 2e 32 37 20 69 6e 20   0.27 in
0028: 68 75 6e 67 61 70 70 20   hungapp
0030: 30 2e 30 2e 30 2e 30 20   0.0.0.0
0038: 61 74 20 6f 66 66 73 65   at offse
0040: 74 20 30 30 30 30 30 30   t 000000
0048: 30 30                     00
360 АЛьФ
 
11.12.20
06:19
2(358) Да, именно в таком виде и надо, чтобы было от чего оттолкнуться.
361 АЛьФ
 
11.12.20
10:13
Опять возвращаясь к масштабированию текста в ячейке моксель.
По здравому размышлению пришел к выводу, что лучше все же поискать готовый ActiveX с нужным функционалом. Перенаправлять отрисовку ячеек в 1с-ный код чревато возникновением разнообразных артефактов при отображении и диких тормозов. А без перехвата отрисовки получим очень частное решение.
362 Злопчинский
 
11.12.20
12:23
(361) ну, эта проблема не так актуально/жмет, так что если нет, то и нет.
про активикс с нужным функционалом - вот это вообще не понял как это концептуально можно использовать...
.
в принципе можно попробовать через автоподбор шрифта на форме. текстовый реквизит сделать "размером" примерно с ячейку мокселя и попытаться так сопоставить, возможно, через некий эмпирический поправочный коэффициент...
363 Злопчинский
 
11.12.20
12:26
(360) выше я писал что такое и у меня наблюдалось падение при повторной загрузке формекса.
сейчас я спецом еще проверил (164 релиз) - повторно нормально все проходит. вин64 домашняя. проверю еще на рабочем серваке
364 Злопчинский
 
11.12.20
12:34
(360) проверил на продакшене на серваке. там стоит 2.0.5.109 beta - повторная загрузка формекса вышибает 1Ску мгновенно в ноль.
365 victuan1
 
14.12.20
07:18
(360) Вот поймал ошибку при попытке загрузить Формекс:

Тип события:    Ошибка
Источник события:    Application Error
Категория события:    (100)
Код события:    1000
Дата:        14.12.2020
Время:        13:07:09
Пользователь:        Н/Д
Компьютер:    SERVER
Описание:
Ошибка приложения 1CV7s.exe, версия 7.70.0.25, модуль mfc42.dll, версия 6.6.8064.0, адрес 0x000d286f.

Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp";.
Данные:
0000: 41 70 70 6c 69 63 61 74   Applicat
0008: 69 6f 6e 20 46 61 69 6c   ion Fail
0010: 75 72 65 20 20 31 43 56   ure  1CV
0018: 37 73 2e 65 78 65 20 37   7s.exe 7
0020: 2e 37 30 2e 30 2e 32 35   .70.0.25
0028: 20 69 6e 20 6d 66 63 34    in mfc4
0030: 32 2e 64 6c 6c 20 36 2e   2.dll 6.
0038: 36 2e 38 30 36 34 2e 30   6.8064.0
0040: 20 61 74 20 6f 66 66 73    at offs
0048: 65 74 20 30 30 30 64 32   et 000d2
0050: 38 36 66                  86f    


формекс версии 2.0.5.151
расположен в каталоге ИБ по пути: D:\1c_Data\1C_OOO PEKKA\ExtForms\dll

Windows Server 2003
Enterprise Edition
Service Pack 2

Обновил формекс до 2.0.5.165.

Не помогло, 1С упала:

Тип события:    Ошибка
Источник события:    Application Error
Категория события:    (100)
Код события:    1000
Дата:        14.12.2020
Время:        13:17:14
Пользователь:        Н/Д
Компьютер:    SERVER
Описание:
Ошибка приложения 1CV7s.exe, версия 7.70.0.25, модуль mfc42.dll, версия 6.6.8064.0, адрес 0x000d286f.

Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp";.
Данные:
0000: 41 70 70 6c 69 63 61 74   Applicat
0008: 69 6f 6e 20 46 61 69 6c   ion Fail
0010: 75 72 65 20 20 31 43 56   ure  1CV
0018: 37 73 2e 65 78 65 20 37   7s.exe 7
0020: 2e 37 30 2e 30 2e 32 35   .70.0.25
0028: 20 69 6e 20 6d 66 63 34    in mfc4
0030: 32 2e 64 6c 6c 20 36 2e   2.dll 6.
0038: 36 2e 38 30 36 34 2e 30   6.8064.0
0040: 20 61 74 20 6f 66 66 73    at offs
0048: 65 74 20 30 30 30 64 32   et 000d2
0050: 38 36 66                  86f    


Что делаем дальше?
366 АЛьФ
 
14.12.20
09:09
2(365) Первым делом пробуем обновить платформу до 27-го релиза.
367 victuan1
 
14.12.20
10:42
(366) Без обновления платформы не получится решить проблему?
368 АЛьФ
 
14.12.20
11:00
2(367) Это просто первый самый очевидный шаг. А какая проблема с обновлением движка?
369 victuan1
 
14.12.20
11:40
(368) Не хочется влезать в их кухню - это не мой клиент. Так то хочется, чтобы формекс умел работать без доп. условий. Например, не требовать регистрацию в реестре (и так не требует), работать на любой платформе 1С. Но если это не выполнимое требование, то попрошу их админа обновить платформу. Но думаю, это не будет скоро.
370 АЛьФ
 
14.12.20
13:54
2(369) FormEx все же напрямую с движком работает и вряд ли стоит искать ошибку при запуске не на последнем движке. Можно попробовать выцепить где именно падает, но если это действительно из-за движка, то может потом всплыть в другом неожиданном месте. Оно нам надо?
371 victuan1
 
15.12.20
07:09
(370) Проверил на платформе 27, упало также:

Тип события:    Ошибка
Источник события:    Application Error
Категория события:    (100)
Код события:    1000
Дата:        15.12.2020
Время:        13:08:00
Пользователь:        Н/Д
Компьютер:    SERVER
Описание:
Ошибка приложения 1cv7.exe, версия 7.70.0.27, модуль mfc42.dll, версия 6.6.8064.0, адрес 0x000d286f.

Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp";.
Данные:
0000: 41 70 70 6c 69 63 61 74   Applicat
0008: 69 6f 6e 20 46 61 69 6c   ion Fail
0010: 75 72 65 20 20 31 63 76   ure  1cv
0018: 37 2e 65 78 65 20 37 2e   7.exe 7.
0020: 37 30 2e 30 2e 32 37 20   70.0.27
0028: 69 6e 20 6d 66 63 34 32   in mfc42
0030: 2e 64 6c 6c 20 36 2e 36   .dll 6.6
0038: 2e 38 30 36 34 2e 30 20   .8064.0
0040: 61 74 20 6f 66 66 73 65   at offse
0048: 74 20 30 30 30 64 32 38   t 000d28
0050: 36 66                     6f      


Что делаем дальше?
372 АЛьФ
 
15.12.20
09:06
2(371) Дальше я подготовлю сборку компоненты, чтобы при загрузке она писала лог в файл. И надо будет выслать мне этот лог, чтобы локализовать место падения.
Скорее всего, потребуется еще пара сборок с логом для сужения места падения. Как-то так.
373 victuan1
 
15.12.20
09:26
(372) ОК, сделаю.
374 АЛьФ
 
15.12.20
10:03
2(373) Для начала вот: https://yadi.sk/d/l24gDtmHDM3k1Q
В каталоге, откуда загружена FormEx, появится файл formex.dll.log.
375 victuan1
 
15.12.20
10:18
(374) В логе вот что:

2020.12.15 07:17:49.890 - CAddInApp::InitInstance - СТАРТ
2020.12.15 07:17:49.890 - CAddInApp::InitInstance - регистрация классов
2020.12.15 07:17:49.890 - CAddInApp::InitInstance - инициализация классов
2020.12.15 07:17:49.890 - CAddInApp::InitInstance - инициализация перехватов
2020.12.15 07:17:49.890 - CInitFormEx::Init - СТАРТ
2020.12.15 07:17:49.890 - CInitFormEx::Init - подмена процедуры главного окна
2020.12.15 07:17:49.890 - CInitFormEx::Init - перехват окна о приложении
2020.12.15 07:17:49.890 - CInitFormEx::Init - инициализация таймеров
2020.12.15 07:17:49.906 - CInitFormEx::Init - загрузка сохраненных параметров
376 АЛьФ
 
15.12.20
10:39
2(375) Отлично. Вот второй вариант: https://yadi.sk/d/l24gDtmHDM3k1Q
377 victuan1
 
15.12.20
10:51
(376) 2020.12.15 07:51:29.140 - CAddInApp::InitInstance - СТАРТ
2020.12.15 07:51:29.140 - CAddInApp::InitInstance - регистрация классов
2020.12.15 07:51:29.140 - CAddInApp::InitInstance - инициализация классов
2020.12.15 07:51:29.140 - CAddInApp::InitInstance - инициализация перехватов
2020.12.15 07:51:29.140 - CInitFormEx::Init - СТАРТ
2020.12.15 07:51:29.140 - CInitFormEx::Init - подмена процедуры главного окна
2020.12.15 07:51:29.140 - CInitFormEx::Init - перехват окна о приложении
2020.12.15 07:51:29.140 - CInitFormEx::Init - инициализация таймеров
2020.12.15 07:51:29.156 - CInitFormEx::Init - загрузка сохраненных параметров
2020.12.15 07:51:29.156 - CInitFormEx::LoadSettingsFromRegistry - СТАРТ
2020.12.15 07:51:29.156 - CInitFormEx::LoadSettingsFromRegistry - получение объекта свойств
2020.12.15 07:51:29.156 - CInitFormEx::LoadSettingsFromRegistry - составление имени ветки реестра
2020.12.15 07:51:29.156 - CInitFormEx::LoadSettingsFromRegistry - открытие ветки реестра
2020.12.15 07:51:29.156 - CInitFormEx::LoadSettingsFromRegistry - СТОП
2020.12.15 07:51:29.156 - CInitFormEx::Init - получение менеджера иконок
378 АЛьФ
 
15.12.20
10:55
2(377) Опа...
379 АЛьФ
 
15.12.20
11:16
2(377) Есть подозрение, что мы его отловили. Проверяем: https://yadi.sk/d/l24gDtmHDM3k1Q
380 victuan1
 
15.12.20
11:25
(379) Лови ;)
20.12.15 08:24:29.390 - CAddInApp::InitInstance - СТАРТ
2020.12.15 08:24:29.390 - CAddInApp::InitInstance - регистрация классов
2020.12.15 08:24:29.390 - CAddInApp::InitInstance - инициализация классов
2020.12.15 08:24:29.390 - CAddInApp::InitInstance - инициализация перехватов
2020.12.15 08:24:29.390 - CInitFormEx::Init - СТАРТ
2020.12.15 08:24:29.390 - CInitFormEx::Init - получение менеджера иконок
2020.12.15 08:24:29.390 - CTrayIconManager::CTrayIconManager - СТАРТ
2020.12.15 08:24:29.390 - CTrayIconManager::CTrayIconManager - ШАГ - 1
2020.12.15 08:24:29.390 - CTrayIconManager::CTrayIconManager - ШАГ - 2
2020.12.15 08:24:29.390 - CTrayIconManager::CTrayIconManager - ШАГ - 3
2020.12.15 08:24:29.406 - CTrayIconManager::CTrayIconManager - ШАГ - 4
2020.12.15 08:24:29.406 - CTrayIconManager::CTrayIconManager - ШАГ -5
2020.12.15 08:24:29.406 - CInitFormEx::Init - подмена процедуры главного окна
2020.12.15 08:24:29.406 - CInitFormEx::Init - перехват окна о приложении
2020.12.15 08:24:29.406 - CInitFormEx::Init - инициализация таймеров
2020.12.15 08:24:29.421 - CInitFormEx::Init - загрузка сохраненных параметров
2020.12.15 08:24:29.421 - CInitFormEx::LoadSettingsFromRegistry - СТАРТ
2020.12.15 08:24:29.421 - CInitFormEx::LoadSettingsFromRegistry - получение объекта свойств
2020.12.15 08:24:29.421 - CInitFormEx::LoadSettingsFromRegistry - составление имени ветки реестра
2020.12.15 08:24:29.421 - CInitFormEx::LoadSettingsFromRegistry - открытие ветки реестра
2020.12.15 08:24:29.421 - CInitFormEx::LoadSettingsFromRegistry - СТОП
2020.12.15 08:24:29.421 - CInitFormEx::Init - установка системных хуков
2020.12.15 08:24:29.421 - CInitFormEx::Init - включение раскраски
2020.12.15 08:24:29.421 - CInitFormEx::Init - сабклассинг главного окна
2020.12.15 08:24:29.421 - CInitFormEx::Init - инициализация менеджеров
2020.12.15 08:24:29.421 - CInitFormEx::Init - получение менеджера меню
2020.12.15 08:24:29.421 - CInitFormEx::Init - инициализация окна о программе
2020.12.15 08:24:29.421 - CInitFormEx::Init - разрешения приема драпа
2020.12.15 08:24:29.421 - CInitFormEx::Init - получение списка всех форм
2020.12.15 08:24:29.484 - CInitFormEx::Init - СТОП
2020.12.15 08:24:29.500 - CAddInApp::InitInstance - СТОП
381 АЛьФ
 
15.12.20
11:27
2(380) Загрузилась или вылетела?
382 Злопчинский
 
15.12.20
11:29
(379) галактеко замерло ожидание
383 victuan1
 
15.12.20
12:25
(381) Вылетела! Пока успеха нет.
384 АЛьФ
 
15.12.20
12:31
2(383) Да черезтындырочку ж!
385 АЛьФ
 
15.12.20
12:36
Судя по (380), после последнего изменения dll нормально загружена и прошла все инициализации. И теперь самое интересное - вылетать она может абсолютно в любом месте, в любом перехвате...
В логе винды то же сообщение пишется?
386 victuan1
 
15.12.20
12:47
(385) Да:

Тип события:    Ошибка
Источник события:    Application Error
Категория события:    (100)
Код события:    1000
Дата:        15.12.2020
Время:        18:46:03
Пользователь:        Н/Д
Компьютер:    SERVER
Описание:
Ошибка приложения 1cv7.exe, версия 7.70.0.27, модуль unknown, версия 0.0.0.0, адрес 0xffff07fd.

Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp";.
Данные:
0000: 41 70 70 6c 69 63 61 74   Applicat
0008: 69 6f 6e 20 46 61 69 6c   ion Fail
0010: 75 72 65 20 20 31 63 76   ure  1cv
0018: 37 2e 65 78 65 20 37 2e   7.exe 7.
0020: 37 30 2e 30 2e 32 37 20   70.0.27
0028: 69 6e 20 75 6e 6b 6e 6f   in unkno
0030: 77 6e 20 30 2e 30 2e 30   wn 0.0.0
0038: 2e 30 20 61 74 20 6f 66   .0 at of
0040: 66 73 65 74 20 66 66 66   fset fff
0048: 66 30 37 66 64            f07fd
387 victuan1
 
15.12.20
12:48
В логе Приложений. В логах Системы и Безопасности - пусто.
388 АЛьФ
 
15.12.20
12:50
2(386) Т.е. сообщение изменилось. Падение теперь в другом месте.
Значит переходим к следующему этапу. Я отключаю последовательно перехваты и пробуем загрузить. Если получился определить на каком именно падает, будем лог строить по нему.
389 АЛьФ
 
15.12.20
12:57
Очередная сборка: https://yadi.sk/d/l24gDtmHDM3k1Q
390 victuan1
 
15.12.20
13:10
(389) Упало, но лог не создался.
391 victuan1
 
15.12.20
13:10
В винде ошибка та же:

Ошибка приложения 1cv7.exe, версия 7.70.0.27, модуль unknown, версия 0.0.0.0, адрес 0xffff0751.
392 АЛьФ
 
15.12.20
13:19
2(390) Лог я отключил на этом этапе.
2(391) Плохо.
А вот так? https://yadi.sk/d/l24gDtmHDM3k1Q
393 victuan1
 
15.12.20
13:26
(392) То же самое:
Ошибка приложения 1cv7.exe, версия 7.70.0.27, модуль unknown, версия 0.0.0.0, адрес 0xffff07bd.

Отлучусь часа на полтора.
394 АЛьФ
 
15.12.20
14:28
395 Злопчинский
 
15.12.20
14:53
галактеко волнуеццо
396 АЛьФ
 
15.12.20
14:54
2(395) Спокойно, мамаша, я - Дубровский!
397 victuan1
 
15.12.20
15:31
(394) Упало, ошибка та же:
Ошибка приложения 1cv7.exe, версия 7.70.0.27, модуль unknown, версия 0.0.0.0, адрес 0xffff06fd.
398 АЛьФ
 
15.12.20
15:34
2(397) Может в почту перейдем, чтобы не засорять форум и подержать галактеко в напряжении?
alf@dorex.pro
Ссылка для скачивания одна и та же. Я будут писать "проверяй", ты скачиваешь и в ответ пишешь "заработало!!!" или "вылет" в зависимости от результата. Ок?
399 АЛьФ
 
15.12.20
15:40
Кстати, очередной тест выложен.
400 victuan1
 
15.12.20
15:47
(398) Давай уж лучше в мессенджер какой-нибудь, скайп, аська, телеграмм и т.д.
Отписался на почту.
401 Djelf
 
15.12.20
15:49
(397) Мне не нравится "модуль unknown"! Что-то слишком защищенное? DEP то выключен?
402 victuan1
 
15.12.20
17:07
(401) 2003 Сервер. Какой там дэп.
403 Злопчинский
 
16.12.20
00:19
"....мы его теряем!"
404 Cthulhu
 
16.12.20
01:55
та давай уже группу в телеге запили... заодно и нас всех пригласишь (ну как "всех" мне вон интересно и Чугундеру)
405 Злопчинский
 
16.12.20
02:57
ааа, проверил, собрал волю в узду, пришел на работу и не ахаю, выполняю план и посылаю всё на...
.
значит так, при повторной загрузке система у меня падает не из-за формекса, а из-за vk_sleep_1C.dll - повторная загрузка этой штуки вышибает 1С насмерть сразу.
.
проверил формекс на очищенной от вышеозначенной штуки.
формекс164 - повторная загрузка - ок, проблем нет
формекс166 тестовая с логом - повторная загрузка - ок, проблем нет
.
Server2003 R2 EE SP2, x32
.
пока всё.
406 victuan1
 
16.12.20
05:08
У меня тоже теперь, трудами Алексея, не падает на "формекс 166 тестовой с логами".
Windows Server 2003
Enterprise Edition
Service Pack 2
407 victuan1
 
16.12.20
05:09
Ждем от него сегодня финальную (нетестовую) версию. И рассказа о том, что именно исправил ;)
408 tgu82
 
16.12.20
07:44
У меня на 2008 сервере как-то и не падало никогда. Правда вк_слип у меня данво нет. Использую кернел33 и времяожидания в ноль
409 Djelf
 
16.12.20
08:38
(402) Как это нет? MS писала что есть https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/875352
410 АЛьФ
 
16.12.20
09:15
Выложен новый релиз с вчерашними исправлениями. Качать, как обычно, тут: http://dorex.pro/?projects&formex&download

В чем было дело. Странная система Windows.
Похоже, что в зависимости от каких-то факторов типа сервис-пака, установленных программ, текущих патчей, черта лысого, Винда меняет уровень своей лояльности к ошибкам в программе. Первая обнаруженная при вчерашней "атаки тестированием" ошибка заключалась в зацикливании сообщения главному окну. У меня (и похоже, что у большинства пользователей) через несколько шагов в зацикливании Винда этот цикл прерывала и дальше шла нормальная работа. У victuan1 итогом этой зацикленности был вылет 1С. Проблема решилась переносом места инициализации класса сворачивания 1С в иконку к часам.
Вторая ошибка, которую ловили уже общением по почте, постепенно отключая-включая функционал FormEx, заключалась в вызове оригинальной WNDPROC при перехвате процедуры главного окна. У меня в коде был прописан древний стиль:
((WNDPROC)hMainWndProc)(hWnd, nMessage, wParam, lParam);
И это почему-то нормально работало даже на новейших системах. Хотя, судя по результатам поиска, должно было перестать работать еще на WinXP SP3. Все заработало после замены на рекомендуемые вызов:
::CallWindowProc((WNDPROC)hMainWndProc,hWnd, nMessage, wParam, lParam);

Вот как-то так... Мир полон загадок и открытий.
411 Злопчинский
 
16.12.20
11:31
(410) ..и чем больше я занимаюсь боксом, тем мир все загадочней и удивительней...
412 Злопчинский
 
16.12.20
11:40
Вернемся к нашей галактеко.
Дроиды атакуе!
.
ранее подыммал, но не получило развитие, сейчас имеет смысл раз навалился
.
1. в продакшене стоит 109beta/ в каталоге запуска 1С BIN - все ок. Заменил вчерась вечером на 164. в каталоге bin
с утра трабла - смотрим - при старте - не удалось загрузить ВК.. странно, с чего бы это? (скорее всего с правами рядовых юзверей, потому как копирование 164 в каталог базы - проблему решило. порядок загрузки - каталог BIN самый последний.. так что тут временно решил вроде...
.
однако
.
2. на панели главного окна висит кнопка с "Отчет.ОткрытьВнешний", путь .\ExtForms\ORDER.DIR\IMPORT.DIR\_БВК_ИмпортЗаявокЦентрУправления.ert
при 109beta - все норм. при 164 - при жмаке на кнопку - "Недостаточно прав доступа".
в ГМ ПризагрузкеВнешнегоОтчета - нет, сообщений с таким текстом нет.
для проблемного пользователя права в конфиге:

ФЛ1: Использование общих Внешних Отчетов и Обработок = ДА
ФЛ2: Использование любых Внешних Отчетов и Обработок = НЕТ
413 АЛьФ
 
16.12.20
11:46
2(412) ПриПолученииКомандыГлавнымОкном или ПриПолученииСистемнойКомандыГлавнымОкном есть?
414 Злопчинский
 
16.12.20
11:46
Так что в продакшене пришлось откатиться на 109.
415 Злопчинский
 
16.12.20
11:46
(413) нет стопудово. я так глубоко не копаю, я не нефтяник ;-)
416 Злопчинский
 
16.12.20
11:47
уточнение - "ранее" - относится к проблеме по п.2
п.1 пока не рассматриваем, сам наверное справлюсь
417 АЛьФ
 
16.12.20
11:48
2(415) Сможешь сделать пустую тестовую базу , на которой можно было бы воспроизвести?
418 Злопчинский
 
16.12.20
11:49
ну, ща попробую если это под моими виндявыми правами прокатит...
419 Злопчинский
 
16.12.20
12:27
(417) навскидку не получилось. на нулевой базе - норм... странно..
буду пробовать тогда на копии рабочей базы редуцированием... по готовности - сообщу...
420 Злопчинский
 
16.12.20
12:28
(419) пробовал и под правами виндявыми менеджера...
421 АЛьФ
 
16.12.20
13:13
2(419) Давай попробуем зайти с другой стороны. Скачиваешь тут тестовую сборку: https://yadi.sk/d/SaGiKhu0fjokHw
Насколько я сейчас понял, копанув, это предупреждение выводится только при проверке прав доступа к внутренним объектам конфиги.
В тестовой сборке я добавил предопределенную процедуру ПриПроверкеПравДоступа(парам1, парам2, парам3, парам4, парам5, Результат, СтандартнаяОбработка). Попробуй у себя посмотреть что в эту процедуру передается перед выводом предупреждение о недостаточности прав.
Заодно поможешь проанализировать что эти параметры значат :)
422 АЛьФ
 
16.12.20
13:20
+(421) Да, при запрете открытия внешнего отчета используется шаблон сообщения:
"Недостаточно прав для использования Внешнего Отчета %1"
423 Злопчинский
 
16.12.20
13:50
(421) ок, вечером после рабочего дня офиса посмотрю.
тестировать на продакшене приходится для воспроизведения эффекта, а там народ работает, выгонять-туда-сюда для подмены формекса тяжко
424 АЛьФ
 
16.12.20
13:51
2(423) Хм... А ты его кинь себе в каталог пользователя.
425 Злопчинский
 
16.12.20
13:55
(424) хм.. подо мной-то все норм открывается,
мне надо это проверять под виндявыми правами манагера, под его 1с-логином
426 АЛьФ
 
16.12.20
13:58
2(425) Ну, дык, ему в папку пользователя пользователя кинь.
Хотя все равно ж надо будет в глобальник ставить новую процедуру. Ладно, работой тогда займусь.
427 trdm
 
16.12.20
13:59
(421) Падать перестала:
Конфигурация с примером использования и демонстрацией возможностей компоненты FomrEx. отсюда.http://dorex.pro/?download
428 АЛьФ
 
16.12.20
14:19
2(427) Неожиданный эффект...
429 trdm
 
16.12.20
15:39
ага :)
НА предыдущих сборках валилось.
430 Злопчинский
 
16.12.20
20:09
(421) хм.. как интересно.
описываю по порядку. КАК ЕСТЬ СЕЙЧАС. что вижу - то и пишу
.
подключился на сервак с правами менеджера под логином менеджера.
.
запускаб базу 1с два сеанса, 1. Под своими полными админским правами 2. захожу под менеджером с урезанными 1Сными правами. жмакаю на кнопку на главной панели Отчет.ОткрытьВнешний
.
релиз109бета
* под собой - все ок. дми хоть кучу раз - после первого раза открылас обработка, после потворных нажатий кнопки - ничего не происходит - обработка уже открыта
* под манагером - аналогично, проблем нет.
.
релиз164
* под собой - жмакнул открыть первый раз, обработка открылась, все ок. жмакаю второй раз при открытой обработке - все ок.
* под манагером - жмакнул открыть первый раз, обработка открылась, все ок. жмакаю второй раз при открытой обработке -
"Нарушение прав доступа". Если закрыть обработку - то нажатие на открыть - открывается норм. при открытой обработке - снова нажать - "нарушение прав доступа". открыть-закрыть-открыть-закрыть... работает норм. открыть (ок) - открыть - Нарушение прав доступа"

релиз167
все нормально под обоими пользователями.
непонятно.
.
странно то, что раньше под ограниченными правами - даже первый раз не открывалось - ругалось....
.
непонятно.
ставлю 167 в продакшен. посмотрим.
431 Злопчинский
 
16.12.20
20:19
(421)  ПриПроверкеПравДоступа(парам1, парам2, парам3, парам4, парам5, Результат, СтандартнаяОбработка)
- это куда класть. в ГМ? или в модуль формы? или куда еще?

в ГМ - не отрабатывает, в модуле формы - не отрабатывает.

текущий результат: ничего непонятно
432 Злопчинский
 
16.12.20
20:19
(431) проверял на 167
433 Хозрасчетный
 
16.12.20
21:21
(410) "Вторая ошибка, которую ловили уже общением по почте" - если мне не изменяет память, то это было где-то в районе 2010-2011 годов, она была исправлена в какой-то версии, но потом опять вернулась. У меня даже была мысль написать в эту ветку и напомнить про нее :))
434 АЛьФ
 
16.12.20
21:34
2(433) Очень может быть.
435 Злопчинский
 
16.12.20
22:57
(434) а по (431)?
436 АЛьФ
 
17.12.20
06:09
2(435) Процедура должна быть в глобальнике. У меня срабатывает при интерактивном открытии форм объектов.
437 tgu82
 
17.12.20
07:43
(436) А 167 еще на дорекс про нет.
Всем добрый день
438 АЛьФ
 
17.12.20
08:51
2(437) Ссылка есть в (421). Пока не знаю попадет ли в релиз процедура проверки прав.
439 Злопчинский
 
17.12.20
10:21
(438) 167 в продакшене, пока вроде не жаловались
440 Злопчинский
 
17.12.20
10:22
(436) ну дык по нажатию кнопки - с Отчет.ОткрытьВнешний - это будет интерактивное или программное?
441 АЛьФ
 
17.12.20
10:35
2(439) А я как раз переделал вызов ПриПроверкеПравДоступа. Оставил три параметра, которые понятно что означают. И поменял место перехвата.
2(440) Это интерактивно, насколько я понимаю, но права на внешние отчеты иначе проверяются. Было подозрение, что у тебя там где-то идет открытие формы встроенного объекта и из-за этого выводится предупреждение. Можно было бы это отловить.
442 АЛьФ
 
17.12.20
10:41
Народ, нужен совет.
Иногда возникает проблема с вылетом 1С при каком-то долгом процессе со сложно локализуемым местом. Есть идея тупо писать во внешний лог подряд все исполняемые строки. Тогда последняя в логе - это и есть искомая строка вылета.
Естественно, тупая запись в файл вызывает жуткие (ЖУТЧАЙШИЕ!) тормоза. Есть ли с ходу решение, чтобы быстро куда-то писать лог, чтобы при вылете в нем все сохранялось и скидывалось на диск? В голову приходит внешний сервис, в который 1С и будет гнать данные по типу штатного отладчика, а он будет накапливать в памяти и с некой периодичностью скидывать на диск. Но опять же есть сомнения в производительности. Что говорят по этому поводу современные технологии?
443 trdm
 
17.12.20
10:48
(442) Отдельный процесс типа сервера с мемори шаред, соединенный по pipes с отложенной записью?
Общаться по именованным каналам. На этой же машине?
444 trdm
 
17.12.20
10:49
(443) - мемори шаред - лишнее.
445 trdm
 
17.12.20
10:51
Внешний сервис - нафиг не нужен.
446 АЛьФ
 
17.12.20
10:53
2(443) Так ведь отладчик работает, да?
447 АЛьФ
 
17.12.20
11:02
Тут еще проблема вспомнилась. У нас 1С запускается в терминальной сессии без рабочего стола, как удаленное приложение. И если падает, то все свое окружение тянет за собой. Т.е. данные надо гнать куда-то наружу, чтобы при краше даже от внешних причин был лог и было понятно, что не в 1С дело.
Мда... Засада...
448 trdm
 
17.12.20
11:22
(446) я не копал.
449 Злопчинский
 
17.12.20
19:33
(441) "Оставил три параметра, которые понятно что означают."
да как-то не особо... проверил - на формы конфиги срабатывает, первый параметр числовой похоже что некий "ИД" объекта...
450 Злопчинский
 
17.12.20
19:36
(442) возможно что-то из этой оперы http://catalog.mista.ru/public/16676/
451 Злопчинский
 
17.12.20
19:37
(441) "Было подозрение, что у тебя там где-то идет открытие формы встроенного объекта и из-за этого выводится предупреждение."
- ну так на 109 релизе ничего не блочилось, а на более поздних - блочилось...
452 АЛьФ
 
17.12.20
19:56
2(449) Тип объекта, вид объекта, тип права доступа.
453 Злопчинский
 
17.12.20
20:05
так в итоге и осталось непонятным отчего давало "нарушение прав доступа"...
454 Злопчинский
 
17.12.20
22:51
сегодня правда вот вылезло у операторши.
сейчас зашел в винды под ней. в 1С под ней - все норм...
непонятно...
.
может повлияло то, что перед этим я под своими полными правами открывал эту обработку?
455 Злопчинский
 
17.12.20
23:12
мимо проходил
"Скачать архив с конфигурацией, демонстрируЕЩЕй возможности компоненты"
456 АЛьФ
 
18.12.20
08:48
2(453) А скажи, пожалуйста, не используется ли у тебя метод Сервис::ПолучитьСписокАктивныхПользователей() с единицей в качестве первого параметра?
457 АЛьФ
 
18.12.20
08:57
+(456) Попробуй погонять вот эту сборку: https://yadi.sk/d/SaGiKhu0fjokHw
458 Злопчинский
 
18.12.20
11:36
(457) эту сборку еще не пользовал.
вот сейчас операторша стукнулась.

вызов ИЗ МЕНЮ
.\ExtForms\ExtReps.DIR\ExtRepAdmin.ert
дает пустую форму предупреждения, потом "Недостатчоно прав доступа" https://ibb.co/qR4ZT4m
при этом через меню-файл-открыть - открывается нормально
459 АЛьФ
 
18.12.20
11:46
2(458) Если со сборкой из (457) будет возникать это предупреждение, то у меня лично остается только одна идея - ловить вывод этого сообщения и писать в лог строку кода 1С, на которой оно возникает. Такое впечатление, что это какой-то сбой в чтении ресурсов и вместо какого-то сообщения подхватывает для вывода вот эту строку в ресурсах.
460 Злопчинский
 
18.12.20
12:01
(459) новую сборку чуть позже погоняю, на обед персонал уйдет когда
461 Djelf
 
18.12.20
12:03
(458) Через Задача.Выполнить работает всегда. Может и не так удобно, но иногда даже и удобнее, у меня в параметрах глЕгаис("FSRAR_ID"); их 15шт и никаких хлопот...
(459) Не получается сделать тестовую версию. Этот глюк не стабильный.
462 Злопчинский
 
18.12.20
12:05
(461) у тебя тоже проявляется?
463 Злопчинский
 
18.12.20
12:09
(459) вчера проверял под этим же пользователем - все нормально открывалось...
"что это какой-то сбой в чтении ресурсов" - это что-то алгоритмическое... 109версия нормально же все открывает...
464 Злопчинский
 
18.12.20
12:10
(456) нет, такой метод не используется.
есть глАдмин1С.АктивныеПодключения() - но это в отдельной обработке для рассылки сообщений через net use
465 АЛьФ
 
18.12.20
12:10
2(463) Может быть где-то что-то портит память и возникает вот такой эффект.
466 Злопчинский
 
18.12.20
12:14
(465) похоже на то.. потому как при выходе из 1С стала вываливаться системной окошко что "память не может быть read..." такое бывает редко...
467 АЛьФ
 
18.12.20
12:16
2(466) Что винда по этой ошибке пишет?
468 Злопчинский
 
18.12.20
12:34
(467) хз.. а где смотреть? в логах системы или в логах приложений?
469 Злопчинский
 
18.12.20
12:36
Тип события:    Уведомление
Источник события:    Application Popup
Категория события:    Отсутствует
Код события:    26
Дата:        18.12.2020
Время:        11:36:32
Пользователь:        Н/Д
Компьютер:    SERVER
Описание:
Всплывающее окно приложения: 1cv7.exe - Ошибка приложения : Инструкция по адресу "0x27582636" обратилась к памяти по адресу "0x27582636". Память не может быть "read".

"ОК" -- завершение приложения

Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp";.
470 Злопчинский
 
18.12.20
12:38
Тип события:    Уведомление
Источник события:    Application Popup
Категория события:    Отсутствует
Код события:    26
Дата:        18.12.2020
Время:        11:36:27
Пользователь:        Н/Д
Компьютер:    SERVER
Описание:
Всплывающее окно приложения: 1cv7.exe - Ошибка приложения : Инструкция по адресу "0x27581771" обратилась к памяти по адресу "0x27581771". Память не может быть "read".

"ОК" -- завершение приложения

Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp";.
471 АЛьФ
 
18.12.20
12:40
2(470)(469) Это он несколько раз упало за 5 секунд?
472 Злопчинский
 
18.12.20
12:42
0x27582636 - три раза, 1771 - один раз...
.
причем не могу точно сказать чем порождены эти сообщения, выходом из 1С или иными действиями.
как минимум один - выходом...
473 Злопчинский
 
18.12.20
12:43
(471) в том то и дело что нет
11:36:27
11:36:30
11:36:32
11:36:32
.
сейчас вот у пользователя сделал появление "Недсотатчоно прав дсотупа" с предварительным пустым сообщением - в логе ничего...
474 Злопчинский
 
18.12.20
12:44
(472) "как минимум один - выходом..."
скорее всего это мои неверные впечатления...
475 Злопчинский
 
18.12.20
12:52
ОПОЧКИ! что внезапно выяснил!
.
запускаем 1С. открыто главное окно. запускаем из меню .\ExtForms\ExtReps.DIR\ExtRepAdmin.ert - ВСЕ НОРМ
.
если открывто окно какого либо обхекта 1С - спсиок спарвочника, журнал, или форма элемента справочника. или ДАЖЕ ФОРМА ВНЕШНЕЙ ОБРАБОТКИ - то появляется проблема описанния
476 Злопчинский
 
18.12.20
12:54
еще:
.\ExtForms\БВК_ОтчетПоДолгамШахматка.ert - кнопка на панели главного окна - открывается норм
.\ExtForms\BVK\БВК_НОВ_ОтчетПоПросроченнымПлатежам.ert - кнопка на панели главного окна - дает окошко (одно) "Недостаточно прав доступа"
477 Злопчинский
 
18.12.20
12:57
1. при этом у пользователя право "использование любых Внешних отчетов" = НЕТ
2. при этом у пользователя право "использование общих Внешних отчетов" = ДА

1. но тут не готов сказать работает это под 109 или нет. по идее все что лежит ВНУТРИ EXTFORMS - файлы и папки - должно попадать под действие общих внешних отчетов
478 Злопчинский
 
18.12.20
13:04
(475) поправка к описанию
ОПОЧКИ! что внезапно выяснил!
.
запускаем 1С. открыто главное окно.
.
если открывто окно какого либо обхекта 1С - спсиок спарвочника, журнал, или форма элемента справочника. или ДАЖЕ ФОРМА ВНЕШНЕЙ ОБРАБОТКИ - запускаем из меню .\ExtForms\ExtReps.DIR\ExtRepAdmin.ert - появляется проблема с пустым окошком предупреждения и следом за ним "Недостатчоно прав доступа"
479 Злопчинский
 
18.12.20
13:05
..типа похоже что в алгоритме формекса где-то "адресация" куда-то не туда идет... при наличии разных оконо...
480 Djelf
 
18.12.20
13:14
(479) А на тестовой (пустой) базе такого не происходит.
481 АЛьФ
 
18.12.20
13:18
Не удалось воспроизвести по этому алгоритму.
482 Злопчинский
 
18.12.20
13:38
(481) ну. на живой базе вот такие траблы...
483 Злопчинский
 
18.12.20
13:54
АЛьФ, поставил сборку 168 из ссылки 435.
Докладываю.
В базу зашедши один пользователь с урезанными правами оператор.
.
проблема (478) с пустым предупреждением и "нарушение прав доступа" - НЕ ПРОЯВЛЯЕТСЯ. работает ожидаемо. ХОРОШО!
проблема (476) осталась
484 Злопчинский
 
18.12.20
14:01
Уточнил: под версией 109beta если с панели главного окна открывать
.\ExtForms\BVK\БВК_НОВ_ОтчетПоПросроченнымПлатежам.ert
и его же открывать из Файл-Открыть - дает "Недостаточно прав доступа".
хотя из других подпапок папки Extforms и с панели главного окна и через Файл-Открыть - открываются нормально.
так что тут скорее проблема не 1с/Формекса, а что-то наверное с правами доступа виндв (пока это не считаем за проблему формекса, буду расследовать дальше как чуть времени больше будте).
485 Злопчинский
 
18.12.20
14:02
Итого: на данный момент 168 сборка - преимущественная к использованию.
Итого: используем 168, ситуация вроде норм должна быть.
.
возможно поавылазят траблы при совместной работе нескольких пользщовтателей, тогда будем смотреть глубжее...
486 Злопчинский
 
18.12.20
14:32
и далее в развитие..
вот есть ПослеОткрытия ПослеСозданияФормы.
.
а можно чтобы типа ПослеЗаписи было (с учетом того что запись может выполнятья при закрытии формы)...?
.
и как бы еще чтобы типа ПриЗаписи и/или ПослеЗаписи работало не только в интерактивном варианте но и при программной записи.. как-то так...
487 mishaPH
 
модератор
21.12.20
10:20
(0) а какая счас версия посл стабильная? скачать где?
488 mishaPH
 
модератор
21.12.20
10:21
а на дорексе нашел
489 АЛьФ
 
21.12.20
10:44
По заявкам зрителей добавил метод Сервис::ЦентрироватьТаблицуПриДобавленииСтроки(Флаг)

ЦентрироватьТаблицуПриДобавленииСтроки(<?>)
Синтаксис:
ЦентрироватьТаблицуПриДобавленииСтроки(<НовоеЗначение>)
Назначение:
Метод позволяет получить/установить значение внутреннего флага центрирования таблиц на форме при добавлении строк. Значение флага глобальное и распространяется на все таблицы.
Параметры:
<НовоеЗначение> - необязательное новое значение флага.
Возвращает:
Текущее значение флага до изменения.

Тестовая, как обычно, тут: https://yadi.sk/d/SaGiKhu0fjokHw
490 mishaPH
 
модератор
21.12.20
10:50
(489) таблица значений?
491 АЛьФ
 
21.12.20
10:55
2(490) Да.
492 mishaPH
 
модератор
21.12.20
11:19
(491) как раз счас одну форму ваяю.

а есть метод центровки текста заголовков? а то шрифт крупный. а все в лево
493 АЛьФ
 
21.12.20
11:42
2(492) Не встречал такого.
494 АЛьФ
 
21.12.20
11:49
+(489) Тут вдруг подумал, что немного неверно сделал описание и название метода не отражает суть.
Вопрос не при добавлении строк, а при установке текущей строки. Да и глюк обнаружил в многострочных частях типа формы списка справочника.
495 trdm
 
21.12.20
11:52
(494) ага. По названию я так и не въехал в суть функционала.
Потом только дошло.
496 trdm
 
21.12.20
11:53
Придумать название иногда очень не легко. :)
497 АЛьФ
 
21.12.20
12:01
2(496) Да нет ничего проще!
ДлинноеМнемоническоеНазваниеМетода1()
ДлинноеМнемоническоеНазваниеМетода2()
ДлинноеМнемоническоеНазваниеМетода3()
498 АЛьФ
 
21.12.20
12:13
Изменил поведение метода и его название на более отвечающее сути: ЦентрироватьТаблицуДляТекущейСтроки().

И ответ на (490) все же "нет". Распространяется на все таблицы. В том числе и на всякие формы списков при поиске, например, по номеру документа.
Скорее всего, будет развитие этого метода и можно будет задать поведение: верх, низ, центр. Сейчас 0 - центр, все остальное - низ. Не очень мне это нравится.

Тестовая там же: https://yadi.sk/d/SaGiKhu0fjokHw
499 АЛьФ
 
21.12.20
12:33
+(498) Сделал, чтобы не откладывать в длинный ящик. Теперь параметр: 0 - низ; 1 - центрировать; 2 - верх.
500 Злопчинский
 
21.12.20
13:01
(499) сделайте лучше чтобы строки при отрисовке ТЗ правильно считало при нулевой высоте заголовка.
501 mishaPH
 
модератор
21.12.20
13:13
(493) https://yadi.sk/i/cUG4ZKI1sJvTxA
ну вот товар по идее красивее было бы по центру
502 Злопчинский
 
21.12.20
13:23
(501) Правильно писать "уклейка"
503 АЛьФ
 
21.12.20
13:25
2(500) В таких ситуациях лучше табличное поле использовать. Слишком уж глубоко залезать (на первый взгляд) придется.
504 АЛьФ
 
21.12.20
13:26
2(501) Это я понял. Не встречал в коде 1С возможности менять положение заголовка.
505 Djelf
 
21.12.20
13:40
(504) Вроде есть возможность, вот тут https://gyazo.com/d15dee01f151ff96e4ed9c6e74f9ab97
5й параметр tagLVCOLUMNA, а у него есть LVCF_FMT, а у LVCF_FMT есть LVCFMT_CENTER
https://docs.microsoft.com/en-us/windows/win32/api/commctrl/ns-commctrl-lvcolumna

Только зачем, если есть ТабличноеПоле со значительно большими возможностями?
506 АЛьФ
 
21.12.20
13:44
2(505) Таблицы в 1С не на основе CListCtrlEx сделаны. Там полностью свой класс от CWnd.
507 Djelf
 
21.12.20
13:48
Могу и ошибаться, так глубоко не копал, а где тогда CListCtrlEx используется?
Какой там класс у таблиц в 1С?
508 АЛьФ
 
21.12.20
13:52
2(507) Видать в каких-то списках. Понятия не имею где именно. Таблицы 1С - это CBrowse.
509 Djelf
 
21.12.20
14:17
(508) А... в br32 оно сидит... Вроде и там можно как-то воткнуться, но придется видимо изрядно патчить память.
В void __thiscall CBrowse::OnPaint(CBrowse *this)
https://gyazo.com/368b75bd4921852c4b8b17fb6424c234
Наверное не стоит ;)
510 trad
 
21.12.20
14:24
(509)
на всякий случай + 0x2c
это вот это m_Flag1

//<-CColumn(64/32)<-CCmdTarget(32/28)<-CObject(4/4)
class IMPORT_1C CColumn:public CCmdTarget //CObject
{
DECLARE_DYNAMIC(CColumn)

public:
    CBrowse* m_pBrowse;       // 20h
    UINT m_ID;              // 24h
    CString m_Caption;       // 28h
    DWORD m_Flag1;           // 2Ch
    DWORD m_Flag2;           // 30h
    DWORD m_Width;           // 34h
    DWORD m_Width2;          // 38h
    DWORD m_ColPositionFlag; // 3Ch
    //size 40h
511 trad
 
21.12.20
14:25
CColumn& CBrowse::GetColumn(unsigned int);
512 trad
 
21.12.20
14:27
но судя по (509)  возможно только left и right
513 АЛьФ
 
21.12.20
14:31
2(509) Мне кажется, что это положение текста в ячейке таблицы, а не в заголовке колонки.
514 trad
 
21.12.20
14:32
(513) да, скорее всего ты прав
515 trad
 
21.12.20
14:35
+(514)
тут надо взглянуть на (509) с большего расстояния, чтоб понять контекст
516 АЛьФ
 
21.12.20
14:53
Вроде нашел где заголовок таблицы выводится: в br32 по адресу 1F20543B.
517 АЛьФ
 
21.12.20
14:55
+(516) Если это действительно так, то там стиль рисования передается константой 0х8800. Не поменять, если не перехватывать всю отрисовку.
518 Злопчинский
 
21.12.20
15:47
на сайте пока 166 лежит, косячная в части "нарушение  прав доступа".
у меня в продакшене с пятницы 168 работает, нареканий пока нет.
Ходатайствую не упустить исправления по 168 релизу, когда будет выкладываться обновленный релиз
519 АЛьФ
 
21.12.20
16:08
2(518) Не переживай. Просто тест переедет с ЯД на сайт в релиз.
520 victuan1
 
22.12.20
04:31
А вот кто сможет поправить глюк когда постепенно ползут реквизиты контролов на формах диалогах если сохранять диалоги в разных стилях оформления рабочего стола Виндовс?
Я так понял, что это древний глюк платформы 1С 7.7 из-за того что она запоминает координаты контролов на диалоге не от нижней границы строки заголовка форма, а от верхней. Из-за того, что у меня на работе - ВинХР, а дома - Виндовс7, в которых я не смог настроить одинаковую высоту строки заголовка окон, у меня при смешанной разработке контролы на редактируемых формах постепенно ползут вверх.
521 Злопчинский
 
22.12.20
05:26
я тупо делаю изначально первые по вертикали реквизиты пониже, рассчитывая что заголовок окна будет широкий. и вроде норм.
522 mishaPH
 
модератор
22.12.20
10:52
2.0.5.131  https://yadi.sk/i/cUG4ZKI1sJvTxA
2.0.5.166  https://yadi.sk/i/VGbbjGI4c4nbXw

вот как так? одна форма

2.0.5.166 уже не могу поставить в системы т.к. под 131 все написано

Процедура ПриОткрытии()
    Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"FormEx.dll") = 1 Тогда
        Сервис = СоздатьОбъект("Сервис");
        Сервис.ВключитьРаскраскуТаблиц();
        Сервис.ПоказыватьИндикаторКлавиатуры(1);
        Сервис.ПерехватМыши(0);
        Сервис.ПерехватКлавиатуры(1);
    Иначе
        Предупреждение("не загружена компонента FormEx.dll");
    КонецЕсли;

    
    ТЗЗаданий.НоваяКолонка("Товар","Справочник.Номенклатура",,,,18);
    ТЗЗаданий.НоваяКолонка("Количество","Число",5,,,5);

    АтрФормы = СоздатьОбъект("АтрибутФормы");
    шрифт18 = Сервис.СоздатьШрифт("глШрифт18",18,7);    
    шрифт25 = Сервис.СоздатьШрифт("глШрифт25",25,7);    
    шрифт20 = Сервис.СоздатьШрифт("глШрифт20",20,7);    
    шрифт30 = Сервис.СоздатьШрифт("глШрифт30",30,7);    
    шрифт35 = Сервис.СоздатьШрифт("глШрифт35",35,7);    
    шрифт40 = Сервис.СоздатьШрифт("глШрифт40",40,7);    
    шрифт50 = Сервис.СоздатьШрифт("глШрифт50",50,7);    
КонецПроцедуры // ПриОткрытии


Процедура ПослеСозданияФормы()
    ФормаРасш = СоздатьОбъект("РасширениеФормы");
//    ФормаРасш.ВысотаЗаголовкаТаблицы("ТЗЗаданий",2);    
    ФормаРасш.УстановитьАвтоширинуВТаблице("ТЗЗаданий",1);    
    ФормаРасш.верх = 0;
    ФормаРасш.Лево = 0;    
//    ФормаРасш.Максимизирована = 1;


    АтрФормы.УстановитьАтрибут(Форма,"ТЗЗаданий");
    АтрФормы.Шрифт = шрифт20;
    АтрФормы.УстановитьАтрибут(Форма,"кн_ОтправитьЗадание");
    АтрФормы.Шрифт = шрифт25;

    
    
КонецПроцедуры // ПослеСозданияФормы
523 АЛьФ
 
22.12.20
11:37
2(522) А что это за странные названия шрифтов? Они действительно есть в системе?
524 Djelf
 
22.12.20
11:42
Обсуждали уже вот тут: https://www.1cpp.ru/forum/YaBB.pl?num=1556121691/9
525 АЛьФ
 
22.12.20
11:49
2(524) И ведь совсем недавно было. А не помню уже ни черта. Только когда читать начал вспомнил.
526 mishaPH
 
модератор
22.12.20
11:54
(523) ну так это чуть ли из 0 причера код со шрифтами
527 mishaPH
 
модератор
22.12.20
11:55
у меня это в одной системе сборки товара используется активно теперь туда новую компоненту не поставлю расп..сит шрифты се.
да и в чек в магазине
528 АЛьФ
 
22.12.20
12:10
2(527) Предложения?
529 mishaPH
 
модератор
22.12.20
12:33
да я пока старую оставлю.
530 Злопчинский
 
22.12.20
13:41
(525) и НЕ НАДО НИЧЕГО МЕНЯТ С РАЗМЕРАМИ ШРИФТОВ. это по моим тестам сделано было в районе. раньше давно например шрифт Ариал на форме в виде надписи и шрифт Ариал в ТЗ и в полях ввода для одних и тех же заданных размеров - физически отличались. После поправок Альфом шрифт текствой надписи с размером например 10 равен размеру шрифта с размером 10 в ТЗ. и все норм. Сорлнце всходит? всходит! ну и не трогйте!
531 Злопчинский
 
22.12.20
13:43
(528) условно: я гружу компоненту из каталога базы. туда для клнкретного решения можно подсунуть конкретный версию формекса. а если в каталоге базы нет - грузится "общая" компонента из БИН. с учетом каталоговПользователя можно хоть для каждого пользователя 1С свою компоненту грузить.
532 АЛьФ
 
22.12.20
14:08
А такой вот внезапный вопрос. Может кто в курсе как получить идентификатор колонки многострочной части формы? Имеется ввиду в компоненте, исходя из имеющегося объекта CBrowse.
533 mishaPH
 
модератор
22.12.20
14:32
(530) подстроить под новую все и не парится более?
534 Djelf
 
22.12.20
14:33
(532) Поставь уже Гидру! ;)
CColumn * __thiscall CBrowse::GetColumnN(CBrowse *this,int param_1)
https://gyazo.com/86866166c8b20e7e5dc7d27977308402
535 АЛьФ
 
22.12.20
14:36
2(534) И где тут идентификатор колонки? Не ИД команды, не заголовок, а именно идентификатор.
536 Djelf
 
22.12.20
14:38
(535) Должно быть в CColumn->m_ID, ИМХО.
537 Djelf
 
22.12.20
14:40
(536) А, ТекстовойИдентификатор? Поищу...
538 АЛьФ
 
22.12.20
14:44
2(537) Именно текстовый. В ТЗ понятно как, а вот с многострочной частью засада. Похоже, надо брать CGetDoc7 формы и оттуда тянуть. Вообще непонятно откуда брать идентификаторы, не привязанных к реквизитам колонок.
539 Djelf
 
22.12.20
14:45
Предполагаю что в массиве колонок текстовой Ид сидит https://gyazo.com/e544986abd601aeda4ae3e2ccd74bd60
540 АЛьФ
 
22.12.20
14:51
2(539) Там массив из тех же CColumn.
541 Злопчинский
 
22.12.20
14:52
(533) угу
542 Djelf
 
22.12.20
14:55
Хм, да. Текстовых идентификаторов что-то не видать в этих структурах. Где то уровнем выше видимо они сидят.
Где то в контексте формы видимо. 1С же не дает создать реквизит с тем же ТекстовымИД на форме. Из числового ИД в Форме Текстовой ИД разве нельзя получить?
543 Злопчинский
 
22.12.20
14:55
@Альф, а вот еще такая фича:
Tсли в ТЗ на форме штатно сделать видимой служебную колонку "НомерСтроки" (бывает иногда такая потребность), то ширина этой колонки овербольшая и никакими манипуляциями не удается сделать ее уже, что неудобно адски.

Можно ли это как-то "подкрутить"..?
544 АЛьФ
 
22.12.20
15:03
2(542) Как-то можно, наверное. Вот и был вопроса: как?
2(543) И УстановитьШиринуКолонки() не помогает?
545 Djelf
 
22.12.20
15:15
(544) А у тебя же уже есть метод!

  РасширениеФормы=СоздатьОбъект("РасширениеФормы");
  РасширениеФормы.methColArray();
546 Djelf
 
22.12.20
15:21
А, чорд, он тоже не ИД, а заголовки выводит...
547 АЛьФ
 
22.12.20
15:21
2(545) Это Артур делал. И там искомого тоже нет. Там просто колонки перебираются и выводятся атрибуты CColumn.

Пока сделал в лоб:
        CView * pView = (CView*)pBrowse->GetParent();
        if(pView)
        {
            CGetDoc7* pGetDoc7 = (CGetDoc7*)pView->GetDocument();
            if(pGetDoc7)
            {
                int count = pBrowse->GetColumnNum();
                CString csBuf = "";

                for(int col = 0; col < count; col++)
                {
                    CColumn &Column = pBrowse->GetColumnN(col);
                    CGetField* pGetField = pGetDoc7->GetField(Column.m_ID);
                    if(pGetField && pGetField->m_Set)
                    {
                        if(csParamColName.CompareNoCase(pGetField->m_Set->m_CodeName) == 0)
                        {
                            csBase = pGetField->m_strCtrlTitle;
                            col = count;
                        }
                    }
                }
            }
        }
Может потом чего более достойное придумается.
548 АЛьФ
 
22.12.20
15:25
+(547) Это поиск колонки с заданным идентификатором. Мысль в том, чтобы у таблицы была колонка с идентификатором "FormEx_ПараметрыТаблицы" и там через точку с запятой были перечислены некие дополнительные параметры, меняющие поведение этой таблицы. Пока там обрабатывается только параметр ЦентрироватьТекущуюСтроку. Это чтобы нормализировать новый функционал при установке текущей строки в таблице. Метод ЦентрироватьТаблицуДляТекущейСтроки() действует сразу на все таблицы, что не есть хорошо. Новый подход позволит для каждой таблицы задать свое поведение.
549 Djelf
 
22.12.20
15:36
Подзабыл уже где было. В тзКонтролов=РасширениеФормы.methCtrlInfo(); все что на формен находится есть.
550 Злопчинский
 
22.12.20
16:24
(544) "УстановитьШиринуКолонки() " - хм.. сейчас проверим...
551 Злопчинский
 
22.12.20
16:26
(548) "и там через точку с запятой были перечислены некие дополнительные параметры, меняющие поведение этой таблицы."
чтобы туда можно расширенные параметры подсовывать, например, чтобы скроллы вертикаль/горизонталь показывать/не показывать, шрифт на всю таблицу целиком итд (а не отдельным значением через расширение формы)
552 Злопчинский
 
22.12.20
16:29
А как все-таки сделать чтобы ОбработкаВнешнегоСобытия для дочерней мод.формы ловилась (при открытии нескольких мод.форм друг за другом вызовами), а не проваливалась в самую первую родительскую мод.форму?
553 Злопчинский
 
22.12.20
16:37
(544) "УстановитьШиринуКолонки()" - получилось, спсб!
554 АЛьФ
 
22.12.20
17:02
2(552) Насколько я понимаю, никак. Надо другой механизм придумывать.
555 Злопчинский
 
22.12.20
17:31
(554) можно конечно делать на немодальных формах, и при закрытии дочерней активизировать родительскую или при повторнымоткрытием родительскую с передачей параметров. была еще штука (@Ёпрст вроде показывал - эмуляция модальности немодальной формой -может завалялась у кого). а то при работе с модальными формами приходится обработкой-диспетчером запускать только очередную модальную форму единственную с передачей кучи параметров для понимания контекста куда надо "попасть" родительской форме при закрытии дочерней или делать приходится много форм при сложных алгоритмах где вместо одного сканирвоания объекта надобится сканирвоание кучи других объектов связанных". Пихать это всё в одну форму на разные слои можно, но это мне сильно не нравится, потому как переносимость такого решения низкая, а так каждая форма за свой атомарный шаг отвечтает - главное на вход подать нужные параметры...
.
может у кого какие соображения/практика подобного было/есть?
556 АЛьФ
 
22.12.20
17:37
Сделал колонку для параметров таблицы.
Как это работает. Добавляем в таблицу (как в таблицу значений, так и в любую многострочную часть на форме) колонку с идентификатором "FormEx_ПараметрыТаблицы", в заголовке этой колонки пишем "ЦентрироватьТекущуюСтроку:0".
Пример кода:

тз.НоваяКолонка("Название",,,,"Название заголовка");
тз.НоваяКолонка("FormEx_ПараметрыТаблицы",,,,"ЦентрироватьТекущуюСтроку:0");
тз.ВидимостьКолонки("FormEx_ПараметрыТаблицы", 0);

После двоеточия число - это тип центровки, как описано в методе ЦентрироватьТаблицуДляТекущейСтроки (). Реализовано так, чтобы в будущем можно было добавлять какие-то еще параметры для таблиц.
Метод ЦентрироватьТаблицуДляТекущейСтроки() теперь надо вызывать только если надо изменить поведения по умолчанию для всех таблиц.

Качать для тестирования все там же: https://yadi.sk/d/SaGiKhu0fjokHw
557 Sserj
 
22.12.20
18:28
(555) Можно пробежаться по контекстам открытых из обрабоки, что типа такого:
Перем контекстДочернейФормы;

Процедура ТутОткрываетсяФорма()
  ОткрытьФормуМодельно("...", контекстДочернейФормы);
КонецПроцедуры

Процедура ОбработкаВнешнегоСобытия(параметрыСобытия)
  Если ТипЗначения(контекстДочернейФормы) = 100 Тогда
    //В дочерней может и не быть обработчика
    Попытка
      контекстДочернейФормы.ОбработкаВнешнегоСобытия(параметрыСобытия);
      //Вот тут можно даже в параметр что-то вернуть типа ОтключитьСвойОбработчик
      //но предположим что свой не нужен и просто выходим.
      Возврат;
    Исключение
    КонецПопытки
  КонецЕсли;
  //Если дочерней нет или в ней нет обработчика продолжаем свою обработку.
КонецПроцедуры
558 Sserj
 
22.12.20
18:29
+(557) Ну и аналогично можно в дочерних окнах такое вставить, чтобы вся цепочка проверялась.
559 Злопчинский
 
22.12.20
19:39
(557) ничего не понял. а ак это в родительской форме сработает ОбработкаВнешнегоСобытия если еще дочерняя модальная форма не закрыта? причем в дочерней модальной форме выполняется не одно сканирование с закрытием дочерней модальнйо формы, а в дочерней форме идет поток санирвоаний при этом из дочерней модальнйо формы может вызываться дочернеяя-дочере=няя форма, в которйо также выполняется поток сканирвоаний...
560 Злопчинский
 
25.12.20
12:55
АЛьФ, а можно ли както типа в "один прием" без существенных вычислений (по примеру выше автоподбора шрифта) сделать типа такоЕ:
Форма, на форме надпись. шрифт+высота надписи такие что получается однострочная надпись.
текст надписи при открытии формы или действий с формой может меняться динамически.
чтобы как-то устанавливать вариант выравнивания по горизонтали... если текст полностью влазит в надпись - выравнивание по центру, если не влазит полностью - выравнивание по левому краю...
?
например, на форму выводится наименование товара в виде "артикул наименование". если название длинное то при выравнивании по горизонтали по центру левая правая часть обрезаются и хрен поймешь...
?
561 Злопчинский
 
25.12.20
12:56
.. типа
МойТекстовыйРеквизит.Автоформатирование();
562 Злопчинский
 
25.12.20
20:24
а напомните , формексом можно сделать в строк ТЗ строку с переносом, то есть плавающей высоты? (имхо нет)
типа

| артикул | наименование
| 123456  | Тут наименование в несколько строк
|           | потому что длинное с переносом
563 Злопчинский
 
25.12.20
20:24
тьфу блин
--------------------------------------------------------------
| артикул | наименование
--------------------------------------------------------------
| 123456  | Тут наименование в несколько строк
|         | потому что длинное с переносом
--------------------------------------------------------------
564 tgu82
 
25.12.20
22:41
(563) Вот название колонок в несколько строк можно. А чтоб значения в несколько строк - что-тоя такое не помню
565 Злопчинский
 
26.12.20
03:48
.. и еще: можно ли как-то штатные поля ввода для строки и числа сделать с выравниваем по центру?
566 Злопчинский
 
26.12.20
03:50
Вот, например, сделать что текстовая надпись с длинным текстом выравненная вертикально по центру будет автопереносится (штатно такой настройки нет) - можно через расширенный стиль, может и в (565) как-то можно?
567 simply1
 
29.12.20
19:10
Так это из-за модальности не срабатывает глСервис.ВнешнееСобытие() и не попадает в ОбработкаВнешнегоСобытия(Источник_,Событие_,Данные_) ???
568 Злопчинский
 
29.12.20
22:04
(567) ну, ОбработкаВнешнегоСобытия не срабатывает, а вот чем порожадется - это другое, к модальности отношения не имеет имхо
569 АЛьФ
 
30.12.20
09:48
Хозяйке на заметку.
Знаете ли вы, что если со сборкой FormEx больше 164 в каталог базы положить файл wallpaper.bmp, то он будет загружен в качестве обоев главного окна? А еще можно в названии файла указать в скобках положение обоев, как оно описано в методе Сервис::УстановитьОбои(). Например, "wallpaper(6).bmp" - картинка будет растянута на все окно, а "wallpaper(2).bmp" картинка будет отображена в правом верхнем углу.
570 big
 
30.12.20
19:38
(569) Хммм... О каких пасхалках мы ещё не знаем? ;)
571 Злопчинский
 
30.12.20
21:05
(569) а в (563) в формексе такого нет?
572 АЛьФ
 
30.12.20
22:13
2(571) Такого нет.
2(570) Вот прям сразу все рассказать?
573 MWWRuza
 
31.12.20
01:18
(569) А ведь работает! :-))))

https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-369.jpg
574 Злопчинский
 
31.12.20
05:47
Как получить программно описание объекта метаданных (то что в хелпе открывается по вопрс.знаку)..?
вроде где-то видел, что можно достучаться..
но как?
575 MWWRuza
 
31.12.20
10:56
(574) Ээээ....??? А в двух словах, зачем тебе это?
576 Злопчинский
 
31.12.20
11:44
(575) надо!
например туда я могу запихнуть всякую хрень, которую извлекать и выполнять.
например чисто условно перечень реквизитов для выгрузки или еще что-то полезное чем можно воспользоваться в программном коде.
даже тупо нажать на кнопку на форме и получить текстовое описание хелпа
577 MWWRuza
 
01.01.21
02:06
(576) даже тупо нажать на кнопку на форме и получить текстовое описание хелпа

Кгм... Для кого? Для юзеров -? А нах??? В конфигураторе, ты и так получишь, все, что тебе надо...
Мне это напомнило первое знакомство с 1С:Розницей, еще 1.0... Там надо было "ручками" прописывать формулы для расчета цены... Обычные пользователи "вешались", не понимая, чего от них хочет программа. Потом, вроде это упростили, стало более визуально. Но, аллергия к типовым 8.хх после этого, лично у меня осталась на все время. :-(
578 Злопчинский
 
04.01.21
00:10
(577) шоб було!
579 Злопчинский
 
04.01.21
00:11
и из-за того что заголовок нулевой высоты не учитывается при расчете колва строк, помещающихся на страницу ТЗ - приходится отказываться от ткой полезнйо фичи... потому что некрасиво выглядит неиспользованная строчка внизу списка ТЗ при этом что список в ТЗ еще не закончился...
580 АЛьФ
 
04.01.21
09:09
2(574) Расширениеформы::Описание.
2(579) Я думаю над этим...
581 Злопчинский
 
04.01.21
12:38
(580) спасибо.
ждем.
582 Злопчинский
 
04.01.21
12:39
(580) а можно еще как-то сделать так, чтобы разлиновка ТЗ отсутствовала или задавать цвет, которым будет рисоваться разлиновка ТЗ?
583 Злопчинский
 
04.01.21
12:43
(580) если это привязано к форме - то это скорее всего описание реквизита, лежащего на форме? а я имею в виду описание объекта метаданных, которое, по идее м.б. доступно и без наличия формы?
584 АЛьФ
 
04.01.21
15:39
2(582) Нет. Тогда уж проще взять ТабличноеПоле из 1С++.
585 АЛьФ
 
04.01.21
15:42
2(583) Это описание формы, которое на третьей закладки при редактировании формы в конфигураторе. Описания именно объекта метаданных нету. Это логичней было бы в 1С++ добавить, но там развитие похоже совсем остановилось.
586 Djelf
 
04.01.21
16:48
2(584) Присоединяюсь к ответу: ТабличноеПоле и забудьте про ТЗ на форме! ТЗ на форме это отвратительно ;)
Хакнуть то все можно, тут нужно GetSysColor в CBrowse::OnPaint потыкать, цвет рамок ячеек зашит тут:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Colors]
"WindowFrame"="100 100 100"
587 Злопчинский
 
04.01.21
16:57
(586) ну, ради простых свершенно вещей тащить целое ТП...
даешь ТЗ!!!
588 Djelf
 
04.01.21
17:06
2(587) Как то был даже не разговор, а пара сообщений, про дамп параметров ТЗ или МСЧ в формат для создания ТП на их основе.
АЛьФ что то слопал, долго лет спал, и это не Виагра! Хочу такое же!!!
589 Злопчинский
 
06.01.21
01:06
не получается порешать такую задачку:

Форма списка справочника, например единицы измерения для номенклатуры.
хочу какую-то строку списка (в данном случае для основной единицы) вывести жирным шрифтом.

отрисовываю с помощью невидимой колонки с выражением "FONTSET["+КодШрифт+"]";

КодШрифт определяю ПослеОткрытия()

    Настройки = СоздатьОбъект("НастройкиПользователя");
    ШрифтФорм = СтрПолучитьСтроку(СтрЗаменить(Настройки.ШрифтФорм, ",", РазделительСтрок), 1);
    КодШрифт = глСервис.СоздатьШрифт(ШрифтФорм,,7); // жирный

ШрифтФорм: MS Sans Serif,-11,0,400,0,0,0,0,0,204,1,2,1,34
(в настройках шрифта форм указан MS Sans Serif (Кириллический),8)

получается явная лабуда, размер шрифта явно не соответствует нужному, явно больше:
https://www.screencast.com/t/I8yG7SL4oi2Q

Если в создании шрифта явным образом указать размер шрифта
КодШрифт = глСервис.СоздатьШрифт(ШрифтФорм,8,7); - получается правильный ожидаемый эффект
https://www.screencast.com/t/b7kmL7Y3dB3m

- но это же некузяво, откуда я знаю размер шрифта? как его получить? из НастроекПользователя - в возвращаемой строке размером шрифта как-то непохоже...

Вторым значением в Настройки.ШрифтФорм возвращается похоже размер шрифта, но какbv-то левым значением (или я тупой/не знаю), беглый исследования показали, что после имени шрифта отрицательные значения соответствуют такими размерам (менял настройки в 1С и смотрел что возвращается)
размер шрифта (отрицательный из НастройкиПользователя.ШрифтФормы / реальный размер шрфита)

-11 /8
-12 /9
-13 /10
-15 /11
-16 /12
-19 /14

Вопрос. как из отрицательных значений получить "правильный" размер шрифта? или как-то решить задачу сабжа - выделит в списке строку шрифтом таким же как у формы, но жирным?
590 Злопчинский
 
06.01.21
01:21
Пока извернулся так. вроде норм, но это как-то через гланды
    ФормаРасш = СоздатьОбъект("РасширениеФормы");
    ШрифтФормы = ФормаРасш.кнЗакрыть.Шрифт;
    КодШрифт = глСервис.СоздатьШрифтНаОсновании(ШрифтФормы,,,7); // жирный
.
Шрифт формы не получить не обращаясь к атрибуту..
почему можно получить заголовок, стиль, координаты формы, а ihabn - нельзя..?
типа ФормаРасш.Шрифт
?
591 Злопчинский
 
06.01.21
01:39
Попутно что нашел
почему то в описании реквизита на форме (всплывает при наведении мышки которое) если содержится знак минус - это приводит к тому что после минуса выводится пару слов и остальное обрезается

например

олфыраолыврп ывапукпуп gerg ergerger drgergerg
askfjhsdjk sdkhs k - полы рыол цулдоалд ertger //вот здесь обрезается после "рыол"
укждол  ergerf;kler;lk укаукапук ergerg
ferrtf олдод6786786786 млтльт78678687 m,nm
89897897 89789789 8978 9789 789

признак проверки/валидности единицы измерения
пустое значение (0, красный) - единица не проверялась, //обрезается после "красный) - "
заполненное значение (1, зеленый) параметры выверены,
изменять параметры не рекомендуется
592 Злопчинский
 
06.01.21
01:41
Клюшки так же неисчерпаем, как и атом...
593 Злопчинский
 
06.01.21
01:42
или я может чего ступил, тады ой
594 Злопчинский
 
06.01.21
01:59
не, елки-палки, это не связано с симолом минус.. обрезает как-то произволдьно в зависимости от хз чего, какой-то набор символов.. может это зависит от масштабироания шрифтов, которые установлены в настройках ОС...
595 Злопчинский
 
06.01.21
02:01
не, проверил.. от масштабирования не зависит.
596 victuan1
 
06.01.21
07:39
При попытке перейти на сайт по гиперссылке возникает ошибка
https://ibb.co/f9Z1TV8
597 АЛьФ
 
06.01.21
09:38
2(596) В системе не назначено приложение по умолчанию для гиперссылок?
598 victuan1
 
06.01.21
10:01
(597) Как так? Из других приложений гиперссылки открываются.
599 АЛьФ
 
06.01.21
10:15
2(589) Сделал, чтобы сначала метод СоздатьШрифт пытался загрузить из первого параметра свойства шрифта из строки типа возвращаемой объектом НастройкиПользователя, а при неудачи устанавливала бы переданную строку в качестве имени шрифта. Качать для проверки тут: https://yadi.sk/d/SaGiKhu0fjokHw
2(598) Ну, у меня там код элементарный. Просто вызывается системная функция ShellExecute(NULL, _T("open"), url, NULL,NULL, showcmd); А дальше уже все от системы зависит.
600 Злопчинский
 
06.01.21
14:23
(599) при случае поправить опечатку в описании СоздатьШрифт
"Назначение: Создает шриВт по указанным параметрам."
601 Злопчинский
 
06.01.21
14:42
Не проходит, криво

    Настройки = СоздатьОбъект("НастройкиПользователя");
    ШрифтФормы = Настройки.ШрифтФорм; // "MS Sans Serif,-11,0,400,0,0,0,0,0,204,1,2,1,34"
    КодШрифт = глСервис.СоздатьШрифт(ШрифтФормы,,7); // жирный

Получается криво: https://www.screencast.com/t/vmBuzFUYay

если сделать
КодШрифт = глСервис.СоздатьШрифт(ШрифтФормы); // жирный

Получается тоже криво: https://www.screencast.com/t/NsoBq1Vm7HD

Проверил, загружен 169 релиз
602 АЛьФ
 
06.01.21
15:45
2(601) Было бы лучше, если бы понимал что именно ты ожидаешь увидеть и почему считаешь, что нынешняя картинка - это криво.
603 Djelf
 
06.01.21
16:23
(602) Видно почему криво... Высота строки не меняется. Но я что-то не припомню табличных полей с изменяемой высотой строки.
Так что в (601) не корректно сказано что криво. Кегль нужно поменьше, такой же как и в остальных строка, тогда полужирный наверное выглядел бы нормально.
604 АЛьФ
 
06.01.21
16:31
2(603) Высота строки таблицы зависит от шрифта всей таблицы и FONTSET на нее никак не влияет и не должен. Поэтому я и не понимаю что именно там кривого.
605 Злопчинский
 
06.01.21
16:31
При чем здесь высота строки, шрифт в жирной строке - ДРУГОЙ ПО РАЗМЕРУ.
606 Злопчинский
 
06.01.21
16:34
Вариант1
    Настройки = СоздатьОбъект("НастройкиПользователя");
    ШрифтФормы = Настройки.ШрифтФорм;
    КодШрифт = глСервис.СоздатьШрифт(ШрифтФормы,,7); // жирный

Вариант2
    ФормаРасш = СоздатьОбъект("РасширениеФормы");
    ШрифтФормы = ФормаРасш.кнЗакрыть.Шрифт;
    КодШрифт = глСервис.СоздатьШрифтНаОсновании(ШрифтФормы,,,7); // жирный

должны давать одинаковые шрифты, т.к. шрифт на кнопке "кнЗакрыть" совпадает со шрифтом формы
а по факту - дают шрифты разного размера
607 Злопчинский
 
06.01.21
16:35
(603) "Кегль нужно поменьше, такой же как и в остальных строках" - именно! ты - знал!
608 Злопчинский
 
06.01.21
16:37
настройки пользователя возвращают вот такой набор
"MS Sans Serif,-11,0,400,0,0,0,0,0,204,1,2,1,34"
здесь размер шрифта = второй параметр, -11...?
609 АЛьФ
 
06.01.21
16:47
2(608) Эта строка сворачивается и разворачивается функциями движка. Я вообще их никак не обрабатываю.
Погоняю у себя еще.
610 Злопчинский
 
06.01.21
17:03
(609) ага, ждем.
контрольный тест - в  (606)
611 Djelf
 
06.01.21
17:07
Ну и на закуску вот тут берется цвет рамок в таблицах: https://gyazo.com/41fdd44f44045689ffa2bef2825ee010
В простенькой утилите: https://www.wintools.info/index.php/classic-color-panel это WindowsFrame
И в реестре это оно же:

[HKEY_CURRENT_USER\Control Panel\Colors]
"WindowFrame"="100 100 100"

Кстати, можно и переписать и перехватить этот CBrowse::OnPaint. Кто будет спонсором? ;)
612 АЛьФ
 
06.01.21
17:13
2(611) CBrowse::OnPaint пеерхватывается для раскраски.
613 Злопчинский
 
06.01.21
17:25
(611) тут не надо чтобы менялось в ОС. хочется чтобы только линии сетки в ТЗ можно было цвет задать
614 АЛьФ
 
06.01.21
18:12
Наконец на ткнулся на ситуацию, когда в модальном окне перестает работать перехват мыши. Такое случается, если модельное окно открыто из события мыши. Грядет глобальный передел вызова предопределенных функций в FormEx. И велик шанс, что угробится вообще вся эта система... Если не придумаю как можно это дело обойти.
615 Злопчинский
 
06.01.21
18:20
(614) главное - не спешить! должно устаканиться, отллежаться...
пусть в фоне покрутится..
а пока можно чем-нить полегче заняться - отрисовкой ТЗ, созданием шрфитов.. ;_) итд
616 Злопчинский
 
06.01.21
19:33
Непонятно в результате чего, но "слетели" шрифты
"никогда такого не было и вот опять"..
.
есть подозренеи, что как раз после манипуляций со шрифтами, описанными выше, но может и нет..
сегодня еще было норм, а теперь - кракозябы, на форме список с отметками.

КодШрифт = глСервис.СоздатьШрифт("Arial Narrow",16);
РФорма = СоздатьОбъект("РасширениеФормы");
РФорма.ПолучитьАтрибут("СписокРекв").Шрифт = КодШрифт;
.
как вернуть чтобы вместо кракозяб были русские буквы?
617 Злопчинский
 
06.01.21
20:16
Интернетовские варианты лечения не помогли
618 Злопчинский
 
06.01.21
20:40
(609) ААА, т-щ АЛЬФ! Лишаетесь сладкого и компота!
снес 169 релиз формекса и вернул 168 - ситуация со шрифтами нормализовалась, шрифты стали русскими как и было.
.
так что что-то стопудово не то в 169 релизе - кривят шрифты и (606) криво.
так что 169 надо отзывать из продакшена хотя бы только из кривизны-кракозяб шрифтов.
вот.

Ёжмадец! как говорил мой киндер еще только начав говорить более-менее отбирая у жены пылелос..
619 Злопчинский
 
06.01.21
20:41
(617) я даже на точку восстановления откатился... а потом что-то про формекс стукнуло
620 АЛьФ
 
06.01.21
20:46
2(619) Дык, для теста и выкладываю.
621 Злопчинский
 
06.01.21
21:27
в АЛС что-то про центрирование строки не нашел...
и так и не поянл что это такое...
622 Volodja
 
08.01.21
10:07
(564) Подскажите, как? Иногда хочется это проделать в ТЗ.
623 Volodja
 
08.01.21
10:09
(622) Я именно чтобы длинное название одной колонки было в несколько строк. А не несколько колонок одна под другой.
624 Djelf
 
08.01.21
13:32
(622) Вот так? https://gyazo.com/cd2e1aa4be0f90879f4ea4b22fdbd482
Колонка - текстовая строка. Текст через формулу с РазделительСтрок. А название колонки так:

Процедура ПослеОткрытия()
  РФ=СоздатьОбъект("РасширениеФормы");
  АФ=РФ.ПолучитьАтрибут("ИдКолонки");
  АФ.Заголовок="Первая строка"+РазделительСтрок+"Вторая строка";
КонецПроцедуры
625 Volodja
 
08.01.21
13:35
(624) Спасибо. Попробую
626 Злопчинский
 
11.01.21
23:45
А как сделать чтобы заголовок колонки ТЗ был обычным, не жирным шрифтом?
627 Cthulhu
 
12.01.21
14:40
(626): + при этом чтобы заголовок текущей колонки выделялся жырныым...
628 Mikeware
 
12.01.21
15:00
(627) Это  уже Табполе.
629 Злопчинский
 
12.01.21
15:09
(628) можно и без этого на начальном этапе
630 Arbuz
 
12.01.21
16:32
(627)  Так есть же ТП.
631 Arbuz
 
12.01.21
16:34
(629) без чего? дельных советов? ))))))
632 Злопчинский
 
12.01.21
23:56
(631) сделать заголовки колонок нежирным шрифтом. всё.
текущую колонку заголовок делать жирным шрифтом не надо (пока).
633 Злопчинский
 
12.01.21
23:57
А подскажите кто расширенный стиль для центрирования текста в надписи по центру по вертикали с переносом .
634 Злопчинский
 
15.01.21
02:37
А вот что получается.
Например в ПослеОткрытия для ТЗ на форме устанавливаю стиль без скроллбаров. и все норм.
но если в ходе работы на форме выполняю по кнокпе код, который ТЗФОРМА.УстановитьПараметрыКолонки("Наименование,,,,ТутПеременнаяСзаголовком) - то скроллбары появляются..
.
отчего так и как избежать?
.
ранее в этом же месте шло полное переписывание ТЗ
начиная с ТЗФОРМА.Очистить().. новыеколонки итд. - как только вынес это в ПриОткрытии, а вместо определения ТЗФОрма - только заголовок однйо колонки переопределяю - то вот такая ситуация...
635 Злопчинский
 
15.01.21
02:40
Сорри, хрень написал, не из-за этого происходит
636 Злопчинский
 
15.01.21
03:07
А, все-таки не хрень, каким-то образом УстановитьПараметрыКолонки() "ломает"/переопределяет стиль ТЗ...
короче, нихрена не понял.. переписал, чтобы работало как надо...
637 Arbuz
 
15.01.21
15:17
Да используй уже ТП.
638 Mikeware
 
15.01.21
15:43
(637) "ТП" - очень многогранная аббревиатура :-)
639 Arbuz
 
15.01.21
16:24
(638) в контексте (632)-(637)? )))
640 Злопчинский
 
16.01.21
01:18
Помогите по (633), было где-то, но потерял...
641 Mikeware
 
16.01.21
10:03
(639) Ну, можно даже в том контексте. типа, "попользуйся какой-нибудь ТП, и успокойся"
642 Злопчинский
 
16.01.21
20:49
Помогите, спецы, по (633)
643 Злопчинский
 
16.01.21
21:33
Как интерсено.
1. запускаем модальную обработку Обработка1
2. в ней ПослеОткрытия Через РасширениеФормы запускаем РасшФорма.ОбработкаОжидания("МояПроцедура",500);
3. в МояПроцедура например пишем

Процедура МояПроцедра() // в модальной Обработка1
  Сообщить(ТекущееВремя());
  ОткрытьФормуМодально("Отчет",,МодальнаяОбработка2);
КонецПроцедуры

Имеем доступ к фоме модальной обработке2, при этом в табло трыньает текущее время, то есть имеем доступ к контексты"перекрытой" модальной формы1...
можно всчкого интересного добиться....
644 Mikeware
 
18.01.21
10:06
(643) боян® жеж...
ну и - зачем оно надо?
широкого применения не вижу.
645 trdm
 
18.01.21
10:23
(633) Скачай winspy у него есть стили, можно ими поиграться и понять какой нужен.
646 trdm
 
18.01.21
10:24
647 Злопчинский
 
18.01.21
12:23
(645) о, это хорошо
648 Злопчинский
 
18.01.21
12:24
(644) а ты попробуй на небольшое поле с текстовой надписью (типа описание ошибки иливопрос или информация) с произвольным текстом вывести красиво...
649 Злопчинский
 
18.01.21
12:24
Вот, гуру подсказали https://www.1cpp.ru/forum/YaBB.pl?num=1548229885
Нихрена не помню, что сам на 1С+ спрашивал
650 trdm
 
18.01.21
12:42
(649) ура! 1cpp.ru восстановился!
651 Злопчинский
 
18.01.21
12:49
эээ, нет, при выравнивании строки по центру по вертикали - перенос строк никак не сделать...
пичалька, счастье было так близко...
652 Mikeware
 
18.01.21
14:13
(651) Не, я про игры с мудальностью спрашивал...
653 Злопчинский
 
19.01.21
00:01
ну, мудальность она и есть мудальность. когда надо ни шаг влево, ни шаг вправо.
654 Злопчинский
 
20.01.21
20:18
АЛьФ, а почему если на форму положить текст и назначить ему шрифт через свойства, например размер=16, и создать такой же шрифт с размером = 16 - то они отличаются? ненамного, на 2 пикселя. проверял и на других размерах.
https://content.screencast.com/users/Che66/folders/Capture/media/5bab7dff-d9da-48b0-a65b-93c798157d85/LWR_Recording.png

если к надписи применить шрифт такого же размера как в свойствах надписи - то размер становится меньше, это реально видно... https://www.screencast.com/t/115nzLL0i9
655 АЛьФ
 
21.01.21
08:49
2(654) У меня пока завал продолжается на работе и нет особо времени копаться со шрифтами. Как появится время, попробую копнуть.
656 trdm
 
21.01.21
09:24
Любопытно, а почему перестал работать поиск в печатных формах.
27 релиз. Вобще не пашет :(((((((((((((((((((((((((((((
657 АЛьФ
 
21.01.21
09:53
2(656) У меня нормально ищет.
658 Злопчинский
 
21.01.21
10:59
(655) ок, аналогично!
659 trdm
 
21.01.21
13:27
значит надо копать.
660 victuan1
 
25.01.21
05:30
(656) Если в печ. форме стоять на объединенной ячейке, то платформа 1С считает что это выделение, и ищет только по выделенному, т.е. в пределах объединенных ячеек. Надо встать на любую одинарную ячейку и повторить поиск.
661 trdm
 
25.01.21
08:14
(660) да, что-то такое/подобное замечал.
Хана, у меня многие отчеты с объединениями.
Это просто майнстрим.
662 trdm
 
25.01.21
08:20
НО! Это так же означает что есть возможность пропатчить поведение 1С. :)
Хоть какая-то надежда :)
663 Arbuz
 
27.01.21
16:22
у меня валится 1С, кто-нибудь ещё использует ЦветШрифта/ЦветФона?
formex 167

_А = СоздатьОбъект("АтрибутФормы");
_А.УстановитьАтрибут(Форма, "аТекст");
        
Сообщить("Видимость " + _А.Видимость);  // сообщает "Видимость ", т.е. возвращает пустое значение
_А.Видимость = 1;                       // работает, т.е. делает атрибут видимым
Сообщить("Видимость " + _А.Видимость);  // возвращает пустое значение, похоже это не работает на чтение

Сообщить("ЦветШрифта " + _А.ЦветШрифта);// работает = 0
_А.ЦветШрифта = 255;                    // ничего не меняется
//Форма.Обновить();                     // от этого поведение не меняется
Сообщить("ЦветШрифта " + _А.ЦветШрифта);// работает = 255, но цвет как был чёрным так и остаётся
Сообщить("ЦветФона " + _А.ЦветФона);    // работает = 16777215
_А.ЦветФона = 255;                      // тут 1С валится
664 mishaPH
 
модератор
16.02.21
22:26
А форм екс не умеет случаем на форме показывать пдф?
вместо картинки скажем.
665 mishaPH
 
модератор
16.02.21
22:27
есть тут идея - выводить мини комиксы инструкции на форму
666 Ёпрст
 
16.02.21
22:31
(665) дык любой активикс на форму кинь и показывай, хоть от адобе, хоть фоксит..или ишака
667 mishaPH
 
модератор
16.02.21
22:31
(666) а как? вот никогда не делал
668 mishaPH
 
модератор
16.02.21
22:31
есть примеры?
669 mishaPH
 
модератор
16.02.21
22:32
как баркоде как я понял. но вот пдф никогда не видел
670 Ёпрст
 
16.02.21
23:03
(668) где-то валяется..
671 Ёпрст
 
16.02.21
23:03
ща
672 mishaPH
 
модератор
16.02.21
23:14
буду премного благодарен
673 Ёпрст
 
16.02.21
23:42
Короче, поделка, использовалась для показа в форме.
Запускалась так:

ОткрытьФорму("Отчет#",ПолныйПутьПутьКФайлуИзображения,КаталогИБ()+"ExtForms\Ридер.ert");

Может работать автономно. Там в коде можешь заремить использование класса привязок, он нужен был для растягивания активикса на форме.
Ну и  в коде найдешь 2 варианта - через адобе и фоксит
https://cloud.mail.ru/public/RhT4/f2yCuzU2V
674 Ёпрст
 
16.02.21
23:43
Еле нашел :)
У нас семеркины базы валяются..ну, короче в загашнике.
675 Ёпрст
 
16.02.21
23:56
Ну или , через IE :

там заменить на

    //Ридер.СоздатьЭУ("AcroPDF.PDF.1");
    //Ридер.Объект.LoadFile(Форма.Параметр);
        Ридер= СоздатьЭУ("Shell.Explorer.2");    
    //Ридер.Navigate("http://forum.mista.ru";);
        Ридер.Navigate("C:\Вася.pdf");
676 Злопчинский
 
17.02.21
04:32
(663) А через РасширениеФормы ПолучитьАтрибут и потом уже его реквизитами делать, по карйней мере цвет и размер шрифта в поле ввода работает стопудово.
677 mishaPH
 
модератор
17.02.21
08:13
(673) мерси. посмотрю
678 mishaPH
 
модератор
17.02.21
08:28
(673)     гФорма=СоздатьОбъект("Форма");

что за компонента?
679 mishaPH
 
модератор
17.02.21
08:34
в формексе УстановитьФорму применяется к РасширениеФормы

если заменить
    гФорма=СоздатьОбъект("РасширениеФормы");
        гФорма.УстановитьФорму(Форма);
прокатывает

но это тоже неизвестно
    фПривязка=СоздатьОбъект("Общие.Форма.Привязка");
    фПривязка.УстановитьФорму(Форма);
680 Ёпрст
 
17.02.21
10:05
(678) это не компонента, это типовой объект клюшек
681 Ёпрст
 
17.02.21
10:06
Общие.форма.привчзка - это класс привязок. Можешь использовать любой, или руками прописать в приизмененииразмеровокга, чтоб контрол, на который активикс навешан, растягивался по размерам формы.
682 mishaPH
 
модератор
17.02.21
11:55
(680) да ругается он на этот объект. говорит нет такого

гФорма=СоздатьОбъект("Форма");
{Y:\ЦБМ\РИДЕР.ERT(19)}: Неудачная попытка создания объекта (Форма)
683 Злопчинский
 
17.02.21
12:54
(682) нема этого в типовом, это Епрст успел просто забыть больше чем мы знали и знаем ;-)
684 Mikeware
 
17.02.21
13:32
(682) ну попробуй вместо него СоздатьОбъект("РасширениеФормы")

там переименовывали что-то в что-то, и несовместимость была между версиями (вроде после развода формекса и 1спп).

http://catalog.mista.ru/1c/articles/22030/
685 АЛьФ
 
17.02.21
14:51
2(682) Это объект из 1С++.
https://www.1cpp.ru/docum/icpp/html/extobjs.html#id97
686 Arbuz
 
17.02.21
14:56
(676) С полем ввода цвета шрифта/фона меняются как через РасширениеФормы ПолучитьАтрибут, так и через АтрибутФормы УстановитьАтрибут.
На текстовом поле ВАЛИТСЯ по обоим вариантам.
Также поле ввода не возвращает видимость, как я указывал для текста.
АЛьФ, это баг? Или у меня в консерватории что-то?
687 Ёпрст
 
17.02.21
15:02
(683) Ну шо я, все константы помнить должен ? )
(685) точно.
688 mishaPH
 
модератор
17.02.21
15:15
вот не хотелось бы 1с ++ подключать
689 mishaPH
 
модератор
17.02.21
15:15
а она без формэкса есть сейчас?
690 mishaPH
 
модератор
17.02.21
15:15
или их вместе держать не стоит?
691 Arbuz
 
17.02.21
15:24
(690) прекрасно работают вместе
692 Arbuz
 
17.02.21
15:26
+(691) у меня 1с++ 3.2.4.1 и формекс 167
693 АЛьФ
 
17.02.21
15:27
2(686) С цветом атрибутов там засада. Это как раз из той части функционала, который мне не удалось до ума довести. Там фактические надо свою отрисовку делать. Проще уж взять какой-нибудь готовый ActiveX для своих целей.
694 Arbuz
 
17.02.21
15:32
(693) Раньше вроде ж с текстом работало? Надо бы из als убрать упоминание текста тогда. И Видимость указано "Атрибут для чтения/записи", а оно только для записи.
695 mishaPH
 
модератор
17.02.21
15:34
фПривязка=СоздатьОбъект("Общие.Форма.Привязка");
{Y:\ЦБМ\РИДЕР.ERT(27)}: Неудачная попытка создания объекта (Общие.Форма.Привязка)

после того как 1с++ загрузил первое с формой пропало второй вышел.
696 mishaPH
 
модератор
17.02.21
15:34
загружен и формэкс и 1с++
697 Arbuz
 
17.02.21
15:35
(695) нужен класс "Общие.Форма.Привязка"
698 mishaPH
 
модератор
17.02.21
15:42
(697) так. можно подробности? не сталкивался с 1с++ никогда напрямую.
699 АЛьФ
 
17.02.21
15:44
2(694) Видимость гляну. Вроде правил ее недавно...
700 Arbuz
 
17.02.21
15:47
(697) это написанный на 1С класс. Может быть как внутри MD обработкой, так и внешним ert.
Проблема в том, что привязок классов было несколько разной правленности. У себя вижу Дирксовский "классОбщееФормаПривязки", не привязкА, а привязкИ. Скорее всего не подойдёт.
701 Arbuz
 
17.02.21
15:49
(698) Предлагаю просто закомментить все упоминания в коде, перестанет корректно ресайзится, но на прочий функционал не должно повлиять.
702 mishaPH
 
модератор
17.02.21
15:57
(700) (701) я скачал из 1с++ базу с классами и там есть Общие.Форма.Привязка.ert
но как его один привязать ктек конфе
703 Volodja
 
17.02.21
16:01
(702) создай файл в каталоге ИБ  defcls.prm
и там что-то подобное:
класс Общие.Форма.Привязка = Классы\Форма\Привязки\Общие.Форма.Привязка1.ert : РасширениеФормы
{}
класс Общие.Форма.Привязка2=Классы\Форма\Привязки\Общие.Форма.Привязка2.ert : РасширениеФормы
{
    void Привязка(Строка ИДЭлемента, Строка ТипВ="", Строка ИДЭлементаВ="", Строка ТипГ="", Строка ИДЭлементаГ="");
    void УстановитьФорму(РасширяемаяФорма);
    void ПриИзмененииРазмераОкна(ТипСобытия, ШиринаФормы, ВысотаФормы);
    void ПослеОткрытия();
    void Сбросить();
    void Выровнять(ИДЭлемента, Граница, ИДЭлементаЦель, ГраницаЦель, Отступ);
    void Привязать();
};
704 Salimbek
 
17.02.21
16:03
(703) На сколько я помню, достаточно только этого:
класс Общие.Форма.Привязка = Классы\Форма\Привязки\Общие.Форма.Привязка1.ert : РасширениеФормы
{}

Остальное - хорошо бы прописывать, но и без него работало
705 Volodja
 
17.02.21
16:04
(702) скорее всего так:
класс Общие.Форма.Привязка = Классы\Форма\Привязки\Общие.Форма.Привязка.ert : РасширениеФормы
{}
706 Volodja
 
17.02.21
16:05
(704) У меня оказывается два разных класса стоит
707 Ёпрст
 
17.02.21
16:09
(700) ПривязкА и ПривязкИ - это 2 разных класса
708 Volodja
 
17.02.21
16:12
(707) "Привязка" используется в отчете, который Ёпрст выложил
709 Arbuz
 
17.02.21
16:14
(702) вот один только класс привязкА https://yadi.sk/d/KYVg_8kXycnn3Q
710 Ёпрст
 
17.02.21
16:15
(695) на вот, распакуй в каталог с ИБ
https://cloud.mail.ru/public/KFL5/apkLYVZtU
711 Ёпрст
 
17.02.21
16:16
Просто в том, что Алексей Диркс писал, есть еще сплиттеры.
Но, можно и вк от trad использовать - тоже удобно
712 Arbuz
 
17.02.21
16:18
(709) (710) Во! У тебя версия 2.0, а у меня 1.7.
713 mishaPH
 
модератор
17.02.21
16:19
(710) офигеть. работает. Большое спасибо
714 Arbuz
 
17.02.21
16:23
(711) Скажи, будь добр, что за вк от trad, не вспомню.
715 Volodja
 
17.02.21
16:27
(714) наверное это:

//Класс Общие.Форма.Привязка2
//Автор: Дмитрий Ощепков (DmitrO)
//Доработано: Дмитрий Трапезников (trad)
//Версия: 2.0 (trad mod)

//класс Общие.Форма.Привязка2=Classes\Общие.Форма.Привязка2.ert : РасширениеФормы
//{
//    void Привязка(Строка ИДЭлемента, Строка ТипВ="", Строка ИДЭлементаВ="", Строка ТипГ="", Строка ИДЭлементаГ="");
//    void УстановитьФорму(РасширяемаяФорма);
//    void ПриИзмененииРазмераОкна(ТипСобытия, ШиринаФормы, ВысотаФормы);
//    void ПослеОткрытия();
//    void Сбросить();
//    void Выровнять(ИДЭлемента, Граница, ИДЭлементаЦель, ГраницаЦель, Отступ);
//    void Привязать();
//};
716 Arbuz
 
17.02.21
16:28
(715) я про вк
717 Ёпрст
 
17.02.21
16:31
(714)

эли это, или еще была какая. Не помню. Тов. Дмитрий прийди, про свою вк раскажи! :)
https://www.1cpp.ru/forum/YaBB.pl?num=1216643031/all
718 Ёпрст
 
17.02.21
16:39
Не это не то.. тут просто сплиттер, была еще сама вк, где и сами привязки и сплиттер, чтоб формекс не использовать вообще.
719 Ёпрст
 
17.02.21
16:44
720 Arbuz
 
17.02.21
17:00
(719) Спасибо. Не знал про это.
721 Злопчинский
 
20.02.21
16:26
примечание про фичи "ФиксироватьМногострочнуюЧасть"
про МнЧ справочника.
В количество колонок входит системная колонка с пиктограммами,  ФиксироватьМногострочнуюЧасть(1) - визуально ничего не поменяется...

на картинке - исходное, первая колонка - невидимая, подкраска курсора
https://www.screencast.com/t/ykGbcykch8

если сделать ФиксироватьМногострочнуюЧасть(1) - то визуально ничего не меняется
если сделать ФиксироватьМногострочнуюЧасть(2) - то визуально никакой фиксации самих строк не происходит, но вот такой интересный эффект при скроллинге вправо https://www.screencast.com/t/VcCYXtzYJKW
если сделать ФиксироватьМногострочнуюЧасть(3) - то все норм.

В количество колонок следует учитывать и невидимые колонки, если они есть "слева".
722 victuan1
 
02.03.21
06:18
Метод ВыводитьПиктограммы(<Колонка>,<Пиктограмма>)
Назначение:
Выводить в элементе диалога типа ''ТаблицаЗначений'' пиктограммы.


А есть метод, который позволяет назначить вывод пиктограмм не для КОЛОНКИ, а для СТРОКИ таблицы значений?
723 victuan1
 
02.03.21
07:56
(722) Ну или для произвольной ячейки, как более общий случай.
724 Mikeware
 
02.03.21
08:07
(723) это вряд ли.
Только ТабличнымПолем
725 victuan1
 
02.03.21
08:25
Мне хотя б для всей строки (не колонки) целиком. Вроде нет у формекс для этого метода.
726 victuan1
 
02.03.21
08:26
Или по другому сформулирую - сделать показ флажков (пусто, выкл, вкл) для выбранных строк в ТаблицеЗначений.
727 Вафель
 
02.03.21
09:11
(722) так это типовыми средствами можно
728 АЛьФ
 
02.03.21
09:44
2(727) Было бы интересно узнать как...
729 Злопчинский
 
02.03.21
10:47
(722) на ТЗ назначаешь картинку с пиктограммами.
для строки где не надо выводить пиктограмму в колонке - выводишь пустую пиктограмму (номер пиктограммы 0 или заведомо больше чем пиктограмм в картинке). для строк где надо выводить - выводишь нужную.
730 АЛьФ
 
02.03.21
10:58
2(729) Ему ж, наверное, и текст надо выводить в ячейках без пиктограмм.
731 Ёпрст
 
02.03.21
11:19
Разве что 2 колонки + выводить в той же колонке, да и то, положение в ТЗ только формексом, на сколько помню можно в тз
732 victuan1
 
02.03.21
11:49
(729) В остальных строках этой же ТЗ мне надо выводить текст, а не пустоту.
733 victuan1
 
02.03.21
11:50
(731) Это уж конкретный костыль получается...
734 Ёпрст
 
02.03.21
11:51
(733) используй табличное поле
735 victuan1
 
02.03.21
11:53
(734) Вэкафобия, будь она неладна ))
Если клиентосы, у которых запрещено использование ВК. Если оставить ТЗ, то хоть текстом выведу в ТЗ галочки.
А если тянуть ТП, то придется делать двойную обвязку кода:
- для ТП (если разрешены ВК)
- для ТЗ (если запрещены).
Гемор еще тот, не хочу по этому пути идти.
736 Mikeware
 
02.03.21
11:53
737 Mikeware
 
02.03.21
11:54
(735) ну тогда виндингсом выводи - он вроде стандартный шрифт
738 victuan1
 
02.03.21
11:56
Пока решил вместо галочек выводить текст "Да" или "Нет".
https://ibb.co/k37Z5qv

Ну могу еще формексом подсветку добавить для пущей вящности (если он разрешен).
739 victuan1
 
02.03.21
11:58
(737) И как я его туда выберу штатным способом?
740 Ёпрст
 
02.03.21
12:05
(738) вшей обе вк в свою поделку, проверяй в приоткрытии их наличие, если нет, распаковывай и устанавливай..делов то. Никто не заметит, что теперь они у них есть.
741 Ёпрст
 
02.03.21
12:06
(737) он вроде кириллицу не содержит..не ? Не помню.
742 Ёпрст
 
02.03.21
12:06
на нём раньше галочки в рег.отчетности рисовали, помню.
743 victuan1
 
02.03.21
12:59
(742) В табличном документе (моксель) можно штрифт выбрать. А тут таблица значений - не выберешь.
744 Mikeware
 
02.03.21
13:15
(743) да, тупанул я что-то...
745 Ёпрст
 
02.03.21
13:40
(743) выберешь.. формексом :)
746 Mikeware
 
02.03.21
13:51
(745) но не для строки же...
747 АЛьФ
 
02.03.21
14:07
2(746) Хоть для ячейки.
748 Злопчинский
 
02.03.21
14:08
(730) фу, бяка. пиктограммы - отдельная колонка, текст отдельная колонка.
чем проще/линейнее/однообразнее - тем правильнее. а потом надо распечатать ТЧ такую надо будет и что будет печататьяс вместо пиктограмм?
749 victuan1
 
02.03.21
15:34
(748) У меня сейчас так, пиктограммы поколоночно.
Но в итоге не удобное отображение на форме, т.к. колонок дохрена, а строк, наоборот мало.
Поэтому возникла идея транспонировать ТЗ, чтобы вот это:
https://ibb.co/rZ1fJ4t
превратить в это:
https://ibb.co/k37Z5qv
750 victuan1
 
02.03.21
15:37
Колонок 26. По первому скрину видно, что они даже все в ширину не вошли. А вот на втором скрине всё компактно поместилось.
751 Mikeware
 
02.03.21
15:44
(747) вон оно чо, Петрович!©
каюсь - не знал. Век живи - век учись
752 victuan1
 
02.03.21
16:01
(747) Есть пример кода, как шрифт для строки ТЗ выбрать?
753 АЛьФ
 
02.03.21
16:11
2(752) Так кода, как такового, и нет. Надо просто маркос плана раскраски прописать. Это для FormEx, если чо.
754 АЛьФ
 
02.03.21
16:16
Кстати, чистое теоретически, не так и сложно добавить в раскраску макрос типа IMAGE[i], где i - номер пиктограммы из картинки, установленной в таблице.
Надо ли оно?
755 victuan1
 
02.03.21
16:18
(754) Я думаю, что надо.
756 Djelf
 
02.03.21
16:22
(754) Хм, я ТЗ уже не использую, почти все на ТП делаю, а в МСЧ может пригодится.
А IMAGE[0], или IMAGE[-1] (не помню с 0 или с 1 нумерация) будет делать отступ, когда картинки нет?
А вот так IMAGE[2,4,8] склеить возможно будет?
Чисто теоретически, конечно ;)
757 АЛьФ
 
02.03.21
16:27
2(756) Чисто теоретически. Проще всего добавить работу, аналогично всем остальным макросам. Т.е. IMAGE[5] будет задавать, что начиная с текущей колонки в строке будут выводиться картинки с номером 5 (нумерация с 1). Если указано IMAGE[0], то дальше картинки не добавляются. Склеивать можно было бы, но не очень хочется. Там надо будет тогда не просто индекс картинки хранить, а массив индексов.
И вывод картинки сделать, как картинку для панели строки состояния: если текста нет, то в центре ячейки; если есть текст, то картинка слева от текста.
Как-то так.
758 Djelf
 
02.03.21
16:38
2(757) Кстати, насчет Идентификаторов МСЧ. Вот почти готовый эксперимент дампа МСЧ в ТП: https://cloud.mail.ru/public/ydxq/HoDzfHAnQ
Должно находится в модуле документа. Как применить пока не знаю, вроде бы и незачем...
759 АЛьФ
 
02.03.21
16:44
2(758) Прикольно.
760 aleksdbs
 
02.03.21
19:14
К сожалению http://dorex.pro/?projects&formex&download лег и не поднимается. Есть альтернативная возможность получить FormEx и пример использования?
761 MWWRuza
 
02.03.21
20:47
(760) Поднялся. Проверьте.
762 АЛьФ
 
02.03.21
21:11
2(760) Что-то у меня роутер последнее время глючит сильней обычного. В этой ветке есть ссылка на ЯД, где лежит тестовая сборка, можно её скачать. Если очень надо.
763 victuan1
 
03.03.21
19:44
(745) Почему-то не работает...
Сервис = СоздатьОбъект("Сервис");
Сервис.ВключитьРаскраскуТаблиц();
КодШрифтаДляБулева = Сервис.СоздатьШрифт("Wingdings");
Таб._ПланРаскраски = "INDENT[2]FONTSET["+КодШрифтаДляБулева+"]";
Таб._1 = Симв(254)+Симв(168);

Вместо чекбоксов выводит буквы: юЁ

Почему так?
764 victuan1
 
03.03.21
19:51
Вместо Wingdings можно писать любой несуществующий шрифт, результат будет одинаковый.
765 Злопчинский
 
03.03.21
21:03
(763)(764) подтверждаю. Проверил у себя не планом раскраски, а обычной раскраской.
Перем КодШрифт;

//*******************************************
Процедура Сформировать()
    
    ТЗФорма.Очистить();
    ТЗФорма.НоваяКолонка("Подкраска","Строка");
    ТЗФорма.НоваяКолонка("Содержание","Строка");
    ТЗФорма.НоваяСтрока();
    ТЗФорма.Подкраска = "FONTSET["+КодШрифт+"]";
    ТЗФорма.Содержание = "Times";
    
КонецПроцедуры

//*******************************************
Процедура ПослеОткрытия()
    
    КодШрифт = глСервис.СоздатьШрифт("Wingdings",10);
    
КонецПроцедуры

//*******************************************
Процедура ПриЗакрытии()
    
    глСервис.УдалитьШрифт(КодШрифт);

КонецПроцедуры


Если вместо Wingdings написать например "Times New Roman" - то все ок. а вингдингсы выводятс у меня шрифтом без засечек, похоже что тупо не может "найти" такой шрифт
766 victuan1
 
03.03.21
22:04
(765) У меня это тоже обычная раскраска, а не ПланРаскраски, просто колонку так неудачно назвал.
767 tgu82
 
03.03.21
23:06
Альф а вы не собираетесь символ рубля (р с черточками вертикальными) как-то впилить в формекс? А то вроде надо для ценников вместо руб или р. но не получается.
768 Злопчинский
 
04.03.21
00:06
(767) найди шрифт (только не юникодовый, клюшки ими не работают) со спецсимволами где есть этот знак и юзай
769 Злопчинский
 
04.03.21
00:07
Формекс тут вооще не при делах
770 victuan1
 
04.03.21
06:34
Так, я хочу раскрасить ячейки в одной строке в разные цвета в разных колонках, не используя метод ИспользоватьПланРаскраски(1), т.е. его использование ломает раскраску в других формах где давно используется старый способ раскраски - и менять это я не буду.

В итоге не получается это сделать. Максимум что добился, это раскраска группы ячеек в строке в один цвет, но следующую группу ячеек в этой же строке в другой цвет не используя ПланРаскраски и не вводя доп. колонок для раскраски, никак не получается.
771 victuan1
 
04.03.21
06:41
Вот так хочу https://ibb.co/V2TMZKd
Но не используя ПланРаскраски, и обходясь лишь одной служебной колонкой в ТЗ для задания макросов раскраски.
Это невозможно?
772 victuan1
 
04.03.21
06:42
(771) (если что, картинку эту нарисовал в паинте, реально сделать так не смог).
773 tgu82
 
04.03.21
08:43
(768_ И что это за шрифт и как его в 1с добавить?
774 tgu82
 
04.03.21
08:47
(773)+ https://habr.com/ru/post/48084/ это что надо?
775 tgu82
 
04.03.21
09:13
Ну не хочет зараза а в ворде по алт+8 прекрасно работает
776 АЛьФ
 
04.03.21
09:17
2(771) Невозможно.
777 victuan1
 
04.03.21
10:15
(776) Уже понял. Будем использовать План раскраски.
778 victuan1
 
04.03.21
10:25
(776) А что насчет проблемы в (763)?
779 АЛьФ
 
04.03.21
11:20
2(778) Пока не смотрел.
780 АЛьФ
 
04.03.21
11:26
Так. Теперь по поводу картинки в любой ячейке.
Добавил возможность указания макроса IMAGE[]. Пока работает только для таблицы значений на форме.
Тестовая сборка: https://disk.yandex.ru/d/SaGiKhu0fjokHw
Пример для общего понимания принципа: https://disk.yandex.ru/d/b1kx6w4OTFlywQ
781 Злопчинский
 
04.03.21
11:47
(780) Тестовая сборк на каком родителе построена? на 168? ибо 169 - косячный был
782 АЛьФ
 
04.03.21
11:53
2(781) У меня все идет последовательно. Если были косяки, то они либо исправлены, либо остались и тут.
783 Злопчинский
 
04.03.21
11:54
Тестовая сборка из (780) - косячная.
Ломает шрифты. Пример: https://www.screencast.com/t/yDNsoRdz
вместо кракозябр - д.б. нормальные русские буквы.
проблему описывал выше в этой ветке
.
код установки шрифта на ТЗ
//************************************************************************************************************
//
Процедура УстановитьАтрибутыФормы()

    КодШрифт0 = глСервис.СоздатьШрифт("Arial",20); // ТЗ
    КодШрифт1 = глСервис.СоздатьШрифт("Arial",30); // поле ввода
    
    РФорма = СоздатьОбъект("РасширениеФормы");
    
    АтрибутФормы = РФорма.ПолучитьАтрибут("ТЗФорма");
        АтрибутФормы.Шрифт = КодШрифт0;    
        АтрибутФормы.ИзменитьСтиль(2097152); //без вертикального скроллбара
        АтрибутФормы.ИзменитьСтиль(8388608); //без двойной рамки
    
    АтрибутФормы = РФорма.ПолучитьАтрибут("ВыбШК");
        АтрибутФормы.Шрифт = КодШрифт1;    
    
    РФорма = ""; АтрибутФормы = "";
    
КонецПроцедуры    // УстановитьАтрибутыФормы()
784 Злопчинский
 
04.03.21
11:57
По факту - в продакшен ставить нельзя. У меня, например. назанчение шрифта нв ТЗ - одна из основных интерфейсных возможнойтей формекса, на этом построены куча экранных форм и несколько армов для десктопов.
785 АЛьФ
 
04.03.21
12:01
2(783) Вот какой же ты все-таки...
786 АЛьФ
 
04.03.21
12:02
2(783) Обработку можешь сделать мне тестовую?
787 Злопчинский
 
04.03.21
12:05
(785) я. что, зря Злопчинский?!
описывал со шрифтами в (616).
и еще хочется уточнения в формексе по (606)
.
тестовую обработку - сделаю сейчас
788 АЛьФ
 
04.03.21
12:10
2(787) Скорее всего, это все взаимосвязанные проблемы. Нужна тестовая обработка.
789 Злопчинский
 
04.03.21
12:18
Тестовая обработка https://wdfiles.ru/7b88c8
790 Злопчинский
 
04.03.21
12:19
если че - я на вин10., но по (616) я вроде и на Server2003 проверял, тоже ломается.
791 АЛьФ
 
04.03.21
12:37
2(790) Пересобрал тестовую, выложена там же: https://disk.yandex.ru/d/SaGiKhu0fjokHw
Проверь так же глюк из (606). Если остался, то делай тестовую обработку.
792 Злопчинский
 
04.03.21
13:02
(791) (606) буду проверять позже намного, после марта. сейчас занят сильно, а там надо аккуратно.
текущую тестовую - сейчас проверю
793 Злопчинский
 
04.03.21
13:10
(791) - проверил, кракозябы ушли. вроде норм
794 Злопчинский
 
04.03.21
13:10
Спсб! я там обещался вспосоществовать малостьб. вот реально не помню отправил или нет. потом позже посмотрю - если что - исправлюсь.
795 АЛьФ
 
04.03.21
13:13
2(794) Отправил, не переживай.
796 Злопчинский
 
04.03.21
13:43
(791) сборка 173 кривоватая.
проявляются незапланированное поведение в ТЗ, связанное видимо с внедрением IMAGE
797 Злопчинский
 
04.03.21
13:43
выложу видео
798 Злопчинский
 
04.03.21
13:52
демо-видео кривизны https://www.screencast.com/t/KSsF7YkHfox
Итого - на данный момент стабильный релиз = 168.
Обратить внимание на "несанкционирвонное" промаргивание всей формы при листании ТЗ на форме
799 Злопчинский
 
04.03.21
13:54
вообще картинки и тест в однйо колонке - извращение страшное. тем более что victuan запилил уже то что ему надо и без этой фичи.
предлагаю убрать новую-фичу имаджа ;-) и выпустить стабильный релиз с испавлением кракозяб нерусских, а имадж уже пилить если надо/охота после стабильного релиза 168 с добавками 169 релиза (что там было не помню) с исправлением нерусских кракозяб
800 АЛьФ
 
04.03.21
14:33
2(798) Эффект прикольный, но никак мне его не повторить. :(
Предполагаю, что проблема с инициализацией структуры, но не отловить с ходу.
801 Злопчинский
 
04.03.21
14:39
(800) значит пока эту добавку с имаджем убрать... ;-)
802 АЛьФ
 
04.03.21
14:49
2(801) Не-не-не! Так не пойдет. Надо добить.
В таблицах, где картинки мелькают используется раскраска? Имаж там прописывал?
803 АЛьФ
 
04.03.21
15:01
+(802) Надыбал у себя эту обработку. Не воспроизводится появление картинок :(
804 Злопчинский
 
04.03.21
15:14
(802) Имадж - не прописывал, я не такой извращенец
805 Злопчинский
 
04.03.21
15:15
(803) раскарска сейчас гляну
806 Злопчинский
 
04.03.21
15:19
(802) //[+]progadmin, 14.07.2017, ДОБАВЛЕНО НЕТИПОВОЕ
    гТабВыборка.Курсор = глТекущийКурсор;
//[+]_progadmin, 14.07.2017, ДОБАВЛЕНО НЕТИПОВОЕ

для ТЗ гТабВыборка - используется ПОДКРАСКА (план раскраски не использую), просто текущая строка становится серенькой
                                                                                                    
Процедура ДобавитьКолонкиВГлавнуюТаблицу()
    
    Если        гТипОбъекта = "Справочник" Тогда
        ИмяКолонки_Объект = "Элемент";
    ИначеЕсли    гТипОбъекта = "Документ" Тогда
        ИмяКолонки_Объект = "Документ";
    ИначеЕсли    гТипОбъекта = "Операция" Тогда
        ИмяКолонки_Объект = "Документ операции";
    ИначеЕсли    гТипОбъекта = "Счет" Тогда
        ИмяКолонки_Объект = "Счет";
    КонецЕсли;
    
    гТабВыборка.НоваяКолонка("Пометка",    "Число", 4, 0,    "Вкл",                6);
    гТабВыборка.НоваяКолонка("Статус",     "Число", 4, 0,    "Статус",             9);
//ДОБАВЛЕНО НЕТИПОВЕ    
    гТабВыборка.НоваяКолонка("Курсор",     "Строка",17, ,     "Курсор",    18);
    гТабВыборка.ВидимостьКолонки("Курсор", 0);
//ДОБАВЛЕНО НЕТИПОВОЕ    
    гТабВыборка.НоваяКолонка("Объект", , , ,             ИмяКолонки_Объект,    42);
807 Злопчинский
 
04.03.21
15:20
подкраска строки простой BRUSH_S[0xCCCCCC]
808 АЛьФ
 
04.03.21
15:32
2(806) Сейчас проверю без плана раскраски.
809 АЛьФ
 
04.03.21
15:34
Кажется получилось воспроизвести. Но только если добавить имаж.
810 Djelf
 
04.03.21
15:37
(803) А у меня вообще не работают картинки из примера: https://gyazo.com/7f2bc12f16ae5d38427bff53bf9f9f1b?token=f533134f595aa95cb728fdbb3a9c882d
Все остальные ВК отключил. На W10x64...
811 Злопчинский
 
04.03.21
15:38
(809) ну дак я ж сразу сказал - что имадж мешает
812 Djelf
 
04.03.21
15:38
+(810) FormEx правильный загружается https://gyazo.com/8f9c86e2f6ccafb50c2cb3aa293dd427?token=eef14fea2fa856218615099c53f1f880
813 АЛьФ
 
04.03.21
15:38
2(810) Раскраска включена? План раскраски включен?
814 Злопчинский
 
04.03.21
15:39
Короче, хватить пилить извращения ;-)
добавьте лучше нужное - вот декодировать строку из UTF8 - есть, а закодировать строку - нет...?!
815 АЛьФ
 
04.03.21
15:42
2(814) Проверь у себя, плиз: https://disk.yandex.ru/d/SaGiKhu0fjokHw
Номер версии менять не стал.

Посмотри Сервис::EncodeFromUTF8(). Не помню допилил ее или нет.
816 Djelf
 
04.03.21
15:57
2(813) Много сочетаний перепробовал - не работает.
Нужен тест с загрузкой formex в пустую базу и установкой правильных модификаторов.
817 АЛьФ
 
04.03.21
16:15
2(816)
ЗагрузитьВнешнююКомпоненту("formex.dll");
    глСервис = СоздатьОбъект("Сервис");
    глСервис.ПерехватКлавиатуры(1);
    глСервис.ПерехватМыши(1);
    глСервис.ВключитьРаскраскуТаблиц();
    глСервис.ИспользоватьПланРаскраски(1);
818 Злопчинский
 
04.03.21
16:16
(816) глСервис.Включитьраскраскутаблиц(0);
819 Злопчинский
 
04.03.21
16:17
(815) DecodeToUTF8() в ALS есть
EncodeFromUTF8() - нет, если пробовать то после конца марта по этой возможности
820 Злопчинский
 
04.03.21
16:22
(815) Проверил, вроде норм (пока).
821 Djelf
 
04.03.21
16:24
2(817) С такими параметрами при запуске 1С заработало. Спасибо!
Но в обработке я же дергал ВключитьРаскраскуТаблиц и ИспользоватьПланРаскраски!
Не понятно как так у меня получилось.
822 victuan1
 
04.03.21
18:19
С имеджем можно уже тестить или подождать более стабильный релиз?
823 АЛьФ
 
04.03.21
22:52
2(822) Можно тестить. Я не знаю когда у меня появится время заняться опять компонентой. Так что стабильность пока вот такая.
824 Злопчинский
 
05.03.21
01:06
(823) то есть все типа? нам готовиться к переходу на снеговика?!
825 victuan1
 
05.03.21
06:42
(823) Ну, в принципе работает. Багов пока не обнаружил.

Выглядит теперь у меня так:
1) на новой версии Формекс
https://ibb.co/vkdL2PT

2) на старой версии формекс
https://ibb.co/PG01TTL

3) при недоступности формекс
https://ibb.co/z8TnHkV

Все три режима устанавливаются автоматически, в зависимости от доступного "окружения".
826 АЛьФ
 
05.03.21
09:40
2(824) Не, ну, так-то сразу не надо рвать. Может все еще обойдется.
827 АЛьФ
 
05.03.21
09:40
2(825) Красота!
828 Злопчинский
 
06.03.21
05:11
Кста, попутно...
все маялся стилевым оформлением кнопок и пр. пиктограммы.
пришел к минимализму - кнопки нафиг все текстовые надписи. единственнок где пиктограммы допускаю - это типовые кнопки с чекбоками вкл-выкл-перекл. ибо нефиг.
829 Злопчинский
 
06.03.21
05:21
АЛьФ, хорошо бы такое запилить:
(не нашел) дотсуп к атрибуту кнопки "Команда" (горячая клавиша) - на чтение и на запись.
.
и вот еще хотелось бы.. типа...
1. нажимаем кнопочку (или метод формекса) - и в файлик скидывается текстовое описание текущей формы (типа как оно наверное есть в контейнере внутри ерт) - с расположением всех элементов, их описаниями, их шрифтами итд.
2. нажимаем кнопочку или выполняется метод формекса и загружается "описание" формы...
- что-то типа ПриЗагрузкеФормы и ПризагрузкеМодуля.
.весь этот бред - он для того чтобы как-то на лету можно было для ОДИНАКОВЫХ модулей загружать разные визуальные формы (опираясь на настроечные файлы или иным способом получать инфу какой размер формы надо применить...), грубо говоря форма для экрана 640-480 и форма для экрана 600-800. Сами формы-фейсы делаются ручками в конфигураторе. (у Епрста была приблуда для майстрячения форм в обычном режиме, есть на ИС)
830 Злопчинский
 
06.03.21
06:13
И вот еще:
Если делать подкраску строки, например, "КолонкаПодкраска" = BRUSH[]
и КолонкаПодкраска - 10-ая колонка в таблице,
то ТЗ.ВидимостьКолонки(КолонкаПодкраска,1,15) - то есть отобразить ее 15-ой колонкой (колонок в ТЗ много) - все равно подкраска начинается с 10-ой... бяково..
831 victuan1
 
11.03.21
04:46
(740) "вшей обе вк в свою поделку, проверяй в приоткрытии их наличие, если нет, распаковывай и устанавливай..делов то. Никто не заметит, что теперь они у них есть."
Ты в розовых очках. Этот подход, в общем случае, не работает.
Проблема не в том, что у клиента НЕ используются эти ВК, а в том что используются СТАРЫЕ версии ВК, которые успевают запуститься у клиента до того как я запущу свою обработку. Методов выгрузки компонент нет, поэтому я хоть закопируюсь новыми версиями, но запустить их не смогу.
Старые версии ВК не поддерживают тот функционал, который мне нужен, и тем более тот, который Альф добавил только что.
Например, при попытке выполнить Сервис.ИспользоватьПланРаскраски(1) будет ошибка исполнения кода.
Мне нужно каждый чих оборачивать в Попытку и быть готовым, что в лучше случае моя обработка не будет работать как надо, в худшем - тупо не запустится из-за ошибки.
832 victuan1
 
11.03.21
04:49
(831) Ну еще выяснилось, что ВК может повесить 1С при некотором окружении (ОС). В этом теме обсуждалось и даже исправлялось. Но не факт, что попадется очередное окружение, которое вызовет апкраш и на "исправленной" версии ВК.

Так что, да, я тоже ВК-фоб. Обширная практика использования зоопарка нескольких тысяч клиентов меня таким сделала.
833 Злопчинский
 
11.03.21
05:28
(831) насчет каждого чиха в попытке - ты бы посмтрел на обработки мои что я сейчас пишу -  меня там все что потенциально может упасть - обернуто в попытки, транзакции и эксклюзивные блокировки. точек "экранов-стопов" наверное уже штук 80...
834 Злопчинский
 
11.03.21
05:29
Кажется. в свое время встречал ВК, которая может выгружать другие ВК
835 Злопчинский
 
11.03.21
05:32
(832) "то ВК может повесить 1С при некотором окружении (ОС)." - это проч то? я как-то пропустил...
у меня ВК крашили 1с, но это не имело отношеняи к формексу и 1С++, выяснил что крашило, убрал...
836 АЛьФ
 
11.03.21
08:47
2(834) Она называется FormEx.
837 Djelf
 
11.03.21
10:32
2(836) Немного не по теме FormEx. Это по поводу ConfigSpy, но новой темы видимо не заслуживает.
Сегодня W10х64 обновилась до 19042.867 и вот сюрприз:

Имя сбойного приложения: 1cv7s.exe, версия: 7.70.0.27, метка времени: 0x4573fcd8
Имя сбойного модуля: KERNELBASE.dll, версия: 10.0.19041.804, метка времени: 0xb610d74d
Код исключения: 0xc000041d
Смещение ошибки: 0x0010b0a6
Идентификатор сбойного процесса: 0x44
Время запуска сбойного приложения: 0x01d7164345e66071
Путь сбойного приложения: D:\1C\BIN\1cv7s.exe
Путь сбойного модуля: C:\Windows\System32\KERNELBASE.dll
Идентификатор отчета: e9e95945-fe31-480c-9c72-603bbaae74f7

Окно c 7z даже не появляется. Танцы с бубном, с dism, с sfc, с установкой 1С без OpenConf и т.д. и т.п. не помогли.
Закинул старый mfc42.dll 6.2.8073.0 в BIN - заработало. Ну хоть этот старый фокус работает...
838 АЛьФ
 
11.03.21
11:56
2(837) Так а 1С при этом нормально запускалась в режиме предприятия?
839 Djelf
 
11.03.21
12:10
(838) Да, и конфигуратор с OpenConf запускается и предприятие тоже.
Что-то с открытием внешнего файла (7z.exe) произошло. Ни выгрузка, ни загрузка не работает без подмены mfc42.dll
840 Злопчинский
 
11.03.21
12:39
(836) торчняк! а я не пользовался, за ненадобностью
841 Djelf
 
11.03.21
12:44
+(839) Непонятно что в MS такое наделали и почему подмена mfc помогает...
Стек вызова при сбое: https://gyazo.com/ab069163e6ef2f62c6bc9338a2536a16?token=7e14a79ea6c948f147b9305857ec9781
842 АЛьФ
 
11.03.21
12:49
2(841) Похоже что-то с неявным преобразованием CString. Если не забуду, попробую поправить.
843 Злопчинский
 
11.03.21
16:51
(842) если возможно то подкраску сделать чуть более качественной, см. скрин
https://content.screencast.com/users/Che66/folders/Capture/media/9e4bd7f0-3262-4c8c-92aa-d90c9175b787/LWR_Recording.png
844 big
 
11.03.21
18:29
А можно в Объект "Сервис" добавить метод для вычисления хэш SHA-256? По такому же принципу, как и хэш MD2, MD5? Так не хочется костылики подставлять ))
845 tgu82
 
11.03.21
21:20
(843) А можно на форме в одном слое всякие реквизиты родителя а в другом слое форма списка подчиненного справочника для этого роди теля??? Может все просто и я туплю но никак ен соображу
846 Salimbek
 
11.03.21
21:22
(845) А в чем проблема? Оно и так, куда поместишь визуальный элемент, на том слое и будет.
847 tgu82
 
11.03.21
21:34
(846) ТЫ будешь сильно смеяться но за хрен знает сколько лет программирования на 7.7 мне это не поднадобилось.
А ведь как просто - просто было же "Авто" ну и как говорится хрен бы с ним. Ужас. Спасибо что наконец меня просветили
848 Злопчинский
 
11.03.21
21:37
(846) фиг вам. в ФОРМЕ СПИСКА СПРАВОЧНИКА МнЧ по слоям не двигается.
тут прост при переключении слоя скорее придется играться видимостью самой МнЧ.
Или попробовать через формекс назначит МнЧ на слой (сомневаюсь)
.
и нахера(зачеркнуто) зачем такие извраты?
или сделай на подчиненном справочнике сверху над МНЧ нужные реквизиты или на родительской форме выведи в ТЗ или в йоксельном табдоке нужный список.
.
и нахрена в подчиненном справочнике переключаться между слоями если по кнопке - показать полдчиненный спраччоник. дешево и сердито.
849 tgu82
 
11.03.21
21:43
(848) Да, рано я радовался. Смысл простой. Есть элемент спраовчника "Номенклатура". Открыта его форма. И есть на нем вкладка "Сайт". И при нажатии на нее открывается форма списка подчиненнго справочника "ПараметрыДляСайта" для заполнения. Но ни хрена она не открывается
850 tgu82
 
11.03.21
21:45
(849)+ Я пробовал просто на форме сделать форму списка справочника "Банки". Получил пустоту
851 Злопчинский
 
12.03.21
00:23
(842) АЛьФ, а можно вот сюда
.
глСервис.ОткрытьДвиженияОбъекта(ТекущийДокумент(),ТУТВТОРОЙПАРАМЕТР)
.
вторым параметром сразу передавать нужный объект, чтобы сразу открывалось окно движений, без предварительного выбора из СЗ, т.е. у меня есть например два регистра "Остатки" и "Заказы" и чтобы я мог написать типа
.
глСервис.ОткрытьДвиженияОбъекта(ТекущийДокумент(),"Остатки");
или
глСервис.ОткрытьДвиженияОбъекта(ТекущийДокумент(),"Заказы");
.
..если второй параметр не задан/опущен - тогда открывать окно выбора из СЗ
..если второй параметр хрень какая-то - тогда открывать окно выбора из СЗ
.
вроде кто-то показывал хирый кунштюк как окно дивжений по регистhe вроде можно открыть программно типа указав внутренний код/ид команды открытия этого окна... типа как у каждого пункта меню такой код есть...
852 Злопчинский
 
12.03.21
00:31
(849) а в чем проблема? при выборе закладки делаешь

Конт = "";
ОткрытьФорму("Справочник.ПараметрыДляСайта.ФормаДляЗаполненияИзЭлемент",Конт);
Конт.ИспользоватьВладельца(ТекущийЭлемент());
.
Можешь через конт передать СЗ в форму списка - при открытии через Форма.Параметр - смотреть что получил и делать что хошь...
.
Только надо учитывать, что открытая подчиненная форма может очень "неаккуратно" переключиться на совсем другой элемент номенклатуры если эта форма подчиненного спраочника уже была открыта и на экране есть список номенклатуры, тогда надо шаманить, чтобы "фокус" не убежал для подчиненного справочника из твоего эл.номенкалтура.
.
а вообще - хрень полная.
.
сделай на вкладеке ТЗ - считывай туда параметры для сайта, редактируй их через эту ТЗ, и сливай обратно в справочник.
853 Злопчинский
 
12.03.21
00:37
(845) (846) (849) (850) - геть отседова в отдельную ветку, не засоряем Альфовский переулок!
854 Salimbek
 
12.03.21
07:36
(847) А, Сорри, давно не сталкивался с 7.7, уже всего и не упомнишь ))) Так-то был класс на ТабличномПоле, имитирующий Список справочника (и я сам для себя тоже писал). Только я с ТП и слоями наткнулся на маленький нюанс. Если отключаешь слой с ТП в каком-либо Событии этого ТП, то это самое ТП останется видимым. Хотя слой вроде бы и отключен. Надо либо через ВнешнееСобытие или через ОбработкуОжидания с такой видимостью играться.
(853) Все-все, ухожу )))
855 tgu82
 
12.03.21
09:33
(853) Ага. Канай и пущай канает редиска %)
856 АЛьФ
 
12.03.21
11:36
2(843) Красится область, которая определяется 1С, как область ячейки. Сам я ничего не вычисляю. И у себя подобных проблем с раскраской не встречал. Нестандартные шрифты используешь? Может из-за этого?
857 Злопчинский
 
12.03.21
12:07
(856) Пора, пора уже начять расти над собой и вычислять! ;-)
.
если просто сделать подкраску на ТЗ - то все норм.
а вот если в ПослеОткрытия "штатно" через расширение формы установить шрифты на ТЗ (в частности) - то вот такое получается, причем чтобы это увидеть размер шрифта начать с 16 или еще больше. если размер шрифта мелкий - то все ок.
858 Злопчинский
 
12.03.21
12:08
и. кстати. что значит если размер шрифта указать отрицательным значением? - все работает...
859 Злопчинский
 
12.03.21
12:10
например
    КодШрифт1  = глСервис.СоздатьШрифт("Arial Narrow",-14);

    КодШрифт1  = глСервис.СоздатьШрифт("Arial Narrow",17);
по визуальному представлению эквиваленты
860 АЛьФ
 
12.03.21
12:32
2(858) Х.з. Я ж только передаю полученные значения в определенные методы. Как оно там потом отрабатывает конкретные значения - это надо в документацию по WinAPI лезть.
861 АЛьФ
 
12.03.21
12:33
2(851) Сейчас попробую.
862 АЛьФ
 
12.03.21
12:37
Наткнулся тут на интересный глюк.
Если с помощью функции ОткрытьФорму("") пытаться создать новый документ, а в это время будет висеть долгая транзакция, то открытие формы вылетит по таймауту, но в памяти зависнут объекты недосознанного документа. Как итог после этого - при закрытии 1С будет выдан вопрос "Сохранить документ?", несмотря на то, что визуально никакого документа нет.
863 Злопчинский
 
12.03.21
12:44
(862) ага, кстати как-то напарывался давно на что-то подобное. ничего нет, а спрашивает.
потом аккуратнее стал... ;-)
864 АЛьФ
 
12.03.21
13:27
2(851) Попробовал, не получается.
865 Злопчинский
 
12.03.21
13:33
(864) Попробуйте еще раз.
866 Злопчинский
 
12.03.21
13:34
Штрилиц подумал. Ему понравилось и он решил подумать еще раз.
867 АЛьФ
 
12.03.21
13:41
2(865) Там надо полностью переписывать функцию движка, которую я вызываю для показа движений, т.к. она не принимает конкретный регистр. А при переписывании возникает проблема с тем, что идет вызов функций, которые мне недоступны.
868 Злопчинский
 
12.03.21
14:34
т.е. не получится типа обойти вызов показа СЗ и подсунуть вместо этого типа уже сделанный выбор... пичалька...
.
но ладно, это скрее хотелка из области фич/плюшек..
869 Злопчинский
 
13.03.21
03:39
АЛьФ. а вот ПриНажатииКнопкиКлавиатуры - раньше помнится были вроде проблемы с перехватом Ф1
Сейчас перехват Ф1 работает (помню было сообщение от тебя что Ф1 сделал), проверяю что Код = 112, все как надо, отрабатывается, но после этого все равно отрабатывается стандартное виндявое действие по вызову помощи. манипуляции с ФОС = 0, заменой Код - эффекта не дают.
Как избавиться от вызова штатного действия по Ф1?
870 Djelf
 
13.03.21
07:38
(869) Там на F1 нужно блокировать, а чуток другое.

Процедура ПриПолученииКомандыГлавнымОкном(wParam, lParam)
  Если (wParam=57670)ИЛИ(wParam=57666)ИЛИ(wParam=32808) Тогда // 57670 F1, 57666 Shift+F1, 32808 - О системе 1С-Предприятие
    СтатусВозврата(0);
  КонецЕсли;
КонецПроцедуры
871 Злопчинский
 
13.03.21
12:20
(870) А откуда можно почерпнуть значения wParam для разных пунктов меню?
872 Djelf
 
13.03.21
12:28
(871) Из Сообщить(wParam) в ПриПолученииКомандыГлавнымОкном ;)
873 Злопчинский
 
15.03.21
03:16
А вот вопрос. Есть форма списка справочника. на нем есть штатное дерево иерархии групп.
Можно ли на поле с деревом иерархиии групп назначить свой шрифт, не трогая МЧ списка?
874 mishaPH
 
модератор
16.03.21
09:33
можно ли макадрес компа получить както формэксом?
875 Djelf
 
16.03.21
09:53
(874) Зачем в FormEx тащить все данные WMI?
WMI Code Creator от Душелова https://infostart.ru/public/16854/
Мак адрес ищи в пространстве имен root\CIMV2, класс Win32_NetworkAdapter
876 mishaPH
 
модератор
16.03.21
09:59
(875) а зачем разводить зоопарк компонент. все это надо поддерживать
877 Djelf
 
16.03.21
13:52
(876) Какой такой зоопарк? Какие такие новые/лишние компоненты? Там в итоге получается простенький vbscript завернутый в код 1С, а vbscript везде есть.
878 Сисой
 
16.03.21
14:34
Получил удовольствие от прочтения ветки. Помолодел лет на 15 и бесплатно побывал на Кубани...
879 mishaPH
 
модератор
16.03.21
14:39
(877) вот представь магазин. а точнее 300 их. там может быть запрещено запуск всего, кроме 1с и тем более скриптов админами.
880 Djelf
 
16.03.21
15:17
(879) "FormEx™ - ВК работы с формой и визуальными возможностями". Остальное второстепенно.
Если есть 300 точек и всем им требуется дополнительный функционал, а злые админы все настолько порезали, что даже через COM не выполняться скрипты, то это путь к написанию собственной ВК.
И, да, потребуется ее сопровождение и проверка работы на всех 300 точках! На 300 точек это оправдано. Или надо все возможные хотелки и работу на АЛьФ`а вешать?
881 Злопчинский
 
16.03.21
15:34
(876) ненене.. пихать все в компоненту=-комбайн - краней неверное решение. тем более в формекс
882 АЛьФ
 
16.03.21
16:23
Уже есть метод Сервис::ВерсияОС(), который в переданном параметре (в списке значений) возвращает IP и имя хоста. Не проблема туда добавить и МАС. Правда я в этом методе не парился с тем, что сетевух может быть несколько и беру первый из списка. Если делать по уму, то надо тогда уж делать список в списке.
883 Arbuz
 
16.03.21
16:57
ipconfig /all | grep -o -E '([[:xdigit:]]{2}-){5}[[:xdigit:]]{2}'
)))
884 Djelf
 
16.03.21
17:09
(882) Там не все так просто! А если несколько сетевух, а если терминальщики есть, а они на 100% есть.
Это все в тз нужно выгружать, а не просто так...
885 Arbuz
 
16.03.21
17:15
(884) Кстати, а как получить мак-адреса клиента терминальной сессии? это вообще возможно в общем случае?
886 mishaPH
 
модератор
16.03.21
18:00
да вот если куча сетевух даже если не сервер. карта, блютух вайфай имеют же разные макадреса по идее
887 mishaPH
 
модератор
16.03.21
18:01
(881) почему? ну если есть уже разное системное. почему бы и это не сделать. (880) я не понял о чем ты. формекс уже есть там и работает.
есть новая задача получить макадрес чтобы передать далее для нужд.
888 АЛьФ
 
17.03.21
09:06
2(884) У меня там уже сделано под список значений. Переделывать не вариант. Значит буду возвращать в списке значений одним из значений таблицу с параметрами всех сетевух.
889 mishaPH
 
модератор
17.03.21
09:23
(888) да можно через разделитель или уже строка под формат значение стр внутрь под список значений
890 big
 
17.03.21
09:48
(888) А что насчет (844) ?  Никак?
891 АЛьФ
 
17.03.21
10:21
2(890) Боюсь, что не получится. Для MD2 и MD5 вызываются готовые методы движка 1С. А для SHA-256 надо будет откуда-то тащить и не факт, что сразу заработает. А времени на доработку у меня уже нет. С понедельника уже отложу FormEx на неопределенное время.
892 АЛьФ
 
17.03.21
10:48
А вот по поводу МАС выложил, как обычно, сюда: https://disk.yandex.ru/d/SaGiKhu0fjokHw
Проверял таким кодом:

    Параметры = "";
    глСервис.ВерсияОС(Параметры);
    Адаптеры = Параметры.Получить("Adapters");
    Если ТипЗначенияСтр(Адаптеры) = "ТаблицаЗначений" Тогда
        глПечатьТЗ(Адаптеры);
    КонецЕсли;
893 Djelf
 
17.03.21
11:10
(891) Не все так плохо. Вот, ну очень простая обертка, на си над хешами из advaspi32.dll https://github.com/lifenjoiner/win-hashes
894 mishaPH
 
модератор
17.03.21
13:20
(892) Мерси. работает
895 big
 
17.03.21
18:51
(891) Хорошо, будем искать. (с)   )
896 Злопчинский
 
18.03.21
00:06
Поставил 175 в продакшен на текущий проект.
Текущий релиз = 175, а в 174 что было? что-то не зафиксировалось у меня...
897 АЛьФ
 
18.03.21
08:49
2(896) Это была моя внутренняя сборка со всякими недоделками. Чтобы с ней не путать изменил номер при выкладывании. У меня так часто получается.
898 Злопчинский
 
18.03.21
17:00
(897) это норм! я к тому чтобы ничего не сломать в уже работающем возможностях фнутри самого формекса ;-) как было кракозябами шрифтов в релизах 169 и 172
899 Cthulhu
 
18.03.21
18:57
так. не блистая оригинальностью - спрошу:
в итоге на текущий момент в процессе этого выдающегося и бурного мозгоштурма - какой все-таки релиз "самый последний из безглючных и самый безглючный из последних"?.. и какие минимальные замечания к нему? и дока/алс?
заранееблагодаренивсётакоэ.
900 Злопчинский
 
18.03.21
20:34
(899) 173 норм.
ну и 175 в (892) вроде тоже, я на нем отлаживаюсь.
901 Злопчинский
 
18.03.21
20:34
(899) алс по ссылке
902 tgu82
 
18.03.21
22:17
(0) Да, супер. Как раз пришлось придумывать как все-таки распечатать маленькие по размерам штрихкоды. EANGNIVC хорошо но не могу текст убрать и еще для ШК место добавить таким образом чтобы сканером прочелся на маленько ценничке - а у вас уже целая библиотека на эту тему
903 alyuev
 
23.03.21
16:47
2(862) мы частенько натыкаемся на такую фишку из-за транзакций.
904 tgu82
 
24.03.21
15:12
(0) глСервис.НарисоватьШтрихкод(Таб.ТекущийОбъект,13,Штрихкод) - это в рисунке у меня сделано "Выражение".
пишет "ошибка выполнения функции".

Подскажите что не так?
905 Злопчинский
 
24.03.21
15:21
в риснуе нет "выражения".
кладешь "рисунок" на макет. свойства риснук - ТЕКСТ - в текст пишешь как выше
906 tgu82
 
24.03.21
15:28
(905)Если делать то он просто выводит:
"глСервис.НарисоватьШтрихкод(Таб.ТекущийОбъект,13,Штрихкод)" как просили текст и все :)
907 Злопчинский
 
24.03.21
18:36
(906) какое нафиг" выражение"? рисунок-пкм-свойства - в поле на закладке ТЕКСТ пишешь выражение. но никакого поля "выражение" нет. https://www.screencast.com/t/eXZcT2Qx1uKa
908 Злопчинский
 
24.03.21
20:28
Альф, а есть что-то такое типа
ПередВсплытиемПодсказки(Атрибут, Подсказка, ФСО)
где
Атрибут - атрибут формы
Подказка - текст из Подсказки/Описания (в зависимости от галочки "исп.описание")
т.е. перехватить всплытие подсказки и подсунуть туда свой текст?
909 tgu82
 
24.03.21
22:07
(907) Спасибо большое. Наконец-то получилось то что нужно
910 Ёпрст
 
24.03.21
22:22
(908)была кучка классов с  tooltips на форуме 1cpp
911 Ёпрст
 
24.03.21
22:28
912 Злопчинский
 
24.03.21
22:32
(911) Ёпрст, бросай ты этот тухлый снеговик - возвращайся на грабли, весна на дворе!
913 tgu82
 
25.03.21
09:55
(912) не хочет сканировать штрих-код напечатанный с 70% масштаба.
А надо именно так.

Рисунок по размеру картинки растянут (режимрисования=1), 80% берет, а 70 никак
    глСервис.НарисоватьШтрихкод(Картинка,"13",Штрихкод,0);
    Картинка.РежимРисования(1);
Там же еще опции есть только я в них ни в зуб ногой, может режимрисования=3 сделать?
Печатаю с опцией "черно-белая печать", по фигу, не хочет
914 tgu82
 
25.03.21
10:05
(913) Может чувствительность сканера поставить не 30 а скажем 50?
915 Djelf
 
25.03.21
10:45
(908) Это есть в RToolTips: https://www.1cpp.ru/forum/YaBB.pl?num=1193602020
916 Ёпрст
 
25.03.21
11:04
(915) точно. такой и у меня был, его чессман и допиливал
917 Salimbek
 
25.03.21
11:20
(913) Чувствительность тут ни при чем. Она лишь говорит компу - что нажатия на кнопки с такой скоростью воспринимать как ввод со сканера ШК. А у тебя проблема в том, что черточки должны быть по стандарту, определенной ширины. А при 70% они выбиваются из стандарта и головка сканера их не принимает. Как вариант - можно изменить на другой, близкий процент, (например 65, или 72). Или даже просто Размер картинки, куда ШК вставляется, изменить (уменьшить/увеличить ширину). Либо перейти на другой тип штрихкода, например Code39. Только у сканера не должно быть заблокировано чтение таких ШК.
918 Salimbek
 
25.03.21
11:23
+(917) И еще - на сколько я понял - то при типе ШК - "13" - надо передавать 12 цифр в команду, а 13-ю система рассчитает сама. Если же передаешь все 13 цифр, то надо глСервис.НарисоватьШтрихкод(Картинка,"14",Штрихкод,0);
919 tgu82
 
25.03.21
11:25
(918) Тем не менее и при "13" все печатается норм
Спасибо. Попробую и отпишусь сюда
920 tgu82
 
25.03.21
11:51
(918) 75% берет, меньше не хочет. Может там еще какие-то усиливающие опции есть при печать шк?
921 tgu82
 
25.03.21
11:59
(920)+ 1 раз и 70% пинькнула но больше не получается повторить на бис :)
922 Salimbek
 
25.03.21
12:08
(920) Может у тебя при таком размере - светлые зоны Перед и После ШК становятся слишком мелкими и начинают мешать чтению ШК? Нет никаких границ/рамок/ рисунков рядом? И попробуй у самого Рисунка менять размеры, например при 70% чтобы поле под Рисунок было такой же длины, что и сейчас при 75%, тогда ШК станет читаемым.
923 Salimbek
 
25.03.21
12:17
(920) Там же все просто - есть чередование светлых и темных полос. Светлые полосы являются разграничивающими и показывают Начало/Конец ШК. А у темных - измеряется толщина линий, после чего определяется - Узкая это линия (0) или Широкая (1). Вот из этих комбинаций (0) и (1) формируется Код, который потом Декодируется по заложенным алгоритмам и получается в итоге текст. Соответственно, если ШК не читается, то либо неправильно определяются границы ШК, либо неправильно получается толщина линий (например у принтера разрешение позволяет рисовать линию толщиной в ХХХ dpi) а для твоей линии надо 4,6 точки. И когда принтер печатает его на 5 точек, то толщина линии выбивается за стандарт. Вариант решения - еще больше уменьшить размер, чтобы получилось 4,3 зерна. Тогда тонкая линия получится такой, как надо.
924 tgu82
 
25.03.21
12:40
(923) Перевариваю объем полученной информации. Спасибо
Вариант решения - еще больше уменьшить размер, чтобы получилось 4,3 зерна
А размер чего уменьшить? поля картинки?
925 Salimbek
 
26.03.21
13:56
(924) Картинки. Штрихкод влезет в эту картинку и линии будут плотнее и уже. Хотя если приложение генерирует сразу под стандартный размер и при изменении ширины картинки Штрихкод не растягивается/сужается, то тогда лучше переделать Макет, чтобы его не надо было сжимать до 70%, а сразу все поля и шрифты сделать меньше размером на 70%, а при печати уже использовать 100%. Тогда искажения картинки не будет.
926 Дык ё
 
26.03.21
14:32
(913) ean13 меньше 80% не бывает: https://ean-13.ru/shtrihkodirovanie_ean-13_code_razmer.html
927 Arbuz
 
26.03.21
16:19
(926) Что значит не бывает? Может не должно быть? Так то у нас полно товара у которого безумные дизайнеры наделали поле штрихкода размером миллиметров 15, а это меньше 50%. И читается, правда 1D сканером.
928 MWWRuza
 
26.03.21
16:44
tgu82, может проще все-таки шрифт без циферок поискать, и по моему способу печатать?
Вот это: https://content.foto.my.mail.ru/mail/m_w_w/1/h-277.jpg абсолютно точно читается любыми сканерами, сложнее только лазерными одноплоскостными, из-за того, что ШК узкий и надо точнее позиционировать направление ШК и плоскость сканирования, что-бы луч все штрихи пересек... Когда ШК широкий, проще это выполнить. Зато имиджевыми читается отлично.

Но, это ОФФтоп для этой темы.
929 Arbuz
 
26.03.21
17:42
(928) У Вас тоже нарушение стандарта. Усекаете ШК по высоте, это недопустимо. Именно поэтому "сложнее только лазерными одноплоскостными".
930 Базис
 
naïve
26.03.21
17:58
(927) Напомню требования (наверное, UNISCAN) по оформлению штрихкода:
1. Он должен быть контрастным. Через красное стекло должен быть чётко различим.
2. Он должен быть отделён от остального дизайна. Слева и справа должны быть поля кажется по 20% от рисунка ШК.
931 MWWRuza
 
26.03.21
19:17
(929) У Вас тоже нарушение стандарта. Усекаете ШК по высоте, это недопустимо.

Знаю. Но, есть поговорка - "любой каприз, за ВАШИ деньги :) "... Клиент захотел, я сделал. Его устраивает, и ладно. В конце концов, это его внутреннее дело, он же не на товар, который кому-то еще перепродает, этот ШК наносит, а на собственные ценники, чисто для внутреннего использования. Так, что - нарушения, как такового просто нет.
932 Злопчинский
 
26.03.21
22:55
По высоте усечение - пофиг. особенно когда ШК в обозримом пространстве этикетки - единственный. мазнул сканером сверху вниз - зацепиться по любасику..
933 tgu82
 
27.03.21
08:42
(932) Вот можно оказывается и узкий ШК но во всю длину ценника - тогда нормально сканирует.
Вроде победили совместно с Вами эту проблему. Спасибо всем большое!!!
934 tgu82
 
27.03.21
08:44
(933)+ И да, 70% масштаб при печати как раз и даже меньше можно, все равно сканирует
И цифр нет - вот такой Альф Супер!!!
935 Злопчинский
 
27.03.21
11:47
(934) а при чем здесь цифр нет? тот же баркодеоцеикс или активебаркоде - у них галочка есть выводить или нет циферки
936 tgu82
 
27.03.21
18:55
(935)Баркоде не дает сдлеать такой маленький размер для штрихкода. Сколько ни пробовал - все быо без толку. А насчет вывода цифр - я же потом пробовал с помощью еангнивц. чуть не хватило возможности уменьшить его поле.
937 Ёпрст
 
27.03.21
23:44
Оффтоп.
Поковырял тут на днях клюшки. Не понимаю, как некоторые, пиля на древней тис егаис (сделано через одно место, да и хрен с ним, щас не об этом), имея на борту подключенные 1cpp и формекс (не понятно зачем ?, особо в код не смотрел, мот и используют где) не используют опенконф, колорер и турбомд.
Вот это явно перебор. Пришлось поставить и дело пошло.
И ё...насколько турбомд прекрасен!
после снеговика - полёт.
938 Ёпрст
 
27.03.21
23:46
Чего не хватает в клюшках  - это встроенного жуколова, как в снеговике.
Отдельное приложение.. хрень полная. В снеговике, в этом плане, гораздо удобнее.
939 Ёпрст
 
27.03.21
23:51
(0) АльФ, мот чего не помню, но кто-то вроде спрашивал недавно.
В методе ПолучитьГуид.. чтоб скобки {} выкидывались, есть параметр какой ? Нет нового алс, качать лень
940 Злопчинский
 
28.03.21
00:02
(939) ПолучитьГуид(1)
941 Злопчинский
 
28.03.21
00:03
(939) По моему заказу сделал Альф
942 Злопчинский
 
28.03.21
00:04
а турбомд для чего? изменения в конфигу динамически подсовывать?
943 Злопчинский
 
28.03.21
00:05
для небольшого товарооборота егаис и на клюшках вполне себе летит.
944 Ёпрст
 
28.03.21
00:14
(940) ага, спсб.
(942) да. Сделал дело, турбомд.прм прибил и привет, и конфа как и была и дело сделано.
945 Ёпрст
 
28.03.21
00:17
Ну и мгновенное изменение конфы без закрытия предприятия, эээх турбомд в снеговике не хватает (
946 Злопчинский
 
28.03.21
01:21
(945) турбомд вещь хорошая наверное где много юзверей. у меня обычно если что-то срочное - то этообработками правится, редко так надочтобы прямо на лету изменение подсунуть.
947 Злопчинский
 
28.03.21
01:22
(945) но вот согласись - хорошо же на клюшках.. ;-) тепло.. лампово.. виниловые конфы...
948 victuan1
 
28.03.21
08:10
(937) А что конкретно не понравилось? Я так и не понял?
И что именно ты изменил, чтобы понравилось?
949 tgu82
 
28.03.21
08:43
(947) Бухгалтерия 3.0 в 8-ке - удобнее программы для бухгалтеров как-то не видел. По сравнению с бух 77 - это просто фантастика по очень и очень многим бухгалтерским заморочкам
950 Ёпрст
 
28.03.21
09:48
(948) работа в голом пофигураторе.
951 Arbuz
 
29.03.21
12:40
(937) Воистину!
952 Mikeware
 
29.03.21
14:15
(950) после опенкофа и работа "в голом конфигураторе снеговика" не очень... первоначально - исплевался...
953 Злопчинский
 
29.03.21
14:45
(952) а король-то -голый!
954 Mikeware
 
29.03.21
16:25
(953) ну, "сторонние средства" позволяют работать более-менее комфортно.
возможно, EDT доведут до ума, а это ж эклипс....
955 Ёпрст
 
29.03.21
18:54
(952)там же снегопат есть
956 Ёпрст
 
29.03.21
18:54
с кучкой скриптов..
957 Злопчинский
 
29.03.21
19:21
(956) Турбоконф еще
958 Ёпрст
 
29.03.21
19:52
(957) как-то не зашел, снес его в свое время. Тем более, снегопат сейчас все релизы поддерживает
959 Mikeware
 
30.03.21
07:37
(958) снегопат в свое время не запустился. Работаю с турбоконфом.
960 mishaPH
 
модератор
30.03.21
09:05
очень не дальновидно 1с позволять таким разработкам давать жизнь. я б на месте 1с купил бы с потрохами лямов на 10 - 15 права у автора на формекс и т.п.
у нас в маг клюшки получили уже 3е дыхание и не собираются меняться. ;)
961 mishaPH
 
модератор
30.03.21
09:06
да и на тек пр-ве благодаря им я такие интерфейсы делаю под тачскрины, бицерба отдыхает.  Народ в восторге
962 Arbuz
 
30.03.21
12:58
(960) Вот и рыночная оценка. 15 мультов не такие уж и большие деньги. АЛьФ, продал бы формекс за 15 с условиями с твоей стороны без права продолжать разработку и без права разглашения сделки?
963 MWWRuza
 
30.03.21
13:17
(962) А чего это даст 1С - ??? Формекс уже более чем расширил возможности 7.7, и разошелся в текущем виде по компам огромного количества пользователей... Ну, не будет дальнейшей разработки, и что? То, что уже сделано и работает, куда теперь денешь? Запретить использовать? Бред...
Поэтому, не вижу смысла для 1С в такой сделке.
964 Злопчинский
 
30.03.21
13:26
(962) наверное продал бы, да кто ж купит?
965 mishaPH
 
модератор
30.03.21
13:26
(963) если система не получает подпитку - она умирает
966 Злопчинский
 
30.03.21
13:31
(965) .или в коме на неопределенное время.. некоторые десятками лет...
967 Mikeware
 
31.03.21
11:17
(966) "система шредингера"™
968 АЛьФ
 
01.04.21
16:48
2(965) Эту ветку я создал 18 ноября 2020 года. Предыдущая о FormEx была 21 мая 2019 года. А еще раньше я тут в годовом бане был. И ничего... работают люди :)
969 Cthulhu
 
01.04.21
18:36
и все-таки после 2037-го года - прощай семёрка...
если конечно энтузиасты не перековыряют представление даты-времени.
ничо про ето не слышно и не придумывается?
970 tgu82
 
01.04.21
18:38
(968) Надо эту ветку сделать длинной предлинной. Смотрю и восхищаюсь. Достойная вещь. Сегодня заказчик позвонил и сказал что на очень небольших ценниках штрих-коды все прекрасно сканируются. Есть тут все идеи сделать в торговых залах консультантов с смартфонами ил планшетами наладонниками и тут как раз Формекс просто незаменим.
971 Злопчинский
 
02.04.21
01:57
(970) ну у меня прототип готовый арма для планшета для шоурума есть...
сегодня клиент развернул на смартфоне рдпшную форму от ncl и пытался в нее пальцем жмакать...
тоже можно на тачи настроить - там все что надо - вычислять в какую строчку тз тач пришелся
972 Злопчинский
 
02.04.21
23:02
Альф, а можно в Формекс сделать типа
глСервис.ВызватьИсключение(ТутОписаниеОшибкиКакоеЯЗадам)

То Есть

Попытка
//тралалавсякое
Если ЧтоТоКриво Тогда глСервис.ВызватьИсключение("Хрень!");
//тралалавсякое если не криво
Исключение
Ошибка = ОписаниеОшибки(); // тут возвращает "Хрень"
КонецПопытки;

или может в 1С++ такое есть?
973 Ёпрст
 
02.04.21
23:18
(972) Есть ЛегкоеСообщение
974 Злопчинский
 
03.04.21
00:27
где это, порыл доку 1с++ - не нашед
975 АЛьФ
 
03.04.21
20:47
976 Злопчинский
 
03.04.21
22:15
(975) это вроде к ВыполняемомуМодулю относится...
как это заюзать в обычном коде..?
977 АЛьФ
 
04.04.21
19:11
978 АЛьФ
 
04.04.21
19:13
Вот так должно сработать:

Попытка
//тралалавсякое

Если ЧтоТоКриво Тогда
   ВМ = СоздатьОбъект("ВыполняемыйМодуль");
   ВМ.СформироватьОшибку("Хрень!");
//тралалавсякое если не криво

Исключение
Ошибка = ОписаниеОшибки();// тут возвращает "Хрень"

КонецПопытки;
979 serpentt
 
06.04.21
14:33
(978) Здравствуйте, а есть какое либо решение чтобы отследить появления окна "Перенести точку актуальности на новую дату?"
Хочется знать и понимать когда операторы начали проведение документов в следующем числе.
980 Mikeware
 
06.04.21
14:35
(979) а зачем, если не секрет?
981 serpentt
 
06.04.21
14:40
(980) даже и не знаю как ответить.. У нас кто-то(ищем такого) или что-то сдвигает время документа в новой дате на ТекущееВремя().
Документы у нас выстроены не в хронологии ТекущееВремя(), а в своей с разбегом в 2Секунды. Документов много и приходится из так выстраивать. Вот иногда и дергают документ с 02:10:45 на ТекущееВремя() 18-20-46
982 Mikeware
 
06.04.21
15:05
(981) ну поставь триггер на смену ТА в _1ssystem... путь момент и pid пишет в таблицу. ну а там логи или терморектальный криптоанализ поможет
983 Злопчинский
 
06.04.21
15:10
там где много документов тупо сделать АвтоВремяОтключить и АвтоВремяТекущее и все.
АвтоВремяОтключить();
Синтаксис:
АвтоВремяОтключить()
Назначение:
Отключить режим автоматической установки времени для новых документов, при этом новые документы заносятся с временем, устанавливаемым при помощи метода УстановитьВремя.
Замечание:
Для новых документов в модуле формы доступно использование методов установки признака автоформирования времени документа и собственно установки времени. Если эти методы использованы, то диалог запроса времени не вызывается и игнорируются пользовательские установки в параметрах системы.
984 Злопчинский
 
06.04.21
15:12
даже если доки пишутся в одно время - проблем особых нет.
985 Mikeware
 
06.04.21
15:12
блин, теплая ламповая семерка как-то помнится еще. а снеговика - за день научился, за ночь забыл все...
986 Злопчинский
 
06.04.21
15:15
(985) Возвращайся в лоно истинной церкви! принимаем всех заблудших и раскаявшихся!
987 Mikeware
 
06.04.21
15:18
(986) платить не хотят...
988 serpentt
 
06.04.21
15:20
(983) все это сделано... Последовательность документов выстраивается так как надо... НО иногда (Ктото или чтото) сбивает всю красоту у одного документа, в последствии все следующие выстраиваются уже за ним.
989 Злопчинский
 
06.04.21
22:51
(988) "НО иногда (Ктото или чтото) сбивает всю красоту у одного документа, в последствии все следующие выстраиваются уже за ним."
- это понятн, особенно когда стоит "новые документы проводить после ТА".
скорее всего или ошибка программная при загрузке/создании доков, сосбливо это может быть при создании программном ПЕРВОГО дока в дне. он тебе его тупо запулит на 12 часов дня. поэтому в таком случае как писал выше. Ну и в ЖР посмотреть кто создавал такой док и когда и идти трясти.
990 Злопчинский
 
06.04.21
23:51
(978) Проверю в среду
991 Cthulhu
 
07.04.21
00:56
тупо дублируй оттюненные дату-время документа (во время их расстановки) в строчный реквизит, который не показывай.
а в обработке проведения - дергай из него "правильные" дату+время и сравнивай с теми, под которыми оно проводится - и если оно нарушено - ЗаписьЖурналаРегистрации (с своим событием чтобы бы проще было этот криминал найти в жр).
прим.: в призаписи - не советую, там оно еще не установлено м.б.
992 Злопчинский
 
07.04.21
10:43
(978) Работает как мне нужно!
Спсб!
993 Вафель
 
07.04.21
11:24
а разве в 77 нет метода ВызватьИсключение?
994 Злопчинский
 
07.04.21
14:47
(993) нет. оно есть. но как бы нет. работает только в обработке исключения
995 Злопчинский
 
07.04.21
14:48
А ПриИзмененииРазмераОкна()
- можно как-то запретить максимизацию окна?
996 Ёпрст
 
07.04.21
14:50
(995) Чебур, где ты был N-ать лет назад с такими вопросами ? :))

Примитив - храни в переменных размер окна, вертай взад при изменении
997 Ёпрст
 
07.04.21
14:54
Ну и свойство было Максимизирована у расширения формы. Там принудительно 0 выстави.
998 Злопчинский
 
07.04.21
15:28
(996) там же где и сейчас - жил и работал в свое удовольствие!
999 Злопчинский
 
07.04.21
15:34
(996) "Примитив - храни в переменных размер окна, вертай взад при изменении"
- такая мысль была, но это некузяво (не мысль, а так сделать)
.
А Максимизирована в расшФормы что-то я не углядел. Надо на сон грядущий алсы по формексу почитать
1000 Злопчинский
 
07.04.21
15:34
1000
1001 Злопчинский
 
07.04.21
15:34
1
1002 Злопчинский
 
07.04.21
15:34
2