TGViewer
Channel Public Channel
1С, Элемент и разные предприятия

1С, Элемент и разные предприятия

@elementxbsl

Average XBSL enjoyer

1С:Предприятие.Элемент и всё что с этим связано

Открытый репозиторий для всех желающих поделиться кодом:
https://gitflic.ru/company/enterprise_element_community
Subscribers
557
Photos
159
Videos
6
Links
94

Showing posts older than #46 · Back to latest

Older Posts 20 shown
Post #45 268
#мемы@elementxbsl
Post #43 280
Закончился Infostart Tech Event 2024

Не просто отлично провел время, но и зарядился больше развивать бложик, делать Элементные библиотечки и контент. Однозначно всегда можно выступить лучше, а вот обратной связи, напротив, получил неожиданно много: поддержка от коллег и, что самое приятное, интерес к теме. В один из дней меня буквально поймали в туалете вообще вне площадки. Всем кто подходил и интересовался - большущее спасибо! Ради таких моментов рад стараться
  • 🔥 1
Post #42 256
Элемент + JS!

Сегодня ночью всем пользователям 1cmycloud стала доступна версия Элемента 5.2, в Технологии появилась возможность работы с сущностями типа ОбъектJs, в двух словах почему это круто и что это нам дает:
1. Возможность делать свои плавные анимации внутри контейнера html - свойство transition не работало, например, в анимациях загрузки, т.к. при обновлении свойства Элемент, перерисовывал весь контейнер. Теперь не придется делать содержимое контейнера реактивным. Можно реализовать внутри компонента метод на javascript по установке значения анимации и вызывать его из языка Элемента с помощью новенького "ВызватьМетод"
2. Получение обратной связи от компонентов дает возможность реагировать события внутри html. Нажали на адрес на Яндекс карте? Теперь мы можем на это среагировать и подставить адрес в документ с помощью "ПолучитьСвойство"
  • 👍 4
Post #41 235
Хочу поделиться реализацией интеграции с сервисом по оплатам от канала Александр Бабинок. Автор сделал очень полезное дело, особенно когда каждая вторая идея для приложений на Элементе звучит как классный стартап - прикрученные донаты и оплаты за услуги для самозанятых помогут очень многим.

Александр не только
по традиции записал ролик:
https://rutube.ru/video/1a96ccc947f0f92ad45984dd8677bc96/
Но и загрузил пример интеграции с сервисом в наш открытый репозиторий, посвященный Технологии:
https://gitflic.ru/project/enterprise_element_community/element_components/file/?file=Babinok&branch=master

Можете отправить автору донат по ссылке:
https://ai.1cmycloud.com/applications/AI-dev/donations
Post #40 210
Лучи добра всем кто голосовал, но, если вы интересуетесь разработкой на "1С:Предприятие.Элемент", ваша битва ещё не окончена, поскольку начался второй тур голосования и там ещё много интересных докладов коллег.
Побуду рупором, я кратко сформулировал почему они крутые и сейчас буду нахваливать ребят:

https://event.infostart.ru/2024/agenda/2157231/ - Павел Королев крут потому что активно работает в роли наставника, популяризирует Элемент, поднимает интерес к Технологии. Хороший наставник и Элемент это нам надо, обязательно голосовать.

https://event.infostart.ru/2024/agenda/2160984/ - Петр Петрухин крут потому что они имеют за плечами тот опыт которого нет у меня, опыт ведения пилотных проектов. Давно хочу послушать доклад про их реальные внедрения до публичной беты.

https://event.infostart.ru/2024/agenda/2159303/ - Ренат Салихов крут потому что предлагает мастер класс на наглядном примере - попробует реализовать приложение для самого мероприятия Инфостарт.

https://event.infostart.ru/2024/agenda/2163517/ - Александр Волков крут потому что хочет поделиться нестандартным видением форматов приложений на Технологии. Мне очень интересен опыт внедрения Элемента на производстве.

