Имя: Пароль:
   
1C
1C 7.7
v7: Новая версия FormEx 2.0.5.194
Ø (Волшебник 15.02.2024 21:14)
0 АЛьФ
 
14.02.24
21:52
Выложил обновление.

Для объекта ОкноСообщений добавлены методы получения и установки координат окна.
Добавлена предопределенная процедура ПриВыводеСообщения().
Добавлен новый объект ПрогрессБар.
Подробней в als.

Информация о доработках в комментах этой ветки:
(67),(102),(122),(224),(294),(317),(366),(407)

Качать, как обычно, тут: http://dorex.pro/?projects&formex&download
1 АЛьФ
 
01.02.24
20:08
Прогресс бар можно размещать как на форме, так и в области панели строки состояния.
2 Волшебник
 
01.02.24
20:12
Рассмотрите wiki:Фактор_автобуса
Вы молоды и дело ваше живёт, но есть фактор автобуса...
3 Волшебник
 
01.02.24
20:15
Миста живёт уже 20+ лет и многие ушли в закат.
Пожалуйста, давайте думать о том, что мы все уйдём в закат и зазеркалье.
Но что останется после нас в этой реальности?

Предлагаю обсудить тему философски.
4 АЛьФ
 
01.02.24
20:19
2(3) Я в курсе, что Миста младше, чем FormEx.
5 Волшебник
 
01.02.24
20:25
(4) И вот моё мега-уважение! 💖

Искусство не горит!
6 Волшебник
 
01.02.24
20:27
Но простите... Вы меняли адрес сайта в связи с изменением концепции. Было такое?
7 АЛьФ
 
01.02.24
20:29
2(6) Какой концепции?
8 Волшебник
 
01.02.24
20:31
(7) Вашей концепции. Вы же поменяли адрес сайта. Что поменялось?
9 АЛьФ
 
01.02.24
20:36
2(8) Ничего не поменялось. У меня не интернет-проект, на конкретный адрес он не завязан.
Адрес с зоны ru на зону pro менялся в 2011-м из-за регистратора:
https://www.1cpp.ru/forum/YaBB.pl?num=1191404333/15#15
10 AAA
 
01.02.24
20:40
Лично я желаю Альфу долгих и счастливых лет жизни. Восхищаюсь и 1cpp и Formex. Это великие вещи. И не надо никаких автобусов. По поводу, что останется от нас, то Альф уже оставил, помог своими продуктами многим и многим людям. Я снимаю шляпу.
11 andrewalexk
 
01.02.24
20:42
(10) :) 1с++ это конечно хорошо но вот у Павлика в той-сикул был конструктор прямых запросов
12 AAA
 
01.02.24
20:46
(11)Напишите свой конструктор.
13 АЛьФ
 
01.02.24
20:49
2(11) Вроде и для 1С++ был конструктор в виде плагина OpenConf.
14 Волшебник
 
01.02.24
20:57
(10) 👍💖🔥
15 Волшебник
 
01.02.24
20:58
(10 >> И не надо никаких автобусов.

Это от нас не зависит, к сожалению...
16 andrewalexk
 
02.02.24
06:20
(12) :) вроде моя фраза предельно примитивная а ты не понял ...слышал айфон да не знаешь где он
17 АЛьФ
 
02.02.24
09:01
Огромное спасибо всем, кто не постеснялся кинуть в меня денежкой со странички загрузки.
18 АЛьФ
 
02.02.24
09:06
2(3) А ведь и правда... Раньше тема с первой страницы улетала за ночь на вторую-четвертую. А сейчас утром в будни на первой странице темы прошлого дня. Т1С так же умирала постепенно.
19 АгентБезопасной Нацио
 
02.02.24
09:09
(11) У Берездецкого конструктор, имхо, получше...
20 GrayS19
 
02.02.24
09:11
Огромное спасибо АЛьФу от всех пользователей 7.7, которые хоть и не подозревают о существовании Formex, но благодаря ему пользуются более удобной программой со значительно улучшенным (по сравнению со стандартным) интерфейсом
21 АгентБезопасной Нацио
 
02.02.24
09:44
(20) 1с++, FormEx, Yoksel и RWidget - вообще "джентльменский набор" для клюшек.
22 andrewalexk
 
02.02.24
09:47
(19) (13) :) увы опенконф у меня не запускается как и той сикул - приходится ручками клепать запросики
23 АЛьФ
 
02.02.24
11:23
2(22) Почему не запускается? Чем обосновывает такое свое поведение?
24 mishaPH
 
02.02.24
11:29
(13) да он есть и работает

(0) а с 1с++ интеграцию не планируете поддерживать?
25 АЛьФ
 
02.02.24
11:38
2(24) Нет, давно уже пути разошлись. Да и утеряно умение компиляции 1С++ из исходников.
26 mishaPH
 
02.02.24
11:40
(25) т.е. лучше взять 1с++ без формекса последнего + формэкс? конфликтов нет?
27 АЛьФ
 
02.02.24
11:49
2(26) У нас именно так и работает уже много лет. Вроде как без конфликтов.
28 AAA
 
02.02.24
11:51
Поддерживать сейчас просто бессмысленно. Мавр сделал свое дело. 7.7 без внешних вкусностей давно бы уже умерла, как умерили 8.x обычные формы Но сейчас работать на бантики 7.7 уже просто бессмысленно. Это только для гурманов. В этом Волшебник прав, что нет смысла улучшать этот функционал. Им никого не удивишь и развитие уже просто ради забавы.
7.7 все равно не спасти:
1 - скоро просто не установить
2 - дизайн
3 - интеграция с внешним миром (это никак)
4 - типовые (кто сделает типовую а ля БП3)
Причем, скорее всего, БП3 и убивает, душит 7.7.
29 mishaPH
 
02.02.24
11:58
(28) так на 7.7 типовых и нет. тисы которые не типовые давно да нет смысла их поддерживать, самописки которые работают дорабатываются и развиваются в принципе.
30 mishaPH
 
02.02.24
11:59
большинству у кого 7.7. нет смысла переходить на 8ку ради перехода ( если бизнесом управляет грамотный человек а не прог который просто с 77 не хочет иметь дело) а для всего остального можно 8ку поставить рядом типовую и наладить мост для обменов и прочего и дешевле и проще
31 mishaPH
 
02.02.24
12:00
(0) прогресс бар это круто. надеюсь он не жрет ресурсов так как сообщить и состояние штатное
32 mishaPH
 
02.02.24
12:01
[559.1 Kb]
[версия: 2.0.5.185 от 01.02.2024]
[скачиваний: 13251]

кол во скачиваний как бы говорит само за себяю о нужности
33 АЛьФ
 
02.02.24
12:02
2(28) 7.7 убьет только 2038-й год. Все остальное абсолютно не критично для ее жизнеспособности. Это ж только инструмент. Если инструмент справляется со своими задачами, то какой смысл его менять?
34 АЛьФ
 
02.02.24
12:03
2(32) Не, ну счетчик скачиваний давно уже не сбрасывался и всегда работал криво. Много кто качает по прямой ссылке, которая не учитывается, кто-то с ЯД.
35 АЛьФ
 
02.02.24
12:04
2(31) Это обычный виндовый бар, тормозить не должен.
36 Djelf
 
02.02.24
12:48
(35) Действительно, совсем не тормозит.

А вот в ПриВыводеСообщения какая-то странность.
	Если ТекстСообщения="З=1/0;" Тогда //так не работает
		СтандартнаяОбработка=0;
	ИначеЕсли Найти(ТекстСообщения,"1/0")>0 Тогда //так работает
		СтандартнаяОбработка=0;
	Иначе
		Сообщить("Не работает: "+ТекстСообщения);
	КонецЕсли;

Это же шикарно, давно хотелось после сообщения об ошибке и аварийном прерывании не выводить 1/0
37 mishaPH
 
02.02.24
12:54
(35) (36) обязательно попробую
38 АЛьФ
 
02.02.24
13:00
2(36) Не понял с "работает / не работает". Можно чуть подробней?
Для аварийного прерывания лучше использовать "Сервис::ОстановитьВыполнение()", наверное.
39 Djelf
 
02.02.24
13:08
(38) Не сравниваются строки напрямую, я и СокрЛП пробовал, и РазделительСтрок прибавлял с сравнению. Не работает и все тут...
А через Найти находит.

Сервис.ОстановитьВыполнение() работает, только натыкано уже много где 1/0, не помню уже почему я это не использовал, какая-то причина видимо была...
40 АЛьФ
 
02.02.24
13:11
2(39) Посмотрю про сравнение.
ОстановитьВыполнение до недавних пор выдавало "Ошибка при выполнении процедуры" - v7: Формекс ОстановитьВыполнение()
41 Djelf
 
02.02.24
13:18
(40) Точно! Вот из-за этого и не использовал. Писал Сообщить(""+(1/0)+" Это не ошибка!"); ;)

Это очень полезное изменение.
42 АЛьФ
 
02.02.24
13:19
2(39) Кажется понял в чем дело. Сообщение об ошибке - это единый текст в две строки, поэтому и не работает сравнение.
43 Djelf
 
02.02.24
13:23
(42) В (39) я пытался это обойти, почему-то не получилось.
Но вторую  пустую строку imho лучше резать заранее.
44 АЛьФ
 
02.02.24
13:31
2(43) Там дальше могут возникнуть проблемы внутри 1С, если в ошибке отрезать лишнюю строку. Опять же непонятно какую вторую пустую строку резать, а какая реально нужна в сообщении.
45 АЛьФ
 
02.02.24
13:37
2(36) Вот так можно:
Если СтрПолучитьСтроку(ТекстСообщения,1) = "т=1/0;" Тогда
46 trdm
 
02.02.24
14:07
А не напомните технологию а-ля восмерошного поля с педалью ввод по строке?
Где-то была обработка, как-то запямятовал.
типа когда курсор стоит в поле выбора справочника, начинаешь набирать, а тебе выпадающий список представлается с выборомю
47 АгентБезопасной Нацио
 
02.02.24
14:27
(46) почту напомни, или в телегу (@mikeware) стукнись. Скину класс Садовникова (но после выходных). Или Спроси У Алексея Диркса, у него явно это поновее...
48 trdm
 
02.02.24
14:46
Дык почта в профиле.
49 trdm
 
02.02.24
14:47
Хотелось бы конечно нечто асинхронное, ведь ввод текста и поиск может идти параллельно.
50 Djelf
 
02.02.24
14:52
(45) Спасибо! Так работает.
Пожелание: добавь в ALS описание этого момента, он не очень понятен с первого раза.
51 АЛьФ
 
02.02.24
15:10
2(50 Добавил: "(следует обращать внимание, что в сообщениях об ошибках всегда передается минимум две строки: собственно текст с ошибкой и строка кода, в которой произошла ошибка)"
54 mishaPH
 
02.02.24
15:21
(2) (53) Я всегда поминаю трамвай.
55 АЛьФ
 
02.02.24
15:26
2(53) Я понял. Только кому было интересно ковырять этот проект, давно уже поимел от меня исходники. Могу выложить исходники и настроенную машину для oracle virtualbox для их сборки. Но оно кому нужно? Сомневаюсь.
56 Djelf
 
02.02.24
15:29
(51) Ну еще бы решение проблемы "СтрПолучитьСтроку(ТекстСообщения,1) " мы все уже постоянно начинаем тупить на ровном месте ;)

+(0) Изменения/Дополнения INTS по ПрогрессБар, ОкноСообщений, ПанельСтрокиСостояния, Сервис, РасширениеФормы, Окна от 2024/02/02: https://cloud.mail.ru/public/x4SF/x5JSfdAjY

Вроде ничего не забыл? Могу сгенерировать, это просто.
57 АЛьФ
 
02.02.24
15:33
2(56) Спасибо.
58 Djelf
 
02.02.24
15:47
(55) Мне надо, мне всегда все такое надо, я не жадный, я экономный!
И хотя меня старательно пинают в сторону снеговика, я как проевляюсь какое-то время, пытаюсь работать и для ВК на клюшках.
Сколько ВК и своей работы мы потеряли уже из-за закрытого/спрятанного на сдохнувшем hdd/sdd кода? Неимоверно...
59 АЛьФ
 
02.02.24
15:59
2(58) Ок. Постараюсь на выходных подготовить и выложить.
60 trdm
 
02.02.24
16:46
(58) я это давно понял.
https://github.com/trdm/alterplast
61 trdm
 
02.02.24
16:52
(58) > И хотя меня старательно пинают в сторону снеговика, я как проевляюсь какое-то время, пытаюсь работать и для ВК на клюшках.

не знаю, меня прям хорошо так заворожили пакетные запросы из v8 и возможность електить из таблицы значений.
Правда в 1С++ этотоже вроде есть, просто не разжовывал.
62 mishaPH
 
02.02.24
16:57
(61) в 1с++ все это есть + даже работа и создание вирт таблиц в скуле.
63 trdm
 
02.02.24
17:11
(62) Да, я что-то такое припоминаю, но это когда работаешь на SQL, а тут прилетает dbf-ная БД само собой без 1С++ с тоской вспоминаешь встроенное в v8 богатство :)
64 trdm
 
02.02.24
17:12
Эх, где все эти теплые ламповые альтернативы.....
65 Злопчинский
 
