Эта статья будет интересна тем, кто только начинает свой путь и ищет куда податься. В этой статье изложу 5 выводов, сделанных за 3 года работы разработчиком 1С.

Почти три года работаю разработчиком 1С и пришёл скорее из-за нужды. В университетское время я периодически читал различные статьи на Хабре и других ресурсах на тему карьеры в IT. Очень много я натыкался на снисходительность в сторону «1С-ников» и поддался этому влиянию. Связать свою жизнь с IT хотел с детства и в своём регионе периодически следил за вакансиями на Авито и на hh.ru. Было в вакансиях для junior’ов не густо. Вернее их не было. В разделе IT были вакансии с названием программист, но в описании было всё: работа в каких-то программах, базах данных, прокладка кабелей под потолком и обслуживание орг. техники.

В середине 3-его курса попалось объявление на программиста-стажёра 1С, при этом требовались лишь базовые знания программирования: знать что такое циклы, условия, массивы и т. д. Я ухватился за возможность и начал учиться. Это был 2020-ый год и работаю в данной области по сей день. Почти за три года работы сделал для себя несколько выводов. Это только субъективное мнение. Каждый из выводов либо основан на личных наблюдениях, либо будут приведены ссылки на источники.

Вывод 1. В России для разработчика 1С в ближайшие годы будет работа… много работы.

За 2022 год зарегистрировано 242 100 новых коммерческих предприятий. Всем этим предприятиям необходимо программное обеспечение, чтобы вести учёт, осуществлять продажи и соблюдать требования законодательства. Большую распространённость в России получила система 1С из-за ряда причин.

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

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

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

В-четвёртых, в связи с последними событиями многие организации переходят с зарубежного ПО на отечественные аналоги. Например, Аэрофлот, Московский метрополитен. Также пару месяцев назад проходил собеседование в международной организации (они себя так позиционировали) и там мне сообщили, что у них сейчас много проектов по переходу с немецкой системы SAP на 1С.

Вывод 2. В небольших франчайзи-фирмах вы будете всесторонне развиваться, но это не для всех.

Мне нравится разработка: писать код, улучшать его, создавать нечто новое. Также нравится работать над сложными задачами. Я считаю, что сложные задачи - это интересные задачи, если это не искусственная сложность. Тут следует сделать оговорку по поводу сложности: под сложностью я здесь понимаю либо что-то действительно сложное, какой-нибудь хитрый алгоритм, либо задача, которая требует продолжительных затрат по времени, от 5-ти “реальных” часов. Под “реальными” часами я имею в виду продуктивные часы, потраченные на решение задачи, а не потерянное впустую время из-за незнания чего-либо или по собственной глупости.

Например, вышел очередной закон, который обязывает всех маркировать обувь. Нужно разобраться в вопросе и внедрить этот функционал. Это сложная задача, но сложность искусственная и потому задача не интересная, клиент от её решения не ощутит пользы (наоборот увеличится объём работы за счёт контроля за марками) и нет никакого удовольствия от работы.

Вот другой пример: есть интернет-магазин на Wordpress с плагином WooCommerce. Этот интернет-магазин активно работает, но в плагине нет никаких отчётов чтобы оценить успешность работы магазина в конкретных цифрах. Зато есть свой API, через который можно подключиться из другой системы, загрузить данные и делать с ними что угодно. Это пример непростой и интересной задачи, которую приятно решать и от её решения есть ощутимая польза для клиента.

Однако в небольшой франчайзи-фирме нужно всё: и писать код, и заниматься настройкой конфигурации, и консультировать пользователей по работе в программе, и администрировать базы данных. Помимо этого периодически приходится быть аналитиком, психологом…

Такой режим работы подразумевает многозадачность, быстрое переключение между задачами. Недавно обнаружил, что это давит на меня. У себя я заметил тягу к углубленной работе. Раньше я этого не осознавал, но сейчас, при чтении книги «В работу с головой. Паттерны успеха от IT-специалиста» Кэла Ньюпорта, пришло осознание.

Вывод 3. У каждого своя зона ответственности, при этом мало кто хочет работать — из-за этого возникают застои в работе.

Работа организации, в которой я работаю, связана с ПО: консультации, настройки, обновления и т. д. Одним словом software. Но есть ещё и вторая часть всей системы - hardware. И в моей практике за эту часть отвечает другая организация, которую в разговорной речи чаще всего называют “сис. админы”. Так вот, очень часто попадаются некомпетентные люди, которые не хотят выполнять свою работу и любят перекидывать ответственность, заявляя что-то вроде: “Проблема в вашей программе, у нас всё в порядке”.

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

Вывод 4. Нужно уметь расставлять приоритеты.

Свою работу я начал ещё когда учился в университете на последнем курсе. У меня были: учёба в универе, работа лаборантом на кафедре высшей математики, написание диплома, подготовка к ГОСам и работа программистом 1С. Много всего и сразу и удавалось балансировать. Потом я получил диплом и у меня осталась только работа программистом с такой стратегией: поднажать, выполнять все задачи по максимуму и выйти в режим “задача поступила, сделал, отдыхай”. Но в эту прекрасную стратегию вмешался один из принципов тайм-менеджмента: задачи никогда не закончатся. Они непрерывно поступают.

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

Задачи мне поступали напрямую от клиентов и для всех задач у меня был равный приоритет. Все они срочные, важные и все должны быть сделаны в ближайшее время. Так вот это не так. У каждой задачи есть приоритет и нужно уметь его правильно определить, чтобы знать что делать в текущий момент времени. Такой подход позволяет избавиться от переработок, избежать конфликтов с клиентами и в целом чувствовать себя лучше. Наверняка многие слышали про матрицу Эйзенхауэра. Так вот, она работает! Нужно стремиться к тому, чтобы все задачи перетекли в квадрат “Важно, не срочно”. Если у вас будет много важных и срочных задач продолжительное время, вы начнёте задыхаться.

Вывод 5. В 1С порой натыкаешься на дикий бред.

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

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

Ещё возникают вопросы к документации на сайте ИТС (информационно-технологическое сопровождение, набор документов и инструкций к конфигурациям фирмы “1С”). Она не обновляется годами: пытаешься разобраться в какой-нибудь функциональности, а написанное не соотносится с действительностью.

Эта статья является пробой пера и получались из серии “Наболело”. У меня не было цели кого-то оскорбить. Это только наблюдения и я не претендую на безусловную истинность. Буду рад почитать комментариям, которые подскажут что во всём написанном было хорошо, а над чем нужно поработать.

