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 #22 · Back to latest

Older Posts 19 shown
Post #20 127
Виртуальные таблицы это геймченджер

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

Не знакомо?
Много раз натыкался на то что запрос который я верстал часами, оказывается уже был вложен разработчиками в плохо задокументированый модуль. Из за чего в конфигурациях на восьмерке запросы не просто занимают большую часть модуля, снижая читаемость самого алгоритма, так ещё и естественным путем множатся и множатся..
Активно использую новые виртуальные таблицы в своих проектах, есть надежда что типовые решения на новой технологии станут в разы более читаемые.

P.S. Текущая итерация кабинета сотрудника не в счёт, всё таки дедушке много лет, понимать надо 🚬

#виртуальнаятаблица
Post #19 121
Миграция данных при изменении структуры проекта

Механизм миграции вызывается не только когда разработчик приложения явно поменял тип у реквизита,
но и при изменении структуры системных таблиц "под капотом" элемента. Примеры работы алгоритма миграции данных:

1. Если в составе типа есть "время", то алгоритм попытается сделать всё чтобы в новых данных не обрезалось время,
например, при удалении "ДатаВремя" из типа "ДатаВремя|Дата|Момент", "Элемент" преобразует сначала данные к типу "Момент", где время есть, и лишь в последнюю очередь к типу "Дата"

2. Если удаленный тип не относится к типам работы с датой, тогда на его месте будет установлено значение по умолчанию по оставшемуся типу (например, 0 у "Число", или "" у Строка)

3. При удалении типа из состава элементов реквизита-массива (например Массив<Строка|Число> → Массив<Строка>) при миграции проверяется, что в данных (таблице реквизита) нет записей с указанным типом элементов.
Если записи с удаленным типом элементов есть — выдается ошибка и миграция данных не выполняется.

4. При изменении периодичности регистра с "Секунда" на "День", "Месяц", "Квартал" или "Год" меняется тип значения стандартного поля Период с "ДатаВремя" на "Дата" и наоборот.

5. Во время миграции данных для удаленного типа проверяется присутствие этого типа в таблицах как значения некоторого поля с типом "Тип".
Если значения найдены — выдается ошибка и миграция не выполняется.

Когда разработчик осознанно меняет структуру данных проекта и не уверен в алгоритме миграции, рекомендую зайти лишний раз на страницу алгоритма в
документации, здесь подробно перечислены все существующие правила технологии

#база #миграцияданных
Post #18 117
Глобальное клиентское событие

Позволяет создавать общие события, вызывать их и обрабатывать наступление.

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

#примеры #глобальноеклиентскоесобытие
Post #17 111
Запись в регистр по ключу записи

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

Работа с ключами записи в "Элементе" осуществляется с помощью конструктора по измерениям, в остальном работа с ключами схожа с v8. Если записи не существует то, результатом выполнения КлючТовара.ЗагрузитьЗапись() будет тип Неопределено

#примеры #регистрсведений
  • 🔥 1
Post #16 122
#мемы@elementxbsl
  • 💯 1
  • 🤣 1
Post #15 134
Отыгрываемся по полной за годы страданий в конфигураторе

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

Тоже чувствуете это? Не беда, не будем дожидаться поддержки каких то других тем от 1С, мы же теперь в вебе, а значит можем редактировать совершенно все стили, спасибо кодовой базе Eclipse Theia за удобно оформленные переменные для стилей. Если сильно хочется, то можно накрутить неплохих расцветок, сохранить скриптом стиль и применять для ваших сред разработки регулярно. Ничего не имею против стандартной темной темы, но не могу не поделиться, вдруг кто то ещё не осознал мощь солнца в своих руках.

#средаразработки #оффтоп
  • 🔥 1
Post #14 120
Формирование табличного документа программно

Когда у нас нет макета, а отдать pdf пользователю очень хочется, остается возможность формировать документы полностью программно.
Похожая задача могла бы быть реализована примерно так. Механизм работы с ячейками как в v8, а с объектным хранилищем аналогично первому примеру. На скриншоте не указал что данные временные, но лучше бы это определять явно

#примеры #табличныйдокумент
  • 👍 1
Post #13 111
Формирование табличного документа на основании .mxl макета

Для работы в таком формате на главных ролях будут выступать три сущности:
МакетПечати - содержимое .mxl файла читаем с помощью ПотокМакета, работа с макетом будет привычная как в v8, области внутри макета
Писатель - с помощью этого объекта удобно выводить заранее подготовленную и заполненную данными область
ДвоичныеДанные.Ссылка - после всех манипуляций возвращаем ссылку на двоичные данные, помещенные в хранилище. Если задача аналогична моей: сформировать файл для скачивания из браузера, то обязательно указываем что данные временные

#примеры #табличныйдокумент
  • 🔥 1
Post #12 104
Спасибо "Желтому клубу", узнал что канал лежал прикрытый, пока выходные чуть оживлю постинг, раз появляются люди.
Буду брать рекламу в тематических пабликах только как наберется материала