https://event.infostart.ru/2024/agenda/2157132/ - Александр Капралов просто крут, если мне не изменяет память, по его примеру я впервые попробовал Исполнитель. Чем ближе большие внедрения Элемента, тем актуальнее разговоры про архитектуру, поэтому мастер класс про модульность очень кстати.

Пока вендор выдерживает тактическую паузу перед релизом, во многом представление о Технологии формирует сообщество, поэтому не забывайте поддерживать интересных вам авторов.
Post #39 196
Обещанная заявка на доклад

Как анонсировал, подался, насколько я понимаю включение доклада в итоговую программу зависит не столько от голосов, сколько от совокупности факторов, однако было бы нечестно не запостить ссылку сюда.
Элементных докладов пока меньше чем я ожидал, поэтому если вам интересно слушать/читать про Технологию - это призыв, оставляйте голос за меня и не забывайте про других коллег - докладчиков: Павла, Александра и Валентина. Лично я очень хотел бы послушать доклад Валентина Баженова про трудности доработки Кабинета сотрудника в ДНС.

https://event.infostart.ru/2024/agenda/2157230/
  • 👍 1
Post #38 191
Сделать своего хомяка в телеге на 1С?

Оказывается произвольное клиентское приложение неплохо работает в формате Telegram Web App, но как всегда есть нюансы:
1. Если формат доступа к приложению - Авторизованные, то каждый раз будет запрашивать пароль. Как обходить думаю сами уже понимаете, если сильно надо, то js библиотека в которой есть данные пользователя бота и какая-нибудь "альтернативная" реализация авторизации
2. С компьютера, несмотря на размер экрана, верстка будет резинится только в рамках ВидИнтерфейса.Компьютер. Ну т.е. фиксированные группы в верстке вам всё поломают
3. При этом при открытии с мобильного устройства вид интерфейса переключится в телефон, несмотря на эту особенность сверстать под это форму выглядит реалистично

Манит попробовать сделать аналог Hamster kombat на Элементе в качестве шутки. Как жаль что первое апреля очень далеко, мне кажется это было бы очень смешно
Post #37 184
Расскажу что новенького, продолжаю качаться как элементалист:

1. Доделал презентацию для элементного митапа для внутреннего пользования, мы конечно проводили весной такие, и не один, но эта примечательна тем что легла в основу заявки на Инфостарт
2. Я испытаю силы в голосовании за доклады. Не вижу пути быстрее качаться в элементной науке, чем формализовывать опыт и рассказывать коллегам. Уверен сейчас элементных докладов в голосовании будет много и опыт у всех свой
3. Сходил сдал проф. Ну проф и проф, но примечательно что, в отличие от привычных экзаменов, этот я сдавал с удовольствием и энтузиазмом, хотя в сущности это такое же заучивание как и проф по платформе. Если тоже не любите сдавать сертификаты, попробуйте, возможно с новой технологией будет попроще
  • 👍 1
Post #36 191
Лендинг на Элементе ЗАЧЕМ

Вопрос конечно холиварный, побуду адвокатом дьявола, это весело.
Итак, почему наверстать лендинг в контейнер html и использовать его в своем приложении это ХОРОШО:

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

С чем могут быть проблемы, их немало:

1. Лицензии. Если приложение в 1cmycloud не лицензировалось до этого, то придется платить по тарифам, которые будут считаться также как полноценное приложение. Поэтому имеет смысл использовать только в связке с существующим продуктом в облаке, либо на on-premises
2. Ограничения со скроллами. У контейнера html можно спрятать скролл, но Элементный скролл никуда не денется. Что накладывает некоторые творческие ограничения. Нет проблем если вся ваша страница на весь экран это компонент контейнер html, но если вы хотите интегрировать нативные элементные компоненты, то это надо учитывать
3. Верстать проще, для многих это минус. Если код лендинга будет слишком громоздкий, например, если использовать свои любимые js библиотеки, то содержимое модулей, которые это формируют будет действительно неудобно поддерживать внутри среды разработки, только с помощью сторонних инструментов.
  • 👍 1
