Александр Кунташов — про 1С и не только
2.47K subscribers
219 photos
10 videos
417 links
Заметки про разработку и смежные штуки: 1С, Vanessa Automation, DevOps в 1С, OneScript, PHP, Linux, JS, Python и всякое вокруг и около ИТ.
Download Telegram
В чатике @Unofficial1C разговорами про внедрение акселотовской WMS разбередили старые болячки, спровоцировали поделиться своей историей.
Я тоже однажды участвовал во внедрении Управления складом 3.0. В итоге не внедрили, хотя тут честно скажу, точно не по вине программного продукта, любой другой бы не внедрили, т.к., там куча противоречий было, которые нужно решить до выбора ПО (сложная топология, противоречивые требования: FPFO при отборе при стековом хранении (обусловлено топологией) и отсутствием зоны подпитки (отгрузка прямо из ячеек) + требование максимального уплотнения склада).

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

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

Сейчас в 4.0, говорят, все лучше, но я не смотрел уже.

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

Не знаю, как обстоят дела с УС 4.0, надеюсь, она действительно стала лучше.
Новости из 1С:Зазеркалья: агент конфигуратора научился сообщать о прогрессе текущей операции (для человека - просто в консоль, и в виде json-сообщений для роботов или просто ваших скриптов).

https://wonderland.v8.1c.ru/blog/razvitie-rezhima-agenta-konfiguratora/

#1С
Новости 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