03.02.24
08:41
(58) ну, если поскрести по сусекам здравствующих клюшечников - найдётся вам. Надо ещё сайт по йокселю С грабить каким-нить телепортом в документацию.
66 Djelf
 
03.02.24
08:44
(65) Скачай "Документация для COM-сервера:" http://yoksel.net.ru/files/release/yoksel_comserver_doc.rar
Там все есть.
67 АЛьФ
 
03.02.24
11:29
Исходники и выгрузку виртуальной машины выложил. Проверяйте, получится ли установить и собрать.
Архив с исходниками надо распаковать в папку и эту папку подключить к виртуалке, как диск Z.
68 Злопчинский
 
03.02.24
11:33
(66) о, спасибо!
69 Guk
 
03.02.24
11:48
(0) на самом деле до сих пор на клюшках сидишь? а говорил ЕРП внедряешь ;)...
70 Djelf
 
03.02.24
11:50
(67) Скачать пока не получается, браузерми не ясно что не так, проверил wget`ом
wget http://www.dorex.pro/files/?formex_scr.zip
HTTP-запрос отправлен. Ожидание ответа… 404 Not Found
whet http://www.dorex.pro/files/?formex_ova.zip
HTTP-запрос отправлен. Ожидание ответа… 500 Internal Server Error
71 MWWRuza
 
03.02.24
12:26
Ага, это по ссылке "Скачать" страницы "Проекты":



в ГуглХроме отображается.
72 АЛьФ
 
03.02.24
12:25
2(69) Не говорил.
2(70) Попробуй без знака вопроса в адресе.
73 MWWRuza
 
03.02.24
12:32
Без вопроса - 404.
74 АЛьФ
 
03.02.24
13:21
Вроде поправил, проверяйте. Неверно указал на страничке имя файла.
75 vde69
 
03.02.24
13:49
интересно сколько еще баз 7.7 активно используется во всем мире
76 Djelf
 
03.02.24
13:49
(74) Теперь качается.
77 AAA
 
03.02.24
15:14
(75)у меня на вскидку 6 + пара бухгалтерских
78 Злопчинский
 
03.02.24
20:37
У меня мелких клиентов штук 6, обращаются нечасто, но регулярно, при том что специально не ищу (другими делами занят).
79 ЯнСмит
 
03.02.24
21:04
(75) как минимум шесть постоянных, ну и еще кто-нибудь периодически обращается, т.ч. осанну 7.7 петь рановато )))
80 АЛьФ
 
03.02.24
21:43
2(75) У нас основная управленческая база на 7.7. Но постепенно перетягиваем на собственную восьмерочную конфигу.
Бух и зарплата, естественно, на типовых восьмерках.
81 Злопчинский
 
03.02.24
21:46
(80) ну, у нас попроще. на БП3 пораньше перешли, торговая 77 еще живая, вторая фирма на УНФ по минимум ведется, богатство возможностей как-то не особо и нужно....
82 Злопчинский
 
03.02.24
21:47
Причем основным драйвером перехода на 8-ку - было возможность с ЭДО работать (бо заплатить мну за сделание ЭДО для 77 их жаба заела да и я особо этим не горел). По факту этим ЭДО в 8-ке по-моему по минимум пользуются...
83 GrayS19
 
05.02.24
08:49
(75) В Беларуси 2 франчайзи - Мисофт и Юкола выпускают обновления для ТИПОВОЙ бухгалтерии 7.7 Процентов 60% знакомых фирм формата директор+бухгалтер+пару_продаванов сидят на 7.7. Те, кто спрашивают про восьмерку - прайс любого из франчайзи им в помощь, и как-то сразу, посчитав стоимость перехода, остаются на 7.7.
84 AAA
 
05.02.24
09:17
У меня не работает метод Создать() у ПрогреесБара. Объект ПрогрессБар создался, а его метод не выполняется, ругается на неверное количество параметров, хотя все параметры являются необязательными и я пробовал различные комбинации. У кого получилось, может поделитесь фрагментом кода?
85 AAA
 
05.02.24
09:19
(83)в Беларуси своя история. У нас в городе совсем иная. Новый предприятия ставят БП3. Большая проблема найти бухгалтера, который знает 7.7. Как ни смешно, но это для некоторых является существенным мотивом для перехода на БП3
86 ADirks
 
05.02.24
09:50
(84)
    ФормЭкс = СоздатьОбъект("РасширениеФормы");
    Атр = ФормЭкс.ПолучитьАтрибут("текстПрогресс");
    оПрогресс = СоздатьОбъект("ПрогрессБар");
    оПрогресс.Создать(1, тз.КоличествоСтрок(), Атр, 1);
    оПрогресс.Заголовок = Раздел;

    тз.ВыбратьСтроки();
    Пока тз.ПолучитьСтроку() = 1 Цикл
        оПрогресс.Позиция = тз.НомерСтроки;
        ...
    КонецЦикла;
87 Chai Nic
 
05.02.24
10:00
А где этот прогресс-бар рисуется?
88 АЛьФ
 
05.02.24
10:03
2(84) У метода Создать() параметр Родитель является не обязательным только если до вызова этого метода в атрибуте Родитель указан родительский элемент.
Но что-то у меня там какой-то глюк. Стал готовить тестовый пример для демонстрации, стало вылетать. Плюс в названии атрибута "МинмальнаяПозиция" пропустил букву.
89 АЛьФ
 
05.02.24
10:06
2(87) Поверх реквизита, который задан в атрибуте "Родитель". Или на панели строки состояния, если создается через атрибут Прогресс объекта "ПанельСтрокиСостояния".
90 ADirks
 
05.02.24
10:57
(88) кстати, про глюки:

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

Панель.НайтиПоКоду(0); //работает

а вот
Панель.НайтиПоНаименованию("СтрокаСостояния"); //не работает
При обращении к реквизитам панели сообщает "... Панель не выбрана!"
С пользовательскими панелями та же история.
91 mdao
 
05.02.24
11:26
Скажите есть ли подобное:?
Картинка = ФормЭкс.ПолучитьСкриншот(Окно);
(33) и что в 38г.вообще не запустится? или будут ошибки связанные с датами?
92 АЛьФ
 
05.02.24
11:38
2(90) Странно. Посмотрю в чем дело.
2(91) Вообще не запустится. А если и обойти это прерывание запуска, будут проблемы с датами.

ПолучитьКартинку(<?>,,,)
Синтаксис:
ПолучитьКартинку(<Лево>,<Верх>,<Ширина>,<Высота>)
Назначение:
Метод предназначен для получения части формы в виде объекта Картинка
(см. документацию 1С:Предприятия).
Параметры:
<Лево> - координата начала вырезаемой области по горизонтальной оси
<Верх> - координата начала вырезаемой области по вертикальной оси
<Ширина> - ширина вырезаемой области
<Высота> - высота вырезаемой области
ЗАМЕЧАНИЕ:
Метод работает только после физического открытия и отображения окна формы.
ПРИМЕР:
Процедура ПолучитьКартинку(Карт)
// процедура вызывается из объекта Картинка, расположенного на печатной форме
        Перем Лево,Верх,Ширина,Высота;
        ФормаРасш = СоздатьОбъект(''РасширениеФормы'');
        АтрТекст = СоздатьОбъект(''АтрибутФормы'');
        АтрТекст.УстановитьАтрибут(Форма,''Табл'');
        АтрТекст.ПолучитьКоординаты(Лево,Верх,Ширина,Высота);
        Карт.УстановитьКартинку(ФормаРасш.ПолучитьКартинку(Лево,Верх,Ширина,Высота));
КонецПроцедуры
93 Serginio1
 
05.02.24
12:20
(0) Хоть давно и не пользуюсь 1С, но в своё время активно использовал 1С++.
Респект и уважуха! Так держать!
94 ADirks
 
05.02.24
13:02
Ещё такой момент по прогресс-бару: после разрушения объекта ПрогрессБар его визуализация остаётся до тех пор, пока не будет произведено какое-нибудь стандартное действие, видимо вызывающее отрисовку всех окон 1С (например, при открытии диалога в модальном режиме, открытие формы элемента справочника, формы документа). Такое поведение наблюдается как для прогресс-бара на форме, так и в панели состояния.

Предложение: если нельзя с этим поборотся автоматически, при уничтожении объекта, то сделать явный метод, возвращающий штатный вид контролу-хозяину.
95 Злопчинский
 
05.02.24
13:24
(85) на Бух 7.7 налоговый учет сделан сложнее чем на БП3, а так - все одновалентно, БП3, конечно, поудобнее.
96 АЛьФ
 
05.02.24
13:27
2(94) Не наталкивался на такое поведение. По идее должно посылать "паинт" родительскому окну после уничтожения. Проверю.
97 Злопчинский
 
05.02.24
13:36
(91) локСервис = СоздатьОбъект("AddIn.ICQ");
    ИмяФайлаДляСохранения = КаталогПользователя()+Формат(ТекущаяДата(),"Д ГГГГММДД")+"-"+СтрЗаменить(ТекущееВремя(),":","")+".jpg";
    локСервис.SpyScreenShot(ИмяФайлаДляСохранения,75);
.
я в своей главной конторе повесил кнопку на панель главного окна, деффки если проблема - жмак! мне автоматом письмо приходит на емайл со скриншотом.
.
https://infostart.ru/1c/tools/14618/
98 ADirks
 
05.02.24
14:07
(96) Похоже, что это у меня тут какой-то аяяяй наблюдается. Какое-то, понимаешь, отложенное разрушение объектов...  Выглядит как будто-бы объекты разрушаются при создании каких-то других объектов.
Короче, к прогресс-бару проблема отношения не имеет.
99 Djelf
 
05.02.24
14:11
(97) И никто не догадался кликер включить и пойти покурить на полчасика? Чтобы ты в срочном порядке обратил внимание на проблему...
100 Злопчинский
 
05.02.24
15:17
(99) не вьехал про что это ты. типа заспамить меня шквалом писем? ту так я и возмутиться могу... в основнйо конторе у меня народ нормально приучен был. есть проблема - я ее решаю максимально быстро как могу. некритичная - ка кправило к завтрашнем у рабочему дню... от того что меня спамить будут - быстрее не будет ;-)
101 АгентБезопасной Нацио
 
05.02.24
15:37
(100) типа "призвать к сексу в предельно извращенной форме" :-)
102 АЛьФ
 
05.02.24
21:41
2(94) Не удалось воспроизвести. У меня нормально родительский отрисовывается, когда прогресс уничтожается. Нужен тестовый пример.

2(90) Поправил.

Еще несколько мелких глюков поправил. Выложена сборка 188.
103 АЛьФ
 
05.02.24
21:42
А собрать из исходников получилось у кого-нибудь?
104 Базис
 
naïve
06.02.24
00:16
Спасибо за твой труд. Когда в Бразилии надо что-нибудь простое учесть - делаю на 77, зная что это будет работать долго и надёжно (это про срочный отзыв платформы v8, например).

Ну и к 2037 надо бы написать клон семёрки.
105 AlexKimp
 
06.02.24
07:47
(104) что-то было лет 10-15 назад. 2с, что ли, называлась. опенсорс, из существенных отличий от кошерных клюшек, если мне не изменяет память, - наличие более одной ТЧ в справочниках и документах
106 AlexKimp
 
06.02.24
08:04
(104) нагуглил. https://www.gpl2c.ru/
107 Djelf
 
06.02.24
08:45
(103) Да, собралось без проблем.
108 trdm
 
06.02.24
10:44
(106) Что сказать, оно работало. Не без глюков, но раотало.
109 mishaPH
 
06.02.24
10:54
(108) ну организовать много табличных частей в 7ке при прямых запросах тоже не сильно большая проблема. И даже кода будут минимально. Одновременно только редактировать не одну табличную часть не выйдет. но это вроде тоже не проблема. Но у клюшек нет гемора с интерфейсной частью по крайней мере
110 Злопчинский
 
06.02.24
11:14
Собралась банда убийц 1с?
111 ADirks
 
06.02.24
11:38
(94) С неразрушением объектов интересная шляпа получается.

Если прогресс-бар создавать в некоем классе (Фабрика), и экземпляр этого класса хранится в глобальной переменной, то объект не разрушается как положено, а разрушается в момент вызова _любой_ функции, возвращающей значение, из класса Фабрика.
Где-то накосячено с Release, я так полагаю.

-------- например -----------
// в ГМ
Перем Фаб Экспорт;

Процедура ПриНачалеРаботыСистемы()
    ...
    Фаб = СоздатьОбъект("ТФабрика");
КонецПроцедуры

// в классе ТФабрика
Функция Nope() Экспорт
    Возврат 0;
КонецФункции

Функция ПрогрессБар(МинПоз, МаксПоз, Заголовок) Экспорт
    Панель = СоздатьОбъект("ПанельСтрокиСостояния");
    Панель.НайтиПоКоду(0);

    оПрогресс = СоздатьОбъект("ПрогрессБар");
    оПрогресс.Создать(МинПоз, МаксПоз, Панель, 1);
    оПрогресс.Заголовок = Заголовок;
    
    Возврат оПрогресс;
КонецФункции

// в обработке
Процедура тест_Фаб()
    Фаб = СоздатьОбъект("ТФабрика");
    Прогресс = Фаб.ПрогрессБар(1, 100, "печать  ");
    Прогресс.Позиция = 50;
КонецПроцедуры

Процедура тест_Фаб2()
    Фаб.Nope();
КонецПроцедуры

------------------------
после вызова тест_Фаб()  прогресс-бар остаётся в строке состояния
после вызова тест_Фаб2() панель возвращается в незамутненное состояние

Собственно, это поведение наблюдается и для любых пользовательских классов. И возможно и для штатных объектов тоже.

если оформить функцию без возврата - то разрушение объекта не происходит
Функция Nope() Экспорт
КонецФункции
112 ADirks
 
06.02.24
11:41
*исправление
Процедура тест_Фаб()
    Прогресс = Фаб.ПрогрессБар(1, 100, "печать  ");
    Прогресс.Позиция = 50;
КонецПроцедуры
113 trdm
 
06.02.24
12:10
(109) > Но у клюшек нет гемора с интерфейсной частью по крайней мере

Концепция поля в v8 в УФ меньше гемороя дает.
Я бы клон писал с новой концепцией.
114 АЛьФ
 
06.02.24
12:14
2(111) Как-то я мало что в этом понял... И ваще не понимаю как это можно с моей стороны поправить.
Есть метод ПрогрессБар::Удалить(), может он поможет в этой ситуации?
115 ADirks
 
06.02.24
12:28
(114) Это косяк 1С++. Я его просто описал, раз уж разбирался.

Метод Удалить() да, помогает.
116 trad
 
06.02.24
14:04
(115) это косяк движка, просто ++ его проявил

ссылки по теме:
https://www.1cpp.ru/forum/YaBB.pl?num=1207661901/30#42
https://www.1cpp.ru/forum/YaBB.pl?num=1212645215
https://www.1cpp.ru/forum/YaBB.pl?num=1493108879
117 Злопчинский
 
06.02.24
14:23
Ой, блин, там много умных слов.
А для дебилов, которые только на 1С погромируют, можно какое-то резюме неаписать, что делать-то? или чего не делать?
118 Djelf
 
06.02.24
15:17
(117) Не делай того креативного, что ты раньше не делал и будет все как раньше. Ничего же от этого за столько лет не сломалось?
119 Arbuz
 
06.02.24
17:46
АЛьФ У объекта ОкноСообщений не хватает метода для прокрутки вниз на последнее сообщение, т.к. если уменьшать размер окна сообщений, то положение становится на верхней видимой строке до уменьшения окна и новые нижние сообщения не видно.

PS это на запаркованном внизу окне
120 alyuev
 
06.02.24
19:41
Альфу - не качал еще, но всё равно спасибо!
Пока мы здесь - базы работают и развиваются на 7.7. Перевели на болгарский учет (бухгалтерский, налоговый). Используется вместо "Микроинвест ДельтаПро".
Хотя от кирпича (в виде ракеты, например) никто и не застрахован. Особенно в наше-то время...
121 Волшебник
 
06.02.24
20:09
Да, охренеть, сколько ещё семёрочников! 🔥
💖 Миста вас всех поддерживает!
1С — наше фсё!!!
122 АЛьФ
 
06.02.24
20:57
2(119) Добавил.

ПоказатьСтроку(<?>)
ShowLine(<?>)
Синтаксис:
ПоказатьСтроку(<НомерСтроки>)
Назначение:
Позиционирует окно сообщений на указанной строке.
Параметры:
<НомерСтроки> - номер строки, на которой надо спозиционировать окно. Если -1, то окно позиционируется на последней строке.
123 Djelf
 
06.02.24
21:05
(121) Пока ты нас дустом не начнешь поливать, мы еще возможно и размножаться будем...
124 Волшебник
 
06.02.24
21:14
(123) Есть вероятность, что страна откатится к 1Сv7. Ну санкции так могут сыграть...
125 АЛьФ
 
06.02.24
21:16
2(124) Смешно.
126 Злопчинский
 
06.02.24
21:26
(122) а есть методы получения количества строк и перебора строк окна сообщений не прибегая к сохранению ОС в файл?
127 AAA
 
06.02.24
21:27
Представил Нуралиева на горке, катится к 7.7 на фанерке
128 AAA
 
06.02.24
21:29
Пока есть Злопчинский будет и 7.7. "Гвозди бы делать из этих людей, в мире бы не было крепче гвоздей"
129 Злопчинский
 
06.02.24
21:30
Хотя для чего это может понадобиться - хз...
.
И тогда уже вполне может пригодиться типа
ОС.ПоказатьСтроку("здесьсимвроьнастроканакоторвюпозиционируетсяОСеслинайденаАеслиненайденаТрНаПоследнюю)
130 Djelf
 
06.02.24
21:38
(127) Не надо, ну прошу, не надо это представлять, а то ведь я тоже представляю уже:
Когда был Нургалиев маленький, с кудрявой головой.
Он тоже бегал в валенках. По горке ледяной.
131 Волшебник
 
06.02.24
21:39
(128) Смешно...
132 Злопчинский
 
06.02.24
21:40
(128) это я еще 1С++ и всякие ТП не освоил (ввиду отсутствия серьезных проектов) за кучу лет штрымдяча на 77 всякое.. прост особо надобности не было... Вполне хватало шттаных возможностей...
.. а то бы.. я бы .. да бы..
.
Ясное весеннее утро. Светит солнышко, щебечут птички... Молодая графиня просыпается, и слышит прекрасную музыку. От нахлынувших на нее чувств она вскакивает, набрасывает халатик и выбегает в гостиную. Там за роялем сидит поручик Ржевский.
— Ах, поручик! Это вы так прекрасно играете?!
— Да так, anekdotov.net, сударыня, [зв]издячу-с помаленьку!
133 Злопчинский
 
06.02.24
22:26
Djelf trdm victuan MMRuzа и иже с ними - вот кто (тут все убрал про просьбе культурных людей, заменив на) топчет клаву от души...
.
ЗЫ: приходится уточнить во избежание: я в хорошем смысле, восхищен!
134 АЛьФ
 
06.02.24
21:46
2(126) Могу сделать получение текущего содержимого в виде строки.
135 Злопчинский
 
06.02.24
21:52
(131) Над кем смеетесь.. над собой смеетесь...
.
Да, я шут, я циркач…
Так что же?
Пусть меня так зовут вельможи,
Как они от меня далеки, далеки,
Никогда не дадут руки.
136 mishaPH
 
06.02.24
21:53
ну вам смешно в 7ка жива еще. Самое смешное. что можно не пользоваться регистрами бух итогами и расчетом и.. оболочка клюшек не подлежит лицензированию. при 1с++ и форексе все можно организовать в принципе. Я сейчас на 7.7 в которой до 500 юзеров одновременно
137 Злопчинский
 
06.02.24
21:53
(134) угу, может оказаться полезным...
Только предусмотреть что текст в окне сообщений может оказаться достаточно большим (как строка), а в 77 вроде максимальный размер строки - 32Кб..?
138 Djelf
 
06.02.24
21:55
(133) Тебя точно не сломали? Обозвать "всякими" ну... не комильфо. Ну хоть АЛьФ`а так не обозвал...
139 Волшебник
 
