Александр Кунташов — про 1С и не только
2.47K subscribers
219 photos
10 videos
417 links
Заметки про разработку и смежные штуки: 1С, Vanessa Automation, DevOps в 1С, OneScript, PHP, Linux, JS, Python и всякое вокруг и около ИТ.
Download Telegram
Новости 1C:OpenSource :) - Зарелизился ADD [1] - напомню, что это новый продукт Серебряной пули, интегрирующий в себя функционал (и кодовую базу) xUnitFor1C и Vanessa Behavior.

Из существенного:
* добавлена поддержка возможности отладки тестов/сценариев штатным образом (как я понимаю, без необходимости предварительно вручную открывать отлаживаемую обработку в 1С, я пока не пробовал),
* портирована для управляемых форм гибкая настройка дымовых тестов, которую я в xUnitFor1C делал для обычных форм [2]. Документации, кстати, пока в составе ADD нет, но можно посмотреть в xUnitFor1C - см. [3].

Крутые изменения, поздравляю команду, контрибуторов и пользователей продукта!

Чайная ложка дегтя: оооочень большой объем изменений про не всегда логически связанный функционал ребята зафигачили в составе буквально нескольких PR, что заинтересованному стороннему разработчику затруднит анализ сделанных изменений (ну, например, если хочется портировать функционал настройки дымовых для УФ обратно в xUnitFor1C 😉). Понятно, что львиная доля коммитов этого релиза сделана одним разработчиком (Артур, привет). Понятно, что внешних участников проекта минимум и фактически проект сейчас развивается не сообществом, а одной конкретной компанией, но...

Ссылки:

[1] ADD - Automation Driven Development: https://github.com/silverbulleters/add/releases/tag/5.1.0.0
[2] PR с настройками дымовых тестов в xUnitFor1C https://github.com/xDrivenDevelopment/xUnitFor1C/pull/757
[3] Документация по настройкам дымовых тестов: https://github.com/xDrivenDevelopment/xUnitFor1C/tree/develop/Tests/Smoke

#1С #Тестирование #BDD
Битриксоиды запустили страницу со статусом доступности Б24, об отсутствии которой я сетовал в период падения российского датацентра, в котором
размещался Б24

https://status.bitrix24.ru/

#Битрикс24
https://infostart.ru/public/795197/

Подробная инструкция как при помощи Jenkins'а, #1Script 'а, Deplpyka'и и какой-то там матери автоматизировать обновление конфигурации тестовых баз #1С из хранилища при появлении в нем изменений.

Автор - Станислав Ганиев (@Benony0), один из соавторов канала @OneSCast

В 2016 году Станислав выступал на INFOSTART EVENT 2016 с докладом "Групповая разработка конфигураций в крупном холдинге" (видео: https://youtu.be/AUYPhLoNG4w). И с тех пор я наблюдаю заочно по публикациям Станислава на ИЭ и активностям в чатах поддержки #1Script, как процесс разработки в его команде существенно эволюционирует. И как результат на предстоящий IE 2018 им уже заявлен доклад "Git для 1С-ника и другие технологии групповой разработки".

Проголосовать за доклад Станислава можно по ссылке https://event.infostart.ru/2018/agenda/#item845261

Я проголосовал, присоединяйтесь :)
И да, голосование за доклады на INFOSTART EVENT 2018 открыто: https://event.infostart.ru/2018/agenda/
Когда внедрили метрику CLOC (или Когда работу программиста стали оценивать по количеству строк кода) #codesmells #1С
https://www.youtube.com/watch?v=Xixskp0eOl0

Очень крутое (расшифрую: содержательное, практически полезное, веселое), но неоднозначно воспринятое коллегами выступление Николая Елатонцева (webgk.ru и gkexhcange.ru) про то, почему проект интеграции 1С и интернет-магазина часто (читай: практически всегда) боль и для 1Сников, и для веб-разработчиков, и тем более для заказчика. В докладе подразумевается ИМ на Битриксе, но это роли не играет на самом деле.

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

Самое смешное, что после доклада во втором зале была дискуссия, которая прошла по сценарию общения 1Сника с веб-разработчиком из самого доклада (перефраз): "Вот в 1С есть формат OData из коробки, почему вы (веб-разработчики) его не возьмете и не загрузите/выгрузите нужные вам данные, а вместо этого заставляете нас пользоваться проклятым CommerceML?!" (Я тоже там немного поучаствовал на стороне Николая: https://youtu.be/Ngtt_aKAG1s?t=21m9s).

Попробуйте непредвзято посмотреть доклад и сделать правильные выводы :)

#1С #Битрикс
Еще один очень интересный технический доклад на голосовании ИЭ 2018 - "Тестирование интеграций между системами" Никиты Грызлова

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

Никита является автором кучи библиотек для OneScript, контрибутором второй половины библиотек для OneScript :), но больше всего известен как один из главных "виновников" знакового для сообщества 1С события: включение поддержки языка 1C (bsl) на сервисе GitHub. И он же -ведущий разработчик проектов поддержки синтаксиса языка 1С в редакторах VS Code, Atom и моего любимого Sublime Text (если не в курсе, начинайте отсюда: https://github.com/1c-syntax/1c-syntax).

Призываю проголосовать :)
DataTable - весь необходимый функционал таблиц на клиенте в виде одной библиотеки
https://datatables.net

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

Люблю программное обеспечение, которое сделано так, чтобы поставил - и все работает.

