Уже 3 года я фрилансер 1С. О том, как ушел на фриланс, писал ранее.

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

Я веду свой блог geniy1s.ru где описываю свою практику работы с 1С. Поэтому недостатка в критиках у меня нет.

Хочу объяснить свою позицию.

Представьте, что фрилансер 1С — это ателье по индивидуальному пошиву одежды. Когда ты выходишь на рынок, ставишь самые низкие цены. Но постепенно весть об отличном мастере разносится сарафанным радио по округе и вот ты уже вынужден подымать цены на свои работы, чтобы как‑то фильтровать и успевать обслуживать клиетнов. Так и я начинал с цены в 1.500 рублей в час, а сейчас, три года спустя, прошу уже 3.000 рублей в час (2х).

Если клиенты меня спрашивают, почему цены растут, честно рассказываю о большом спросе на свои услуги:

Но даже подобная фильтрация не спасает от авралов. Когда я уходил на фриланс, то думал, что буду работать 4 часа 5 дней в неделю, с выработкой 80 часов в месяц.

Так оно и было, пока я не взял вторую ипотеку с ежемесячным платежом 98 тысяч. Пришлось немного увеличить объем работы:

Теперь я работаю где‑то 4–5 часов в день с единственным выходным в субботу. Правда, мне нравится. Моя жена говорит, что я вообще не работаю, а отдыхаю. Хобби, мол у меня такое — клиентов обслуживать. Возможно, ей со стороны виднее.

Я сторонник практики win‑win — когда выигрывает клиент, выигрываю и я. Он будет доволен, посоветует меня своим знакомым и у меня всегда будет работа. Поэтому до сих пор я не пользуюсь никакими рекламными инструментами — клиенты приходят по сарафану или находят меня по моим статьям в блоге (по созвучным проблемам).

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

Поэтому клиенту лучше сделать быстрее и бюджетнее. Пусть это будет работать медленно и не идеально. Главное, чтобы работало хоть как‑то.

Есть такой старый и уже немного подзабытый принцип программирования KISS, что в переводе обозначает — «делай это проще дурачок». А еще говорят, что дурачкам легче живется.

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

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

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

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

Там есть два способа вмешательства — можно вставить код до или после типового кода, а можно заменить кусок типового кода.

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

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

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

Большой поток хейта вызвало моё мнение, что запросы в цикле — это не всегда плохо.

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

У клиента 20 заказов в день планируется на срок не более месяца, соответственно в плане может быть максимум 600 заказов.

Я написал получение суммы оплаты простым запросом. Этот запрос выполняется 0.5 секунд:

Максимальное время, которое может работать отчет за месяц - 300 секунд (5 минут).

Да, можно переписать запрос так, чтобы он работал по всем заказам в целым и это на 50% увеличит скорость работы отчета. Отчет выполнится за 150 секунд (2.5 минуты).

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