Когда возникает необходимость сформировать счет, акт выполненных работ или что то подобное
у нас есть три варианта реализации
1. Сформировать документ на стороне учетной системы, если это кабинет - интеграция, сериализовать в base64 строку и отдать в браузер
2. Сформировать табличный документ уже на стороне Элемента на основании макета в привычном формате .mxl
3. Сформировать документ на стороне Элемента полностью програмно

Второй и третий вариант наиболее универсальные потому что не потребуется лицензия восьмерки и подходят для любой архитектуры, поэтому далее кратко в двух постах как это работает

#примеры #табличныйдокумент
  • 🔥 1
Post #11 119
Интересная недо-полу-задокументированная возможность. Оказалось возможным создавать модуль ТАБЛИЧНОЙ ЧАСТИ, и это очень даже удобно. В данном случае Фактические часы - это реквизит коллекция, находясь в его модуле в "этот" доступен контекст отдельной строки тч, так например, здесь можно хранить алгоритмы проверок заполнения и/или всевозможные пересчеты НДС

#примеры #архитектура
  • 👍 1
Post #10 121
Что будет на Элементе?
Последний не технический пост, дайте выговориться/обозначить позицию. Плотно поразрабатывая на технологии в последние месяцы сформировал мнение куда мы идём, и сейчас я его расскажу.

По канону, это лёгкие приложения, не требующие сложного обучения пользователей, лёгкие как технически так и по функциональной части (в сравнении с учётной системой на старшей платформе… само собой)
Можно ли чисто на элементе шлёпать учётные системы - да
Сайты в пару кнопок, лендинги, витрины - тоже да, но зачем если можно обойтись меньшей кровью, используя "классические" веб решения.

Мой тезис: вижу у элемента два сегмента рынка
1. То что раньше избыточно делалось на восьмерке, натягивая сову на глобус за неимением альтернатив. Это маленькие учётные системы "сами в себе". Нетиповые, самопальные конфигурации для решения очень узкой задачи конкретного бизнеса. Теперь не придется переплачивать за лицензию и можно смело экспериментировать, искать форматы
2. Всевозможные кабинеты, с интеграциями или без
  • 🔥 1
Post #9 123
Что сегодня есть на Элементе?
От вендора есть два "флагманских" приложения "1Спорт" и "Кабинет сотрудника". На данный момент заслуженное звание самого сложного продукта носит КС, но это временно, флагманы в кавычках, оттого что у меня есть стойкое ощущение что вендор придержал тузов в рукаве и летом ждут крупные анонсы продуктов на новой технологии. Из решений помельче - "mag1c" (ну прям очень спорное решение как продукт если есть бюджет), "developer.1c.ru" (в целом окей). Партнеры, в первую очередь, участники пилотных проектов уже выкатили свои демки, которые будут использовать для того чтобы приманивать заказчиков, поскольку это часто именно что демо версии, говорить о них пока смысла не вижу. Дальше хочу пофантазировать про куда Элемент идет, и к чему он может прийти в итоге.
  • 👍 1
Post #6
Channel photo updated
Post #4 123
Не позиционирую канал как только "заметочный", из планов - медленно но верно собрать вокруг технологии модное "гигачад шлепа 300к в наносек" сообщество, показать сойбоям с других языков как мы теперь в 1С умеем, поэтому не удивляйтесь когда увидите здесь мемы и неформальный сленг. Пока технология молодая - самое время её седлать, чего вам желаю. Давайте сделаем это вместе, быстро и с мемами.

#мемы@elementxbsl
  • 👍 1
Post #3 111
Первое что считаю важным отметить - как войти в элемент и чего бояться. Единственная доступная литература - книга Хрусталевой позволит 1снику погрузиться лишь в самые базовые вещи, дальше в любом случае придется ковыряться в официальной документации с синтаксис помощником перед тем как начнёте чувствовать себя в элементе "как дома". Это вариант как войти в элемент для усидчивых. Для остальных всегда есть возможность пройти курс от учебного центра номер 1 (чаще всего проходит очно), их главный курс достаточно неплохо скроен и затрагивает все основные моменты, с которыми можно столкнуться в первые недели самостоятельного изучения. Минус курса - не у всех есть возможность пройти его очно, а удаленный поток на данный момент запускали всего раз. Но у кого есть возможность - рекомендую, курс сэкономит новичку несколько недель самообучения. Книга - мастхев даже перед курсом, пока блогов и статей в интернете по элементу кот наплакал. Благо она по объему больше тянет на методичку и читается за вечер.
  • 👍 1
Post #2 110
Решил завести канал в формате быстрых заметок на предмет возможностей платформы "1С: Предприятие.Элемент". Посты будут появляться регулярно, поскольку взаимодействие с технологией пересекается с основным родом деятельности и, соответственно, делать контент по теме в данный момент интересно, познавательное и полезно для индустрии. На данный момент логотипа у элемента нет, поэтому иллюстрацию для первого поста спёр из новости у инфостарта.
  • 👍 2
Post #1
Channel created
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 →