Жёлтый чайник 1С (Черненко Виталий)
5.3K subscribers
200 photos
3 videos
3 files
214 links
Только настоящий джедай сможет сдержать гнев и познать Силу Желтого программирования.

Make IT, not war

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

https://github.com/SeiOkami
https://seiokami.github.io/
https://infostart.ru/profile/309462/
Download Telegram
Я в номинантах 👇
👍14🔥3👏3
Инфостарт вчера объявил номинантов премии 🏆 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
Жёлтый чайник 1С (Черненко Виталий)
Photo
Сколько будет выведено, если всего пользователей системы взаимодействия 1000?
Anonymous Quiz
17%
0
11%
250
46%
999
26%
1000
👍11😁7🔥2
Наконец-то решил поковырять Систему Взаимодействия 1С.

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

@CollaborationSystemOneS
🔥7👍4👏3
В тестовой 8.3.23 появилась community-лицензия для разработчиков 🥳

Есть ограничения. Необходимо проконсультироваться с врачом.
👍28🔥18😱3
Жёлтый чайник 1С (Черненко Виталий)
Сред("12345", 3, -9);
СколькоВыбрать = Неопределено;
А = Сред("12345", 3, СколькоВыбрать);
Anonymous Quiz
11%
""
2%
"12"
3%
"2345"
45%
"345"
40%
Ошибка
👍9🤔5
Регулярные выражения в платформе 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
Жёлтый чайник 1С (Черненко Виталий)
Photo
У вас есть справочник "Справочник". В нём 5 элементов. Какое сообщение будет выведено?
Anonymous Quiz
4%
0
14%
1
3%
2
4%
3
15%
4
5%
5
54%
Ошибка
😱25🔥4😁4👍2👎1🤔1
Жёлтый чайник 1С (Черненко Виталий)
​​Управление платформенными обработками (расширение для типовых) Выложил новую версию расширения по подмене "встроенных" в платформу обработок. • Добавлены новые обработки из платформы 8.3.20 (9 шт) • В новой версии платформы изменили внутренние имена обработок.…
Управление платформенными обработками. [UPDATE 8.3.23]

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

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

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

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

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

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

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

Всегда можно порадовать автора плюсиками на инфостарт и звездочками на гитхаб 😁
—————————
@JuniorOneS
👍15🔥8
Скрытый тип "ОсновнойЭлементФормы"

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

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

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

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

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

@JuniorOneS
🔥19👍6🤔6
Открытие системных форм платформы

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

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

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

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

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

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

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

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

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

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

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


@JuniorOneS
👍25🔥6👏2😱1
Этот год был непростым ©

А ещё бессмысленно беспощадным.

И пока одни люди своими приказами и сапогами втаптывают в грязь чужие жизни и надежды на будущее, другим людям предстоит готовиться к тому, чтобы всё это разгребать. И когда всё закончится, понадобятся руки и знания каждого, чтобы восстанавливать всё то, что разрушено.

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

Всех с наступающим 2023!

Занимайтесь IT, а не <цензура>.
🕊75👍21❤16👎6🔥3