Никита Арипов | 1С, DevExp
2.91K subscribers
277 photos
49 videos
4 files
235 links
Личный канал, где делюсь полезностями и идеями с сообществом 1С
Мнение личное, не официальное и только на основе открытых данных

О себе: Разрабатываю 1С:Бухгалтерия предприятия и отвечаю за 1С:Бухгалтерия некоммерческой организации

Вопросы - @Oxotka
Download Telegram
Инфляция навыков

Если относится к знаниям как к инвестициям, то можно продлить эту аналогию и на инфляцию - инфляцию знаний и навыков.

Чтобы получить работу сейчас знаний требуется все больше. То есть знания, как и деньги, обесцениваются. А требования, как и цены, растут. Раньше, чтобы войти в IT достаточно было знать синтаксис языка. А сейчас уже требуют готовые проекты, знание систем контроля версий, фреймворков и технологий. Одновременно с этим и уже существующие технологии постоянно усложняются.

Например, когда устраивался в фирму 1С я начал самостоятельно изучать управляемый интерфейс, так как на прошлой работе мы работали только с обычными формами. А здесь практически сразу попал на проект по переходу на Такси. Приходилось учиться в два раза больше, чтобы разбираться в принципах и условиях нового интерфейса.

Еще один пример из недавнего обучения тестированию. Там для начинающих тестировщиков сразу преподают основы SQL и систем контроля версий. Некоторые задания даже у меня вызывали сложности, хотя с базами данных я умею работать. А здесь это требуется от совсем неопытных учеников.

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

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

Тоже самое касается и серьезных программистов. Те кто остановились в изучении технологий и считают, что им достаточно - рискуют. Это не значит, что все они будут не нужны - нет. У кого-то до сих пор есть и обычные формы, и даже 7.7. Но в случае смены работы могут возникнуть сложности.

Поэтому важно следить и за инфляцией и за своим портфелем знаний. Вовремя пересматривайте и регулярно инвестируйте в свои знания и навыки.
🔥23👍13💯3❤2👏1
Работа с EDT. Когда требуется Конфигуратор?

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

Вот сценарии, когда лучше использовать Конфигуратор при работе с EDT:

1️⃣ При работе с СКД

При создании или изменении отчетов на СКД в EDT иногда отваливаются макеты (где задаются заголовки отчета). Причем это происходит как-то неожиданно. Поэтому работу с СКД мы на всякий случай ведем Конфигураторе. Там тоже есть свои особенности, но они хотя бы предсказуемые.

2️⃣ При переходе на новую платформу или изменении режима совместимости

При переходе на новую платформу в EDT, требуется выполнить дополнительные действия. Для этого на ИТС есть инструкция как Перевести на новую версию. Хоть этот сценарий и не самый частый, но про него не стоит забывать.

Если вкратце, то нам нужно залить все в нашу информационную базу и удалить ее из EDT. Затем меняем версию платформы или режим совместимости и выполняем рекомендации из V8Update дистрибутива платформы. Здесь нам как раз может потребоваться конфигуратор. После этих манипуляций полученную информационную базу снова загружаем в EDT.

3️⃣ При обновлении библиотек по подсистемам

Когда встраивается лишь часть библиотеки, то удобно использовать выбор по подсистемам, чтобы проставить все необходимые флажки. В EDT это сделать не так просто как в Конфигураторе.


Вот буквально вчера вышла новая версия EDT 2024.1 (пока релиз-кандидат), в которой есть много исправлений, связанных с перечисленными здесь сценариями. Возможно, этот пост резко становится неактуальным :)
👍14⚡4🔥3
Как вести себя на новой работе. Инструкция

Главное — не бояться, заходить с поднятой головой.
Есть офисы "красные", там заправляют эйчары, есть "черные", где руководят начальники отделов.

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

2. Первым делом поздоровайтесь со всеми присутствующими. Если с собой есть кофе с печеньками - поделитесь на общее.

3. К вам подойдет человек, обычно это начальник отдела, и спросит "кто ты, и какая у тебя беда", т.е. какой ваш корпоративный статус и должность. Отвечайте спокойно, и честно. Если соврете и приукрасите - быстро проверят, и за обман спросят.
Если вопросов слишком много, задайте встречный вопрос "А ты часом не эйчар? С какой целью интересуешься?", после чего ответьте еще на один вопрос, и завязывайте.