06.02.24
21:57
Круто
140 mishaPH
 
06.02.24
22:03
на бывшей работе 7ка от пр-ва до сбыта. 7 лет пыжатся чтобы на другую систему перейти а сумели заменить только часть функционала ПУБ 77. Пар знакомых тоже на клюшках, даже помогаю запросиками 1с++ не сложными правда в качестве консультации. Короче не убить
141 Волшебник
 
06.02.24
22:05
(140) Семёрка ещё сырая...
142 Злопчинский
 
06.02.24
22:06
(138) ну, Альф - это святое!
143 AAA
 
06.02.24
22:07
(132) Не освоить табличное поле это позор. Это самые вкусности - табличное поле, прямые запросы,индексированная таблица. Ну и конечно Йоксель - отчеты с группировками. В 7.7 бы улучшить дизайн и сделать табличные части справочников и несколько табличных частей документов и тогда бы ваще!!
144 AAA
 
06.02.24
22:08
(141)Так все 1с сырые и это вина не Альфа.
145 AAA
 
06.02.24
22:10
(140)аналогичная история. Мотивы озучивать не буду, не поверите) Сам бы не поверил) Но двигаться надо..
146 Djelf
 
06.02.24
22:10
(140) Не... эту стюардессу мы в 2038 закопаем (она тогда точно умрет), но потом все равно выкопаем.
Есть же примеры типа dbeng32 от Wirth, который держит dbf больше 2х гигов. Мы что тупее?
147 Злопчинский
 
06.02.24
22:15
(143) ну вот если понадобилось бы - освоил бы. А так - большая часть моей деятельности была в налаживании процессов, а не в кодинге. ИТЗ юзаю помаленьку, Йоксель - тоже... Все по мере надобности. Вот последний проектик был - разброс цены 2К-6К. 2К - будет просто и быстро сделано, 6К - будет сделано хорошо. Как думаешь - что заказчик выбрал...?
148 Злопчинский
 
06.02.24
22:16
(143) "В 7.7 бы улучшить дизайн и сделать табличные части справочников и несколько табличных частей документов и тогда бы ваще!!"
- ну и сделали бы надстройку из ТП для форм списков справочников и журналов, чтобы готовым блоком использовать...
149 mishaPH
 
06.02.24
22:22
(146) ну как ты думаешь. если пофиксили все начиная от защиты, скуль выше 2000 и т.п. эту фигню не изменят?
150 АгентБезопасной Нацио
 
07.02.24
08:27
(148) Это называется "ПоставщикДанных"
Расширения к табличному полю
Описание
Изначально объект «ПоставщикДанных» имеет следующие встроенные расширения:
•    ПоставщикДанных.Справочник (ТипЗначений: Справочник.Идентификатор)
•    ПоставщикДанных.Документы (ТипЗначений: Документ.Идентификатор)
•    ПоставщикДанных.Журнал (ТипЗначений: Журнал.Идентификатор)
•    ПоставщикДанных.Регистр (ТипЗначений: Регистр.Идентификатор)
•    ПоставщикДанных.Операции (ТипЗначений: Операции)
•    ПоставщикДанных.Проводки (ТипЗначений: Проводки)
•    ПоставщикДанных.ТабличнаяЧасть (ТипЗначений: ТабличнаяЧасть.Идентификатор)
•    ПоставщикДанных.ИндексированнаяТаблица (ТипЗначений: ИндексированнаяТаблица)
•    ПоставщикДанных.СписокЗначений (ТипЗначений: СписокЗначений)
•    ПоставщикДанных.ДеревоЗначений (ТипЗначений: ДеревоЗначений)
•    ПоставщикДанных.Отбор (ТипЗначений: Отбор)
151 АЛьФ
 
07.02.24
09:01
2(137) Тогда, наверное, лучше получать количество строк и содержимое строки по номеру. При желании можно будет считать все окно сообщений хоть в строку, хоть в текст.
152 АЛьФ
 
07.02.24
09:02
Кто-нибудь смотрел новое получение стека вызовов?
153 ЯнСмит
 
07.02.24
09:20
(143) Вкусности-то вкусности конечно, но еще бы описание ко всему этому зоопарку нормальное бы, а то приходится по крупинкам на форумах собирать ...
154 АЛьФ
 
07.02.24
09:25
2(153) А чем не устраивает штатная документация?
https://www.1cpp.ru/docum/icpp/html/
155 ЯнСмит
 
