TGViewer
Channel Public Channel
Жёлтый чайник 1С (Черненко Виталий)

Жёлтый чайник 1С (Черненко Виталий)

@juniorones

Только настоящий джедай сможет сдержать гнев и познать Силу Желтого программирования.

Make IT, not war

По всем вопросам: @SeiOkami

https://github.com/SeiOkami
https://seiokami.github.io/
https://infostart.ru/profile/309462/
Subscribers
5.3K
Photos
200
Videos
3
Links
214

Showing posts older than #452 · Back to latest

Older Posts 17 shown
Post #451 2.73K
Жёлтый чайник 1С (Черненко Виталий) Photo
  • 🔥 12
  • 🍾 7
  • 👍 6
  • ❤ 4
  • 🤔 3
  • 😁 1
Post #450 2.31K
  • 👍 3
  • 🔥 3
Post #449 2.08K
Открытие системных форм платформы

В продолжении темы недокументированных возможностей и обработок.

Во вчерашнем инструменте используется подмена "встроенных" в платформу внешних обработок.
Активные пользователи, Журнал регистрации, Конструктор запросов и так далее.
Всё это внутри платформы лежит именно как внешние обработки 1С. И по специальному адресу подключаются в момент их вызова (внутри "Все функции").
Подробнее можно почитать здесь.

Но помимо таких "встроенных" внешних обработок, есть ещё и "встроенные" формы. Это, например, сама форма "Все функции". И форма редактирования списка значений. И панель избранного. И т.д. и т.п.
Таких форм много и они написаны на 1С. Т.е. интерфейс 1С использует формы, которые сделаны на 1С. Такая вот небольшая рекурсия 🔄

Где такие формы лежат и как их "достать" описано здесь.
Есть даже возможность их подменять, но об этом тссс...!

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

➖ Например, вот так можно открыть форму "Все функции":
  ОткрытьФорму("sysForm:AllFunctionsForm");

➖ А вот так панельку избранного:
    ОткрытьФорму("sysForm:FavoritesDlg", Новый Структура("alias", 1));

Чтобы можно было поиграться, я добавил возможность открытия системных форм в свой древний инструмент Менеджер открытых форм.
А заодно и выложил его на гитхаб. Код старый, много чего хочется переделать, но, как говорится, "главное, что работает".

Что позволяет делать обработка:
📍 Отлавливает открытые формы
📍 Открывать новые формы с указанием параметров
📍 Редактировать свойства формы и её элементов
📍 Просматривать и изменять значения реквизитов. Умеет работать в т.ч. с Компоновщиками и Деревьями\Таблицами
📍 По одной кнопке включать доступность на редактирование всей формы и её элементов
📍 Просматривать и редактировать настройки по данной форме в хранилище
📍 Для всего остального есть возможность выполнить произвольный код над "пойманной" формой

Обработка выручала меня множество раз. Когда нужно в рамках теста срочно что-то поменять в форме или посмотреть её содержимое, а в отладку лезть не хочется, долго или даже нет возможности. Ну и помогало определять имена "встроенных" в платформу обработок и форм. Например, чтобы понять, какое системное имя имеет форма "Все функции", нужно включить в моей обработке обновление данных с задержкой через N секунд и открыть "Функции для технического специалиста". Тогда Менеджер открытых форм поймает открытую форму "Все функции" и покажет её в панели.

Переходите на страницу Инфостарт и проект Гитхаб.
На Гитхабе можно скачать бесплатно, добавить предложение или зарегать ошибку.
Ну и поставить звёздочку, конечно 😁


@JuniorOneS
  • 👍 25
  • 🔥 6
  • 👏 2
  • 😱 1
Post #445 1.69K
Скрытый тип "ОсновнойЭлементФормы"

В 1С есть много всякого скрытого и недокументированного.
Небольшой примерчик - тип "ОсновнойЭлементФормы".

В управляемой форме есть свойство "ТекущийЭлемент". По синтаксис-помощнику оно имеет составной тип из разного вида элементов (скрин1).
Но на самом деле, иногда там может оказаться нечто особенное. "ОсновнойЭлементФормы".

Его нет в справке. Гугл находит только несколько жалоб программистов на его появление. И вот это обсуждение на партнерском форуме (скрин2)