4. Если ранее работали, расскажите где и по каким статьям в какой должности.
Если вы "первоход", смело подходите к старшему, и объясняйте, что вы впервые заехали, порядков не знаете. Спросите, куда можно бросить вещи, и какой распорядок дня.

5. Могут загадать загадку про два стула, три стула, ноль стульев но это обычно в ОА, в других департаментах такого нет.

6. Если хотите сидеть мужиком, на одной позиции, без повышений - скажите об этом старшему. Если вам ближе воровское - заявите, вас определять в стремящиеся, но тогда жизнь будет тяжелее.

7. Главное помните, каждый может оказаться на работе, но почти у всех сроки когда-то закончатся! Ведите себя по-людски, не сотрудничайте с Отделом Кадров, и будет вам воля с Золотым Парашютом!

Часик в радость, корпораты!

Переписал из Оправдания для заказчика

Никита Арипов | 1C. Подписаться
🤣31👍5🥴5👎3🔥33🤮2🤡2👀2😱1
Регулярные выражения в 1С

Вышел проект с использованием регулярных выражений - Заполнение оснований финансирования по правилам в банковских выписках. В рамках этого проекта мы решали задачу поиска элемента справочника по назначению платежа. Пробовали различные подходы, например, нечеткий поиск с помощью n-грамм и Расстояния Левинштейна. Но, к сожалению, требуемой точности не удалось достичь. Решили пойти способом попроще.

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

В рамках этого проекта решили использовать поиск с помощью регулярных выражений, чтобы ускорить распознавание выписки. Правила поиска задаются пользователем и их может быть много. Если использовать обычный поочередный поиск по каждому правилу, то при большом количестве правил это занимает значительное время. Или как сказали бы настоящие программы у алгоритма будет квадратичная сложность O(n^2). Использование регулярных выражение позволило собрать одно выражение из всех правил и искать по нему. Это работает быстрее, а сложность будет линейная O(n).

Логика примерно такая:
1. Берем все правила от пользователя, например, «грант», «пожертвование» и «профсоюз»
2. Собираем одно регулярное выражение - (грант)|(пожертвование)|(профсоюз)
3. Применяем это выражение к назначению платежа в выписке и смотрим какая группа сработала
4. По найденной группе определяем элемент справочника, который нужно подставить
5. Готово!

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

При распознавании выписки мы итак смотрим на различные ключевые слова в назначении платежа, но делаем это последовательно, каждый раз прогоняя все через поиск по строке. Рассчитываю, что использование регулярных выражений здесь тоже даст прирост в скорости.
👍21🔥12👏3
«Планы доносятся на семинаре»

Именно такую фразу часто можно услышать в ответ на вопрос про то, когда будет сделана та или иная функциональность. Поэтому не упустите шанс пообщаться с разработчиками на семинаре.

В эти выходные (27-30 сентября) проходит традиционный осенний партнерский семинар. На этом мероприятии эксперты фирмы «1С» делятся новыми проектами и обсуждают планы развития программ. А также Борис Георгиевич рассказывает о состоянии дел партнерской сети и компании «1С». В этом плане это уникальное мероприятие!

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

Я выступаю на партнерских конференциях уже 11 лет подряд (весенних и осенних). Этот год не исключение - буду рассказывать про НКО и что мы в ней сделали. Также в субботу буду выступать и на франчайзинговой секции тоже про НКО. Сейчас активно готовлюсь к выступлениям.

Буду рад увидеться на мероприятии, кто будет - приходите пообщаться!
👍13🔥6⚡2
This media is not supported in your browser
VIEW IN TELEGRAM
Клавиатура с уточками (звук)

Можно заказать просто несколько кейкапов, а можно заморочиться и поменять полностью. Выглядит весело.
😁10🔥3👍2
Пятница - день для пуша в прод

Ну а если Вы сомневаетесь нужно ли сегодня что-то закладывать в прод, то вот помощник в этом - Should I Deploy Today
👍9🔥4😱1
Прошел осенний партнерский семинар

Закончился очередной традиционный Большой семинар партнеров фирмы «1С». Записи выступлений какое-то время доступны для участников семинара на сайте.

Мы стойко отстояли Вернисаж и записали кучу идей и предложений от партнеров.

Огромное спасибо! Теперь будем разбирать эти идеи и думать как включить их в наши планы.
👍12👏8🔥3
Примеры регулярных выражений для 1С

Продолжаем говорить о регулярных выражениях в 1С. Вот пост про использование регулярок в проекте. Ниже приведу еще несколько примеров сразу с кодом на 1С.

1️⃣ Найти номер и дату договора
Используется, если нужно найти в тексте, например, назначения платежа номер договора, по которому идет оплата.
В зависимости от формата договора регулярное выражение может иметь вот такой вид:
\s*([A-Za-zА-Яа-я0-9\-\/]+)[^\d]*(\d{2}[.]\d{2}[.]\d{2,4})

Краткое пояснение:
\s* — игнорирует пробелы.
([A-Za-zА-Яа-я0-9\-\/]+) — находит номер договора, состоящий из букв, цифр и символов.
(\d{2}[.]\d{2}[.]\d{2,4}) — находит дату в формате дд.мм.гггг.



ИсходнаяСтрока = "Оплата счета по договору №45/Фм от 24.05.2024г. на сумму 10 000 руб, без НДС";
СтрокаРегулярногоВыражения = "\s*([A-Za-zА-Яа-я0-9\-\/]+)[^\d]*(\d{2}[.]\d{2}[.]\d{2,4})";

Результат = СтрНайтиПоРегулярномуВыражению(ИсходнаяСтрока, СтрокаРегулярногоВыражения);

Сообщить(Результат.Значение); // Результат - 45/Фм от 24.05.2024


В результате будет выведена строка 45/Фм от 24.05.2024

2️⃣ Найти строку с исключением
Используется, если нужно что-то найти, но при этом в строке не должно быть исключения. В этом случае можем использовать вот такой шаблон регулярного выражения:
^(?!.*Исключение).*СтрокаПоиска

Например, мы хотим найти договоры от контрагента, но исключить договоры за 2023 год. Для этого будем использовать вот такое регулярное выражение:
^(?!.*2023).*\s*([A-Za-zА-Яа-я0-9\-\/]+)[^\d]*(\d{2}[.](\d{2}[.])?\d{2,4})


СтрокаПоиска = "^(?!.*2023).*\s*([A-Za-zА-Яа-я0-9\-\/]+)[^\d]*(\d{2}[.](\d{2}[.])?\d{2,4})";

СтрокаЗначения = "Оплата счета по договору №45/Фм от 24.05.2023г. на сумму 10 000 руб, без НДС";
Результат = СтрНайтиПоРегулярномуВыражению(СтрокаЗначения, СтрокаПоиска);
Сообщить(Результат.Значение); // Результат - ""

СтрокаЗначения = "Оплата счета по договору №68/Ав от 25.09.2024г. на сумму 20 000 руб, без НДС";
Результат = СтрНайтиПоРегулярномуВыражению(СтрокаЗначения, СтрокаПоиска);
Сообщить(Результат.Значение); // Результат - "Оплата счета по договору №68/Ав от 25.09.2024г. на сумму 20 000 руб, без НДС"


В первом случае будет выведена пустая строка, а во втором будет выведена полная строка. При этом из групп можно получить нужный результат. Про группы следующий пример.

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

Для решения этой задачи создаем вот такой шаблон регулярного выражения:
(счет)|(договор)|(акт)


СтрокаПоиска = "(счет)|(договор)|(акт)";

СтрокаЗначения = "Оплата счета №431";
Результат = СтрНайтиПоРегулярномуВыражению(СтрокаЗначения, СтрокаПоиска, , , , Истина);
Для Каждого Группа Из Результат.ПолучитьГруппы() Цикл
Если Группа.Длина > 0 Тогда
Сообщить(Группа.Значение); // Результат - счет
Прервать;
КонецЕсли;
КонецЦикла;

СтрокаЗначения = "Оплата акта №153/ф";
Результат = СтрНайтиПоРегулярномуВыражению(СтрокаЗначения, СтрокаПоиска, , , , Истина);
Для Каждого Группа Из Результат.ПолучитьГруппы() Цикл
Если Группа.Длина > 0 Тогда
Сообщить(Группа.Значение); // Результат - акт
Прервать;
КонецЕсли;
КонецЦикла;


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

Никита Арипов | 1C. Подписаться
👍27🔥5👏3
😁13👍104🤣2
😁18👍55
Поле ввода

Базовый элемент для ввода значений

1️⃣ Ширина поля должна вмешать самое длинное значение из списка выбора

2️⃣ Кнопка Очистки (x) должна быть включена, если в поле ввода предусмотрено удаление или пустое значение. Включать ее нужно самостоятельно, так как по умолчанию она выключена. При этом в отборах на форме она не нужна, так там используется флажок

3️⃣ Должна быть подсказка ввода для пустого значения на форме, если логикой формы предусмотрено, что оно может быть не заполнено. Например, если пустое поле означает, что будут использованы все значения - По всем контрагентам

4️⃣ Кнопка выбора для строковых полей нужна, если пользователь может из чего-то выбрать. Например, путь к файлу или выбор наименования. Такую кнопку и обслуживающий код следует добавить самостоятельно

5️⃣ Для строковых значений больше 100 символов лучше использовать многострочное поле ввода. Для таких полей лучше всего подходит заголовок сверху

6️⃣ Если в поле выбора всего одно значение, то обеспечьте самостоятельное заполнение этого реквизита, а поле скройте, например, функциональной опцией. Выбор из одного элемента - не выбор

7️⃣ В формах обработки реквизиты, которые повторяются между открытиями лучше сохранять, например, поля с периодом или организацией. Настройка сохранения реквизитов формы выполняется в палитре свойств формы

8️⃣ Не используйте платформенный выбор типа для составных типов. Добавьте отдельный выбор типа, например, Контрагент или Физическое лицо в форму перед выбором элемента

Больше в Дизайн гайде по 1С

#Design
👍21🔥5👏4
Выступление на Infostart Tech Event 2024

Завтра начинается Infostart Tech Event 2024 в Санкт-Петербурге. Это уже 14-я конференция по технологиям автоматизации учета на платформе 1С:Предприятие. В программе 80% технических докладов и 20% контента по развитию команды и личной эффективности.

Я выступаю с темой про Developer Experience. Расскажу как можно улучшить процесс разработки убрав из него ерунду. Мое выступление в 15:40 в Большом зале.

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

С участниками конференции с удовольствием встречусь и пообщаюсь. Считаю, что находить новые знакомства и людей одна из важных целей таких мероприятий.
👍29🔥14👏4
😁28🔥2😱2
😁20🔥10😱4
Infostart Tech Event 2024

Закончилось главное мероприятие года от Инфостарта. Три дня насыщенной программы на самые разные темы. К сожалению, не удалось посмотреть все запланированные выступления. Многие из них я смотрел урывками, одним глазком, отмечая для себя интересное на будущее. Теперь буду догонять видеозаписями в спокойной обстановке!

На данный момент мои фавориты: ChatGPT во всех проявлениях, личная эффективность, процессы разработки и дизайн. Попробовал выступления по Highload, но практически ничего не понял. Тем не менее, запомнился слайд, где рассказывали про BYTEA и 0x01 и как это трансформируется из MS SQL в PostgreSQL (или наоборот). Понял, что с этим нужно либо постоянно работать, либо глубоко увлекаться. Ни того, ни другого у меня нет, поэтому отложил на дальнюю полку.

Набегами посмотрел несколько докладов по DevOps, сравнил с тем, что делается у нас, и успокоился — у нас не хуже, и это радует.

Я убежден, что главное на конференциях — это люди! Очень рад, что удалось познакомиться с новыми людьми. На удивление, самым продуктивным местом для знакомств оказались обед и ужин. Мест было немного, поэтому каждый раз встречался с новыми людьми. Это оказалось очень полезным и интересным.

Также было здорово встретить старых знакомых и тех, кого знал только онлайн. А тут удалось пересечься лично — это потрясающе. Со всеми было приятно пообщаться!

Теперь нужно время, чтобы разобрать записи, переварить идеи и постепенно начать их внедрять. Как только появятся записи, то мои первые три доклада к просмотру (не удалось на них попасть, но очень хотел):
1. Промышленное тестирование конфигураций в 1С
2. Универсальное рабочее место разработчика 1С
3. Прошлое, настоящее и будущее MLLM моделей (ChatGPT, Claude, GigaChat и др.)

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

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

3. Автоматизация написания тестов YaxUnit с помощью кастомной модели GPT
Просто интересный доклад. Я с YaxUnit так и не познакомился, а тут рассказали полезное.

Делитесь в комментариях, какие доклады вам понравились и что посоветуете посмотреть в первую очередь?
👍28🔥9💯4
Developer Experience. Видеозапись и ссылки из презентации