07.02.24
10:28
(154) о как, спасибо большое, как-то прошло мимо =(
157 alyuev
 
07.02.24
13:10
АЛьФ. Загрузил 188 и 189 версию. Окно сообщений спряталось при старте. И в дальнейшем выводимых сообщений не видно. Теперь нужно как-то активировать по-умолчанию, чтобы отображалось окно? До этого использовали 147ую версию.
158 АЛьФ
 
07.02.24
13:18
2(157) На системное окно по умолчанию ничего не должно влиять.
159 alyuev
 
07.02.24
13:21
При загрузке использую эти методы:
160 alyuev
 
07.02.24
13:21
РасширенноеОкноСообщений=СоздатьОбъект("ОкноСообщений");
                РасширенноеОкноСообщений.Парковать(1);
    //            РасширенноеОкноСообщений.Очистить();
                РасширенноеОкноСообщений.ПодключитьСистемноеОкноСообщений();
                РасширенноеОкноСообщений.ПерехватСистемныхСообщений(1+2+4+8+16+32+64+128+256+512);//Перехватываем все сообщения
                РасширенноеОкноСообщений.СтильКакМодуль(1);//Вызывать после Перехвата! Иначе стиль не применится.
                РасширенноеОкноСообщений.Видимость(1);      //Показываем здесь, после всех установок, чтобы не мелькало
161 АЛьФ
 
07.02.24
13:26
2(160) Использовать ПерехватСистемныхСообщений после ПодключитьСистемноеОкноСообщений не имеет смысла. В это окно и так все сообщения идут. ПерехватСистемныхСообщений для того, чтобы дублировать некоторые сообщения в своем окне.

А в целом ничего криминального не вижу. Предлагаю для начала поставить ПодключитьСистемноеОкноСообщений сразу после создания объекта.
162 Arbuz
 
07.02.24
13:56
Я ажно прослезился, ребята.
Может произойдёт чудо как-то и вынут на белый свет исходники семёрки. Вряд ли, конечно, да и лють страшные они же, судя по тому, что уже отреверсили.
163 Злопчинский
 
07.02.24
15:12
(162) "Спасибо, поржал"
Это ж капитализьм, за копейку удавятся..
164 Djelf
 
07.02.24
16:27
Поскольку в FormEx сейчас появляются новые свойcтва и методы, причесал свою древнюю обработку FormEx2INTS, требует 1С++ для использования Объекта Информатор.
Замечание: эта обработка вытащит все недокументированные и не стабильные свойства и методы.
Что делать с файлами *.ints надеюсь вы и сами знаете....
https://cloud.mail.ru/public/ZouA/pFQdBXPtf
165 mishaPH
 
07.02.24
15:21
(164) а что она делает?
166 Djelf
 
07.02.24
16:40
(165) Создает файлы подсказок (*.ints) для Объектов после точки, для скрипта Intellisense под OpenConf.
167 Arbuz
 
07.02.24
15:25
(152) Посмотрел бегло. Ух ты ж, даже в ОбработкаБлокировкиОбъекта() видно стэк вызовов! Не показывает только номер строки из ПриНачалеРаботыСистемы(), но это ерунда.
(122) Как-то не совсем у меня работает. Была у меня идея при появлении сообщений увеличивать окно сообщений и через некоторое время уменьшать до одной строки. Отдельно из обработки работает ПоказатьСтроку(), а в глобальном обработчике ожидания, после УстановитьКоординаты() почему-то не меняет строку. Может я чего-то накосячил, пока нет времени разбираться.
168 Eiffil123
 
07.02.24
17:17
(33) а что случится в 2038 году?
169 Djelf
 
07.02.24
17:19
(169) 1С 7.7 налетит на звездную ось и разрушится...
Погугли, это просто...
170 mishaPH
 
07.02.24
17:22
171 Волшебник
 
07.02.24
19:48
(170) Сыровата система...
172 АЛьФ
 
07.02.24
20:16
2(172) Ну, так поэтому мы над ней еще и работаем.
173 Волшебник
 
07.02.24
20:24
(172) Я вас всех клюшечников поддерживаю. Я просто не понимаю ваш статус. Вы получили исходники семёрки и можете её дорабатывать?
174 Волшебник
 
07.02.24
20:23
Сразу отвечаю, нет. Семёрка умерла по исходникам.
Значит мы имеем дело с тушкой или трупом, которую пытаются оживить через плагины/расширения...
Мёртвое тело не даст живых всходов. Это в Библии написано.
Семёрка морально умерла, потому что исходники семёрки похоронены.
175 Djelf
 
07.02.24
20:27
(174) Не согласен. У нас есть исходники, частично, но этого для такой простой платформы достаточно.
176 AAA
 
07.02.24
20:30
Не верю, что исходники закопали или сожгли. Где то они есть )
177 AAA
 
07.02.24
20:31
(174)"Мёртвое тело не даст живых всходов" - я атеист, но сомневаюсь в точности Вашей фразы. Для христиан нет мертвого тела, потому что нет смерти
178 AAA
 
07.02.24
20:34
И подозреваю, что у разработчиков обсуждаемых вкусностей был какой то доступ к исходникам.
179 mishaPH
 
07.02.24
20:42
(174) (173) А создается ощущение, что при малейшем ее упоминании прям ярость какая-то спонтанная. А при попытках кого-то спросить что-то прям агрессия. С закрытием веток
180 АЛьФ
 
07.02.24
20:48
2(173) Зачем исходники?
2(174) У тебя есть исходники v8? Их отсутствие как-то мешает тебе в работе?
181 Волшебник
 
07.02.24
20:49
(179) И что? Это моё личное.
182 АЛьФ
 
07.02.24
20:52
2(178) Могу показать кусочек кода, из которого я сейчас выцепляю место хранения маркера сообщения.

Подробности
.text:23019F40 sub_23019F40    proc near               ; CODE XREF: CMainMessageHandler::WriteMessage(char const *,CMessageInfo &,int)+9C↑p
.text:23019F40
.text:23019F40 var_4           = dword ptr -4
.text:23019F40 LineNum         = dword ptr  4
.text:23019F40
.text:23019F40                 push    ecx
.text:23019F41                 push    ebx
.text:23019F42                 push    ebp
.text:23019F43                 push    esi
.text:23019F44                 push    edi
.text:23019F45                 mov     edi, [esp+14h+LineNum]
.text:23019F49                 mov     esi, ecx
.text:23019F4B                 mov     eax, edi
.text:23019F4D                 xor     edx, edx
.text:23019F4F                 mov     ebp, [esi+8]
.text:23019F52                 mov     ecx, [esi+4]
.text:23019F55                 shr     eax, 4
.text:23019F58                 div     ebp
.text:23019F5A                 test    ecx, ecx
.text:23019F5C                 mov     ebx, edx
.text:23019F5E                 mov     [esp+14h+var_4], ebx
.text:23019F62                 jz      short loc_23019F84
.text:23019F64                 mov     eax, [ecx+ebx*4]
.text:23019F67                 test    eax, eax
.text:23019F69                 jz      short loc_23019F80
.text:23019F6B
.text:23019F6B loc_23019F6B:                           ; CODE XREF: sub_23019F40+34↓j
.text:23019F6B                 cmp     [eax+8], edi
.text:23019F6E                 jz      short loc_23019F78
.text:23019F70                 mov     eax, [eax]
.text:23019F72                 test    eax, eax
.text:23019F74                 jnz     short loc_23019F6B
.text:23019F76                 jmp     short loc_23019F80
.text:23019F78 ; ---------------------------------------------------------------------------
.text:23019F78
.text:23019F78 loc_23019F78:                           ; CODE XREF: sub_23019F40+2E↑j
.text:23019F78                 test    eax, eax
.text:23019F7A                 jnz     loc_2301A033
.text:23019F80
.text:23019F80 loc_23019F80:                           ; CODE XREF: sub_23019F40+29↑j
.text:23019F80                                         ; sub_23019F40+36↑j
.text:23019F80                 test    ecx, ecx
.text:23019F82                 jnz     short loc_23019FB2
.text:23019F84
.text:23019F84 loc_23019F84:                           ; CODE XREF: sub_23019F40+22↑j
.text:23019F84                 lea     ebx, ds:0[ebp*4]
.text:23019F8B                 push    ebx             ; unsigned int
.text:23019F8C                 call    ??2@YAPAXI@Z    ; operator new(uint)
.text:23019F91                 mov     ecx, ebx
.text:23019F93                 mov     edi, eax
.text:23019F95                 mov     edx, ecx
.text:23019F97                 xor     eax, eax
.text:23019F99                 shr     ecx, 2
.text:23019F9C                 mov     [esi+4], edi
.text:23019F9F                 mov     ebx, [esp+18h+var_4]
.text:23019FA3                 rep stosd
.text:23019FA5                 mov     ecx, edx
.text:23019FA7                 add     esp, 4
.text:23019FAA                 and     ecx, 3
.text:23019FAD                 rep stosb
.text:23019FAF                 mov     [esi+8], ebp
183 АЛьФ
 
07.02.24
20:51
2(181) Зачем же тогда выносить это на публику?
184 Волшебник
 
07.02.24
20:51
(180) v8 развивается, выпускаются новые релизы.
Ваша мёртвая v7 умирает. "Оставьте людям хоронить своих мертвецов" (в Библии написано).

Я человек верующий, хотя это к делу не относится.

Просто признайте, что Вы работаете с трупом.
185 Волшебник
 
07.02.24
20:54
(183) Потому что v7 — важная часть моей личности (архивная часть)
186 Chai Nic
 
07.02.24
20:54
Семерка работает на любом железе последних 30 лет. А восьмерка? Там даже "тонкий" клиент настолько толстый, что требует проц с SSE2.
187 АЛьФ
 
07.02.24
20:55
2(184) Хорошо, признаю. Мы работаем с трупом.
188 Волшебник
 
07.02.24
20:55
(186) Семёрку надо убить. Если она ещё где-то работает, то не должна.
189 Волшебник
 
07.02.24
20:58
(187) Ну вот и славно. Клюшечники = трупоеды, получается.
190 AAA
 
07.02.24
20:58
(185)и что? Все должно быть так как Вы думаете ?
191 АЛьФ
 
07.02.24
20:59
2(189) Получается, что так.
192 АЛьФ
 
07.02.24
20:59
2(188) Кому надо?
193 AAA
 
07.02.24
21:00
(192)тому кто все за всех решил
194 Волшебник
 
07.02.24
21:01
(190) Конечно, нет. Не должно быть. Просто Вы признали сей факт.

А я думаю по-другому.

Миста как форум готова принять всех, включая трупоедов-клюшечников.
195 Волшебник
 
07.02.24
21:03
(192) Никому
196 AAA
 
07.02.24
21:03
(194)лично я ничего не признавал
197 Волшебник
 
07.02.24
21:04
(196) А мы Вашу личность даже не инспектировали, если чо
198 MWWRuza
 
07.02.24
21:08
Ээээ...
Я чего-то не понял, с окном сообщений что стало?
Нет, я конечно читал всю тему, но, думал, для использования новых возможностей надо что-то делать :-)
Раньше был отдельный метод, для того, что-бы длинные строки разбивать построчно... Я сейчас никаких методов для этого не применял, просто при старте системы ФормЕкс загружен, но, длиннющую строку, которую я в Сообщить() вывел для отладки(просто посмотреть, что запрос работает), выкинуло в табло как так и надо:





Получается, для таких лентяев как я, это просто суперское облегчение:-)))) Ничего писать специально не нужно, достаточно загрузить новый ФормЕкс, и убогое табло 1с77 превращается в вполне приличное! Раньше, делать табло многострочным, не всегда руки доходили, это нужно было в основном "для себя"... А тут, "оно само!"
Супер :-)
АЛЬФ, спасибо!
199 AAA
 
07.02.24
21:05
(197)Без комментариев.
200 Волшебник
 
07.02.24
21:06
(199) Я тоже слежу за вами.
201 АЛьФ
 
07.02.24
21:12
2(198) Разбивку длинных строк я раньше сделал, еще до публикации этой сборки.
202 Волшебник
 
07.02.24
21:14
Теперь вопросы к Альфу:
Может хватит уже?
203 АЛьФ
 
07.02.24
21:15
2(202) Чего именно "хватит"?
204 Волшебник
 
07.02.24
21:16
Что имеем: Альф распространяет свои гнилые/правильные исходники через мисту.
205 Волшебник
 
07.02.24
21:17
При этом Альф ненавидит мисту.
206 Волшебник
 
07.02.24
21:18
Где гарантия, что исходники Альфа не будут содержать закладку для пользователей мисты?
207 AAA
 
07.02.24
21:19
Умора...)
208 Djelf
 
07.02.24
21:20
(194) Ты оскорбляешь пользователей и программистов на 1с 7.7 по признаку использования ими платформы 1С 7.7, подобное в России не приветствуется.
Еще более странно подобное выслушивать от создателя и супер-модератора форума, в котором разделены подфорумы платформ 8.3 и 7.7.

Господа, переходите на более трезвые и адекватные варианты своих сообщений, иначе кажется что ваш ЗОЖ чем-то странным разбавлен...
209 Волшебник
 
07.02.24
21:19
Доверия нет, понимаете?
210 АЛьФ
 
07.02.24
21:20
Понятно.
211 Волшебник
 
07.02.24
21:20
Миста-Альф - потеряно доверие
216 mishaPH
 
07.02.24
21:23
(214) значит не в курсе.
с какой конфигурации начиналась 8ка? и почему с нее
222 MWWRuza
 
07.02.24
21:33
(201) Значит я просто давно не обновлял Формекс.
Я знал, что можно так делать:

Перехватчик=СоздатьОбъект("Перехватчик");
Перехватчик.ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить();

И вообще, это не из ФормЕкса, а из 1с++

Но, что и без этого, оно само так работает, для меня сегодня было открытием :-)
223 Djelf
 
07.02.24
21:33
(215) Ну и правильно, незачем слабовидящим исправлять свои очепятки.
Так всех и победим.
224 АЛьФ
 
07.02.24
22:01
Выложил новую сборку. Добавил два метода:

КоличествоСтрок()
LinesCount()
Синтаксис:
КоличествоСтрок()
Назначение:
Возвращает количество строк, выведенных в окно сообщений.

ПолучитьСтроку(<?>,,)
GetLine(<?>,,)
Синтаксис:
ПолучитьСтроку(<НомерСтроки>,<ТекстСообщения>,<МаркерСообщения>)
Назначение:
Метод предназначен для получения строки из окна сообщений.
Параметры:
<НомерСтроки> - номер строки. Нумерация строк с нуля. Отрицательное значение задает номер строки с конца (с последнего выведенного и вверх);
<ТекстСообщения> - необязательная переменная, в которую вернется текст сообщения;
<МаркерСообщения> - необязательная переменная, в которую вернется маркер сообщения.
225 Волшебник
 
07.02.24
22:02
(223) Вы ерунду говорите. У нас все просто и прямо.
226 Волшебник
 
07.02.24
22:03
(224) Зачем??!
227 АЛьФ
 