На самом деле обычно этот отчет формируется за 1 минуту и объяснять клиенту лишних 4.500 рублей на написание отчета тягой к идеалу не хочется.

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

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

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

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

  4. Документации кода и алгоритмов нет и не планируется, даже на закрытых ресурсах.

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

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


  1. Naf2000
    01.12.2023 12:09
    +6

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

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

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


    1. AlexeichD
      01.12.2023 12:09
      +1

      да ладно, нормально все)) главное чтобы заказчику нравилось, а ему (судя по всему) нравится

      К тому же, запросы в цикле частенько и в типовых встречаются много где. А вообще надо думать головой. Если переколбасить 100-200 строк таблицы, то можно и в цикле запросом. А если ожидаемый объем данных миллионы строк то тут да, лучше углубиться в оптимизацию

      Запросы в цикле, применение вложенных запросов и собственные группировки вместо виртуальных таблиц, встречаются повсеместно и вполне себе заслуживают право на жизнь


      1. fixin Автор
        01.12.2023 12:09
        +1

        Да, все хорошо в меру. Товарищи, которые привыкли палить из пушек, будут и по воробьям из пушек палить, не взирая на "стоимость выстрела".
        Клиенту нужны не красоты кода, а результат, вписывающийся в бюджет.


      1. l4h
        01.12.2023 12:09

        тоже на фрилансе и давно. мелкий бизнес.

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


        1. fixin Автор
          01.12.2023 12:09

          Хотелось бы примеров. Звучит как банальное приосанивание.


    1. fixin Автор
      01.12.2023 12:09

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

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


  1. CrushBy
    01.12.2023 12:09
    +1

    Там есть два способа вмешательства - можно вставить код до или после типового кода, а можно заменить кусок типового кода.

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

    Как надоело бороться с этими разработчиками, которые все классы и методы public'ами не делают. Вот что им, жалко что ли ?


    1. fixin Автор
      01.12.2023 12:09

      1С - это лучшая в мире Rapid App Development среда для приложений баз данных


      1. CrushBy
        01.12.2023 12:09

        Нет. lsFusion - гораздо лучше как RAD. Просто исторически 1С захватила большую долю рынка. А с технической точки зрения - это просто устаревший мамонт.


        1. fixin Автор
          01.12.2023 12:09

          Ну мне то это не рассказывайте. Вы переборщили с декларативным подходом. Был бы такой же подход, как в 1С, цены бы вам не было. Хотя может Фузиной можно пользоваться, императивно, без всех этих триггеров?


          1. CrushBy
            01.12.2023 12:09

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


            1. fixin Автор
              01.12.2023 12:09

              Вам память изменяет. Это был не я. Я вообще не сравнивал 1с шестерку с Фузиной.


          1. Naf2000
            01.12.2023 12:09

            Чем плох декларативный подход? Вон в 1с скд тоже вполне декларативен.

            И почему триггеры это декларативно?


            1. fixin Автор
              01.12.2023 12:09

              Всему свое место, в том числе и декларативному подходу.

              Все же код на языке 1С пишется на 80% императивно и это хорошо.

              Потому что большинство программистов все же пишут на императивных языках


        1. SergioT4
          01.12.2023 12:09

          Запили бы конвертер с 1с, так может и потянулась бы аудитория.


          1. fixin Автор
            01.12.2023 12:09

            Конвертер чего куда? Не могу. На это нет бюджета, а я писал про ипотеку.


            1. SergioT4
              01.12.2023 12:09

              Это не вам был ответ, а про isfusion.

              А вам по поводу ваших проблем с ипотекой - на них надо посмотреть с другой стороны.

              Если делаешь всё сам, то масштабирования дохода не получится, всё равно упрёшься в бутылочное горлышко, даже с учётом того что будете обманывать по срокам, то больше чем 100 часов в неделю сложно выставить, т.е. получается предел в районе 100 * 4 * 3000 = 1 200 000 руб.

              Так что можно вводить новые виды услуги - 3000 много, говоришь ок, я тебя отрекомендую заслуженному человеку, который возмёт 2000, тот человек тебе долю заносит.

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

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


              1. fixin Автор
                01.12.2023 12:09

                Я вижу выход в разработке и продаже тиражных решений (обработок, расширений). Уже сейчас кое-что продаю, надо увеличивать объемы.


        1. itmind
          01.12.2023 12:09

          Почему если делают RAD систему, то обязательно придумывают свой уникальный язык (DSL)? Все равно код будет писать не менеджер или бухгалтер, а программист. Программистам же проще использовать привычные языки для разработки. Использовали бы, например, Python или Kotlin, на которых можно вполне сделать подходящий DSL и возможно RAD бы пользовалась большим спросом.


          1. fixin Автор
            01.12.2023 12:09

            Язык в 1С - дело десятое. Язык в 1С по сути - это VBA (Visual Basic).


            1. itmind
              01.12.2023 12:09

              Я про IsFusion. В 1с язык более менее привычный.


      1. JoshMil
        01.12.2023 12:09

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

        Пока 1с спасается только специфичным рынком на котором часто 1с это стандарт.


        1. fixin Автор
          01.12.2023 12:09

          Увы, но сообщество 1с-ников и сама 1С никак не связаны между собой. У 1С свое "видение" и разработчики её особо не беспокоят.

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


          1. heiheshang
            01.12.2023 12:09

            А куда потекли ?


            1. fixin Автор
              01.12.2023 12:09
              +1

              В "большое IT", классическое, я бы сказал. Там где есть git, code review и т.п.

              То бишь молодежи счас в 1С идти не особо интересно.

              Молодежь она хочет великих проектов, а не урывать куски, брошенные снисходительно от 1С.


              1. heiheshang
                01.12.2023 12:09

                Вроде в 1С есть git, code review и объем кода любой конфиги не меньше чем в великих проектах.


                1. fixin Автор
                  01.12.2023 12:09

                  git можно даже к ассемблеру прикрутить. 80% 1сников не применяют это все, потому что реализовано это через одно место и не востребовано.


              1. tremp
                01.12.2023 12:09

                Да даже просто за большими деньгами. В 2019 сам так утек.


                1. fixin Автор
                  01.12.2023 12:09

                  Есть и такая "текучка"


        1. Ulrih
          01.12.2023 12:09

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


          1. fixin Автор
            01.12.2023 12:09

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


      1. Ulrih
        01.12.2023 12:09

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


        1. fixin Автор
          01.12.2023 12:09

          нормальный там язык.

          в целом 1с для баз данных очень даже хорошая вещь.

          видал я индийский Zoho Books, популярная бух программа в USA, вот там да, каменный век.

          А MS Navision - там вообще замшелый Access.

          Бухгалтерам и учетчикам для бизнеса не нужны новинки особо. Поэтому в USA Кобол еще применяют.


  1. nick-for-habr
    01.12.2023 12:09
    +3

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

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

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

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

    "Потом" наступает когда заказчик вляпается в последствия этой мнимой "экономии", и ему скажут: купите уже новый сервер, ваш прошлогодний не тянет, а ещё лицензии КОРП - у вас же "хайлод" (100 юзеров, ага). Ну и надо оплатить доработку по оптимизации "кривого кода 1С" (это же 1С писала, только они могут говнокодить). А администратора не слушайте, они все гики странные, в бизнеспроцессах ничего не понимают. И сервер не горит, а слегка дымится только. Всё равно его менять надо...

    Вот как-то так. Вы правильно поняли - у меня бомбит. Простите.


    1. fixin Автор
      01.12.2023 12:09

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


    1. Raptilia
      01.12.2023 12:09

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

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

      По настройке ms sql - на сайте ИТС есть неплохой мануал, рекомендую. Также там есть хорошая статья по блокировкам.


      1. fixin Автор
        01.12.2023 12:09

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


        1. nick-for-habr
          01.12.2023 12:09
          +1

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

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

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

          Большинство конечно (снова как и везде) - ремесленники, 'отбивающие" полученные когда-то знания за "среднюю ЗП по рынку". Ну и маргинальные группы странных личностей типа "вайтишников", "непризнанных гениев" и прочих - куда без них, их в IT наверное больше среднего процент.

          Смешивать всех этих разных людей, клеить один ярлык на всех - зачем? Потешить ЧСВ, почувствовать превосходство? По мне так это как ссать в лифте: у кого-то и мысли такой не возникнет, а кому-то - "кайф"...

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


          1. fixin Автор
            01.12.2023 12:09

            Да, я не страдаю синдромом самозванца, не зря вхожу в топ инфостарта.

            А сумма ипотеки вас смутила разве? Каких-то 98к в месяц.

            Да, я не понял к чему ваш пассаж, аргументов и конкретики ноль, одни эмоции.

            Вы если дозреете до конкретики, спрашивайте.


      1. Naf2000
        01.12.2023 12:09

        Так вы в блог сходите к автору


        1. fixin Автор
          01.12.2023 12:09

          Спасибо за пиар.


    1. sneakerclouder
      01.12.2023 12:09

      Я продолжу. Вам раз в неделю говорят что 1С тормозит, говорят настройте еще, говорят надо уйти с виртуализации, потом что надо shared memory, потом "а давайте обратимся к Гилеву". Быстрее не становится, и заказчик таки тратит 3 миллиона на новые сервера и получает 8 секунд вместо 12 на тестовом прогоне, разводит руками и штатный программист говорит тебе:"ну это 1С, она говно".


      1. fixin Автор
        01.12.2023 12:09

        Если мне предлагают оптимизацию, я говорю возможна они или нет. Причем под "возможна" я подразумеваю резкое увеличение производительности, а не "рефакторинг" ради 5% прироста скорости. ;-)


        1. Naf2000
          01.12.2023 12:09

          Рефакторинг это не прирост скорости. Иногда даже наоборот


          1. fixin Автор
            01.12.2023 12:09

            а иногда очень даже и прирост.


  1. andyblaster
    01.12.2023 12:09
    +1

    Такое, конечно, забавное противоречие есть в содержании статьи, которое автор даже не замечает)

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

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

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

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


    1. fixin Автор
      01.12.2023 12:09

      Все бы это было хорошо, если бы не мой опыт работы во франче, где командная работа заключается только в том, что если сотрудник А заболеет, то его заменит сотрудник Б. И таких франчей 80%.

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

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

      Так что извините, философию не до конца понял и ужасы.

      У клиентов есть потребности, их решаю оптимально.

      Я про ехать а не "шашечки".


      1. andyblaster
        01.12.2023 12:09
        +1

        У меня еще больше вопросов появилось)

        1. Выходит, критерием оптимальности выбрана скорость разработки, и соответственно снижение стоимости доработки для клиента? А почему именно такой шкурный и не очень объективный критерий? Как стоимость доработки соотносится с принципом KISS, если это больше инженерный, а не бизнесовый принцип?

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

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

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

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

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

        P.S. Чудес не бывает, балабольство не заменит профессионализма. Знаю человека, который заруинил проект так, что последствия несколько лет разгребают мои бывшие коллеги. Тоже, кстати, руководствовался "простой" доработки. А теперь этот человек выступает на конференциях и пытается нести просветительскую функцию. Это отвратительно из-за лицемерия и непомерного эго. Потому что он сорвал выгоду в моменте, а страдает вместо него развалившаяся компания (и все ее работники), по карусели меняющая сторонние продукты, пока внутренний отдел судорожно перекладывает 1С систему на новые рельсы.


        1. Mes
          01.12.2023 12:09

          Знаю человека (в одиночку?), который заруинил проект так, что последствия несколько лет (что?) разгребают мои бывшие коллеги (несколько коллег и несколько лет?)

          ....

          страдает ... развалившаяся компания

          Сказки какие-то


          1. andyblaster
            01.12.2023 12:09

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


            1. fixin Автор
              01.12.2023 12:09

              У больших кораблей большие проблемы. Я не про команды, а про гордый одинокий фриланс.


          1. fixin Автор
            01.12.2023 12:09

            От софта компания разваливается крайне редко.


        1. fixin Автор
          01.12.2023 12:09

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

          2. Сигнатуры функций я не исправляю потому, что это вызовет доп. затраты у клиента в будущем при обновлениях 1с.
            А сложный запрас оттого и сложный, что в 1С не реализованы необходимые механизмы в SQL, чтобы запрос был простым.
            Не кратно, а лишние 1.5-2 часа работы там, где это не нужно. Ради чего?
            Человеко-часы хорошая и удобная сторонам система оценки, если есть доверие и работаешь по факту.
            Это проще, чем каждый раз ТЗ писать, куда риски закладывать.

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

          4. Конечно могут. На сайте и на инфостарте выкладываю свои решения в большом объеме. Мне стыдиться нечего. Комьюнити почитываю, по работе иногда задаю вопросы на инфостарте, тут норм.

          5. Вот моя страница для клиентов: https://geniy1s.ru/services/
            Но они обычно приходят или по сарафану или по статьям на моем сайте (по схожим проблемам), я даже выключил профиль на kwork, откуда изначально брал клиентов, т.к. входящий поток клиентов большой.

          Выводы вы сделали странные про уши, но это ваше видение. Я как доктор, всегда честен с пациентами-клиентами. Я могу и дорого сделать, но ни клиент ни я не видят в этом смысла.

          Время - лучший судья. Я уже 20 лет в 1С и пока ничего не заруинил. Ну и главный критерий - спрос со стороны клиентов. Так что за "социальными доказательствами" мне не надо далеко ходить...


          1. Konstantin_kas14
            01.12.2023 12:09

            Извените, чуть вклинюсь, только прочел)

            1. Т.е. заменить в запросе прим.: "Номенклатура.Ссылка = &Номенклатура" на "Номенклатура.Ссылка В (&МассивСсылок)" стоит 2 часа?

            2. Как то плохо коррелируется 20 лет опыта и 4 часа разбираться в типовом коде)


            1. fixin Автор
              01.12.2023 12:09

              Ну если вы хотите деталей, то пожалуйста.

              Оплата по заказу на дату Х получается как

              РегистрНакопления.Оплаты.Остатки(&Х, Заказ = &Заказ)

              Там календарь, то бишь много дат, много заказов. Допустим есть таблица Т с полями Заказ, Период

              Можно было бы так:

              ИЗ Т ЛЕВОЕ СОЕДИНЕНИЕ

              РегистрНакопления.Оплаты.Остатки(Т.Период, Т.Заказ)

              Но 1С так не умеет. Поэтому виртуальную таблицу Остатки надо расписывать через суммирование оборотов. Это геморрой.

              Можно оптимизировать, сделав запрос по каждому периоду отдельно. Но для 200 заказов нет смысла.


              1. Naf2000
                01.12.2023 12:09

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


          1. andyblaster
            01.12.2023 12:09
            +1

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

            На мисте было забавно, что самые дельные советы давал чувак с ником Ненавижу1С. Если экстраполировать эту обратную пропорциональность, выводы по поводу выбранного псевдонима получаются забавные) А по факту, ваши топовые публикации на инфостарте датированы преимущественно 2010-2016 гг., содержат специфичные простенькие инструменты, отстраненный пересказ официальной документации и полумеры исправления типичных заблуждений среднего специалиста на время переходного периода, пока не появился интерфейс "Такси" и куча ништяков от 1С. Мне кажется, гениальность все же по сути своей предполагает больший размах, нежели может обеспечить специфичный рынок фриланса.

            Система 1С настолько плохо документирована и порочна

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

            мой код и у меня на сайте и на инфостарте

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

            В общем, честно, не принимайте на свой счет и не думайте, что я перехожу на личности. Я сам не знаю, чем буду заниматься в 46 лет и как обеспечивать нужды свои и семьи, и не представляю пределов, как сильно можно инвертировать положительные стороны характера ради выживания. Но меня искренне возмутило приплетание принципа KISS в заключительном аккорде статьи, потому что он вооообще не про то, что вы пишите.

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


            1. Naf2000
              01.12.2023 12:09

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


              1. fixin Автор
                01.12.2023 12:09

                Ваши рыжие кудри примелькались


            1. fixin Автор
              01.12.2023 12:09

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

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

              3. Перепроверка стоит денег, да. А зачем она им, если они знают, что я делаю хорошо.
                Вот тут https://geniy1s.ru/category/practice1s/ есть мои решения у клиентов, обычно смысл решения публичен и коды есть и объемы работ. Можно смотреть.

              4. и про что же KISS на ваш взгляд? Не понимаю вашего возмущения. Про настоящую магию не понял - слишком сложно, а это нарушение KISS. Простота - залог успеха, в этом настоящий KISS.


  1. Konstantin_kas14
    01.12.2023 12:09
    +1

    Я конечно фрилансером не работал, но зато разгребал после них конфигурацию клиента. У которых, кстати, при обращении к нам в фирму помимо основного запроса вроде обновления доработанной конфы или переход на ERP, был и побочный: "если там есть доработки фрилансеров - все убрать" - написал один прошаренный заказчик в своем функциональном ТЗ)

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

    Я к счастью уже работаю в проектном отделе корп сектора, где только крупный бизнес с проектами внедрения на несколько лет и командами разработки от 15 программистов на проект. Так что без жесткого соблюдения реоламента просто нельзя.

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


    1. fixin Автор
      01.12.2023 12:09

      >>  в коде полный набор: найти по наименованию, обращения через точку (вплоть до 7 раз в одном месте), общий хардкод, который работает только здесь и сейчас или в лучшем случае до ближайшего обновления. Общая неоптимальность всего, что можно. Про читаемость я просто молчу.

      Все это лечится опытом и от формата работы франч/фрилансер не особо зависит. Я уже писал что 80% сотрудников работают с клиентом 1:1 без коде ревью, в своем стиле и вот это все. Поэтому отличить доработки франча от фрилансера невозможно.

      >> ибо он уродует конфигурации, которые потом кому то другому придется за ним исправлять.

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

      У корпоративщиков непонимание, что в реальном мире не всегда надо копать бульдозером, иногда эффективнее лопатой.


      1. Konstantin_kas14
        01.12.2023 12:09
        +1

        Все это лечится опытом и от формата работы франч/фрилансер не особо зависит. Я уже писал что 80% сотрудников работают с клиентом 1:1 без коде ревью, в своем стиле и вот это все. Поэтому отличить доработки франча от фрилансера невозможно

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

        Как раз я и даю клиенту оптимальное решение

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

        И если его надо направить во франч, чтобы с ним работала команда, я ему и говорю, что один не потяну.

        Тут похвально. Ибо некоторые программеры пытаются уперется и вытянуть в одиночку многое.

        У корпоративщиков непонимание, что в реальном мире не всегда надо копать бульдозером, иногда эффективнее лопатой

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

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

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

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


        1. fixin Автор
          01.12.2023 12:09

          1. Code Review в 1с - не смешите мои тапочки. за 20 лет не встречал, хотя работал во франчах.

          2. То что решение оптимальное, я понял из своего опыта.

          3. Рекомендации ИТС часто высосаны из пальца, а следование им привело 1С к ужасному коду типовых в угоду производительности. Это мое мнение.

          4. Речь не про максимально дешево, а про оптимально.