Канал обо всем, что связано с 1С. Для обратной связи @shalimski
https://www.youtube.com/live/KSBed4yyoDM?feature=share
Читать полностью…https://habr.com/ru/companies/dododev/articles/714512/
Читать полностью…❗️ Выпущена платформа 1С:Предприятие 8.3.23
Уже доступна на https://releases.1c.ru/
В ближайшее время появится дистрибутив и на https://developer.1c.ru/ для использования с комьюнити-лицензией
В 13:00 по МСК пишем бота с помощью системы взаимодействия.
В гостях ваш любимый спикер — Матвей Серегин.
Приходите https://youtube.com/live/zFBTkITJOS8?feature=share
https://vc.ru/life/665335-produkty-kompanii-1s-manna-nebesnaya-ili-proklyatie-lyucifera
Читать полностью…https://www.youtube.com/live/2lz_h3Uwi6c?feature=share
Читать полностью…22 апреля 2023 Омск
V открытая конференция специалистов 1С в Омске. Предусмотрена онлайн трансляция. Регистрируйтесь на сайте конференции https://на1с.рф
https://www.youtube.com/live/fTaSmfvzQ2E?feature=share
Читать полностью…https://rarus.ru/events/20230720-1c-rarustechday-2023-587081/
Читать полностью…⚡️ Открытый мастер-класс для начинающих: создаем с нуля приложение для управления киберспортивной командой!
📅 Когда: 16 мая в 19:00 (мск)
💯 Условия: бесплатно, регистрация не требуется
➡️ Где: YouTube-канал e1c_community">"Сообщество 1С-разработчиков"
Поделитесь информацией со своими знакомыми, кто только начинает изучать платформу 1С:Предприятие или только-только собирается начать это делать!
https://wonderland.v8.1c.ru/blog/metod-vyzvatpauzu/
Читать полностью…Плейлист с конференции 1C.DevCon.3 https://youtube.com/playlist?list=PL5BQ2gzAdqWQAMFOfs0IUVzqvCfKkxH-g
Читать полностью…Длинные имена переменных – зло.
Naming is hard. Это правда, и вот почему. Во-первых, у нас пока нет метрики, которая может сказать, что вот этот нэйминг плохой, а вот это хороший. Думаю через год или два ИИ линтер сможет предлагать варианты наименований. А пока выкручиваемся как можем.
Во-вторых, бытует мнение, якобы длинные и исчерпывающие имена – это хорошо. Чистый код на максималках такой. Например, readFileFromPathAndThrowExceptinIfNoSuchFile(Path absolutePathToFile)
. Ну круто же! Одна сигнатура уже говорит о том, что делается и тело метода даже читать не надо! Комментарии не нужны!
В какой-то степени это имеет смысл. За неимением лучшего можно писать так. Но что, если есть более простой и лаконичный способ? Я говорю про правильное разграничение ответственностей. Абстракции короче.
В выдуманном примере смешиваются несколько уровней абстракции: формат ошибки (exception), представление пути в файловой системе (Path), формат пути (absolute). Все это повышает когнитивную нагрузку на читателя. Представьте себе сто строк кода, написанных вот в таком стиле дедушки Боба! Брр...
Люди не могут держать большое количество деталей в голове одновременно. Я не могу думать о бизнес логике и в этот же момент видеть какие-то обработки ошибок, которые конкретно на бизнес логику не влияют. Я начинаю отсекать эти детали, чтобы просто не сойти с ума.
Мысль предельно проста. Давайте разделим код на уровни абстракции и будем использовать имена, которые соответствуют текущему уровню абстракции. Наверху у нас readFile
, дальше идут проверки на корректность пути и бросание эксепшенов. Еще ниже сами придумайте.
За удивительной простотой мысли скрывается колоссальная сложность. Куда проще запихать поток мыслей в имя переменной, чем рассортировать этот поток на уровни и понять что действительно важно, а что можно скрыть за следующим уровнем абстракции. Это и есть искусство проектирования и написания кода.
КАК ВЫПОЛНИТЬ ПРОЦЕДУРУ В ОТЛАДКЕ?
Не баян, а классика.
Находясь в отладчике, мы можем вызывать функции (в т.ч. при помощи "Вычислить выражение").
Это бывает нужно для тестирования и выявления каких-то проблем. Например, сделать что-то с данными формы в закрытых полях и так далее.
❕Но вызывать можно только функции, ведь только они возвращают результат. А иногда необходимо выполнить процедуру. Например, метод общего модуля, который что-то сделает с нашими данными. Ну или даже просто удалить элемент из переменной массива. Такое сделать без "костылей", к сожалению, нельзя.
❔ Как же можно вызвать процедуру в отладке?
Для этого нам нужна функция. Самый простой пример:
Функция Вып(Код, Параметр = Неопределено) ЭкспортФункция может быть сложнее и удобнее в использовании. Главное, чтобы она вызывала метод платформы
Выполнить Код;
КонецФункции
Выполнить(НашКод)
🤔 ГДЕ РАЗМЕСТИТЬ ВСПОМОГАТЕЛЬНУЮ ФУНКЦИЮ?ПолучитьФорму("ВнешняяОбработка.Вып.Форма").Вып("Сообщить(Параметр)", "Текст");А НаСервере так:
ВнешниеОбработки.Создать("Вып").Вып("Сообщить(Параметр)", "Текст")Если же мы ведем отладку в фоновом задании, то открытие обработки в режиме предприятия нам не поможет. Но можно использовать и другой вызов:
ВнешниеОбработки.Создать("МойПутьКФайлу", Ложь).Вып("Сообщить(Параметр)", "Текст")Главное в таком случае разместить обработку в доступном для сервера каталоге. Правда и тут может произойти проблема, если установлена "Защита от опасных действий". Тогда нужно при создании обработки передать ещё третий параметр -
ОписаниеЗащитыОтОпасныхДействий
. Для его создания обычно в типовых есть метод ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений()
ВнешниеОбработки.Создать("МойПутьКФайлу", Ложь, ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений()).Вып("Сообщить(
Параметр
)", "Текст")
Да, выглядит костыльно, но иногда бывает полезно. Но вообще, если вам нужно просто в какой-то открытой форме изменить значение реквизита, видимость элемента и т.п., то легче вообще не открывать отладчик, а использовать специальные инструменты в режиме предприятия. Например, Менеджер открытых форм 1С.https://wonderland.v8.1c.ru/blog/avtomaticheskoe-udalenie-ustarevshikh-versiy-platformy/
Читать полностью…