Post #35 166
[Старый пост из Сетки]

А вот такую тему хочу поднять, бесконечно хвалю Элемент за все его прелести, но надо и честь знать.
Хочу подсветить моменты которые имхо мешают создавать приложения для конечного пользователя на этой технологии. Именно для конечного, во первых это тема канала, а во вторых для бизнес пользователей часть из этих неудобностей неактуальна. Справедливо для пятого элемента, по любому в дальнейшем эти моменты поправят :

1. Отсутствие возможности сканирования штрих кодов и доступа к геолокации в веб приложениях. Странно, что мешало дать возможность сканировать штрих-код из браузера, запросив перед этим разрешение. Вопрос времени, но если надо сейчас - будь добр собирай мобильный клиент.

2. Авторизация в мобильном клиенте. Прошлый век, если говорить о пин коде. Здорово что она есть, но посмотрите как в 1Спорт это выглядит. Не похоже на современное приложения, хотя в самом приложении с дизайном всё норм.

3. Реактивность компонентов играет в минус когда страничка собирается перед глазами, таблицы и карточки сначала появляются пустые, а потом уже заполняются независимо друг от друга. Здорово что все асинхронно, но современные приложения стараются не показывать такие вещи пользователю. Нужна возможность лепить заглушку на отрисовывающиеся компоненты или возможно отслеживать жизненный цикл компонента более гибко
Post #34 152
Напоминаю о себе