07.02.24
22:04
2(226) Чтобы люди пользовались.
228 Волшебник
 
07.02.24
22:05
(227) Ну ок
230 mishaPH
 
07.02.24
22:33
(220) + 229
1с8 начиналось с HR модуля.
1с персонал такой проект знаком? и на какой он платформе.

ну и последний вопрос. фамилию мою знаете? если да не помните такую из прошлой жизни?

8ка уже мертва. она устарела к современным технологиям. 7ка останется легендой а про 8ку очень быстро в мире потреблядства и прогов кодеров а не 1с ников забудут.
231 Злопчинский
 
07.02.24
23:59
(222) так еще можно делать несколько окон сообщений, управлять их положением/парковкой, сохранять содержимое в файл одной командой
232 MWWRuza
 
08.02.24
00:04
(224) Вопрос - а чему равна длина строки? Если я вывожу в табло методом Соббщить(<Стр>) огромную строку(это JSON, прилетевший из ЧестногоЗнака), одной длинной строкой, то в табло оно сейчас разбивается на кучу строк. Отлично! Но, хочется понять, по сколько символов эти куски будут?

(231) Ок. Супер. А из ГМ эта процедура будет работать?
233 Злопчинский
 
08.02.24
00:09
(232) обычная процедура, видимость переменных только учти или параметрами сделай
234 Злопчинский
 
08.02.24
00:11
(232) длина строки - ну посмотри у себя выше на какую длину бьет...
если мне не сильно отшибло память - ругалось когда примерно 190 символов строка длинее была
235 Злопчинский
 
08.02.24
00:17
(232) проверил, бъет на строки по 450 символов
236 Злопчинский
 
08.02.24
00:20
АЛьФ, было бы удобно имеет "настроечный параметр" (для окна сообщений? у каждого ОС - свой настроечный параметр -атрибут?), задающий размер "короткой" строки при делении "длинной строки" для вывода в ОС, по умолчанию пусть будет, например, 80 символов ( ;-)дань перфокарте) ну или как сделал 450
237 Злопчинский
 
08.02.24
00:21
.. потому что часто окно сообщений - для визуального осмотра/контроля, и когда осматриваемая инфа вылазит за "границу" окна - не сильно удобно...
238 DimVad
 
08.02.24
09:16
(188) // Семёрку надо убить. Если она ещё где-то работает, то не должна.

Знаю предприятие, где работает учётка на клиппере. Года 3 назад они искали для неё программиста сопровождать и поддерживать.

Сейчас в связи с СВО у них появились не слабо деньги (продукция стала очень востребована) и они хотят всё учётное перегнать на erp. Посмотрим что будет :-)
239 Волшебник
 
08.02.24
09:29
(238) Последняя версия Clipper была выпущена в 1997 году, как раз когда я впервые познакомился с 1С. Тогда я застал 1С Зарплата для DOS и фирма купила 1С 7.0, на которой я и начал писать.

Ну и долго мы будем тащить за собой этот багаж?
240 mishaPH
 
08.02.24
09:31
(239) сколько нужно бизнесу ибо он платит и он знает. что делать. не нам учить их жизни. я в начеле 00х работал в оптовке автозапчастей. Так контора федерал могул в финке в то время работала на чем-то стародосовском и прекрасно работала
241 trad
 
08.02.24
09:46
(188) // Семёрку надо убить. Если она ещё где-то работает, то не должна.
(239) // Ну и долго мы будем тащить за собой этот багаж?

Ну так и не тащите, начните с себя. Удалите раздел 7.7, запретите ветки про клюшки
242 AAA
 
08.02.24
09:52
(241)проблема в том, что от этого 77 не умрет, просто ее здесь не будет )
И утверждалось, что она труп и все 77 шники трупоеды. Но как можно убить труп? Живой труп ?))
243 Волшебник
 
08.02.24
09:53
(241) Подожду пока
244 Волшебник
 
08.02.24
09:54
(242) Живой труп — это зомби
245 trad
 
08.02.24
09:55
(242) в (241) лишь призыв к Волшебник быть последовательным, а не спор труп/не труп
246 АЛьФ
 
08.02.24
09:56
2(241) Форум и так уже умирает. Это его не добьет, конечно, но станет лишней каплей яда для умирающего.
247 Волшебник
 
08.02.24
09:57
(246) О, прикольно. Теперь миста будет соревноваться с семёркой: кто кого переживёт
248 trad
 
08.02.24
09:58
(243) Зачем тогда других призывать к действию, агитировать, а самому стоять в сторонке?
Действуйте!
249 АЛьФ
 
08.02.24
09:59
2(247) Не будет, конечно.
250 Волшебник
 
08.02.24
10:00
(248) Разрешите мне самому решать, когда и как действовать, ок? Спасибо.
251 mishaPH
 
08.02.24
10:00
ну да. не убили ЗОЖЕм форму, добить запретом клюшек.
252 Волшебник
 
08.02.24
10:01
Клюшечники-трупоеды включили обиженку...
253 trad
 
08.02.24
10:02
(250) Взаимно
254 АЛьФ
 
08.02.24
10:06
2(250) Не возражаю.
255 AAA
 
08.02.24
10:14
Эти трупоеды способствовали развитию 1С, продвигали ее в массы, позволили захватить рынок. Без внешних компонент типовые решения 1с выглядят унылр и скучно, и не будь всего этого добра от Альфа и его друзей, еще непонятно, как бы и что было сейчас.
У предприятия есть решение, легкое, быстрое, во всем его устраивает. И куда ему двигаться с него:
- Розница
- УТ 11
- БП 3
- КА 2
- ERP 2
В типовых много чего напихано, но ступудово нет многого, что нужно клиенту. Лицензии, железо, внедрение, обучение и что в итоге? Прибыль увеличится? за счет того, что кассир при выдаче денег будет как и все остальные сжирать своей сессией 3 гига оперативки? Типовые сложны, запутаны. часто нелогичны, практически недокументированы. Практически такой же самопал, ну чуть чуть есть пыльца промышленного продукта. И в чем развитие? десяток платформ, бесконечные метаданные для удаления и много чего еще. Да, много нового, местами интересного, много сделано в плане интеграции. Но все очень и очень не безоблачно и не безупречно
256 mishaPH
 
08.02.24
10:18
(255) ВР был прогом стал эффективным манагером сейчас. вот его и бесит что деньги мимо утекают видимо
257 АЛьФ
 
08.02.24
10:26
2(256) Я бы не сказал, что он когда-то был прогом.
258 DimVad
 
08.02.24
10:56
(239) // Ну и долго мы будем тащить за собой этот багаж?

Вопрос интересный. Вот есть учётки на клиппере. Сейчас они крутятся под DOSBox на компах с "десяткой". Если надо будет перенести под линукс - вообще без проблем.

Нужно ли в самом клиппере что-то новое ? Так ведь он - просто язык для удобной работы с dbf, и больше ничего. Если надо что-то передать в современную программу (например, 1С) то он просто пишет во внешний файл типа obmen.dbf - и бери себе...

Теперь такой момент. Вот на предприятии привыкли что всё в учетной системе сделано строго под них. Там есть ТОЛЬКО кнопочки которые нужны на конкретном рабочем месте. Делают именно то, что нужно конкретному предприятию. На разных рабочих местах - разные экзешники. Ну мы же не монолит какой-нибудь :-)

И вот теперь они займутся горячим кексом с erp с надеждой что "всё там будет и уже правильно". Типа "erp придёт - порядок наведёт..." :-)

Посмотрим что они через пару годиков скажут... и будут ли в их речи цензурные слова...
259 mishaPH
 
08.02.24
11:10
(258) интересно а есть ли ерп вообще внедренные.
Забавно наблюдать все эти внедрения на предприятиях. где 99% причин провала это как раз попытка заставить людей делать что-то сверх их итак же забитой работой жизни. Особенно смешны выглядят руководители и манагеры которые думают, а вот пусть параллельно и там и там что то делают. Итого все эти внедрения далее бух не идет.
260 DimVad
 
08.02.24
11:24
(259) Мне кажется тут вся фишка в том, что считать "внедрением". Варианты :

1. На хорошо знакомом мне предприятии продолжает работать УПП которая сбрасывает данные в erp. Которую "тоже внедрили" :-)

2. Точно есть те, что УПП вытеснили полностью, erp работает, но финансы предприятия это никак не улучшило. Ибо продажи не увеличились и себестоимость не упала. Просто потратили деньги на переход. Фирма 1С называет это "успешным внедрением" :-)

3. Внедрить так, чтобы окупить переход и прибыль получить... будем добры - возможно в РФ и существуют предприятия, которым это удалось. Не могу отрицать такую возможность :-)

p.s. Кстати, на том предприятии где клиппер чаще всего работал один-единственный программист с ЗП как у мастера в цехе. И был доволен :-)

Никаких лицензий...
261 АЛьФ
 
08.02.24
11:29
2(259) У нас в таком режиме новые собственники хотели внедрять ЕРП. Прям глаза горели. Благо все заглохло еще на этапе нашей им просьбы написать чего они хотят получить от системы для начала.
262 mishaPH
 
08.02.24
11:32
(260) ну и вот вопрос. а УПП то чем далее мешало работать? управление заводом пр-во это как торговля. Раз внедрил под свои процесс, подправил процессы немного если надо и все. Далее как в торговле работает годами. Чего нового может быть в управлении производством то.
263 АгентБезопасной Нацио
 
08.02.24
11:32
(258) Ну, одной работой с данными сейчас дело не ограничивается.  А интерфейсные возможности у клиппака так себе.  Хотя я на нем делал даже некоторое подобие олап-кубика с дрилл-дауном... Но все равно, достаточно уныло.
Блокировками при сетевой работе тоже надо самостоятельно заморачиваться (забавно, что в 93 я делал не так, как в клюшках - "постепенные расчеты и запись в базу", а как в современных конфигах на УФ - "все считаем, складываем в таблицы, и единоразово пишем").
(260) Лицензии на клиппер тоде надо было покупать. У меня даже где-то валяется лицензионный комплект клиппера+NG к нему - на 5-дюймовках...
264 DimVad
 
08.02.24
11:35
(261) Помню у нас так же внедряли упп. Тоже новые собственники, и тоже мы их просили написать что они хотят.

Ответ был такой "у вас две недели чтобы решить увольняетесь вы или внедряете упп" :-)

УПП внедрили а через несколько лет выкинули и поставили какой-то специализированный софт. Я точно не знаю - я был уже в другом месте. С т.з. старого отдела деньги на внедрение упп пошли нереальные.

Вот я и думаю - у нас тут нынче разные санкции... Долго ли ещё мы будет в эти игры играть...
265 DimVad
 
08.02.24
11:40
(263) Лицензия на клиппер - только для разработчика. У меня ещё валяется, как и на клиппертулз :-)

А написанную на клиппере программу можно потом ставить миллиарду пользователей без лицензии.

Блокировки там идут на запись - при разумном подходе конфликта блокировок вообще не бывает. Сложность нулевая - просто блокируется текущая запись.

Интерфейсные возможности - ну я быстренько сделал свою оконную библиотеку. Под алфавитно-цифровой режим это вообще не проблема.
266 АгентБезопасной Нацио
 
08.02.24
11:49
(265) Да, клиппертулз я забыл - тоже в комплекте...
Интерфейсные я тоже писал...
А насчет блокировок - зависит от реализации. Если делать "итоги" ("аналог RG"), но на блокировки наталкиваешься...
267 Злопчинский
 
08.02.24
11:51
да вообще даже... насколько нужно использование графического гуя?
268 АЛьФ
 
08.02.24
12:32
А вот такая еще мысль возникла: нужна ли в окне сообщений возможность ставить закладки и перемещаться по ним?
269 DimVad
 
08.02.24
12:44
(266) "итоги" я делал только помесячные.
Типа "рассчитаем сальдовку" на начало текущего месяца.

В программе хранится по какой месяц итоги рассчитаны.
Когда важны оперативные итоги то функция берёт сальдо и смотрит начисления и оплаты за текущий период по данному договору.

Всё, никаких блокировок. Никаких "вы тронули старый период и всё накрылось", кстати :-)
270 Злопчинский
 
08.02.24
12:45
(268) хм... смысл? это если только несколько ОС, и каждое ОС - на отдельной закладке. Но такое мне кажется будет противоречить настройкам каждого ОС отдельного и тогда придется изобретать что-то типа ОС.ПрикрепитьНаЗакладку...
.
это чисто ВПДБ
271 DimVad
 
08.02.24
12:46
(267) Нужно только для построения красивых картинок для высшего руководства (делается другими программами). Для операторов нафиг не надо. Ибо сильно тормозит работу т.е. требует больше операторов - больше денег.
272 АЛьФ
 
08.02.24
12:53
2(270) Имеются ввиду букмарки, как в Конфигураторе по Alt+F2 ставятся.
273 Злопчинский
 
08.02.24
13:46
(272) а, да, это дело нужное, вполне пригодится
274 Arbuz
 
08.02.24
17:05
Какой-то прорыв на кринжопровóде...
275 Злопчинский
 
08.02.24
17:39
(274) у программиста два состояния. Или тупняк, или поперло.
276 Волшебник
 