Выглядит он странно. Похож толи на саму форму, толи на какую-то группу, но при этом не имеет некоторых свойств. Например, "Имя" и "Элементы" (скрин3). Из-за чего какой-то код, который на это не рассчитан, может упасть в ошибку.
Если попытаться проверить его тип, то возвращается "Макет формы" (скрин4).

Самый простой способ его получить - создать обработку с формой, на которой не будет элементов. У такой формы текущий элемент будет обсуждаемого типа. Но иногда он возникает из-за игр с ограничением доступности элементов. Когда платформа считает, что "текущим" нельзя назначить ни один элемент. Тогда в свойство попадает наш полтергейст. Потому что пустым свойство быть не может)

@JuniorOneS
  • 🔥 19
  • 👍 6
  • 🤔 6
Post #444 9.26K
Жёлтый чайник 1С (Черненко Виталий) ​​Управление платформенными обработками (расширение для типовых) Выложил новую версию расширения по подмене "встроенных" в платформу обработок. • Добавлены новые обработки из платформы 8.3.20 (9 шт) • В новой версии платформы изменили внутренние имена обработок.…
Управление платформенными обработками. [UPDATE 8.3.23]

Продолжаем ковырять бета 8.3.23 😁
Выложил новую версию расширения по подмене "встроенных" в платформу обработок.

📍Добавлены новые обработки из платформы:
••• Управление распознаванием речи
••• Управление табличными пространствами базы данных
••• Управление хранилищем двоичных данных

📍 Уменьшена зависимость от БСП. Осталось только наличие справочника Пользователи и для работы в разрезе пользователей типовой метод Пользователи.ТекущийПользователь()

📍Исправлен ряд внутренних ошибок

Подробнее на Инфостарт

+ проект выложен в открытый доступ на GitHub. Оттуда можно скачать релизы, зарегистрировать ошибку или добавить предложения.

Ссылка на репозиторий

Всегда можно порадовать автора плюсиками на инфостарт и звездочками на гитхаб 😁
—————————
@JuniorOneS
  • 👍 15
  • 🔥 8
Post #442 2.23K
Жёлтый чайник 1С (Черненко Виталий) Photo
  • 😱 25
  • 🔥 4
  • 😁 4
  • 👍 2
  • 👎 1
  • 🤔 1
Post #440 2.54K
Регулярные выражения в платформе 8.3.23.📣

Вышла тестовая версия платформы 8.3.23. В полноценном релизе может всё измениться. Но пока, что на данный момент имеем:

Новые методы платформы:

📍СтрНайтиПоРегулярномуВыражению(<Строка>, <РегулярноеВыражение>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>, <ИгнорироватьРегистр>, <МногострочныйПоиск>)

📍СтрНайтиВсеПоРегулярномуВыражению(<Строка>, <РегулярноеВыражение>, <ИгнорироватьРегистр>, <МногострочныйПоиск>)

📍СтрПодобнаПоРегулярномуВыражению(<Строка>, <РегулярноеВыражение>, <ИгнорироватьРегистр>, <МногострочныйПоиск>)

📍СтрЗаменитьПоРегулярномуВыражению(<Строка>, <РегулярноеВыражение>, <ПодстрокаЗамены>, <ИгнорироватьРегистр>, <МногострочныйПоиск>)


👍 Понятное описание в документации и есть примеры

ℹ️ Используются регулярные выражения стандарта ICU

🤔 Метод СтрПодобнаПоРегулярномуВыражению() проверяет на соответствие шаблону ВСЮ строку. Как-то я больше привык, когда метод проверяет наличие в строке любого кусочка, соответствующего шаблону. Но, в принципе, для этого есть СтрНайтиПоРегулярномуВыражению()

👎 Зачем-то наделали в методах кучу параметров. В СтрНайтиПоРегулярномуВыражению() их аж семь. И из них 5 необязательных. А если понадобится что-то добавить? Параметры для регулярок бывают разные. Я понимаю, когда старый легаси не исправляют, но тут... хочется напомнить про стандарты разработки 1С =)

Лучше бы сразу сделали что-то типа
ПараметрыПоиска = Новый ПараметрыПоискаПоРегулярномуВыражению(); 

❌ Иногда при некорректном выражении падает сеанс. Пример видно на скрине. Надеюсь, что до релиза поправят)