Комментарии (116)


  1. vvbob
    24.05.2023 10:18
    +13

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

    Потом погружался во все это более и более глубоко, и в 9-м году решил окончательно уйти с 1С. Причина - понял что стало просто очень неинтересно, большинство задач повторяются и выглядят довольно примитивно - отчетики там делать всякие хитрые, или править печатные формы в соответствии с новой дикой инициативой законотворцев, это все быстро приедается. Можно вырасти в какого-либо менеджера, но мне это не особо интересно. В итоге ушел сначала в С++, потом в Java и ни о чем не жалею. Впрочем и 1С не хейтю, в свое время заниматься этим было интересно и это был единственный доступный заработок программированием или около того (там где я тогда жил).


  1. sepetov
    24.05.2023 10:18
    +1

    В середине 3-его курса попалось объявление на программиста-стажёра 1С

    То есть вам удалось и работать, и учиться одновременно? Очно или заочно? Расскажите об этом побольше. Мне трудно было совмещать даже заочное обучение с работой. Может быть кому-то тоже будет интересно, а то и поможет.


    1. Larymar
      24.05.2023 10:18

      Кажется это крайне типовой кейс, сам ушел на 3м курсе. Сейчас мои студенты уходят там же. Где-то к 3му курсу появляется общее базовое понимание cs с которым можно врываться на стажировки. А по учебе обычно дальше лишь диплом и не так много важных фундаментальных знаний.


    1. Konor_Argent Автор
      24.05.2023 10:18
      +4

      Учился и работал на двух работах. Учился очно. Тут всё индивидуально и очень много зависит от отношения руководства. В моём случае я учился в универе и пришёл на работу также учиться. Руководитель знал и понимал, что я студент и первую половину дня я скорее всего буду не доступен - это важно. В начале я работал за опыт и мне ничего не платили. Когда подучился и стал приносить пользу организации, стали постепенно повышать зп.

      На первых курсах такое сложно будет совмещать, т. к. больше ощеобразовательных предметов и там преподаватели следили за посещаемостью - от неё зависело поставят ли тебе "автомат" или зададут ли доп. вопрос на экзамене/зачёте.

      На более старших курсах большинство предметов уже узкоспециализированные и там как правило, нам давали на курс несколько лабораторных и предполагалось, что мы будем ходить на лекции, узнавать что-то новое и делать эти лабораторные. Но мне было проще посмотреть туториал на ютубе или прочесть статью на Хабре и сделать всё за час (вместе с изучением темы), сдать работу и не ходить на лекции, которые длятся 1,5-3 часа.

      Ещё один вариант времяпрепровождения какой у меня был. На 3 и 4 курсе всё таки оставались занятия, где следили за посещаемостью и я просто приносил с собой ноутбук, открывал Word'овский документ и периодически вносил в него какие-то обрывки фраз препода. А по факту я заходил на сервер по rdp и работал или учился по 1С. Если у преподавателя какие-то вопросы, то Alt+Tab и я показываю документ, в который записываю его слова. Приходилось конечно распылять внимание, но у меня два варианта во время такого занятия было: или работать, или листать ленту в ВК)

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


    1. zamsisadmin
      24.05.2023 10:18
      +3

      Помню я совмещал работу и учебу в колледже было трудно, и идея оказалась не очень, то-ли я работу не ту выбрал которая только увеличивалась , то-ли я сам виноват не умел с организацией времени, в общем получалось так что я с 9 до 15 на учебе, потом домой, полчаса на отдых, а далее я работал до 10 часов. Итог? Увольнение и отчисление. Со временем и опытом жизни понял два момента, не надо было наверное идти туда, а надо было получить загран, и ездить летом на сбор ягод в Финляндию. Да это не престижно, не по профессии, но я бы заработал в разы выше чем на этой работе, а пока учусь все усилия отдать в обучение и в изучение английского языка, что дало бы два момента, первый работа сборщиком ягод позволила бы накопить на учебу в той же Финляндии, а английский позволил бы поступить учиться на высшее образование бесплатно. Тогда ещё можно было учиться на английском бесплатно. Но это мой опыт. У каждого он свой, но по мне полноценная работа и учеба очень сложно. Сейчас немного разгребаю последствия и учусь учится в другой стране. Как я туда попал это уже совсем другая история Каневский.jpg


      1. sepetov
        24.05.2023 10:18

        Всё-таки здорово у вас получалось учиться и работать. Не все так могут!

        Почему-то на очном (первоначально) у меня учёба была в режиме фулл-тайм и ни о какой работе речи идти не могло. Причём я бы не сказал, что у меня была проблема с самоорганизацией, так как я потом переехал в Екатеринбург и в новом вузе этой проблемы не было - от меня просто отстали и перестали загружать всякой ерундой.


    1. ilitaiksperta
      24.05.2023 10:18
      +1

      А в чем вообще вопрос?

      Решается просто - забиваешь на походы в универ и ходишь на работу. Иногда отпрашиваешься с работы сходить сдать сраные лабы и прочее универское говно. Работодатели, которые нанимают студентов нормально к этому относятся, по очевидным причинам.

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


  1. Neikist
    24.05.2023 10:18
    +8

    Основной вывод что я сделал за 3 года с 1С — что нафиг оно надо, еще полтора года проработал и свичнулся.


  1. Dddn
    24.05.2023 10:18
    +5

    Ещё у 1С сайт есть со списком багов. Например в ERP их больше тысячи. Последнее исправление которое я ждал, шло больше полугода. Самое долгое исправление ошибки было больше двух лет. За все баги 1С бухгалтерия винит разработчика.

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

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


  1. Quackerjack
    24.05.2023 10:18

    По 5 пункту - дикий бред, есть в любом кровавом энтерпрайзе под капотом. Особенно если это управленческий учет, там кровати переставляют ни чуть не реже чем в регламентированном, если руководство за руку не ловить, но они вам платят и тогда с ними контрить - себе дороже бывает и идешь на сделку с совестью. Хотя, бывает болото с каморами, где правок нет годами, тогда вы деградируете как специалист, и не важно на чем писано java, 1с, c# / f#..


    1. insighter
      24.05.2023 10:18
      +3

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

      И теперь подскажите, как можно так развиваться 1С-разработчику в рамках своего стека, что изучать то? И сравните как может развиваться мидл в стеке в котором он работает - java, go, c#, js?

      1С это все таки про инструмент который решает задачи бизнеса и про платформу на которой 1С пилит свои решения и продает.

      Там мало чего про программирование/разработку в классическом понимании. О чем можно поговорить с 1С-разработчиком - SOLID?, Чистая архитектура?, как правильно писать тесты?, асинхронность/многозадачность?, CI/CD?, код-ревью (есть-нет не знаю) да как минимум с десяток вещей которые должен знать хотя бы крепкий мидл и выше.

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


      1. yukon39
        24.05.2023 10:18
        +4

         О чем можно поговорить с 1С-разработчиком - SOLID?, Чистая архитектура?, как правильно писать тесты?, асинхронность/многозадачность?, CI/CD?, код-ревью (есть-нет не знаю) да как минимум с десяток вещей которые должен знать хотя бы крепкий мидл и выше.

        А собственно в чем проблема? и SOLID, и тесты, и многозадачность, и CI/CD, и код-ревью - все это в разработке 1С есть. Далеко не все пользуются - да, есть такое, но вот чтобы указанного не было - это сознательное решение руководителя команды разработки/проекта.

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


        1. Neikist
          24.05.2023 10:18

          Ну ну, как вы на 1с реализуете последние две буквы солида? Особенно D? Никак. Да и с тестами печаль в т.ч. по этой причине.


          1. yukon39
            24.05.2023 10:18
            +1

            Ну как бы SOLID это принципы написания кода на любом ЯП. 1С не исключение. Принципы "I" и "D" отлично реализуются на практике. Конечно, в языке нет для этого специального инструментария, и это приводит к дополнительным издержкам в виде описанных соглашений в команде.

            Какая печаль у вас с тестами? У нас покрытие 90к LOC проекта 50%, и а более мелкие покрыты на 80+%.


            1. Neikist
              24.05.2023 10:18

              И как вы мокаете источники данных? И вообще юнит тесты пишете?
              А как D конкретно реализуете без возможности контракты задавать в коде?
              Ну и про многозадачность забавно. До сих пор на фоновых заданиях делается через костыли? От бывших коллег не слышал что в этом плане что то кардинально поменялось.


              1. yukon39
                24.05.2023 10:18
                +1

                И как вы мокаете источники данных? И вообще юнит тесты пишете?

                Через mock-server мокаем внешние http-сервисы, есть моки для внешнего оборудования, серверов очередей и т.п.

                Юнит-тесты классической структуры given/when/then. Формируем контекст вызова, вызываем функцию, проверяем результат.

                А как D конкретно реализуете без возможности контракты задавать в коде?

                Для начала вместо:

                Функция А()
                   Б = Новый Д();
                   Б.Действие();
                ....

                учимся писать:

                Функция А(Б)
                    ПроверитьЧто(Б).Это(Тип("Д"));
                    Б.Записать();
                ....

                Это уже переформатирует мозги разработчиков, и позволяет покрывать код тестами.

                До сих пор на фоновых заданиях делается через костыли?

                Какие странные у вас представления о костылях - ФЗ это как раз имплементация Thread.run(Action).


                1. Neikist
                  24.05.2023 10:18

                  А как мокаете вызов базы, выполнение запросов, объектную модель?
                  А где у вас D если вы явно тип задаете конкретный и получается вполне обычная зависимость, а не инверсия? Задавать нужно контракт, а не конкретный тип.
                  А по поводу разницы тредов и фоновых заданий — у тредов сильно больше возможностей. Начиная от возможности память шарить, и заканчивая возможностью дождаться результата выполнения распараллеленной задачи на локе.


                  1. yukon39
                    24.05.2023 10:18
                    +1

                    А как мокаете вызов базы, выполнение запросов, объектную модель?

                    База часть рантайма, смысла ее мокать нет.

                    А где у вас D если вы явно тип задаете конкретный и получается вполне обычная зависимость, а не инверсия?

                    Пример с передачей параметра вместо создания объекта внутри, это же самые азы "D". Т.е. этот принцип вполне применим уже с самых простых примеров. Обычно же там проверка, в которой проверяется наличие и типы полей нужных по контракту. Т.е. есть описанный контракт, есть его конструктор и функция проверки значения на соответствие контракту.

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

                    Так и мы в ФЗ и лочим, и можем ждать, и можем запускать пулы обработчиков (десяками).


                    1. Neikist
                      24.05.2023 10:18
                      +1

                      База часть рантайма, смысла ее мокать нет.

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


                      Пример с передачей параметра вместо создания объекта внутри, это же самые азы "D". Т.е. этот принцип вполне применим уже с самых простых примеров. Обычно же там проверка, в которой проверяется наличие и типы полей нужных по контракту. Т.е. есть описанный контракт, есть его конструктор и функция проверки значения на соответствие контракту.

                      Выглядит как адок. И ладно когда чисто dto какой то. А что делать когда извне должен провайдер данных приходить какой нибудь, или фабрика? Как это без ООП реализовать то получится? Никак.


                      Так и мы в ФЗ и лочим, и можем ждать, и можем запускать пулы обработчиков (десяками).

                      Ну т.е. уже можно в методе с директивой &НаСервере написать что то вроде


                      Задания = Новый Массив();
                      Для Каждого ЭлементДаных из МассивДанных Цикл
                         Задания.Добавить(Новый ФоновоеЗадание(...));
                      КонецЦикла;
                      Для Каждого Задание из Задания Цикл
                          Задание.Ждать();
                      КонецЦикла;

                      Или таки нельзя такое написать и придется тонны костылей городить?


                      1. yukon39
                        24.05.2023 10:18

                        Ну вообще есть. Ибо логика зависит от того что вернет база.

                        Ну вот к примеру простейший тест, на то что вернет база. Тесты функции СсылкаСуществует: https://github.com/yukon39/cfe_tests/blob/main/src/tests/CommonModules/ОбщегоНазначения/Ext/Module.bsl

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

                         А что делать когда извне должен провайдер данных приходить какой нибудь, или фабрика? Как это без ООП реализовать то получится?

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

                        ИМХО, вы почему то считаете, что принципы SOLID применимы только к ООП языкам, а это совсем не так. То что на ООП языках эти принципы удобно иллюстрировать не означает, что только там они и работают.

                        Ну т.е. уже можно в методе с директивой &НаСервере написать что то вроде

                        Разве когда-то было нельзя? Указанный код вроде работает во всех платформах начиная с 8.0.

                        Задания = Новый Массив;
                        Для Каждого ЭлементДаных из МассивДанных Цикл
                        	Параметры = Новый Массив;
                        	Параметры.Добавить(ЭлементДанных);
                        	ФоновоеЗадание = ФоновыеЗадания.Выполнить(ИмяМетода, Параметры);
                        	Задания.Добавить(ФоновоеЗадание);
                        КонецЦикла;
                        	
                        Для Каждого Задание из Задания Цикл
                        	Задание.ОжидатьЗавершения();
                        КонецЦикла;
                        


        1. insighter
          24.05.2023 10:18

          Как сейчас реализована асинхронность?

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


          1. yukon39
            24.05.2023 10:18
            +1

            Добавили Async/Wait инструкции.


            1. Neikist
              24.05.2023 10:18
              +1

              Не прошло и 20 лет XD. Кстати в обоих контекстах (НаКлиенте/НаСервере) работает, или только в каком то одном?


              1. yukon39
                24.05.2023 10:18

                Как и коллбеки только на клиенте.


                1. Neikist
                  24.05.2023 10:18
                  +1

                  Печалька сильная конечно.


                  1. fuser
                    24.05.2023 10:18

                    асинх методы созданы для борьбы с модальными окнами. Какой смысл на сервере? Там можно использовать синхронные методы.


                    1. insighter
                      24.05.2023 10:18
                      +1

                      чтобы не блокировать поток при IO-bound операциях


      1. Quackerjack
        24.05.2023 10:18

        Если сильно развит свой управленческий учет или конкретный отраслевой продукт ( сфера услуг / конфигурация для медцентра / строительства / фин. учета и тд.), а не голая типовая коробка с парой доработок, для отчетов государству, то в таком программном продукте есть место всему - чистой архитектура, тестам, асинхронности, многозадачности, CI/CD, код-ревью. Еще всякие прикольные интеграции могут оказаться (требующие хотя бы среднего знания веба), и все на 1С. Тут главное, чтобы повезло с местом работы, объемом работ (гвозди не дадут забивать микроскопом, если вся доработка - это добавить флажок). Ни кто не мешает крутить jenkins к разработке на 1С и он будет очень даже к месту, и архитектура не всегда тривиальна и есть место для дискуссий. Да, архитектура привязана к предметной области 1С и заранее так сказать обозначенным "классам" для учета, но там много мест где можно построить красивые и эффективные по времени выполнения решения, как раз за счет асинхронности, параллелизма и способа хранения данных. В 1С дофига чего про алгоритмы на стандартных структурах данных и программирование с учетом местного "ООП". В 1С это тоже можно изучать самому без задачи или на подработках.


        1. Neikist
          24.05.2023 10:18
          +1

          Вы много на других языках писали? Как вы clean выстроите то когда у вас гвоздями все прибито в платформе к видению ее разрабов об архитектуре?
          Тот же UI — MVC в довольно стремном варианте, где контроллер с вью совмещен. Максимум который возможен — логику в какой нибудь общий модуль вынести. Но только методы, которым придется модель представления передавать соответствием/структурой, а заодно все зависимости внешние которые этому методу нужны. В общем дикими костылями.


          1. yukon39
            24.05.2023 10:18
            +1

            Мы на своих проектах выносим логику UI от логики объекта.

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

            Модули в 1С не имеют контекста, и весь контекст в вызов надо передавать явно. Это влечет за собой отдельные соглашения о том как создавать и модифицировать контекст. Зато упрощает выше озвученное тестирование, т.к. весь контекст можно создать за пределами вызываемого метода/общего модуля.


            1. Neikist
              24.05.2023 10:18

              Ну т.е. приходится дико костылить, о чем я и говорил. Я под конец своего 4+летнего общения с 1с (свою коробку делали) достаточно от таких извращений наплевался. Зачем себя мучать если можно писать на нормальных языках?


              1. yukon39
                24.05.2023 10:18

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

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


                1. Neikist
                  24.05.2023 10:18
                  +1

                  Да в любом проекте задолбаешься по 10 параметров прокидывать. Форму прокинь, модель формы прокинь, отдельный контекст для "репозиториев" прокинь, общие модули прокинь (про I принцип и клин не забываем же?) чтобы была возможность подменить вызовы методов. И сверх этого непосредственно параметры метода еще. А потом это все еще и рефакторить придется с учетом того что типизация динамическая и нужно все держать в голове, а не на IDE расчитывать.


                  1. yukon39
                    24.05.2023 10:18

                    У вас слишком сложно все получается, и все в кучу - и собственно архитектура проекта, и тесты. На наших проектах как-то мы обходимся без описанных вами ужасов.

                    Что за контексты репозиториев и прокидывание общих модулей? Куда и зачем вы их прокидываете?


          1. Quackerjack
            24.05.2023 10:18

            В контексте 1С не вижу смысла пилить вью отдельно, специально обученным человеком, пока другой что-то делает в параллели для бизнес-логики или работы с базой. Для прикладных задача, которые решают на 1С, такой подход зло - мое мнение. Это энтерпрайз и искать концы по виновным и чья хата с краю - такое себе, "я делал форму", "ой я писал запрос и события". Если конечно очень хочется, вешаешь подключаемые обработчики, убегаешь в общие модули обозначив только один вызов на форме при ее создании, для будущих "биндингов", но скорее всего за такое - тупой ложкой вскроет череп, следующий разработчик которому такое на поддержку упадет, фактически делаешь биндинги как в mvvm в wpf. Достаточно на какое-то время выйти в отпуск и на работу лучше не возвращаться. 1С сейчас в сложных вью сами подключают обработчики кодом или убегают с контекстом формы (вью) в общие модули, сопровождает это видимо "рептилойд", но это не от хорошей жизни. Надежнее отдавать объект на откуп 1 сотрудник, от формы до бизнес-логики, и пользоваться какими-то общими функциями наработанной под текущей проект "библиотекой" или стандартной библиотекой.


            1. Neikist
              24.05.2023 10:18
              +1

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


              1. max-zhilin
                24.05.2023 10:18

                Разделение на области модуля формы - это разве не оно?
                В любой типовой есть области событий ("визуальная шняга") и область #СлужебныеФункции, в которой и место всей логике представления.
                А логика данных - это вообще модуль объекта.


      1. ilitaiksperta
        24.05.2023 10:18

        О чем можно поговорить с 1С-разработчиком - SOLID?, Чистая архитектура?, как правильно писать тесты?,

        До вашего коментария я презрительно относился к 1С, но теперь понял что это не глупые ребята, раз даже они не ведутся на эту ернуду


  1. mihmig
    24.05.2023 10:18

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


    1. DvoiNic
      24.05.2023 10:18
      -6

      а зачем оно?


      1. Linder666
        24.05.2023 10:18
        +2

        Ошибка в строке 761: бла бла бла
        и как искать эту строчку в файле на 1к+ строк? вручную считать?


        1. DvoiNic
          24.05.2023 10:18

          Ctrl-G 761
          Ну или прямо тыком по ошибке, кнопку "конфигуратор", и попадаешь на нужную строку в нужном модуле.


          1. dimaaannn
            24.05.2023 10:18
            +11

            Гит тоже не нужен. Открыл два блокнота, и сравнил что изменилось )

            Понапридумывают тут всяких удобств, понимаешь. Лентяи!


            1. Neikist
              24.05.2023 10:18

              Ну гит в EDT у них уже работает. Правда поди найди еще тот проект где EDT используется, а не конфигуратор. По крайней мере в мое время, 5 лет назад, было так. Да и общаюсь с коллегами, до сих пор не то чтобы прям распространен.


            1. Quackerjack
              24.05.2023 10:18
              +1

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

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


              1. Dolios
                24.05.2023 10:18
                +1

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

                У вас там файлы по 20к строк?


                1. igor6130
                  24.05.2023 10:18
                  -1

                  Не файлы. Модули. А в них может быть много кода.


                  1. Dolios
                    24.05.2023 10:18

                    А модуль, это что? Несколько файлов? Мы же о номерах строк говорим, значит имеет смысл говорить о размере именно одного файла.


                    1. igor6130
                      24.05.2023 10:18
                      -1

                      Модуль — это вот такая приблуда.


                      image


                      В нем уже содержится код (функции, процедуры, перменные).


                      image


                      Если вы когда-нибудь работали с VBA, то 1С устроен по его подобию.


                      1. Dolios
                        24.05.2023 10:18
                        +1

                        Ну, ок, хранится всё это не в файлах, а в БД, какая разница? Когда программист видит исходный код, он может никуда не переключаясь проскроллить 20к строк колесом мыши? Зачем вы занимаетесь буквоедством, вы ведь наверняка поняли мой вопрос с самого начала?


                      1. igor6130
                        24.05.2023 10:18
                        -1

                        А какой вопрос был? Единственное, что я нашел, пролистав ветку вверх: "У вас там файлы по 20к строк?". Нет, код разбивается на модули.


                      1. Dolios
                        24.05.2023 10:18
                        +1

                        Вопрос был: "видит ли программитс 20к строк единым полотенцем?". И вы прекрасно его поняли. Да или нет?


                      1. igor6130
                        24.05.2023 10:18
                        -1

                        Все же вопросе ничего о "полотенцах" сказано не было. А додумыванием смыслов за другими я не занимаюсь.


                      1. DvoiNic
                        24.05.2023 10:18

                        Может проскроллить, но зачем?
                        20к не видел, максимум 15. Что тоже овердохрена, хотя Области несколько смягчают проблему.


                      1. Dolios
                        24.05.2023 10:18

                        Что тоже овердохрена

                        О том и речь. Если программист вынужден работать с такими полотенцами и не может их разбить на вменяемые сущности в несколько сотен строк, то, как по мне, система — дерьмо полное, а тот, кто такое придумал — некомпетентен и ему нечего делать в профессии.


                      1. Ndochp
                        24.05.2023 10:18

                        Там 10кк строк всего. Сейчас они разложены по 3824 общим модулям (да блин, без папок, от этого бывает больно), и еще тысяч 5 наверное специализированных.
                        Предлагаете увеличить число файлов еще раз в 10?


                        Но вот сути боли от 20к строк в одном файле или разбить это по несколько сотен в 80 файлах я не ощущаю совсем.
                        Я же не скролюсь по всему файлу, я иду вслед за вызовами. И мне примерно пофиг, это вызов из соседнего файла или на 5к строк ниже в этом же. А сильно связанный код будет и в одном файле рядышком.


                      1. Dolios
                        24.05.2023 10:18

                        Ну, давайте все 10кк строк в один "файл" соберем тогда, вы же не скроллитесь, а по вызовам ходите. Норм будет?


                        Вот быстро нагуглил аналогичный по размеру проект:


                        Kernel Version: 2.6.27
                        Release Date:   09 Oct 2008
                        Lines in source-code files: 8.690.888 thereof   
                        Code: 5.403.859 (62 %)
                        Empty lines: 1.909.206 (22 %)
                        Comments: 1.377.823 (16 %)
                        Lines of all files: 9.629.957
                        Files: 24.353
                        Source-code Files: 20.759
                        Average length of a source-code file: 419 Lines

                        Во всей остальной индустрии считается, что файл, по фозможности, не должен быть больше 200-500 строк, чтобы с ним было удобно.


                        Анекдот в тему:


                        Звонит муж. — Алло, дорогая, только что по радио передали, что один псих едет по встречке. Будь осторожнее! — Один? Да их тут тысячи!


                      1. Ndochp
                        24.05.2023 10:18

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


                      1. DvoiNic
                        24.05.2023 10:18

                        Области позволяют видеть не "единым полотенцем", а именно по областям.
                        У этого есть и свои плюсы, и свои минусы.
                        "По вам" — возможно полное дерьмо, но ведь вы не верховный авторитет, правда?
                        иногда удобнее ходить внутри одной портянки вверх-вниз, нежели иметь тучу закладок страниц. Да, можно часть кода выносить в отдельные модули — но всегда существует некая середина между дроблением и объединением.
                        Короче, это не самый главный недостаток системы.


                      1. Dolios
                        24.05.2023 10:18

                        "По вам" — возможно полное дерьмо, но ведь вы не верховный авторитет, правда?

                        Про авторитеты вот тут написал: https://habr.com/ru/articles/737210/?reply_to=25581736#comment_25581732


                      1. DvoiNic
                        24.05.2023 10:18

                        ну и? там принято так, в других местах по-другому.
                        давайте еще стиль наименование переменных обсуждать..


                      1. Dolios
                        24.05.2023 10:18

                        "Там" — это практически везде во всей остальной индустрии. До анекдота дочитали?


            1. DvoiNic
              24.05.2023 10:18
              +1

              Гит нужен, конечно. Ибо ХоронилищеКонфигурации™ — это, хм, "так себе". Но гит работает только в EDT, а он сам по себе "чемодан без ручки".


            1. Sau
              24.05.2023 10:18

              Эти сложности из-за отказа от перфокарт. Их же просто наложил и увидел в каком бите отличие!


        1. GvrKonstantin
          24.05.2023 10:18

          Конфигуратор.. правая кнопка мышка и пункт "переход к строке ..."


          1. Quackerjack
            24.05.2023 10:18

            Подтверждаю, что номер строки в ide для 1С не нужен, это как подрулевые лепестки на некоторых машинах, люди их просто не жмут с момента покупки, но они есть и это греет душу, что как у всех четких пацанов. IDE поддерживает переход сразу в нужную строку по клику на ошибку или по Ctrl+G. Не нужно создавать мельтешение в глазах доп. информацией от IDE, которая не находит практического применения в контексте разработки 1С. В данном случае, это не "отставание" или консерватизм, а оно реально нафиг здесь не нужно. Номер строки и причина ошибки более внятные чем в c++ или erlang =))) как и номер строки для перехода.


            1. Linder666
              24.05.2023 10:18
              +1

              то, что вы не пользуетесь определённым функционалом, не значит что он не нужен никому. Значит вы не попадали в ситуацию, когда этот функционал нужен. Что строки, что ваш пример с лепестками, этим пользуются, как это не выглядело для вас "ненужным"


              1. DvoiNic
                24.05.2023 10:18
                -2

                Но объясните, зачем? чай, не на бэйсике пишем.
                Я вот не могу себе представить такую ситуацию.
                Даже там, где есть, в вижал студии, например, мне номера строк не очень нужны при написании кода. В пичарме тоже их не помню.
                Перейти по требуемому номеру строки всегда можно, текущий номер строки отображается в строке состояния, остальные переходы (при отладкеи обработке ошибок) номер строки требуют очень редко.


                1. DMGarikk
                  24.05.2023 10:18
                  +2

                  номер строки требуют очень редко.

                  да не особо и редко, я частенько по номерам строки хожу (в пайчарме) если надо искать ошибку которая через какуюнить sentry прилетела


                  1. DvoiNic
                    24.05.2023 10:18
                    -1

                    Но ведь и там тоже работает Ctrl+G? зачем они на экране?


                    1. DMGarikk
                      24.05.2023 10:18
                      +2

                      чтобы по клавиатуре не тыкать лишний раз?


                      1. DvoiNic
                        24.05.2023 10:18
                        -2

                        а вы текст в окне взглядом двигаете?


                      1. DMGarikk
                        24.05.2023 10:18
                        +2

                        колесиком мышки?


                      1. DvoiNic
                        24.05.2023 10:18
                        -2

                        ну так пальцами по клавиатуре удобнее, разве нет?


                      1. DMGarikk
                        24.05.2023 10:18
                        +1

                        мне нет
                        Это же чистая субъективщина, кто как привык, я знаю что очень многие сочетаниями клавиш пользуются почти на всё, но я с годами так и не привык


                      1. DvoiNic
                        24.05.2023 10:18

                        могу согласиться. Но ведь тогда и "номер строки на экране" — "чистая субьективщина", не так ли?
                        Я привык даже интерфейсы проектировать так, чтоб без мышки работать. Ну да, не совсем 1с-ная идеология, но вот есть привычка такая. "пальцами" быстрее, во ттолько за счет этого операторы в своё время (когда настроил и научил) стали на 15% быстрее работать (стабильно "не хватало часа-полутора", их вынуждали задерживаться, что оборачивалось, естественно, текучкой — а новые работвают медленнее, что… Так вот, после оптимизации под пальцы — тот же объем заканчивали примерно за 15-20 минут до конца смены)


                      1. DMGarikk
                        24.05.2023 10:18

                        могу согласиться. Но ведь тогда и "номер строки на экране" — "чистая субьективщина", не так ли?

                        именно так, я собственно и не возмущался в этой теме по этому… 1С меня научила кодить в любом текстовом редакторе… потому что в семерке не было подсказок ни автоформатирования ни номерами строк я не морочился


                        тем не менее, ф-ция если есть она для некоторых удобна, для меня например


                      1. DvoiNic
                        24.05.2023 10:18

                        Ну и я кодил в "любых текстовых редакторах", включая вписывание кода в клеточки "Бланка программы", командный EDI на терминале, и прочим, включая написание собственной IDE, навеянной турбопаскалем.


                        В семерке был опенконф+телепат, что гораздо лучше голого конфигуратора восьмерки. Впрочем, вернувшись в самом конце 90-х к программированию, и поработав годик в голом конфигураторе 7.7, я открыл VisualC и ужаснулся. Но, к сожалению, VC ушла очень далеко вперед, а конфигураторы 1с остались на том же уровне начала нулевых.


                        Я не утверждаю, что фукнция отображения номеров строк на экране совсем уж бесполезна, но считать ее отсутсвие серьезным недостатком смешно. особенно на фоне остального. (лично я с 1с использую конфигуратор+турбоконф, без турбоконфа/снегопата там совсем уныло.)


                      1. DMGarikk
                        24.05.2023 10:18

                        но считать ее отсутсвие серьезным недостатком смешно.

                        да я собственно недостатком это не считал, я отметил лишь то что отсутствие какойто ненужной лично вам ф-ции не означает что ф-ция не нужна никому, неудобна и вообще "дураки какието ей пользуются"


                        я вообще только после этого треда обсуждений заметил что в 1С нет номеров строк (я всегда пользовался там именно переходом к строке) но теперь, имея уже гораздо больший опыт в большом ИТ, я бы там отображение номеров строк бы включил


                    1. Dolios
                      24.05.2023 10:18
                      +1

                      Когда у вас в файле 200 строк, а не безумие из 20000, нужную строку часто проще и быстрее найти глазами. Ctrl+G, это, как раз, костыль для километровых простыней, с которыми работать сложно и неудобно.


                      1. DvoiNic
                        24.05.2023 10:18
                        -2

                        да-да-да, у вас на экране пренепременно все 200 строк.
                        клавиатурой вы не пользуетесь, всё делает мышкой — что она, зря с колесом куплена, чтоль? можно еще экранную клавиатуру включить, и мышить по ней...


                1. Linder666
                  24.05.2023 10:18
                  +1

                  Но объясните, зачем? чай, не на бэйсике пишем.Я вот не могу себе представить такую ситуацию.

                  Ну опять же, то что вы не пользуетесь или не можете представить себе такую ситуацию, не значит, что это не нужно никому, никогда и нигде) Зачем? Такой вопрос можно задать на любую функцию где угодно:

                  Зачем тёмная тема в IDE? Нормально же мне на белой.

                  Зачем сочетания клавиш, все же через правую кнопку мыши можно сделать, ну и через менюшки!

                  Зачем мне мышка, я с клавиатуры и курсором управляю, и всем остальным.


                  1. DvoiNic
                    24.05.2023 10:18

                    Я разве говорил, что "никогда и нигде"? я просил объяснить. Пока видел только одно объяснение — "чтоб удобно скроллить мышкой".
                    а за упоминание хоткеев, как видите, огреб минусов…
                    через менюшки, кстати, порой тоже быстрее, чем мышой мышить. Альт-кнопка-стрелка-стрелка-ентер, если нет прямого хоткея. не надо руку туда-сюда мотать...


                    1. Linder666
                      24.05.2023 10:18

                      Объяснить что? Зачем номера строк в IDE или подрулевые лепестки на руле? Мне кажется это и так понятно, этим пользуются многие/некоторые люди.


    1. Golickoff
      24.05.2023 10:18
      +2

      Я в 1С не так давно — около 8 лет, но при мне отображение номеров строк всегда присутствовало:

      Изображение с нумерацией строк

      Это же всё бантики, да и потом, кто-то пишет на 1С в EDT (aka Eclipse), кто-то — в VS Code. Как мы вообще пришли к оценке языка по IDE? Здесь же дело в возможностях: условно, пока один человек будет рисовать интерфейс на HTML и CSS, второй будет писать на JS взаимодействие с бэком, а третий на PHP начнёт описывать структуру БД и работу с ней, всё то же самое один человек сделает в 1С за несколько минут и при необходимости сможет оперативно исправить недочёты. Преимущество 1С в скорости разработки и бизнес ценит именно это, как и 1С-разработчики.


      1. Boilerplate
        24.05.2023 10:18
        +2

        По ИДЕ оценивается не язык, а сама экосистема. И ущербные инструменты разработки, как и токсичное сообщество, а также закрытые и не полные материалы сильно снижаю комфортность разработки. Сравните комфортность разработки приложения под .NET Core и приложения под 1С платформу.


        1. Golickoff
          24.05.2023 10:18

          Сначала я написал огромный абзац текста в попытке переубедить вас, а потом понял, что любой 1Сник подтвердит, что 1С — говно. Но она действительно намного удобнее, чем кажется со стороны, решает задачи, для которых предназначена и делает это быстро. По поводу токсичности не знаю: может быть, но я как-то зашёл с вопросом по Python на тостер и с тех пор мне все вокруг кажутся зайками.


          1. DMGarikk
            24.05.2023 10:18

            но я как-то зашёл с вопросом по Python на тостер и с тех пор мне все вокруг кажутся зайками.

            надо правильные вопросы задавать, только ПОСЛЕ того как вы исчерпали все возможности самостоятельно найти ответ. а не сразу идти на тостер/мисту/ещёкудато там спрашивать вопрос в стиле "а как рассчитывать НДС, я решил не использовать регистры, а результаты писать в справочники?" (удивляясь потом что над вами стебутся)
            Это вообще особенность всего русскоязычного сообщества в интернете, злобно стебаться над человеком которому лень самому разбираться


            1. Golickoff
              24.05.2023 10:18

              надо правильные вопросы задавать, только ПОСЛЕ того как вы исчерпали все возможности самостоятельно найти ответ

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

              Это вообще особенность всего русскоязычного сообщества в интернете

              Там выше стоял акцент именно на сообществе 1С и меня это задело т.к. я ни разу — честно, ни разу лично с этим не столкнулся в данном сообществе. Всё ведь просто: прочитал вопрос; шаришь? — объяснил. Не шаришь? — дождался ответа. Просто так лезть в какую-то полемику с перспективой перехода на личности, тратить на это время... это же иррационально. И ко мне так никогда не лезли. Может, мне просто везёт в этом плане в нашем уютном жёлто-красном мирке.


              1. DMGarikk
                24.05.2023 10:18

                В начале своего пути по наклонной дорожке 1С я назадавал кучу тупейших вопросов на форумах и узнал много нового о платформе из ответов

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


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

                Ну это вы вероятно просто не замечаете из-за того что не погружаетесь в общение ;)


          1. Boilerplate
            24.05.2023 10:18

            Может покажется странным, но вместе с тем, что я перечислил, я считаю 1С достаточно хорошим в некоторых смыслах продуктом. Есть хорошие конфигурации, которые на порядки лучше, чем непонятные поделия от других фирм (в торговле есть УТ, например, в бухгалтерии та же конфигурация 1С:Бухгалтерия). Я знаю людей, которые много использовались и 1С:УТ и SAP в торговле. И вот 1С вспоминали, можно сказать, с любовью, после опыта с SAP. Так что, имхо, 1С не должно умереть, но вот трансформироваться во что-то более привлекательное им бы не помешало.


      1. Linder666
        24.05.2023 10:18

        я думаю под нумерацией строк подразумевается нумерация всего кода, а не отображение позиции курсора

        Клац для примера


        1. Golickoff
          24.05.2023 10:18

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


  1. FanzilAlRawi
    24.05.2023 10:18
    +1

    Я писал на 1С в 90-х. В 1998-м написал последнюю строчку и закрыл для себя эту деятельность.

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

    Будет голодно - пойду опять строчить.


    1. DMGarikk
      24.05.2023 10:18

      98 год? это 6 версия от которой тянутся шутеечки что оно очень странно работает, потом были клюшки, логика которых уже более человеческая но после нормальных ЯП… у меня после C# и внезапно VB… оооочень сильно пригорало от 7.7 и то как там все логично и правильно (в кавычках)… где в одном месте надо какието приседания (создать объект, выбрать объект… тут значение… а вот тут ТекущееЗначение (сам догадайся где как правильно)… а через два шага… а забей можно прям напрямую все вызывать… это у нас архитектор упоролся в ООП и решил оттуда чето дернуть но не докурил доконца по этому вот так)… или запросы которые сегодня отдают одно завтра другое, файловая база возвращает select * from aaa where id>10 одни данные, а на sql базе уже другие… хотя казалось бы, 1С это же ОРМ фактически… но нет, разработчик обязан помнить это все
      в 8 уже да, стало все гораздо более человечно


      но именно после 6 и 7 одинес не любят за такую наркоманию и в коде и в логике


      1. yukon39
        24.05.2023 10:18

        файловая база возвращает select * from aaa where id>10 одни данные, а на sql базе уже другие…

        Это сильно вряд ли - сам набор данных (количество строк и каждая строка в отдельности) будут идентичны, а вот идентичный порядок строк указанного запроса, даже в рамках двух последовательных вызовов, вам не гарантирует ни одна современная СУБД.


        1. DMGarikk
          24.05.2023 10:18
          +1

          Вы уже забыли проблемы семерки с БД? (я привел пример сферический в вакууме, проблемы там помоему были в сложных конструкциях)


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


          1. yukon39
            24.05.2023 10:18

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


            1. DMGarikk
              24.05.2023 10:18

              я имею в виду именно штатные запросы к базе, не сторонние


              Чтобы два раза не вставать

              в ТИС они в каждом утюге


            1. DvoiNic
              24.05.2023 10:18

              "сторонний продукт" как раз работал быстро, качественно и устойчиво.
              а вот "штатные запросы" в 7.7 — это редкостное уродство. Впрочем, причина понятна — они делались под файловую структуру БД. Что, конечно, не извиняет, но объясняет. ну и дtлалось это 25 лет назад, когда некоторые тутошние критики cnhernehs 1с еще читать не умели.


    1. vis_inet
      24.05.2023 10:18

      Вы на 7.7, наверное, писали?


      1. FanzilAlRawi
        24.05.2023 10:18

        Нет, я на 7.5.

        7.7 когда начиналась, я уже закончил. Посмотрел на неё, и всё.


      1. DvoiNic
        24.05.2023 10:18

        скорее, не выше, чем 7.5. Ибо 7.7 вроде в 99 проявилась.


  1. wadik69
    24.05.2023 10:18
    +1

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

    Для этого скрамы всякие существуют...


  1. andyblaster
    24.05.2023 10:18
    +8

    Мои выводы после почти 10 лет разработки:

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

    2. Коммьюнити делает для 1С больше, чем сама 1С. Увлеченные искренние умные парни тащат в нее юнит-тесты, коннектят брокеры и шины, пишут линтеры и автоматизированную проверку кода. 1С молча смотрит на это... и делает вторую среду разработки, соперничающую с основной. Причем потребности в механизмах реально существуют, но остаются незакрытыми вендором.

    3. Туманное будущее и внутренняя неопределенность. 1С сейчас пытается усидеть на двух стульях - повернуться лицом к людям, услышать просьбы коммьюнити и немножко выйти в опенсорс и одновременно забрать славу SAP и спрятать ключевой код от просмотра и изменения в связи с уходом последнего. Как можно быть нацеленным одновременно на малый, средний и большой бизнес с противостоящими оконечносиями шкалы "гибкость доработки/приведение к стандарту", я не понимаю, но очень интересно посмотреть, что получится.

    4. Эклектичность и устаревание платформы. По сути, платформа - это предметно-специфичный фреймворк на бэйсике без возможности изменения своего исходного кода с урезанными и изуродованными концепциями ООП, клиент-серверной архитектуры и модульности. Если проводить аналогии со стройкой - это дагестанский самострой с кучей пристроек и еще пристроек с трухлявыми входными дверями и золотой лепниной внутри. При внедрении новых возможностей не проводится ретроспектива и не привносится сквозная цельность и единообразность.

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

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

    7. При всем при этом, внешний инструментарий не от вендора, а от евангелистов хоть и не очень многогранный и разнообразный, но действительно качественный и сделанный с любовью и заботой к своим коллегам.

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


    1. DvoiNic
      24.05.2023 10:18
      -1

      Согласен. Только, имхо, то, чем 1с поворачивается к людям — это не лицо… Но остальные части тела еще ужаснее.


    1. ilitaiksperta
      24.05.2023 10:18
      +1

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

      Лол, да 1С это русский еппол


    1. JenyaNorilsk
      24.05.2023 10:18

      ~13 лет опыта, согласен по всем пунктам


  1. Gold_fish
    24.05.2023 10:18
    +1

    " Так вот, очень часто попадаются некомпетентные люди, которые не хотят выполнять свою работу и любят перекидывать ответственность, заявляя что-то вроде: “Проблема в вашей программе, у нас всё в порядке”. "

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

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


    1. DvoiNic
      24.05.2023 10:18
      -2

      Знаете, почему у вас 1с-ники такие?
      Есть ЗаконСоответствия®: каждая контора подбирает персонал по уровню своего развития. и наоборот, работник выбирает контору, соответсвующую его уровню развития.


  1. Boilerplate
    24.05.2023 10:18

    Работаю веб-разработчик (фул-стак), иногда занимаюсь связыванием 1С продуктов с моими веб-сервисами. Из-за этого иногда приходится что-то писать под разные конфигурации 1С. Так вот, опишу проблемы, почему я бы никогда не стал быть разработчиком 1С на полную ставку:

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

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

    3) Очень токсичное сообщество. Это прямо просто жесть - зайдите на мисту и на вопрос "Как сделать фичу N?" вам ответят: "Наймите разработчика." Если сказать, что ты разработчик, то тебя попытаются унизить, хорошо если дадут ответ, но скорее всего только унизят.

    4) Проблемы с контролем версий. Отдельный вид, файлы кода в своих форматах, всё зачастую запрятано в бинарные файлы и т.д. Невозможно использовать подходы, применимые в почти любых других областях IT.

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

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

    UPD: Вспомнил еще один момент. Среда разработки (конфигуратор) - ущербное поделие времен делфи-паскаль. Например, нельзя перенести курсор сдвигом вправо (он будет уходить в бесконечность). И там еще много таких стремных вещей, которые после студии/идеи кажутся пережитками прошлого из 0х-10х.

    А вот, кстати, к коду на русском языке привыкаешь очень быстро.


    1. Ndochp
      24.05.2023 10:18

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


      2. Не ходи на мисту, ходи на Инфостарт. А еще лучше — на partners.v8.1c.ru (правда там квест тысяч на 7 чтобы доступ получить)


      3. Хранилище для конфигураций и расширений, git для вненшних обработок — если ты старпер. git для всего — если модный



      UPD — любителям модных IDE — в эклипс (точнее EDT)


    1. DMGarikk
      24.05.2023 10:18

      . Это прямо просто жесть — зайдите на мисту и на вопрос "Как сделать фичу N?" вам ответят: "Наймите разработчика."

      и правильно сделают, потому что 1С это коммерческий ентерпрайз который стоит денег, на мисте вам ответят на сложный и интересный вопрос, но когда 100500раз приходит человек и начинает "Я решил перейти на опенсорс, перенес сервер на линукс и у меня почемуто сыпятся ошибки "невозможно создать COM коннектор", памагити!!!.. и когда за ответом что COM на линуксе не работает, начинаются вопросы чем заменить, а как? а примеры? а еще? заткнитесь кто не хочте помогать вы мешаете, ну отвечайте мне что мне делать!!! немедленно!!! (бан)


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


      я на мисте с 2007 года, задал чёто типа — три вопроса, на который мне сумели ответить только на один, а в остальных двух скрипение мозгов закончилось ничем… но никто не сказал "наймите разработчика" или какимто образом стебался… либо тупо никто не знал либо вопрос был слишком сложным (и вопрос сместился в советы — менять бизнеспроцессы)


      1. Boilerplate
        24.05.2023 10:18

        Я не задаю вопросы на форумах ни по каким темам, только гуглю документацию и эти самые вопросы от других. За много лет я дважды хотел задать вопрос на SO, но после того, как подробно расписал проблему, находилось решение, и вопрос публиковать нужда отпадала.

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

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

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


        1. DMGarikk
          24.05.2023 10:18

          Если разработчики сделали кроссплатформенное решение с не кроссплафторменными частями, то такой вопрос обязательно возникнет и должен быть хорошо описан.

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


          по этому когда человек спрашивает про КОМ… это также как к вам подойдет человек и скажет я учился и всю жизнь ездил на авто с АКПП… а тут МКПП… поясните парой слов как мне на ней ездить? показывать и учить не надо, просто словами скажите, это же просто должно быть! Вы отправите его в автошколу? (нанять разработчика?? как в 1С)


  1. Hexhoc
    24.05.2023 10:18

    Мой вывод спустя 7 лет работы 1Сником:

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

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

    3. Много вакансий, но крайне низкое качество этих вакансий. Вакансий только по Москве не счесть, работы найдется каждому, но в 90% случаев это автоматизация ларьков, про удаленку не слышали, про ДМС, а что это? Если начальство тебя не видит значит ты не работаешь.

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

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