cookie

Ми використовуємо файли cookie для покращення вашого досвіду перегляду. Натиснувши «Прийняти все», ви погоджуєтеся на використання файлів cookie.

avatar

Жёлтая тетрадь 📒 Блог программиста 1С 👨‍💻

В основном небольшие и почти регулярные заметки из будней программиста 1С Мои инсайты, что-то новое каждый день @builin

Більше
Країна не вказанаМова не вказанаКатегорія не вказана
Рекламні дописи
867
Підписники
Немає даних24 години
Немає даних7 днів
Немає даних30 днів

Триває завантаження даних...

Приріст підписників

Триває завантаження даних...

Ревью кода или ревью архитектуры Из best-practice код-ревью: Если ревью кода происходит тогда, когда код уже готов к продакшену, архитектура и дизайн на ревью не оцениваются. Если необходим анализ архитектуры и дизайна, он выполняется своевременно, на специально запланированных сессиях. Если вы на ревью блокируете код из-за дизайна, вы (с коллегами) намеренно пишете код на выброс. @yellow_pad | #1С #Разработка
Показати все...
Подал заявку на Infostart Event 2022 Ну что, попробуем?) «1Сная магия» Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?».
Показати все...
Считаю, что Виталия однозначно нужно поддержать 👍
Показати все...
Однострочник 1С: как создать новый массив строк Иногда в коде нужен список строковых констант, например для последовательной обработки всех суммовых показателей. Или, например, при разборе JSON нужен массив строк с именами полей типа Дата. Вариант 1:
  МассивДат = Новый Массив;
  МассивДат.Добавить("date");
  МассивДат.Добавить("resolvedAt");
  МассивДат.Добавить("outDate");
  
  Данные = ПрочитатьJSON(ЧтениеJSON, Истина, МассивДат);

Вариант 2:
  Данные = ПрочитатьJSON(ЧтениеJSON, Истина,
      СтрРазделить("date,resolvedAt,outDate", ","));

@yellow_pad | #1С #Массив #Однострочник1С
Показати все...
Сложности: цикломатическая vs. асимптотическая Цикломатическая сложность бывает у кода (текста подпрограммы). Означает, что код имеет много веток исполнения, тяжело "читается". Ц.с. зависит от языка программирования. Лечится рефакторингом. Асимптотическая сложность (О-большое) бывает у алгоритмов. Означает, что алгоритм долго обрабатывает растущий объём входных данных - вложенные циклы, рекурсии и т.п. Не зависит от языка реализации алгоритма. Лечится оптимизацией. Про ц.с. спрашивают только на собеседованиях по 1С, в остальном мире важна а.с. Код можно написать чисто, с низким показателем ц.с., при этом алгоритм в нём может быть отвратителен по а.с. @yellow_pad | #1С #ЦикломатическаяСложность #ОБольшое
Показати все...
Записи в порядке миллисекунд В продолжение темы, о которой я уже писал https://t.me/yellow_pad/153 . Напомню, есть проблема в ОС Windows: момент времени определяется квантами по 15-16 мс и поэтому время не всегда подходит для записи очерёдности событий, даже в миллисекундах. В чате 1С:Эксперт почерпнул такой паттерн: если запись с текущим временем уже есть, прибавляем к времени 1 мс (пока не найдём незанятое время). Тогда очерёдность записей будет обеспечена в рамках поля "МоментВремени" . Так работает ТЖ. @yellow_pad | #1С #ТекущаяУниверсальнаяДатаВМиллисекундах
Показати все...
Жёлтая тетрадь 📒 Блог программиста 1С 👨‍💻

Период РС точнее секунды = дата в миллисекундах? Чтобы упорядочить данные в порядке поступления, разработчик добавил измерение МоментВремени и заполнил его из ТекущаяУниверсальнаяДатаВМиллисекундах(). Результат на скриншоте - при поступлении пакета разные наборы данных зарегистрировались одной миллисекундой. Всё работало, пока в обмен не добавили сценарий "удаляем данные, затем добавляем данные". Появилась плавающая ошибка - часть данных теряется. На самом деле данные сперва приходят, потом удаляются, т.к. нарушен порядок. Вывод - миллисекунды в 1С могут не быть миллисекундами, или точности миллисекунд может быть недостаточно. Вариант решения, например - добавить поле с порядковым номером записи, по всем записям или в рамках секунды. @yellow_pad | #1С #ТекущаяУниверсальнаяДатаВМиллисекундах #Период

Обновление списка после выполнения команды Есть команда на форме, которая меняет данные (например, загружает новые записи). Согласно обычной логике и ССиМ, эта команда должна позаботиться об обновлении списка. Например так:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

ОбъектСсылка = ПараметрКоманды;
 // Меняем объект
 // ...
ОповеститьОбИзменении(ОбъектСсылка);

КонецПроцедуры

Больше примеров: ССиМ @yelow_pad | #1С #Команды #ССиМ
Показати все...
1С и Apache Kafka (No1C) Два раза мне предлагали проекты интеграции двух 1С через Kafka (есть такой брокер сообщений), в которых надо было сделать и коннектор в конфигурациях 1С и внешний http-сервис на Node или Python (прокси к Kafka). Эти оба проекта у меня не случились, потому что я отказался писать этот самый прокси http-сервис, запланированный архитектором. Если вам встретится такая задача - не планируйте и не пишите никакой http-прокси, он уже есть в ландшафте Kafka. 1С прекрасно к нему подключается и может как отправлять события в топики так и получать. @yellow_pad | #1С #No1C #Kafka #Архитектура
Показати все...
Быстрый поиск по коду конфигурации Идея не нова и не универсальна, но меня каждый раз радует. Особенно при работе с большими конфигурациями с объединенными надстройками с легаси-кодом. Когда, например, нужно в какой-нибудь монолитной отраслевой УПП_ERP_УХ_ДО найти места использования регистра или реквизита, или все доработки по номеру заявки. Выгружаем конфигурацию в файлы, открываем папку в VS Code, нажимаем Ctrl+Shift+F. Для поиска только по коду ставим фильтр на расширение файлов (*.bsl). Ищет по всей конфигурации за секунды против минут. Как выглядит результат поиска - на скриншоте. Для подсветки кода VS Code сам предложит установить плагин. Можно искать регулярными выражениями. Естественно VS Code можно заменить на любой другой приличный редактор. Основной минус способа - сама выгрузка долгая. @yellow_pad | #1С #Конфигуратор
Показати все...
Для чего нужно ключевое слово АВТОУПОРЯДОЧИВАНИЕ в запросах и когда его рекомендуется использовать? Варианты для обсуждения в комментариях... @yellow_pad | #1С #СобесПо1С #Запросы
Показати все...
Оберіть інший тариф

На вашому тарифі доступна аналітика тільки для 5 каналів. Щоб отримати більше — оберіть інший тариф.