🕑 Замеры скорости показывают, что 1С выполняет поиск быстрее классической VBScript.RegExp. Иногда значительно быстрее. Иногда в десятки раз!
Ну и в ряде случаев может выполняться медленее. Например, если продублировать строку "Моя почта: sample@example.com" несколько тысяч раз и применить на ней шаблон "(\w+@\w+\.\w+)", то чем длинее текст, тем 1С больше отстает от компоненты. В несколько раз.

🧑‍💻 Конечно, нужно больше тестов. И если вы хотите поучаствовать, то можете использовать разработанный мною инструмент для этих целей: ссылка на гитхаб.

👥 Если есть какие-то замечания по инструменту, то добавляйте ишуиз. Если же есть замечания по самим регулярным выражениям в 1С, то можете добавлять комментарий на этой страничке. Будет интересно увидеть результаты 🥳

😄 P.S.: Оптимистичное (и классическое) начало главы про регулярные выражения из документации на ИТС:

У вас есть проблема.
Вы решили использовать регулярные
Выражения, чтобы её решить.
Теперь у вас две проблемы.

—————————————————————
@JuniorOneS
  • 👍 18
  • 🔥 5
  • ❤ 4
  • 👏 1
  • 😁 1
  • 🤔 1
  • 😱 1
Post #439 1.67K
Жёлтый чайник 1С (Черненко Виталий) Сред("12345", 3, -9);
  • 👍 9
  • 🤔 5
Post #438 1.63K
  • 😱 14
  • 👍 7
  • 🔥 7
Post #435 1.66K
Наконец-то решил поковырять Систему Взаимодействия 1С.

Но так и не нашёл тематического чата в телеграмм.
Поэтому решил создать свой =)
Вступайте, если у вас есть вопросы или же желание на них отвечать 🥳

@CollaborationSystemOneS
  • 🔥 7
  • 👍 4
  • 👏 3
Post #434 1.66K
Жёлтый чайник 1С (Черненко Виталий) Photo
  • 👍 11
  • 😁 7
  • 🔥 2
Post #432 1.63K

Forwarded from Александр Кунташов — про 1С и не только

Инфостарт вчера объявил номинантов премии 🏆 Infostart Awards, вручение которой пройдет онлайн уже завтра. Также на мероприятии будет разыграна настолка для 1Сников Инфостарт.Домино, которая произвела фурор на осеннем эвенте. А после вручения премий состоится игра ЧтоЕслиТогда: Dream Team знатоков против участников сообщества, приславших свои каверзные вопросы. Проходит игра всегда очень весело, присоединяйтесь в качестве зрителей и болельщиков!

Но вернемся к премии.

В моей «родной» секции «Инструментарий разработчика. Приемы и методы разработки» в шортлист по результатам голосования экспертов включили четырех из множества достойных кандидатов:

💪 Олега Тымко, которого в сообществе 1С знают как интереснейшего докладчика Infostart Event'а и митапов, активного контрибьютера и автора различных проектов сообщества OneScript. Если присмотреться к аккаунту Олега на гитхабе, то кроме всего прочего можно увидеть в списке проектов проект JOneS — порт движка OneScript на Java, который выглядит интересно и перспективно.

🎓 Дмитрия Петрова — он отличился популярной серией статей по использованию БСП, в которых разбирает различные механизмы библиотеки в примерах и с картинками.

😎 Виталия Черненко мы знаем по публикациям про особенности механизмов технологической платформы 1С. Одна из самых запоминающихся и нашумевших — про секретный незадокументированный оператор в 1С. А еще Виталий ведет в телеграме популярный канал @JuniorOneS.

🛠 Сергея Яныгина, автора нескольких проектов, одним из которых я лично пользуюсь уже больше года фактически каждый день. Это OneS Cluster Admin — альтернативная консоль администрирования кластера серверов 1С, которая позволяет в одном окне управлять серверами 1С разных версий платформы (без необходимости перерегистрировать radmin.dll), не требует прав администратора ОС, кросплатформенная и прочее, прочее. Крутой инструмент, который знаю не понаслышке, и поэтому с удовольствием рекомендую!

👉 Участвовать в онлайн-трансляции Infostart Awards 2022 👈
  • 👍 10
  • 🔥 4
  • 👏 1
Post #431 1.63K
Я в номинантах 👇
  • 👍 14
  • 🔥 3
  • 👏 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →