Очепятки, недописьки и апшибки в файле als.
Только перед выходными задумал заняться вычиткой...
Ладно, пока не по орфографии, по сути попробуем:
-FONT_C[<Цвет>] - задает цвет шрифта строки, если она является текущей ячейкой (работает только при использовании плана раскраски);
-BRUSH_C[<Цвет>] - задает цвет фона строки, если она является текущей ячейкой (работает только при использовании плана раскраски);
должно быть, насколько я понимаю
+FONT_C[<Цвет>] - задает цвет шрифта ячейки, если она является текущей (работает только при использовании плана раскраски);
+BRUSH_C[<Цвет>] - задает цвет фона ячейки, если она является текущей (работает только при использовании плана раскраски);
Проверил сейчас, цвет там не так чтобы RGB:
<Цвет> - представление необходимого цвета в формате RGB в виде положительного числа
<Цвет> - представление необходимого цвета в формате BGR в виде положительного числа
Какой формат предпочтительнее? Или патчи к сообщениям прикладывать? Или репу завести под это? ;D
formex 2.0.5.196 (предлагаю всегда писать версию)
Для начала спеллинг. Не так много косяков (есть еще дубли, которые я не привел, их надо по косякам изменять).
<wParam>, <lParam> - параметы сообщения WM_COMMAND
<ТекстСостояния> - текст выводимого состония;
Вызывается при уровне трасиировки равном 1000. См. метод Сервис.УровеньТрассировки().
<идМодуля> - идентификатор модуля, в которм идет исполнение
Вызывается для получения строкового представления отслеживаемой переменной (см. метоэ Сервис.УровеньТрассировки()) для записи в лог. Процедура вызывается только если переменная доступна в текущем контесте.
<ПредставлениеПеременной> - текущее строкове представление отслеживаемой переменной.
Сообшить(''Результат = '' + Рез);
закрывает все открытые окна внутри текущей сесии 1С:Предприятия.
Возвращает коммандную строку, с который было запущено 1С:Предприятие.
Вызывает глобальную процедуру с заданным интервалом в милисекундах.
Включает/отключиет показ ракладки клавиатуры и времени в статусной панели 1С:Предприятия.
Окно таблицы делаеться невидимым, но не уничтожается.
P.S. Это нормально, даже психованный sqlite (дикое количество тестов) постоянно так косячит.
P.P.S. Блокнот плохо справляется, ищи что-то получше. Я на VSCode это все по быстрому выудил (есть небольшая проблема, он не жрет 1251).
P.P.P.S. Дальше сделаю проверку als на логику, это уже будет несколько дольше.
Отсутствует описание метода НайтиПоИндексу() для объекта "ПанельСтрокиСостояния"
И 2 свойства отсутствуют: ДескрипторДляПрогресса, это и так понятно, служебное свойство, а вот что такое ПолныйСтиль? РасширенныйСтиль? А почему только на чтение?
Новый als отлично поправлен, явных ошибок в описанииях (не по спелингу) уже не вижу.
С нетерпением ждем следающих!
Цитата: Djelf от 29 февраля 2024, 14:22И 2 свойства отсутствуют: ДескрипторДляПрогресса, это и так понятно, служебное свойство, а вот что такое ПолныйСтиль? РасширенныйСтиль? А почему только на чтение?
ПолныйСтиль - это тот же стиль, который возвращает свойство Стиль, но в "чистом" виде. Т.е. в коде их чтение выглядит так:
case propStyle:
{
switch (m_pCurrentPane->Style)
{
case SBPS_NORMAL:
rValue = 0L;
break;
case SBPS_NOBORDERS:
rValue = 1;
break;
case SBPS_POPOUT:
rValue = 2;
break;
case SBPS_NORMAL|SBPS_STRETCH:
rValue = 0L;
break;
case SBPS_NOBORDERS|SBPS_STRETCH:
rValue = 1;
break;
case SBPS_POPOUT|SBPS_STRETCH:
rValue = 2;
break;
}
break;
}
case propFullStyle:
{
rValue = m_pCurrentPane->Style;
break;
}
Только чтение, т.к. можно запросто завалить 1С им.
Цитата: Djelf от 26 февраля 2024, 16:24P.P.S. Блокнот плохо справляется, ищи что-то получше. Я на VSCode это все по быстрому выудил (есть небольшая проблема, он не жрет 1251).
Спасибо за дельную мысль. Как-то раньше лень было. Я использую Нотепад++, поставил плагин проверки орфографии. Прогнал по всему als сейчас. Люблю я слово "соответствует", но постоянно в нем ошибаюсь.
Цитата: alyuev от 29 февраля 2024, 13:45Отсутствует описание метода НайтиПоИндексу() для объекта "ПанельСтрокиСостояния"
Спасибо, добавил.
Прогнал обработкой на FormEx 2.0.5.196
Она сначала вытягивает Информатором свойства и методы через 1c++, затем парсит als.
Тут выведен список того чего в als нет. А может это нам уже давно надо, а мы и не знаем?
Явные багнутые методы исключать не стал. Может что то уже внезапно работает, а может и нет на это никакой надежды...
Что-то может быть описано как Перехват_СинийТреугольник не в дереве ALS, это уже выловить сложнее, их удалил из списка вручную.
Возможно некоторые данные попали из-за rus/lat ошибок.
ИмяОбъекта | Тип | NameRus | HasRetVal | NParams |
Сервис | Метод | ОткрытьФормуКакПанель | 1 | 6 |
Сервис | Метод | СписокВсехОткрытыхДокументов | 1 | 0 |
Сервис | Метод | ОбновитьДанныеМетодовФормы | 0 | 1 |
Сервис | Метод | ПолучитьПраметрыОбъекта | 0 | 20 |
Сервис | Метод | ПоказатьКалькулятор | 1 | 4 |
Сервис | Метод | Проверка | 0 | 0 |
РасширениеФормы | Свойство | Класс | | |
РасширениеФормы | Свойство | КлассДокумента | | |
РасширениеФормы | Свойство | ТекстДиалога | | |
РасширениеФормы | Свойство | ВнутреннееПредставление | | |
РасширениеФормы | Свойство | КаталогВыгрузки | | |
РасширениеФормы | Метод | ДобавитьКнопкуПанели | 0 | 3 |
РасширениеФормы | Метод | ПрисоединитьФорму | 1 | 7 |
РасширениеФормы | Метод | ПрисоединитьФормуНаАтрибут | 1 | 7 |
РасширениеФормы | Метод | ДобавитьЗакладкиФорм | 0 | 0 |
РасширениеФормы | Метод | НачатьПрямойВвод | 0 | 1 |
РасширениеФормы | Метод | ЗакончитьПрямойВвод | 0 | 1 |
РасширениеФормы | Метод | УстановитьШрифт | 0 | 6 |
РасширениеФормы | Метод | УстановитьШрифтЗакладок | 0 | 1 |
РасширениеФормы | Метод | ИзменитьИндексКолонкиМногострочнойЧасти | 0 | 2 |
РасширениеФормы | Метод | ПолучитьИндексКолонкиМногострочнойЧасти | 1 | 1 |
РасширениеФормы | Метод | ПолучитьЗаголовокКолонкиМногострочнойЧасти | 1 | 1 |
РасширениеФормы | Метод | ПолучитьКоличествоКолонокМногострочнойЧасти | 1 | 0 |
РасширениеФормы | Метод | ПолучитьВидимостьКолонкиМногострочнойЧасти | 1 | 1 |
РасширениеФормы | Метод | ПолучитьИДКолонкиМногострочнойЧасти | 1 | 1 |
РасширениеФормы | Метод | ИзменитьПоложениеКолонкиМногострочнойЧасти | 1 | 2 |
РасширениеФормы | Метод | ИзменитьШиринуКолонкиМногострочнойЧасти | 1 | 2 |
РасширениеФормы | Метод | Тест | 1 | 0 |
РасширениеФормы | Метод | ТестНазначитьТип | 1 | 1 |
РасширениеФормы | Метод | methCreateStdControl_Static | 1 | 7 |
РасширениеФормы | Метод | methTraceWindows | 1 | 4 |
РасширениеФормы | Метод | methCtrlInfo | 1 | 0 |
РасширениеФормы | Метод | methFieldsArray | 1 | 0 |
РасширениеФормы | Метод | methGetCtrl | 1 | 0 |
РасширениеФормы | Метод | methColArray | 1 | 0 |
АтрибутФормы | Свойство | Фокус | | |
АтрибутФормы | Метод | Обновить | 0 | 0 |
Окна | Метод | ОбновитьОкно | 0 | 1 |
Окна | Метод | УстановитьФокус | 0 | 1 |
НастройкиПользователя | Метод | СохранитьНастройки | 1 | 0 |
ПанельСтрокиСостояния | Свойство | ПолныйСтиль | | |
ПанельСтрокиСостояния | Свойство | ДескрипторДляПрогресса | | |
ПанельСтрокиСостояния | Метод | НайтиПоИндексу | 1 | 1 |
Таймер | Метод | Отладка_ВыполнитьСобытиеТаймера | 0 | 0 |
ОкноСообщений | Метод | КлонированиеСистемныхСообщений | 0 | 1 |
Не было у бабы печали, купила баба порося...
;D
Порося не сильно затратно, зато потом вкусно!
Хотя он же становится домашним зверинцем, не у всех нервы выдержат...
Напрашивается глобальный префикс для подавления подобных сообщений.
Но это уже в ВК делать придется.
Возможно что-то поломает у креативщиков, но это видимо 0.001% от всех пользователей - не критично.
АтрибутФормы Свойство Фокус
- это интересно...
ОкноСообщений Метод КлонированиеСистемныхСообщений
- это вроде как служебный промежуточный метод для манипуляции с ОкномСообщений
И вообще, прогонять надо на 197 - который как релиз выложен ;-)
Видимо нужно небольшое дополнение в документации к "Перенаправление глобальных процедур".
Как то так:
В сочетании с Объектом Сервис и Методами ВыполнитьПроцедуру/ВыполнитьФункцию и СтатусВозврата(0) в перехваченной ПроцедуреГМ позволяет эмулировать код расширений 1С v8.3 Перед/После/Вместо.
Это не очевидно, потребовалось какое-то время чтобы это осознать...
Цитата: Djelf от 02 марта 2024, 14:40Видимо нужно небольшое дополнение в документации к "Перенаправление глобальных процедур".
Как то так:
В сочетании с Объектом Сервис и Методами ВыполнитьПроцедуру/ВыполнитьФункцию и СтатусВозврата(0) в перехваченной ПроцедуреГМ позволяет эмулировать код расширений 1С v8.3 Перед/После/Вместо.
Это не очевидно, потребовалось какое-то время чтобы это осознать...
Это скорее не для документации, а для цикла статей на Инфостарте по практическому применению FormEx.
На статью одна строка не тянет ;)
Воды надо налить очень много...
В документации же есть примеры и примечание и это примечание ничем от них не отличается.
Цитата: Djelf от 03 марта 2024, 09:39На статью одна строка не тянет ;)
Воды надо налить очень много...
В документации же есть примеры и примечание и это примечание ничем от них не отличается.
Эх... Не удалось подбить на цикл статей... Ладно, добавлю в документацию.
Локальные:
Процедура ПослеЗакрытия() КонецПроцедуры
Синтаксис:
Процедура ПослеОткрытия() КонецПроцедуры
Назначение:
Предопределенная процедура вызывается после физического разрушения окна формы. Предотвратить закрытие окна в этой процедуре невозможно.
ЗагрузитьВнешнююОбработку(<?>,,)
Синтаксис:
ЗагрузитьВнешнююОбработку(<ИмяФайла>, <ИмяОбъекта>, <ХэшПроверки>)
Назначение:
Метод предназначен для загрузки внешнего отчета, в качестве внутреннего. После после выполнения метода к загруженному отчету можно обращаться, как к любому встроенному отчету.
Добавить, там, где упоминается метод ВыборочнаяРаскраска(), типа (если я правильно понял):
"Если включить раскраску в выборочном режиме, то раскрашиваться будут только таблицы, явно указанные с помощью метода РасширениеФормы::РаскрашиватьТаблицу(<Имя>). Все остальные таблицы игнорируются. Это один из давних способов оптимизации раскраски при использовании старого метода раскраски, без использования плана раскраски. Если применяется ИспользоватьПланРаскраски() выборочная раскраски реализуется заданием заголовка колонки "ForMex_ПланРаскраски"
УстановитьАтрибут
<Номер> - номер или строка с идентификатором атрибута формы. Для получениE доступа кТУТЛИШНИЙПЕРЕНОССТРОКИ
многострочной части формы необходимо в этот метод передать строку МногострочнаяЧасть.
<ВызватьИсключение> - необязательный флаг вызова исключения при неверноE первом параметре. Если установлен в 0, то при неверном номере или имени атрибута метод вернет пустое значение, иначе будет вызвано исключение. По умолчанию - 1.
Цитата: Злоп от 11 марта 2024, 23:28УстановитьАтрибут
<Номер> - номер или строка с идентификатором атрибута формы. Для получениE доступа кТУТЛИШНИЙПЕРЕНОССТРОКИ
многострочной части формы необходимо в этот метод передать строку МногострочнаяЧасть.
<ВызватьИсключение> - необязательный флаг вызова исключения при неверноE первом параметре. Если установлен в 0, то при неверном номере или имени атрибута метод вернет пустое значение, иначе будет вызвано исключение. По умолчанию - 1.
Лишние переносы строк там много где, т.к. когда-то были попытки использовать редактор als. Сейчас их все не вычистить, к сожалению.
На текущий момент все указанные ошибки исправлены.
Есть "1С-Сервис разработчика (SDevelop)", это конфа на 1С 77 которая позволяет править *.als файлы.
https://disk.yandex.ru/d/0jmAykwYM5sNCw
Цитата: trdm от 12 марта 2024, 10:04Есть "1С-Сервис разработчика (SDevelop)", это конфа на 1С 77 которая позволяет править *.als файлы.
https://disk.yandex.ru/d/0jmAykwYM5sNCw
Спасибо, но я как-то уже с notepad++ сроднился.
Оставлю здесь, чтобы добавить в документацию вечером.
Сделал колонку для параметров таблицы.
Как это работает. Добавляем в таблицу (как в таблицу значений, так и в любую многострочную часть на форме) колонку с идентификатором "FormEx_ПараметрыТаблицы", в заголовке этой колонки пишем "ЦентрироватьТекущуюСтроку:0".
Пример кода:
тз.НоваяКолонка("Название",,,,"Название заголовка");
тз.НоваяКолонка("FormEx_ПараметрыТаблицы",,,,"ЦентрироватьТекущуюСтроку:0");
тз.ВидимостьКолонки("FormEx_ПараметрыТаблицы", 0);
После двоеточия число - это тип центровки, как описано в методе ЦентрироватьТаблицуДляТекущейСтроки (). Реализовано так, чтобы в будущем можно было добавлять какие-то еще параметры для таблиц.
Метод ЦентрироватьТаблицуДляТекущейСтроки() теперь надо вызывать только если надо изменить поведения по умолчанию для всех таблиц.
СобытиеРазрешено(<?>)
Синтаксис:
СобытиеРазрешено(<ИмяСобАтия>, <Доступность>)
Назначение:
Для получение/установки текущего состояния события. Возвращает состояние до вызова метода.
Параметры:
<ИмяСобАтия> - Строковое представление события, равно имени предопределенной процедуры.
<Доступность> - необязательный, 1 - разрешить, 0 - запретить, по умолчанию не менять
Цитата: АЛьФ от 14 марта 2024, 13:14Оставлю здесь, чтобы добавить в документацию вечером.
и это не забыть
Процедура ПослеОбновленияФормы()КонецПроцедуры
Синтаксис:
Процедура ПослеОбновленияФормы()КонецПроцедуры
Назначение:
- Предопределенная процедура вызывается при обновлении формы, после выполнения форму текстовых реквизитов формы.
+ Предопределенная процедура вызывается после обновления формы, после выполнения формул текстовых реквизитов формы.
Предлагаю рассекретить в als метод ТаблицаЗначений = РасширениеФормы.methCtrlInfo() и изменить в коде на РасширениеФормы. ПолучитьСвойстваАтрибутов().
Вылетов там нет, это стабильный метод, одна строка кода меняется, в als придется дописать больше, но может кому-то понадобится...
Что-то не нашел в als для 197й версии описания метода ПолучитьРазмерТекста(). И там была ошибочка "переменные, в котораы ..." в описании параметров