Вдвойне счастлив, когда такое можно сказать про фреймворк/библиотеку, что бывает даже реже, чем с софтом для конечного пользователя, но все же бывает и последнее время - все чаще. Коллеги по цеху все стали больше заботиться друг о друге :)

#JavaScript #frontend #UI
В 1С:Зазеркалье про улучшение диаграмм: отзывчивее и нагляднее.
https://wonderland.v8.1c.ru/blog/razvitie-diagramm-14/
Описание нового модуля 1С:Синхронизация с Битрикс24 от Интерволги

https://www.intervolga.ru/blog/bitrix24/integratsiya-bitriks24-i-1s-bukhgalteriya-modul-1s-sinkhronizatsiya/

Для тех, кому лень самому смотреть - полезно заглянуть, коллеги сделали скринов и кратенько написали, что там с чем.

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

#1С + #Битрикс24
Доклады ИЭ-2018, на которые Лустин рекомендует обратить внимание

https://xdd.silverbulleters.org/t/infostart-event-smotri-trendy-i-interesno/2086

Алексей Лустин отмечает доклады, которые привлекли его внимание и дает краткие комментарии, почему. Обращает внимание на тренды. К его мнению стоит прислушаться и принять во внимание, решая, на какой доклад пойти.

Кстати, если бы не этот список, я бы пропустиk доклад с невероятно интригующей темой "Кодогенерация и метагенерация в 1С". Да, судя по названию и описанию, это о том, о чем мечтает почти каждый 1Сник :) Dreams come true!

Скорее идем и голосуем, времени совсем мало, а этот доклад просто обязан прозвучать на конференции!

#1С #infostartevent
CI/CD для 1С - миф или реальность?

Еще одна статья Олега Филиппова на модную ныне тему: https://infostart.ru/public/857583/
Однозначно, у comol'а талант выбирать тему погорячее и преподносить ее провокационно.

Просто мысли/возражения, которые первыми прилетели в процессе чтения статьи:

1. Мержить XML/HTML не просто независимо от платформы, веб это или 1С, потому что это не просто текст, а логически организованная структура данных, для их слияния нужно использовать специализированные инструменты.

2. Мерж простых текстовых файлов (читай: кода) и для 1С и для любого другого ЯП одинаково "прост".

3. Если внимательно посмотреть на требования для контрибуторов в открытых проектах, то почти всегда встречается два интересных шага:
- перед реализацией своей фичи нужно сделать форк от конкретной, актуальной ветки (обычно devel или master)
- перед созданием PR требуют синхронизировать upstream с origin

Это все и делается, чтобы мерж был простым. Если и с кодом 1С так поступать, то мерж тоже будет простой.

Вот первая попавшаяся подобная инструкция про стандартный процесс PR для Github'а. В RMS до сих пор используется древняя как дерьмо мамонта CVS и там точно такие же требования (разработку вести на актуальной версии конфигурации, перед коммитом обязательно актуализировать) и нормально исходники 1С поживают.

4. В вебе результат параллельной работы бэкенд и фронтэнд программиста относительно легко объединять, потому что изменения, которые они вносят, обычно касаются совершенно разных файлов. Это действительно случай "простого мержа".

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

5. Тема мержа пронизывает всю статью, выставлена краеугольной проблемой CI/CD для 1С, но по сути не раскрыта никак, а только создаст у неискушенного в теме 1Сника домыслы и новые мифы.

#1С
Антипаттерн "ВводНаОсновании77". 2018 год на дворе, а все еще встречаются такие вот жемчужины программирования. #codesmells #говнокод
Чтение метаданных из CF/CFE 1С в 8.3.13 (штатно)

Интересное промелькнуло в одном небезысвестном гиттер-чатике фанатов EDT: оказывается, в 8.3.13 был добавлен конструтор объекта ОбъектМетаданныхКонфигурация. Его предназначение - чтение метаданных из внешних файлов конфигураций и расширений 1С.

Цитирую из публично доступного описания нового в 8.3.13.1198:

Реализована возможность анализа метаданных, расположенных в файлах .cf или .cfe. Реализован конструктор для объекта ОбъектМетаданныхКонфигурация.

Реализована возможность получения имени конфигурации, номера версии и поставщика на основании файлов .cf или .cfe. Реализован объект ОписаниеКонфигурации.

Реализована возможность получить из файла .cfu список версий конфигурации, которые могут быть обновлены данным обновлением, а также версию конфигурации, которая получится в результате обновления. Реализован объект ОписаниеОбновленияКонфигурации.

Примеры использования привожу ниже.

#1С
А вот примеры использования. Скопипастить можно по ссылке. #1C
Пахнет фичами из воздуха и тэгом @tree, если вы понимаете, о чем я. Когда "BDD-сценарии" занимают 10К строк, это уже не BDD. Голосуем за доклад, узнаем, что это за BDD такое #infostartevent #BDD #1C
Новая рубрика #НеФотошоп. "Что-то с памятью моей стало, что-то стало мне ее мало..." (с) или "Когда EDT укусил конфигуратор" #1C
После выполнения этого кода в коллекции ЗапросВСнабжение оказывались какие-то рандомные строки. Что с ним не так? #codesmells #говнокод
Правильный ответ: в свойстве ВыделенныеСтроки ТаблицыФормы - массив идентификаторов строк, а не их индексы. Иногда они могут совпасть с индексом строки, но обычно - нет и рассчитывать на совпадение, конечно же - бред.

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

ЭЛ = Объект.Товары.НайтиПоИдентификатору(Тек);

Код 💩 все еще ужасен, но по крайней мере теперь работает правильно :-) #1С #codesmells #говнокод