модератор
08.02.24
19:57
Ладно, живите [v7 на мисте]... Но я за вами буду тайно наблюдать. Возможно даже буду проверять исходники. Просто буду глазеть, что тут происходит...
277 Злопчинский
 
08.02.24
19:46
(276) Это правильно, это хорошщо. Истинные ценности не отпускают...
278 Волшебник
 
08.02.24
19:52
(277) Помню свои корни...
279 AAA
 
08.02.24
19:55
Альф он хитрый, все исходники в машинных кодах
(278)а я вот не помню, без рода. без племени, без корней.
280 Волшебник
 
08.02.24
20:02
Я помню как меня чморили клюшечники за секцию v8... Они прямо требовали выделить эту хрень (v8) в отдельную секцию с возможностью "Скрыть". Всё было реализовано тогда.

Теперь реальность изменилась.
Теперь v7 в меньшинстве. Но миста поддерживает v7.
Обратите внимание: Я лично другого мнения (ну было выше), но это моя личная точка зрения, которая не совпадает с форумом и реальностью.
На мисте есть секция v7. Вам там рады.
281 Злопчинский
 
08.02.24
20:04
(280) мне вообще везде рады.
282 Волшебник
 
08.02.24
20:05
(281) Вы просто хороший человек. Это не связано с платформами.
283 Волшебник
 
08.02.24
20:13
Ещё раз проговорю: v7 - ОК
На мисте есть секция v7, где всем рады. ( Нужен ведущий секции что ли? )
Я лично НЕ поддерживаю v7, а поддерживаю v8 по личным причинам (личная биография).
Но моё личное мнение не является "мнением форума", которого не бывает, ибо форум просто движок, а буквы "v7" просто разделитель учёта.
Итак, раздел "v7" будет жить, пока там будут создавать ветки и писать сообщения.
Вы уж простите мои каменты типа "Семёрка ещё сырая" под каждой веткой.
284 alyuev
 
08.02.24
20:18
(160). Сделал тест на голой базе. Загружен только Формекс. Если сделать так:

    Рез=ЗагрузитьВнешнююКомпоненту(КаталогПрограммы()+"FormEx.dll");
    РасширенноеОкноСообщений=СоздатьОбъект("ОкноСообщений");
    РасширенноеОкноСообщений.Парковать(4);
    РасширенноеОкноСообщений.ПодключитьСистемноеОкноСообщений();

То Окно сообщений или не паркуется или пропадает. Но если сначала вызвать ПодключитьСистемноеОкноСообщений, а потом Парковать - то выполняет парковку нормально.
285 Волшебник
 
08.02.24
20:22
(284) У Вас Одесса всё ещё Украина, а в интересах "Книга Урантии", может поэтому?
286 mishaPH
 
08.02.24
20:27
(283) ну и то дело
287 Asmody
 
08.02.24
20:28
(283) предлагаю ветки про v7 сопровождать вот этой эмозькой ⚱️
288 alyuev
 
08.02.24
20:29
(285) И тут Остапа понесло... К чему крокодилы с ящиками мешать?

(284) На 147й версии Формекс - Парковать до ПодключитьСистемноеОкноСообщений() не отрабатывает (т.е. при любом значении параметра ничего не меняет, но при этом и окно не прячет!
289 Волшебник
 
08.02.24
20:30
(288) Сами не смешивайте
290 Волшебник
 
08.02.24
20:31
(287) Нельзя. Мы же толерантные.
292 alyuev
 
08.02.24
20:44
(289) Учетка заполнялалась давно. Что будет дальше с Одессой - время покажет. Главное - было бы к тому времени кому поменять учетку... А интересы - и страна (город, мирское) - это параллельные реальности... На сём предлагаю закончить эту полемику оффтоп...
293 Волшебник
 
08.02.24
20:45
(292) Да, пишите по делу, иначе Вас заблокируют
294 АЛьФ
 
08.02.24
22:12
Сборка 191.

Добавил предопределенную процедуру ПриВыводеСтрокиСостояния().

В объект ОкноСообщений добавил атрибут МаксимальнаяДлинаСтроки и методы: УстановитьЗакладку, ЕстьЗакладка, ПолучитьЗакладку, ОчиститьЗакладки.
295 АЛьФ
 
08.02.24
22:16
2(284) Поясню как работает изнутри:
ос = СоздатьОбъект("ОкноСообщений"); // тут создается дополнительное невидимое окно сообщений
ос.Парковать(4); // для созданного окна передается команда парковки
ос.ПодключитьСистемноеОкноСообщений(); // созданное дополнительное окно уничтожается и объект подключается к системному окну

Если планируется работа с системным окном, то его надо подключать (ПодключитьСистемноеОкноСообщений) до вызова каких-либо иных методов работы с окном.
296 АЛьФ
 
08.02.24
22:18
+(294) В этой сборке несколько "потрогал" старые методы объекта ОкноСообщений, причесывал код, поэтому могут вылезти глюки.
297 MWWRuza
 
09.02.24
03:07
+(236) задающий размер "короткой" строки при делении "длинной строки" для вывода в ОС, по умолчанию пусть будет, например, 80 символов ( ;-)дань перфокарте) ну или как сделал 450

То, что в (294) - МаксимальнаяДлинаСтроки хорошо, но, в идеале было-бы "подстраивать" длину строки автоматом к ширине ОС, что-бы не нужно было по горизонтали прокручивать, или где-то задавать длину принудительно...
Ну, это так, мысли в слух, "на подумать", если это не слишком сложно.

Или "МаксимальнаяДлинаСтроки" вынести на страничку свойст ВК в меню сервис, как "ВключитьРаскраску":





Это было бы удобно именно для системного ОС, не которое программно создается, а которое по умолчанию само работает :-)
298 АЛьФ
 
09.02.24
09:02
2(297) Автоматом максимальную длину строки не получится подстраивать под ширину окна. Я вообще не знаю почему 1С ввели это значение вместо обычного "переноса по словам". При уменьшении значения максимальной длины приходится очищать окно сообщений, иначе из-за ранее выведенных строк большей длины возникает системное предупреждение "Длина строки превышает...".

И в параметры не вижу смысла выносить это значение. Заморочек много, а толку - ноль. Максимальную длину имеет смысл менять только для отладочных сообщений. ИМХО. Проще в коде прописать. А если дать менять пользователям, то могут возникнуть разнообразные нехорошие эффекты.
299 АЛьФ
 
09.02.24
11:41
Вопрос.
Может стоит сделать отдельный объект "СистемноеОкноСообщений", который будет наследником объекта "ОкноСообщени", но для которого при создании будет автоматом подрубаться системное окно? Это позволит избежать некоторых недоразумений и упростит работу с системным окном, если дополнительные не нужны.
С другой стороны это упрощение можно сделать и просто глобальной функцией, которую везде использовать в качестве замены СоздатьОбъект():

Функция ПолучитьСистемноеОкноСообщений() Экспорт
    Результат = СоздатьОбъект("ОкноСообщений");
    Результат.ПодключитьСистемноеОкноСообщений();
    Возврат Результат;
КонецФункции
300 Злопчинский
 
09.02.24
12:42
(299) я бы не стал дополнительную такую заморочку делать... Если работу с ОС уже делают в коде, то сделать типа как функция приведена - это вообще ни о чем...
301 Злопчинский
 
09.02.24
12:59
(294) АЛьФ, "В объект ОкноСообщений добавил атрибут МаксимальнаяДлинаСтроки" - по умолчанию какое значение?
302 АЛьФ
 
09.02.24
13:01
2(301) По умолчанию то, которое система ставит. Насколько я понимаю, 497 (т.е. 500 минус перенос строки и какой-то маркер внутренний).
303 Злопчинский
 
09.02.24
13:36
(302) а под количеством строк, номером строки и прочими аналогичными операциями понимается - насколько я разумею - количество маркеров/сообщений
то есть
Сообщить("Строка1"+РазделительСтрок+"Строка2");
Сообщить("Строка3"+РазделительСтрок+"Строка4");
и
ОС.КоличествоСтрок() - вернет = 2, так?
304 АЛьФ
 
09.02.24
13:54
2(303) Нет, это именно количество выведенных строк. Т.е. в данном примере вернет 4.
А если Сообщить(СтрокаДлиной_1100);
то вставит переносы строк и количество вернет 3.
305 Злопчинский
 
09.02.24
14:05
(304) так-с... Значит ОС.ПолучитьСтроку(2,ТекстСообщения) вернет в ТекстСообщения - "Строка3" (нумерация с 0: 0,1,2..) - так?
306 АЛьФ
 
09.02.24
14:08
2(305) Да.
307 Злопчинский
 
09.02.24
14:18
АЛьФ, тогда уже прям так просится и что-то типа

ОС.НайтиСтроку(ИскомаяСтрока,НаправлениеПоиска);
возвращает номер найденной строки или -1 (потому что 0 возвращать нельзя, это номер первой строки)
НаправлениеПоиска: 1 - прямой поиск, -1 - обратный поиск.

или (а может даже И)

типа как ФС.НайтиПервыйФайл/ФС.НайтиСледующийФайл
типа
СтрокаПоиска = "чешем ЧСВ";
НомерСтроки = ОС.НайтиПервуюСтроку(СтрокаПоиска,1); //1- прямо,-1 обратно)
Пока НомерСтроки <> -1 Цикл
  //что-то делаем с найденной строкой (ставим маркер, например)
  НомерСтроки = ОС.НайтиСледующуюСтроку();
КонецЦикла;
308 Злопчинский
 
09.02.24
14:23
...и типа метод для ЗАМЕНЫ строки/подстроки в ОС
типа
ОС.ЗаменитьСтроку(НомерСтроки,ИсходнаяПодстрока,СтрокаЗамены);
ОС.ЗаменитьСтроку(12456,"Было","Стало");
.
возвращает 1 - если успешно, 0 - если в НомерСтроки нет ИсходнаяПодстрока
.
Если НомерСТроки не задан (параметр опущен или меньше нуля) тогда замена происходит по всем строкам ОС, возвращает 1 - если есть хотя бы одна замена, 0 - ни одной замены.
.
Возможно, еще параметр типа УчитыватьРегистр.
309 АЛьФ
 
09.02.24
14:23
2(307) Да, тоже думал об этом. Но тогда уж по аналогии с закладками сделаю:
ОС.НайтиСтроку(НомерСтрокиНачалаПоиска,ИскомаяПодстрока,НаправлениеПоиска);
310 АЛьФ
 
09.02.24
14:24
2(308) Для этого сделана предопределенная ПриВыводеСообщения(). В ней можно менять текст сообщения и маркер.
311 Злопчинский
 
09.02.24
14:28
.. но тут (в 308) возможен вариант когда в результате замены строка превысит установленный предел длины строки - в этом случае замена не выполняется, результат возвращается как "неудача", но это работает только для замены по конкретной строке, если замена по всему ОС - тогда (подумать) замены не происходит, результат операции зависит от того есть ли другие успешные замены.
.
Возможно, ОС.ЗаменитьСтроку возвращает СЗ (ТЗ?) с номерами строк успешных замен (НомерСТроки,1) и номерами строк неуспешных замен (НомерСТроки,-1). Для ОС.ЗаменитьСтроку(НомерСтроки,...) - в возвращаемом СЗ (ТЗ) будет всего одно значение/строка...
312 АЛьФ
 
09.02.24
14:31
2(311) Зачем менять уже выведенные строки?
313 Злопчинский
 
09.02.24
14:33
(310) ээээ! "это другое", я полагаю, что использование ПриВыводеСообщения будет существенно "притормаживать" процесс вывода строк в ОС. И ПриВыводеСообщения() работает только при формировании ОС, а процесс формирования когда закончился - ОС все еще существует и можно уже с ним работать ОТДЕЛЬНО, а не в процессе его формирования... ОС вообще можно наполнять не единоразово, а по этапам/шагам с перерывами, и возможность манипулировать уже наполненным ОС на каком-то из шагов без увязки с предысторией формирования ОС - наверное пригодилась бы...
.
Но тут смотри сам по возможностям, все это ВПДБ
314 Злопчинский
 
09.02.24
14:33
(312) "Шоб було!"
315 Злопчинский
 
09.02.24
14:34
ВПДБ = в порядке дежурного бреда
316 АЛьФ
 
09.02.24
14:36
2(313)(314) Тогда уж логичней делать выгрузку ОС в объект Текст и работать там как угодно.
317 АЛьФ
 
10.02.24
16:46
Добавил перенаправление системных локальных предопределенных процедур типа ПриОткрытии, ВводНового и проч. в глоабльный модуль. Первый параметр в глобальных процедурах - контекст формы, в которой сгенерирована локальное событие. Если в глобальной установить статус возврата в 0, вызов локальной не происходит.

Добавил в объект ОкноСообщений метод:

НайтиСтроку(<?>,,)
Синтаксис:
НайтиСтроку(<НомерСтроки>,<СтрокаПоиска>,<Направление>)
Назначение:
Метод для очистки всех закладок в окне сообщений.
Параметры:
<НомерСтроки> - номер строки. Нумерация строк с нуля. Отрицательное значение задает номер строки с конца (с последнего выведенного и вверх);
<СтрокаПоиска> - строка, которая ищется в окне сообщений;
<Направление> - необязательное направление поиска: 1 - вниз, -1 - вверх. По умолчанию - 1 (вниз).
318 Злопчинский
 
