Александр Кунташов — про 1С и не только
2.47K subscribers
219 photos
10 videos
417 links
Заметки про разработку и смежные штуки: 1С, Vanessa Automation, DevOps в 1С, OneScript, PHP, Linux, JS, Python и всякое вокруг и около ИТ.
Download Telegram
⤴️ На IE2018 отобрано 26 докладов, открыт 2й тур голосования

https://event.infostart.ru/2018/agenda/

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

Мне интересно было бы услышать доклады (в порядке их следования в списке на сайте):
Роль платформы 1С:Предприятие в сервисе 1С-Коннект, Баданов Владимир
Как мы разрабатываем в EDT (хотя меня смутила опечатка в анонсе - branches там обозвали непонятным bruches), Крючков Владимир
Кодогенерация и метагенерация в 1С, Белозеров Дмитрий
«И опыт, сын ошибок трудных…» или как с нуля создать свою фирму 1С-франчайзи. Реальный опыт, успехи и неудачи», Ольга Петровская (в большей степени интересна история, а не тема открытия своего франча в целом)

P.S. Обратите внимание, что многие доклады второго тура имеют очень длинные названия, часто двойные: "Бла-бла-бла, или бла-бла-бла".

Коллеги, это возможно одна из основных причин, почему вы во втором туре:
— название доклада слишком абстрактное или графоманское и из такого названия часто не понятно, о чем он;
— название доклада не запоминается (актуально для тех, чьи фамилии для аудитории ИЭ звучат впервые)
Немного у̶л̶и̶ч̶н̶о̶й̶ магии от разработчиков нового модуля интеграции 1С:Синхронизация с Битрикс24. Ну а что, вам шашечки или ехать (к слову, едет он отлично)? #говнокод 💩#codesmells
💩 Тот самый случай, когда разработчик не просто маг, но еще и графоман. Огромный комментарий был бы не нужен, если UUID просто взять и захардкодить. #говнокод #codesmells
🚲 1C:Зазеркалье о новом механизме решения СЛАУ

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

Как по мне — вполне себе логичная эволюция наработок, реализованных в составе подсистемы/методики Расширенная аналитика учета затрат (РАУЗ).

> в платформе мы использовали собственный алгоритм с дополнительной оптимизацией

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

https://infostart.ru/public/884177/

Проверяет, что печатная форма (табличный документ): а. формируется; б. содержит по крайней мере одну строку (т.е. высота табличного документа > 0)

#Тестирование #1С
💪 Андрей Овсянкин написал еще один эпический лонгрид, в котором просто и понятно рассказал про работу с транзакциями в программном коде 1С.

Пишу "еще", потому что на Инфостарте есть его аналогичные подробные публикации про XDTO, про передачу параметров по ссылке/значению, про управляемые формы (одна из топовых публикаций на ИС)... Короче посмотрите сами в его списке публикаций на ИС, рекомендую.
💩 Когда очевидно, что разработчик не проверял свой код (и понадеялся на то, что он выполняться будет ровно одну итерацию).

Что не так?
— Переменная цикла (Результат) изменяется внутри цикла
— Инициализация переменных внутри цикла, но значения этих переменных не зависят от переменной цикла
— Выполнение запроса в цикле

#говнокод #codesmells #codereview
var_1C тут невероятно символично выглядит
Welcome to @1Ci — international community of odinass professionals!
📀 Музыка из кейгенов — отличный фон для работы

Пару недель назад или около того наткнулся на рекомендацию сайта

https://keygenmusic.tk/

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

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

p.s. Только старайтесь не пользоваться поиском по плейлисту на этом сайте - по крайней у меня он сильно подвешивает вкладку браузера и в целом браузер (я пользуюсь Google Chrome).
😂 С приходом EDT шутки про git становятся доступнее для все большего количества 1сников!

Источник
Краш-тест продвинутого одинэсника или пример того, что и как учить, чтобы расти от Серебряной пули. Кликабельные ссылки в оригинальном посте.
😱 Заказчик привлек для каких-то доработок "третье лицо", а мы, внедряя очередную порцию доработок в рабочую базу, затерли эти изменения, т.к. нас никто не предупредил (мы просто загружаем наше расширение).

Через некоторое время звонок (не дословно, но без потери смысла):
— Давайте придумаем, как обмениваться изменениями и вообще вести разработку коллективно, ведь хранилища для расширений нет
— Вообще мы для этих целей в RMS используем систему контроля версий...
— Не-не-не, у меня работы навалом, некогда с этим разбираться, давайте вы будете свои наработки сами сравнением/объединением накатывать.