Доклад можно посмотреть в Инфостарте на этой странице. Большой зал 10 октября (1 видео), начинается в 5:42:20. Возможно, это временно, поэтому ловите, пока есть возможность посмотреть все доклады из большого зала.

Полезные ссылки из своего выступления прикрепляю сюда:

1️⃣ Библиотека работы с хранилищем от OneScript.
Позволит упростить ведение разработки по технологии разветвленной разработки и автоматизировать работу с хранилищем с помощью OneScript

2️⃣ Практика проведения Code-review
Выступление на 1C:DevCon про нашу практику проведения Code-Review. Рассказываю на что стоит обратить внимание и какие есть нюансы

3️⃣ Скрипты для запуска 1С
Позволит по двойному клику открыть cf, cd или dt с помощью bat-ников. Мое любимое средство автоматизации, которому радуюсь каждый раз когда использую

4️⃣ 1С:Тестировщик / 1С:Сценарное тестирование
Инструмент для создания сценарных тестов на 1С, на котором тестируется 1С:Бухгалтерия предприятия. Разрабатывается он тоже в нашем отделе с учетом пожеланий наших тестировщиков

5️⃣ Стек технологий для 1С
Инструменты для 1С и около 1С, которые могут быть полезны разработчику. По каждой технологии постарался объяснить зачем она нужна и с чего начать изучение, если заинтересует

6️⃣ Шаблон новых объектов
Чек-лист, который помогает правильно создать новый объект для Бухгалтерии предприятия и ничего не забыть. Позволяет программировать как разработчик типовой конфигурации :)

7️⃣ Инструменты и процессы разработки 1С:Бухгалтерии
Статья и видеозапись выступления на Infostart Analysys 2023 про наш процесс разработки 1С:Бухгалтерии предприятия

8️⃣ Регламенты разработки от Razdolie
Открытый набор статей с подходом к разработке от внедренческого центра Razdolie. Возможно, найдете для себя что-то полезное
👍31🔥12👏6
Теория - это когда ты знаешь все, но ничего не работает

Практика - это когда ты не знаешь почему, но пока все работает

Разработка совмещает Теорию и Практику - это когда ничего не работает и ты не знаешь почему
🔥23😁20👏2👍1
😁17🔥4❤1
Кнопка

Кнопка используется для выполнения действия на форме

1️⃣ Используйте кнопку для выполнения действия по запросу пользователя. Если можно выполнить действие без подтверждения пользователя, то кнопка не нужна. Например, если мы делаем ипотечный калькулятор, то расчет суммы можно выводить сразу после введения пользователем параметров расчета. Не нужно для этого нажимать кнопку «Рассчитать»

2️⃣ Используйте кнопку для выполнения длительных действий с предупреждением пользователя. Если процесс занимает много времени, то лучше пользователя предупредить об этом при или перед нажатием на кнопку

3️⃣ Используйте кнопку с пометкой для команды, связанной со строкой списка (табличная часть или динамический список), например "Использовать как основной".
Пример кода отображения пометки:

&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)

Если Элементы.Список.ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;

Элементы.ИспользоватьОсновным.Доступность = Элементы.Список.ТекущиеДанные.Свойство("Ссылка");
Элементы.ИспользоватьОсновным.Пометка =
Элементы.Список.ТекущиеДанные.Свойство("Ссылка")
И Элементы.Список.ТекущиеДанные.Ссылка = ОсновноеЗначениеСписка;

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


4️⃣ Сделайте понятный заголовок для кнопки, не обязательно делать его коротким. Например, "Рассчитать сумму платежа" звучит лучше, чем просто "Рассчитать". В случае если по кнопке будет открываться новая форма (не рекомендуется), то название кнопки должно сообщать об этом. Например, "Показать настройки"

5️⃣ Используйте кнопку Без фигуры для команд, которые не рекомендуется выполнять или когда кнопок слишком много. Следует использовать с осторожностью. Подробнее про отображение кнопок без фигур

6️⃣ Используйте только одну кнопку с действием по умолчанию на форме. Если требуется сделать кнопку похожей на действие по умолчанию, то установите оформление:
- шрифт - Жирный
- цвет фона кнопки - Золотой RGB(255, 255, 0)

7️⃣ Не используйте кнопку для перехода к другой форме, используйте для этого Гиперссылку
Больше в Дизайн гайде по 1С

#Design
👍13🔥11👏2