11.02.24
13:17
(317) "Назначение:
Метод для очистки всех закладок в окне сообщений."
- явно индусский код методом копи-паста ;-) В ALS тоже присутствует
319 Злопчинский
 
11.02.24
13:23
"<СтрокаПоиска> - строка, которая ищется в окне сообщений;"
именно СТРОКА (которая была выведена через СООБЩИТЬ, с учетом разделителейстрок) или ПОСЛЕДОВАТЕЛЬНОСТЬ символов?
.
если в ОС выведено
- траляляля АЛЬФ тырыпыры
- бугагашеньки ЗЛОП растопыры
.
и используем конструкцию ОС.НайтиСтроку(0,"АЛЬФ",1) - результат поиска будет успешный или как?
.
И какой результат возвращается методом?
номер найденной строки? если да - то как результат метода или в первом параметре? Если поиск неуспешный - что где возвращается?
.
Имхо чуть ширшее надо написать в ALS
320 АЛьФ
 
11.02.24
14:12
2(319) Начиная с указанной строки (включая ее) в указанном направлении в каждой строке ищется указанная подстрока, как методом Найти(). Поиск регистронезависимый. Дошли до строки, где есть подстрока, вернули номер. Дошли до конца/начала не найдя, вернули -1.
321 Злопчинский
 
11.02.24
14:39
(320) Понятно.
.
А чем, кстати, ALS делается?
322 Djelf
 
11.02.24
14:48
+(318) Еще одна ошибка в als: ОкноСообщений.Прогресс, нет там такого.
323 АЛьФ
 
11.02.24
14:56
²(321)
324 АЛьФ
 
11.02.24
14:56
2(321) вручную.
325 АЛьФ
 
11.02.24
14:57
2(323) поправлю.
326 Злопчинский
 
11.02.24
14:58
Инфо из соседней ветки: 192 релиз с ошибкой, в продакшен не ставить.
.
А можно ли глобально перехватить открытие формы?/tail#56
327 Злопчинский
 
11.02.24
15:16
(322) да, ругается  Поле агрегатного объекта не обнаружено  на типа ОС.Прогресс
328 АЛьФ
 
11.02.24
15:19
2(327) Не туда описание атрибута вставил. Должно быть в объекте ПанельСтрокиСостояния.
329 АЛьФ
 
11.02.24
15:25
Прошу глянуть тестовую сборку отсюда: https://disk.yandex.ru/d/SaGiKhu0fjokHw
330 Злопчинский
 
11.02.24
15:30
(329) Проверил, ПриУдаленииЭлемента/Документа - отрабатывает норм
331 АЛьФ
 
11.02.24
15:34
2(330) Спасибо. Тогда выкладываю в качестве сборки на сайт.
332 Злопчинский
 
11.02.24
15:37
еще бы хорошо в ALS добавить
333 Злопчинский
 
11.02.24
15:39
и  (немного) напрягает в "новых" возможностях нумерация всякого с 0 (нуля), идет вразрез с принятым штатно в 77 нумерацией всякого (РазмерСписка(), номера строк СЗ, ТЗ, прочее) с единицы...
334 АЛьФ
 
11.02.24
15:40
2(332) В следующий раз добавлю.
335 АЛьФ
 
11.02.24
15:43
2(333) Тут уж я вряд ли что-то буду менять.
336 Злопчинский
 
11.02.24
15:47
(335) кактусовод, елы-палы... ;-)
337 Злопчинский
 
11.02.24
15:48
буду сюда информационно кидать ошибки в словах и падежов
338 Злопчинский
 
11.02.24
15:48
вот
339 Злопчинский
 
11.02.24
15:50
новый
340 Злопчинский
 
11.02.24
15:51
поворот
341 Злопчинский
 
11.02.24
16:09
вот тут ALS редактор https://infostart.ru/1c/tools/14338/
на 10-ке без доп.бубнов ругается
342 АЛьФ
 
11.02.24
16:13
2(338-340) Лучше текстом кидать, мне будет проще искать.
2(341) В Нотепад++ мне привычней. Грамотность моя не повысится от использования других инструментов.
343 Chai Nic
 
11.02.24
17:21
Прошу проверить ещё один баг. Если в форме журнала документов обратиться к реквизиту атрибута расширения формы, то 1с вылетает.
Тестовая процедура, в модуле формы журнала.

Процедура ПослеОткрытия()
    Расш=СоздатьОбъект("РасширениеФормы");
    Расш.УстановитьФорму(Форма);
    Для Сч=1 по Расш.КоличествоАтрибутов() Цикл
        Атр=Расш.ПолучитьАтрибут(Сч);
        Тест=Атр.Тип; // вылетает если делать вот это (не обязательно Тип, если обращаться к Формула - то же самое), но вылетает не сразу, а после завершения процедуры

    КонецЦикла;
КонецПроцедуры
344 Злопчинский
 
11.02.24
17:59
(343) подтверждаю. приведенный выше код вышибает 1Ску бесповоротно. Вылетает при выходе из процедуры - на выполнении КонецПроцедуры. Проверял на абсолютно пустой пустой форме журнала.
345 АЛьФ
 
11.02.24
18:05
2(343) Падение в этом примере связано с тем, что атрибуты нумеруются с 0. Т.е. цикл должен быть таким:
Для Сч=0 по Расш.КоличествоАтрибутов()-1 Цикл
346 Chai Nic
 
11.02.24
18:09
(345) Понял. Ну ладно, учтем это как фичу.
347 АЛьФ
 
11.02.24
18:10
2(346) Поправил, чтобы не падало. Там классическая ошибка была: "строго больше" вместо "больше или равно".
348 АЛьФ
 
11.02.24
18:10
+(347) В следующей сборке будет учтено.
349 mishaPH
 
11.02.24
18:19
гм. народ. автор жжет.. кидайте скорее свои хотелки, пока добрый и есть время ;)
350 АЛьФ
 
11.02.24
18:21
2(349) Поздно... С понедельника возьмусь за восьмерочные задачи.
351 Злопчинский
 
11.02.24
20:09
(345) я в (333) был предельно бдителен...
352 Злопчинский
 
11.02.24
20:12
(350) космополит...
353 Злопчинский
 
11.02.24
22:51
(345) "Для Сч=0 по Расш.КоличествоАтрибутов()-1"
если количество атрибутов = 10, от 0 до 9 - то почему не сломалось при цикеле от 1 до 10 на ПолучитьАтрибут(10)..?
354 АЛьФ
 
12.02.24
09:04
2(353) Выходя за пределы массива элементов, не всегда попадаешь в область памяти, которая вызывает падение. Можно попасти и в мусор, оставшийся от прошлой формы. Т.е. будут какие-то данные получены.
355 Chai Nic
 
12.02.24
11:33
После установки свежего релиза поломалась расшифровка таблицы в бухгалтерских отчетах. В вызов глобальной процедуры ОбработкаЯчейкиТаблицы() попадает первым параметром контекст, вместо параметра расшифровки. Эта процедура изначально штатная с определенным поведением, даже в глобальнике. Если уж передавать туда контекст, то как необязательный параметр и после всех стандартных.
356 АЛьФ
 
12.02.24
11:52
2(355) Вот ведь зараза какая... Спасибо. Буду вечером чинить.

Проблема со сквозным вызовом через доп.глобальники. Надо поставить исключения на процедуры, которые в штатной версии могут быть и в модуле формы, и в глобальнике. Помимо ОбработкаЯчейкиТаблицы() есть еще такие?
357 АгентБезопасной Нацио
 
12.02.24
11:57
(356) Кстати, а перехватчик потом не перехватит еще и событие из глобальника?
358 AAA
 
12.02.24
12:22
Есть милый мультик "Каникулы Бонифация". Догадайтесь, кто тут Бонифаций, кто Бабушка и кто наглые зверушки )
359 Chai Nic
 
12.02.24
12:54
(356) ПриУстановкеОтбора() ещё такая же
360 Злопчинский
 
12.02.24
13:27
такс.. тогда откатываемся на 191 релиз
361 АЛьФ
 
12.02.24
13:28
2(357) Понятия не имею. Проверять надо.
2(360) Нельзя же быть таким оптимистом!
362 Злопчинский
 
12.02.24
13:40
(361) эти косячки они просто последствия от использовании снеговика ;-) это ж как ковид... непонятно чем аукнется...
363 Злопчинский
 
12.02.24
13:40
(357) я об этом сразу подумал, но так как перехватчики не юзаю то и забил...
364 Arbuz
 
12.02.24
17:52
Может для имён перехваченных процедур какой-нибудь префикс завести?
365 АЛьФ
 
12.02.24
20:34
2(364) Думал над этим. Но от озвученных глюков это не избавило бы.
366 АЛьФ
 
12.02.24
20:36
Выложил новую сборку.
Исправил обнаруженные глюки. Добавил пару методов объекту Сервис: ВерсияFormEx и ДоступнаяВерсияFormEx.
Первый метод для получения текущей версии компоненты, второй для запроса с сайта выложенной версии.
367 АЛьФ
 
12.02.24
20:36
Может кто-нибудь из модераторов поправит заголовок темы? Текущая сборка уже 2.0.5.194.
368 Chai Nic
 
13.02.24
08:55
Кстати, возник вопрос. По какой причине может не срабатывать УстановитьПеременнуюКонтекста()? Возвращает 0, то есть, не удалось установить переменную. Однако, если обращаться через точку, то всё работает. Но нужно обращаться по заранее неизвестному имени. Суть задачи - обнулить реквизиты на форме, где введен счет, который не относится к списку разрешенных для пользователя.

Например в ПослеОбновленияФормы:

Сервис=СоздатьОбъект("Сервис");

Сообщить(Сервис.УстановитьПеременнуюКонтекста(Конт,"Счет",СчетПоКоду("00"))); // выдается 0 в возвращаемом значении
Сообщить(Конт.Счет); // значение не меняется

Конт.Счет=СчетПоКоду("00");
Сообщить(Конт.Счет); // а так всё работает
369 АЛьФ
 
13.02.24
09:10
2(368) Метод УстановитьПеременнуюКонтекста() работает именно с переменными модуля, а не с реквизитами формы.
370 Chai Nic
 
13.02.24
09:20
(369) А как быть с реквизитами формы?
371 Chai Nic
 
13.02.24
09:23
+(370) Через "Значение" в атрибуте расширения формы не срабатывает тоже.
372 АЛьФ
 
13.02.24
09:24
2(371) А вот как раз должно бы было срабатывать. Я посмотрю.
373 Chai Nic
 
13.02.24
10:02
А кстати, почему-то не глобализована предопределенная процедура ОбработкаВыбораЗначения. Например, ПриНачалеВыбораЗначения в глобальнике цепляется нормально, в отличие от.
374 АЛьФ
 
13.02.24
10:28
2(373) Хороший вопрос. Следующий вопрос.

Из-за исторически сложившегося числового представления версии компоненты, максимальный номер сборки - 255. Чувствую, что такими темпами скоро перейдем к версии 2.0.6.
375 AAA
 
13.02.24
10:35
(374)а почему нельзя нумеровать просто + 1?
376 АЛьФ
 
13.02.24
10:55
2(375) Потому что числовой номер версии формируется, как шестнадцатиричное число. Сейчас 0х020005С2. Как дойдет до FF, перейдет в другой разряд.
377 Arbuz
 
13.02.24
17:16
На тему ОкноСообщений: получается, что в рамках одной процедуры нельзя изменять размеры окна и выводить в него сообщения/устанавливать строку. Установка строки не срабатывает, а если изменять размер, то у меня окно вообще не отрисовывается до конца работы 1С кода.
Может можно было бы сделать метод Сервису, который перерисовывал бы интерфейс, как при завершении потока пользовательского кода 1С, а потом продолжал код? По логике методы "ложного закрытия".

был такой оператор у васика DoEvents()

PS Изменение размера я делаю в ПриВыводеСообщения() и/или в Сервис.ОбработкаОжидания()
378 Злопчинский
 
13.02.24
17:27
(377) у меня вроде норм
.
Перем ОС;

//======================================================================
Процедура кнПоказать()
    ВыбЗнач =0; ВвестиЧисло(ВыбЗнач,"введи номер строки",10,0);
    ОС.ПоказатьСтроку(ВыбЗнач);
КонецПроцедуры // кнПоказать

//*******************************************
Процедура Сформировать()

    ОС.УстановитьКоординаты(100,100,200,700);
    Для ы=0 по 50 Цикл
        ОС.Сообщить(""+ы+": выполнено в Сформировать");
    КонецЦикла;
    Для ы=1 по 100000000 Цикл
    КонецЦикла;
    //Предупреждение("Ждем");
КонецПроцедуры
.
При этом цикл в Сформировать струячит, все строки выведены в ОС, при этом ОС - можно мышью таскаит/прикреплять - а цикл все струячит...
379 Arbuz
 
13.02.24
17:55
(378) Видимо у меня проблема в том, что изменение размеров происходят в событии ПриВыводеСообщения()
380 Злопчинский
 
13.02.24
18:17
(379) это ты сильно извратился...
381 АЛьФ
 
13.02.24
19:52
2(371) У меня устанавливается. Возможно, какие-то особые условия. Нужен тестовый пример.