Занавес.
⚡️ SublimeMerge — новый git-клиент с интерфейсом SublimeText

Внезапно авторы моего любимого редактора кода SublimeText выпустили SublimeMerge — Git-клиент, построенный на ядре SublimeText (анонс).

Обещают, что он очень быстрый: ради этого с нуля написали собственную библиотеку для чтения git-репозиториев; команды, изменяющие состояние репозитория (коммиты, создание веток и т.п.) используются "родные".

Ожидаемо подстветка кода и в принципе все ключевые возможности редактора SublimeText доступны при просмотре диффов и редактировании конфликтов. Например, из коробки поддерживается подсветка кода 1С 😉

#Инструменты
Хорошая памятка по написанию user stories :)
#Agile #BDD
📘 Что почитать на выходных - 3

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

👔 #NoEstimates isn't crazy
Лонгрид от одного из соавторов Agile Manifesto про суть подхода #NoEstimates (отказ от предварительной оценки трудозатрат). Общий смысл аргументации: сама по себе оценка не несет никакой пользы, т.к. продуктом не является (если только, конечно, вы не продаете услугу по оценке), а потому процесс оценивания - это затраты. Затраты же нужно уменьшать, а это значит, что в пределе к бесконечности они должны сходиться к нулю.

😫 История одной депрессии
Очередная история про профессиональное выгорание, а последнее время все чаще такие попадаются. То ли тема модной стала, то ли проблема обострилась. На грядущем Infostart Event'е будет на эту тему тоже будет доклад от самого Александра Орлова.

🛠 Как и зачем мы написали высоконагруженный масштабируемый сервис для 1С:Предприятия: Java, PostgreSQL, Hazelcast
Научно-популярная статья от Петра Грибанова с кучей подробностей про новый механизм платформы — Систему взаимодействия. Как всегда, в комментариях жара.

🐇 Онлайн-чеки по федеральной сети посредством RabbitMQ, 1С и черной магии
Интересный кейс, реализованный командой SB. И снова рекомендую заглянуть в комментарии.

💰Как уберизировать услуги 1С. Продолжение
Ребята пытаются сделать что-то оригинальное в сфере оказания услуг по поддержке решений на 1С ("уберизация" и "1С" в одном предложении — уже оригинально), но пока не взлетает, о чем они честно и рассказывают.

🐰Как оно работается в фирме 1С?
Отзыв одного из легендарных одинэсников Никиты Зайцева aka WildHare о его работе в "в самой 1С" (спойлер: отзыв положительный). Ностальгия: https://www.hare.ru/old-hareru/

#ЧтоПочитатьНаВыходных
💉 1С+Postgres и SQL-injection

У вас ПОДОБНый код не вызывает никаких вопросов?

Запрос = Новый Запрос("
|ВЫБРАТЬ
| Т.Поле1
|ИЗ
| Таблица КАК Т
|ГДЕ
| Т.Поле2 ПОДОБНО """ + СтрокаПоиска + """
|
|");

Вы молодец, если задумались о значении в СтрокаПоиска: откуда оно к нам пришло и можем ли мы ему доверять?

Генерация текста запроса налету в зависимости от каких-то внешних условий - распространенный прием при работе с БД. Он кроме всего прочего хорошо известен как потенциальня дыра в безопасности, эксплуатируемая при помощи атак типа SQL-injection. Защита от таких атак сводится к элементарным правилам гигиены: все входящие внешние данные, используемые при "сборке" итогового запроса нужно проверять и экранировать.

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

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

В старом битриксовом модуле обмена с сайтом 6.0.x есть запрос с ПОДОБНО. В качестве аргумента этой конструкции передавалась строчка — комментарий вида [Номер документа: B2B-XXXXXX], приходящая из Битрикса, где XXXXXX — случайный набор латинских символов. В подавляющем большинстве случаев все было ОК, но время от времени рабочий процесс падал во время выполнения обмена.

Совершенно случайно заметили, что ошибка стабильно воспроизводится когда XXXXXX начинался с символа A. Квадратные скобки [], как мы знаем, служат для обозначения множества символов, например, "любой символ латинского алфавита" можно записать как [A-Z]. Так вот, когда в качестве аргумента ПОДОБНО передается конструкция, в которой левая граница диапазона больше правой, например, [...B-A...], 1С падает с исключением - прямо как на скриншоте ниже.

Решение очевидное: экранировать спецсимволы: ... ПОДОБНО "\[B-A\]" СПЕЦСИМВОЛ "\" ....

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

#1С
😲 Чтобы познать рекурсию нужно познать рекурсию!