В последнее время постинг подзамедлился потому что Александр Бабинок как по мне отлично выполняет задачу для обучающих материалов.
В планах было логически разделить посты на две части: в Сетке больше разговорный канал, посвященный именно разработке/обсуждению приложений консьюмерских (https://setka.ru/communities/018fc4cb-2289-431d-9c2f-fefe7865e7ca), а здесь оставить заметки.
Но думаю вряд ли в долгосрочной перспективе всем удобнее будет читать в Сетке, поэтому давайте сольем эти два канала воедино. Перенесу сюда посты из Сетки, и в Сетке настрою автоматический постинг из этого канала.

Теперь оба канала будут посвящены Элементу в целом, останутся как мои мысли джокера, так и маленькие обучающие заметки. Следующие посты уже будут дублироваться, поэтому читайте где удобно
Сетка 1С, Элемент и разные предприятия. Канал в Сетке Ищу ответ на вопрос правда ли 1С теперь умеет в консьюмерские продукты, не отвлекая своих коллег от работы https://t.me/elementxbsl - тг
Post #33 179
Произвольные цвета у карточек и форм

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

https://youtu.be/s2WmXAtq1pw?si=b_SjMsx5C_Zz6nHX
Post #32 177
#мемы@elementxbsl
Post #31 180
Скучные функции глобального контекста VS Интуитивные объектно-ориентированные методы

Язык запросов в Элементе, хоть и является почти дословным пересказом языка запросов из восьмерки, всё же претерпел ряд изменений. Самое заметное, что попадется на глаза начинающему разработчику, это новый синтаксис функции ЕСТЬNULL(?,?). Функция не использует верхний регистр и вызывается "от поля", таким образом, будто мы имеем дело с объектом в языках с ООП.

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

"88005553535".ЗаканчиваетсяНа("35") - Поиск по подстроке с конца, встроенный в язык запросов, в данном случае вернет Истина
"0123456789".Подстрока(3, 6) - Возвращает подстроку в рамках указанных индексов, с 3 и до 6, в данном случае вернет "345"
ПервыйНеNull(параметр-1, параметр-2, ... параметр-N) - Возвращает значение первого параметра, тип которого не является Null. Если таких нет то вернет Null
"блаблабла".ПолучитьТип() - Также является аналогом функции из восьмерки, вызывается от объекта.
Post #30 156
https://developer.1c.ru/applications/Console/welcome

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

Если есть желание сделать также в своем приложении, то нужно в проекте создать два приложения:
1. Публичное, с режимом аутентификации "НеАутентифицированный". При нажатии на кнопку просто переводим пользователя по ссылке на второе приложение
2. Основное приложение с режимом аутентификации "Аутентифицированный" .

Тогда при переходе по ссылке Элемент сам поймет что пора отображать форму аутентификации.
  • 👍 1
Post #28 155
Десериализация объекта

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

Для этих целей в аргументы объекта СериализацияJson можно передать экземпляр типа НастройкиЧтенияОбъектовJSON
В этом объекте можно указать:

ИгнорироватьНеизвестныеСвойства - Среда разработки перестанет ругаться на поля, которые есть в Json, но отсутствуют в структуре

ИнициализироватьОтсутствующиеПоля - Отсутствующие в Json поля, находящиеся в структуре примут значение по умолчанию

ПсевдонимыСвойств - Соответствие строк, при преобразовании в объект, Элемент будет пытаться подставить в структуру поле на по родному имени, а по указанным синонимам в соответствии. Очень полезная вещь, особенно когда из другой системы поля пришли в формате:
id_klienta
nomer_telefona
Post #27 143
По микросервису в каждый дом

Вангую что подход станет более востребован в привычной 1сной нише.
Казалось бы почему именно на Элементе? Язык очевидно не победит по скорости старших товарищей:
учить отдельно надо, лучше возьму го пыху или питон

Но Элемент это не только язык, уже сейчас это целая экосистема.
Я считаю, что облачность из коробки, а конкретно сервис 1cmycloud в сочетании с остальными преимуществами технологии способна внести разнообразие подходов к построению архитектуры. Ведь не надо париться с настройкой сервера, все и так доступно и опубликовано из коробки, можно создать свой примитивный сервис практически одним кликом. Почему бы не попробовать решить свою задачу в несколько микросервисов?

Да, плохих микросервисов станет куда больше. Многие будут заводиться ради галочки, многие уменьшать производительность конечного решения. Но, парадоксально, чем больше плохих микросервисов, тем больше хороших. Будет больше экспериментов, тем больше в мире 1С появится подходов и решений, свежих мыслей и, все понадеемся, денег.

Я не назвал бы себя мастером в проектировании микросервисной архитектуры, но осмелюсь выдвинуть два тезиса:
А. Элемент привёз с собой больше микросервисов
Б. Они будут ужасные, бессмысленные, профанские - и это очень хорошо

Нет ничего плохого в том чтобы дать разработчикам лепить говнокод, придёт время и найдется ремесленник который привезёт best practice

#оффтоп
Post #26 130
1С, Элемент и разные предприятия #мемы@elementxbsl
Мемы сила. После того как этот скинули в общий чат, подключение внешнего гита ни разу не падало в исключение. Думайте
Post #25
Channel name was changed to «Элемент.Предприятие:1С»
Post #22 152
Реактивность компонентов

В Элементе "из коробки" грамотно сделана система для работы с компонентами. Сам xbsl код выполняется линейно, строчка - за строчкой, однако при вызове серверных методов технология поддерживает работу в несколько потоков одновременно. Это делает возможным следующий сценарий:

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

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

Такой эффект достигается за счёт нескольких особенностей
1. Технология рисует и обрабатывает компоненты "под капотом" независимо друг от друга
2. Вызов методов с аннотацией @ДоступноСКлиента. Когда серверный вызов завершится успешно - мы можем быть уверены что выполнится следующая за ним клиентская строка кода

В результате, нам, как прикладным разработчикам, доступна удобная архитектура для работы с компонентами - пока отдельная компонента не завершила свой обработчик, её доступность становится "Ложь", это не нужно явно описывать и парится на счет двойных нажатий - вендор эту логику уже заложил в стандартную библиотекую
  • 👍 2
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 →