2(373) А это глобальная проблема. Если нет в модуле локальной процедуры, то и глобальная не вызывается. Буду думать.
382 Злопчинский
 
13.02.24
20:07
(381) " Если нет в модуле локальной процедуры, то и глобальная не вызывается."
- это и других локальных касается? если да - то в ALS неплохо бы указать.
383 АЛьФ
 
13.02.24
20:12
2(382) Разбираюсь сейчас с этим моментом.
384 Злопчинский
 
13.02.24
21:42
(383) я вот ни разу бы не догадался что если нет локальной - то и глобальная не отрабатывает
385 trdm
 
13.02.24
21:47
(384) +++
386 АЛьФ
 
13.02.24
21:50
2(384) Пока нашел, что для трех процедур (ПриВыбореСтроки, ПриНачалеВыбораЗначения, ОбработкаВыбораЗначения) 1С сначала ищет их в модуле, а потом вызывает функцию исполнения предопределенной процедуры. Почему только для эти трех, а не для всех - великая загадка разработчиков 1С...
Причем в самой функции исполнения потом все равно опять проверяет их наличие в модуле.

Буду думать как обойти это недоразумение. Пока побеждает мысль при компиляции модуля виртуально добавлять эти функции, если их нет. Но не знаю каким боком это где-то еще может вылезти.
387 АЛьФ
 
13.02.24
22:06
+(386) О! Нашел способ проще.
388 Злопчинский
 
13.02.24
22:09
(387)
Уже топор занёс палач,
Толпа кричит ему...
389 АЛьФ
 
13.02.24
22:37
Что-то я уже совсем туго соображаю... Годы берут свое...

Прошу погонять тестовую сборку на предмет глобализации процедур. В частности указанных трех. Ну и не сломал ли я вообще чего-нибудь попутно.

Тестовая сборка тут: https://disk.yandex.ru/d/SaGiKhu0fjokHw
390 Злопчинский
 
13.02.24
22:45
(389) Спокойствие, только спокойствие. Пусть будет утешением, что не только ты один туго соображаешь с годами...
391 Arbuz
 
14.02.24
14:43
(380) Ну, почему же извратился... Идея в том, что окно это скручивают до минимума и не смотрят, что там сыпется. Думалось, что при получении сообщения надо восстанавливать (менять) размер окна. Однако, видимо, в событии ПриВыводеСообщения() нельзя манипулировать окном сообщений, что не разу не изврат, а само собой напрашивающаяся потребность.
392 Arbuz
 
14.02.24
15:42
(378) Провёл некие эксперименты.
1) Ты попробуй убрать из своей Сформировать() ОС.УстановитьКоординаты() и сразу возможность перемещать окно, пока "струячит" твой цикл, пропадает, хотя всё отображается.
2) А если заранее Парковать(1) (не в Сформировать(), но в ней оставить УстановитьКоординаты()), то и будет поведение, которое я описывал.

Так что проблема не конкретно в ПриВыводеСообщения(), а в том, что паркованное окно не обновляется.
393 АЛьФ
 
14.02.24
15:50
Похоже, что критические проблемы новой сборки при работе в компании с перехватчиком. Выбивает напрочь.
394 Arbuz
 
14.02.24
15:58
(393) Может тогда и не надо транслировать события в глобальник — есть же "штатный" Перехватчик? Ну, или сделать трансляцию опционально включаемой?
395 Arbuz
 
14.02.24
16:01
Ещё, АЛьФ, пользуясь моментом, можно поправить часы в панели строки состояния?

396 Chai Nic
 
14.02.24
16:10
(394) Какой же это штатный.. это гемор со всякими там классами 1с++. В формексе удобнее так то. Лучше эту фичу сохранить, но сделать её опциональной.
397 АЛьФ
 
14.02.24
16:11
2(395) Как включается показ времени (через параметры или методом)?
398 АЛьФ
 
14.02.24
16:12
2(394) Если не получится подружить с перехватчиком, то сделаю включаемой. Дело в том, что в FormEx и раньше была эта трансляция для вызовов в доп.глобальниках. И все работало нормально. Но вот последние изменения что-то поломали.
399 Arbuz
 
14.02.24
16:14
(397) Через параметры
400 АЛьФ
 
14.02.24
16:19
2(399) У меня нормальная получается ширина. Судя по скрину, виндовая тянулка окна закрывает часть панели часов. Добавлю ширину по умолчанию.
401 Arbuz
 
14.02.24
16:23
(400) Даже в максимизированном окне такая же картина. Вин7
402 Злопчинский
 
14.02.24
17:18
Даёшь внедреж!
403 Злопчинский
 
14.02.24
19:20
(396) поддерживаю!
404 АЛьФ
 
14.02.24
20:48
Придется все же добавлять префикс к перенаправляемым процедурам. Иначе код перехватчика не нашел как обойти.
Префикс будет "Глобальная_" и "Global_". Это только для процедур, которые обрабатывает перехватчик: ПриОткрытии, ВводНового, ВводНаОсновании. Вроде как остальные и так работают нормально.
Если у кого-то есть возражения, то говорите сейчас либо молчите навеки.

Или все же для всех сделать префикс, чтобы единообразно было?...
405 Волшебник
 
14.02.24
20:50
(404) Что скажет Архитектура?
406 АЛьФ
 
14.02.24
21:03
2(405) Промолчит.
407 АЛьФ
 
14.02.24
22:21
Выложил тестовую сборку: https://disk.yandex.ru/d/SaGiKhu0fjokHw

Добавлены префиксы для предопределенных процедур.
Исправлена отрисовка окна сообщений после установки координат.
Расширена панель отображения времени.
408 Ёпрст
 
14.02.24
22:04
(404) Перехватчик, будет перехватывать ити глобальные процы ?..
Непонятно зачем, но так, на всякий

И еще, если создавть доп глобальник, например, в них будут отрабатывать эти "перенаправляемые процедуры" ?

Жалко клюшек нет, поиграться
409 АЛьФ
 
14.02.24
22:23
2(408) И перехватчик перехватывает, и перенаправление в глобальные работает.
Через доп.глобальники должно все проходить. Это дело не проверял, тупо лень, а на работе мы их не используем.
410 Злопчинский
 
14.02.24
22:42
(404) "Или все же для всех сделать префикс, чтобы единообразно было?..."
- я за этот вариант. ибо это проще, а то здесь играем, здесь не играм, здесь рыбка лежала...
411 Ёпрст
 
14.02.24
22:55
(409) Еще такой момент прояснить для себя:
после срабатывания Глобальная_ПриОткрытии(), потом будет вызов ПриОткрытии() той, что в форме объекта описана ?

ЗЫ: в перехватчике можно этим управлять просто было, вызывая или не вызывая оригинальное событие
412 АЛьФ
 
14.02.24
23:06
2(411) Да, потом будет вызов ПриОткрытии, которая в форме. Или, если сброшен статус возврата, то прерывается выполнение.
413 АЛьФ
 
14.02.24
23:06
2(410) Так в итоге и сделал.
414 Ёпрст
 
14.02.24
23:18
(412)
А..если универсально сделать, как в Перехватчике, из глобальной сделать вызов локальной, и по результатам или выполнить код ниже, или нет.
Ну, чтоб свой код в глобальной был бы
-перед
-вместо
-после

на выбор. Не ?
415 АЛьФ
 
14.02.24
23:20
2(414) Подумаю.
416 Ёпрст
 
14.02.24
23:40
(415) Эх, жалко нет клюшек в конторе, так бы тебе еще работы накидал, на год вперёд :)
417 Ёпрст
 
14.02.24
23:53
(415) Тему плавающих окошек, подзабросил ?
Было бы удобно прикреплять к форме вторую форму в нужном месте и сплиттер между ними.
418 Злопчинский
 
15.02.24
00:38
(412) "Да, потом будет вызов ПриОткрытии, которая в форме. Или, если сброшен статус возврата, то прерывается выполнение."
- если в глобальной Глобальная_ПриОткрытии будет СтатусВозврата(0) - то локальная ПриОткрытии - НЕ ВЫЗЫВАЕТСЯ и ФОРМА НЕ ОТКРЫВАЕТСЯ - так?
419 Chai Nic
 
15.02.24
08:54
(413) С учетом префикса, может тогда вернуть собственную глобализацию ОбработкаЯчейкиТаблицы и ПриУстановкеОтбора, которую убрали из-за конфликта со штатной?

С префиксом они не будут конфликтовать со стандартными обработчиками, а будут дополнять их. Иногда было бы полезно иметь Контекст в этих обработчиках, а штатные методы его не предоставляют.
420 АЛьФ
 
15.02.24
09:26
2(419) С процедурами, которые сами имеют глобализацию, есть другие проблемы. Не готов сейчас в это ввязываться. В этих процедурах контекст можно получить с помощью метода Сервис::АктивныйКонтекст.

2(417) Плавающие и прикрепляемые окна - это было две разные идеи. Но там не удалось в существующий функционал вписаться. Надо делать свою реализацию окон-родителей. Т.к. в практику у меня не пошло, так и забросил эту тему.

2(418) Так.
421 Chai Nic
 
15.02.24
09:59
(420) "В этих процедурах контекст можно получить с помощью метода Сервис::АктивныйКонтекст."
Понял, спасибо. Ну тогда действительно нет смысла.
422 Ёпрст
 
15.02.24
10:01
(420)

>>>2(418) Так.

Вооот, об чем и речь, что это не совсем удачно.

Лучше сделать как в (414) чтоб был выбор.
423 АЛьФ
 
15.02.24
11:18
2(422) Думаю мысль, чтобы если глобальная - это функция, то возвращаемое этой функцией значение и задавало дальнейшее движение вызова.
424 АгентБезопасной Нацио
 
15.02.24
11:36
(422) (423) Но ведь если юзать перехватчик, то используя ВыполнитьОригинальноеСобытие - и делаешь как надо: "перед", "после" или "вместо"?
425 Chai Nic
 
15.02.24
11:40
(423) Да, хорошая идея. Не запрещено же в 1с вызывать функцию как процедуру.  Глобальная_*() можно сделать функциями, с возвращаемым значением, влияющем на.
426 Ёпрст
 
15.02.24
11:42
(424) да. Я и предлагал Алексею реализовать тоже самое.
427 АЛьФ
 
15.02.24
11:59
2(424)(426) Нынешний код вызова предопределенных процедур не заточен под такую работу.
Исходники выложены. Как раз их собираюсь на выходных обновить. Если кто-то реализует, то велком.
428 alyuev
 
15.02.24
13:12
(152) Всё работает замечательно! На 191й версии. Подробнее ответил тут - ПолучитьСтекВызова() в модуле класса#9
429 АЛьФ
 
15.02.24
15:10
2(428) На самом деле стек ломается, если идет переход через глобальные функции. Но это в самой 1С проблема с реализацией стека. Была даже мысль сделать свой стек. Но уж больно это заморочно получается с непонятной пользой. В принципе нынешнего исправления вполне хватает для повседневных задач. ИМХО.

+(407) Есть глюк с ПриЗавершенииРаботыСистемы. Если в ней поставить СтатусВозврата(0), то выскочит дополнительное окно "Ошибка при выполнении модуля! Завершить работу системы?". Возможно, где-то еще проявляется.
Вечером буду разбираться.
430 АЛьФ
 
15.02.24
21:02
Возвращаясь из той ветки.
Итак, решил сделать одним методом.
Сервис::УровеньТрассировки(НовыйУровень, ШаблонИмениФайла)
Возвращает уровень трассировки до выполнения метода.
Оба параметра необязательные.
НовыйУровень - число, которое задает устанавливаемый уровень, 0 - отключает трассировку.
ШаблонИмениФайла - задает имя файла, куда пишется трассировка. Если в имени есть [МоментЗапуска], то в этом месте прописывается момент времени начала выполнения кода. По умолчанию: КаталогИБ() + "\SYSLOG\Трассировка_[МоментЗапуска].txt"

Теперь вопрос. Какие уровни трассировки надо делать? Пока в голову приходит что-то типа:
1 - ид модуля, полное имя модуля, номер строки.
2 - добавляется текст строки
3 - добавляются значения переменных, которые доступны в текущий момент исполнения

Смущает, что уже третий уровень дает очень большую массу информации. Зачастую ненужной, которая будет дублироваться многократно.
Есть у кого-нибудь мысли как сделать трассировку максимально полезной и гибкой?
431 Волшебник
 
15.02.24
21:11
Меня вообще смущает вся ветка.
432 Злопчинский
 
15.02.24
21:12
ну, редко когда в тексте строки прямо много переменных...
по уровню 3 - выводить переменные используемые для текущей строки, если переменная типа СЗ/ТЗ - то возможно просто упоминание переменной без вывода значений (?)
.
может быть третий параметр - строковое значение с перечислением имен переменных, значения которых надо логировать (при входе и выходе из процедур/функций и/или при изменении значения такой переменной)
.
какие-то настроечные/инишные файлв не очень хорошо наверное использовать, но м.б. параметром имя файла со всякими настройками (продумать синтаксис настроек) типа тот же список переменных для логирования или имена процедур/функций для исклдчения из трассировки/логирования..?
433 Волшебник
 
15.02.24
21:13
(432) Не надо дурдома.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший