Ещё немного критики 1С

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




    Перед тем как начать


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

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

    Мои пять копеек про «тормоза 1С-ки»


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

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

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

    Печаль не в том, что есть такое явление, а в том, что когда я, например, первый раз с этим столкнулся, я вообще не знал с чего начать – в 1С-ке нет штатного средства для борьбы с этим недугом. Хотя явление довольно частое. Я думаю, многие со мной согласятся, что в меню конфигуратора должен быть пункт, посвящённый этой проблеме.



    На сегодня мы имеем средство, но оно где-то в недрах «Центра управления производительностью», который входит в состав «Корпоративного инструментального пакета», который стоит, в общем-то недёшево. Кроме того, документация на него доступна только по подписке ИТС (Техно достаточно). Есть, конечно, сторонние средства, например вот это.

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

    Вариант 1. Часть разработчиков 1С заменяют на разработчиков SQL. Из конфигурации выдирается всё, что связано с БД. Пишется новая БД, где содержится вся логика. А формы общаются с новой БД только посредством вызова хранимых процедур. Обмен с другими БД налаживается через тот же Service Broker. В результате это всё работает очень быстро. Остаётся одна неприятная мелочь — из 1С-ки нельзя передать в хранимую процедуру таблицу значений. Вместо этого передают XML или JSON.

    Здесь есть продолжение. Когда приходит время покупать очередной пакет лицензий на 300 рабочих мест, возникает понимание, что и разработчики 1С стоят недёшево. В результате возникает идея заменить «морду» 1С на PHP или C#.

    Вариант 2. Компания пытается внедрить SAP.

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

    Обмен данными и конфигурации


    Модульность лучше, чем монолит. Так? Хорошо, когда получается при разработке разбить целое на части. Когда в 1С работает 20+ пользователей, уже было бы неплохо развести всех по разным углам. Сделать так, чтобы у каждого направления была своя конфигурация. Например, у склада своя, у контента своя, у курьеров своя и у бухгалтерии, понятно, тоже. Так и блокировок меньше. Много маленьких конфигураций лучше, чем одна здоровенная. Развивать проще и т. п.

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

    У меня реально уходит дофига времени, чтобы состыковать конфигурации, даже которые крутятся на одной версии платформы. Я не говорю про состыковку типовых конфигураций, в которых уже написан обмен. Хотя и здесь есть порой чему удивиться. Например, если бухгалтер загружает документы к себе в базу раз в квартал (вот так бывает удобней человеку), то время выгрузки и загрузки измеряется часами. Из одной типовой в другую типовую. Я как-то раз посматривал за обменом, который длился более десяти часов. А представляете, если бы возникла какая-то ошибка? Это ты устранил, поставил снова загрузку… бац! Опять.
    Такое бывает. Например, ставлю чисто ради статьи выгрузку из типовой УТ11.3 через универсальный формат с настройками по умолчанию (Другая программа…). Спустя три часа:
    Во время отправки данных возникли ошибки(см. журнал регистрации).

    Путь к менеджеру обмена не указан (пусто, значит используется менеджер по умолчанию). Смотрим журнал:
    Событие: Отправка.
    Объект: Статья движения денежных средств, Убыток от курсовых разниц (e1cib/data/Справочник.СтатьиДвиженияДенежныхСредств?ref=ae8500259075533411e7205499471b7a).

    {ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(4605)}:
    Не найдено ПОД для объекта метаданных.
    Объект метаданных:.
    ВызватьИсключение ТекстОшибки;

    Что это? Почему? За что? Допустим, что ПОД – это правила обмена данными…

    Ничего не хочу говорить про обмен с интернет-магазином. Просто дам пару советов, для тех, у кого дофига номенклатуры и/или свойств, вдруг кто не знает: чтобы он не «молотил» часами, первым делом нужно отключить передачу картинок. Картинки нужно закачивать отдельно на ресурс сайта (например, FTP-сервер картинок). Для этого делается регламент, в нём отслеживаем изменения в картинках (например, по версии данных) и передаём. В разных компаниях я видел разные реализации, но суть такая.

    Итак, состыковка прикладных решений. Существует специальная конфигурация «Конвертация данных 3.0». Однако, чтобы всё получилось, необходимо указать такую мелочь, как файл с текстом модуля «МенеджерОбменаЧерезУниверсальныйФормат» (для УТ11.3 модуль содержит 46+ тыс. строк кода). Где запрятан генератор этого модуля? А если у тебя новая пустая конфигурация?

    Вы скажете — используй XML-сериализацию, кто мешает? А я думаю, вот было бы здорово: сделал в обеих конфигурациях одинаковые объекты, ткнул правой мышкой на каждом прямо в дереве конфигурации и выбрал в какую конфигурацию нужно передавать данные. А в модуле объекта пару событий на эту тему (Перед передачей данных, перед получением данных). И чтобы быстро передавалось. Правда, это всё где-то на грани фантастики. Это как полёт человека на Марс.

    Тогда так. Вот было бы здорово, если бы функция «ПланыОбмена.ВыбратьИзменения» принимала максимальный размер выбираемой пачки. Не сразу всё, что там накопилось, а например пачку в 100 штук. На следующей итерации – ещё 100 штук. И так далее. Она и отрабатывать будет быстрее, если изменений много образовалось. И блокировать будет недолго.

    Совместимо с 1С




    Изобретать велосипед плохо. Особенно если не собирался этого делать. Вместо того, чтобы вкладываться в разработку собственного продукта, выгоднее купить готовое тиражное решение. Это может быть анализ продаж, подсистема логистики, там маршруты, адреса, курьерское приложение, да что угодно. Вот здесь описаны правила на возможность получить значок «Совместимо с 1С». Часто готовые решения предлагаются на базе отличных от 1С платформ. В правилах о таких решениях сказано немного:
    К сертификации принимаются следующие группы программных продуктов:
    ...
    8. программы, поддерживающие обмен данных с 1С: Предприятием на уровне файлов;
    9. программы, имеющие другие способы взаимодействия с 1С: Предприятием (рассматривается индивидуально).

    Общие требования

    1. Программный продукт должен быть предназначен для тиражного распространения, и не иметь ориентации на конкретное внедрение.
    2. Продукт должен иметь руководство в печатном виде.
    3. В руководстве должно быть в явном виде описано взаимодействие продукта с 1С: Предприятием.
    ...
    5. Все продукты, ориентированные на конечного пользователя, должны иметь средства установки.
    6. При внесении исправлений или изменений в сертифицированный продукт разработчик обеспечивает соответствие измененного продукта требованиям, предъявляемым при сертификации. В случае внесения изменений, нарушающих требования сертификации, фирма «1С» имеет право приостановить действие сертификата.

    Требования к продуктам, интегрированным на основе обмена файлами.

    Программные продукты, интегрированные с системой “1С: Предприятие” на базе обмена файлами (загрузки / выгрузки) должны со стороны 1С: Предприятия использовать штатные средства 1С: Предприятия, предназначенные для работы с файлами формата TXT и DBF.

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

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

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

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

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

    Но самое неприятное, когда лейбла «Совместимо с 1С» нет. А написано что-то вроде:
    Есть типовая интеграция для 1С:
    — Управление торговлей 10.3 и 11.3
    — Комплексная автоматизация 2.0
    — Управление производственным предприятием
    — ERP

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

    Вот и весь разговор. Построже нужно с такими ребятами. Гайки бы подзакрутить. Интересно узнать у юристов — могут ли у себя на сайте кто попало писать, что у него есть «интеграция с 1С»?

    Управляемые формы


    Насколько классный конструктор по созданию управляемых форм! Есть недочёты (например штатную строку поиска нельзя использовать для всех табличек, или при отображении бывает всякое), но в целом создавать формочки очень удобно. Разгул творчества максимально ограничен. Разработчик защищён от ошибок проектирования интерфейса (можно только сделать слишком перегруженную форму). Они у разных разработчиков получаются одинаковые. Формочки получаются красивые. За это хочется сказать спасибо всем, кто это придумал. Ребята – это классно, так и должно быть.

    Возможность это всё опубликовать и открывать в браузере – открывает широкие возможности и вообще, просто здорово. Есть некоторые недочёты, но со временем они уйдут.



    То, что касается кода – так уж получилось, что архитектура управляемых форм замедлила разработку. У меня есть кое-какая статистика, в зависимости от разработчика и от назначения формы, если не учитывать простые, где нужно просто реквизиты на форму накидать – то замедление составляет где-то в 2-4 раза. Это касается только самих форм + асинхронность. Но с этим видимо ничего не поделаешь.

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

    Из основного вроде бы всё


    Я уверен, что ребята из 1С сами обо всём этом знают. Но, как я уже говорил в начале, большая инерционность продукта и сложность проблем не позволяет «это сделать прям щас».
    До встречи в комментах!
    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 152
    • 0
      Поправьте «пачичку»
    • +1
      Хаб «1С-Битрикс», по-моему, лишний для данной статьи. Желательно сделать отдельный хаб по данной теме, учитывая количество статей на хабре по тегу «1С».
      • 0
        Убрал.
        • +1
          есть хаб «ERP-системы». Мне кажется, имеет смысл добавить его.
          • 0
            Хм… а и верно
            • 0
              С одной стороны да, с другой стороны 1С — это, в общем случае, совсем не ERP
      • +1
        Тогда так. Вот было бы здорово, если бы функция «ПланыОбмена.ВыбратьИзменения» принимала максимальный размер выбираемой пачки. Не сразу всё, что там накопилось, а например пачичку в 100 штук. На следующей итерации – ещё 100 штук. И так далее. Она и отрабатывать будет быстрее, если изменений много образовалось. И блокировать будет недолго.

        Мы у себя реализовывали подобный механизм для обмена с мобилкой (тоже на 1с через планы обмена). Методу ВыбратьИзменения можно передать массив содержащий только часть данных, а массив можно получить из таблиц изменений. Выглядит в результате это так себе, но работает.
        • 0
          Можно. Делаю так же.
          • 0

            а запрос по изменениям с "первые н" не получается?

            • 0
              А как потом выбрать с N+1?
              • 0
                Снять с регистрации.
                • 0
                  Снять с регистрации
                  — возможна проблема, если выгрузка прервётся, а вся регистрация уже снята…
                  • 0
                    Снятие надо делать после выгрузки файла.
                    • 0
                      Да, поэтому вариант
                      а запрос по изменениям с «первые н»
                      не подходит
                      • 0
                        Почему?
                        Я выгружаю в ТЗ «первые н».
                        Выгружаю это все в файл.
                        После закрытия прохожу и удалитьрегистрациюизменений.
                        • 0
                          При таком подходе встаёт вопрос — будет ли корректно воспринята такая частичная загрузка в целевую систему
                          • 0
                            Ну ок, выгрузили в файл (впрочем с мобилкой файлы использовать очень странно, логично когда обмен напрямую через http), а файл кто то повредил или удалил. И что делать с потерянными данными?
                            • 0
                              Верно. Для надёжности регистрацию надо снимать только после получения от второй стороны подтверждения о загрузке выгруженных данных.
                              • 0
                                Вот мы и вернулись к тому что все равно где то нужно фиксировать какие данные мы выгрузили и как то получать информацию что загрузка прошла успешно. И тут можно прикрутить что то свое, но лучше для упрощения все же платформенные методы использовать.
                  • 0

                    удалитьрегистрациюизменений по обработанным в предыдущей пачке

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

                        а не надо лениться, риб избаловал

                        • 0
                          А разве он чем-то глобально плох?
              • +3

                Читаю и удивляюсь очередной раз


                Про тормоза


                • на доске 5 одинаковых карточек — ага походу канбан, так как был бы SCRUM — владелец продукта обязан бы взять PBI и FEATURE в работу на спринт, связав их с 5 тасками. вижу у вас в публикации TFS, значит вы знаете что такое PBI.


                • конфликт блокировок говорите — ну да, вне зависимости от языка программирования вам придется думать о блокировках и дедлоках, в пустой платформе без прикладного кода — блокировок то нету. написали прикладной код — конфликты блокировок появились… хм причина скорее всего в прикладном коде. Или опять виноваты абстрактные платформы — наверное плохой MSSQL и PostgreSQL


                • чистые решения без доработок — если система живет более 3-ёх месяцев и пользователи её используют, давно пора привыкнуть что дорабатывать придется, плагинами, патчами, расширениями ( на СиДиез, на PHP и на 1C — неважно). Чистая система бывает только в вакууме.


                • ServiceBroker как средство интеграции и хранимые процедуры — архитектурное решение из зоны 2000-2008: работать работает, но дорого и неподдерживаемо. Мне интересно как вы автотестирование будете на таком решении делать.


                • SAP — это для капитализации, а не для пользователей. Его покупают не чтобы внедрить, а чтобы капитализировать компанию.


                • ERP на PHP мы уже видели, есть даже на Python — проблемы теже и и чаще еще хуже.

                Все тормоза 1С связаны только с одной вещью — дефектами прикладного кода допускаемыми программистами. НУ и еще с неумением проектировать "нормальные" метаданные.


                Делюсь цифрой — блокировки можно разрулить за 40 чавов в первый раз, второй раз за 24, третий раз за 16, финальный раз за 8. После 4 разруливаний следующие разруливания идут всегда за 8 часов включая тестирование через ТестКлиент и накат на продуктив.


                Про обмен данными


                Кто вам сказал что модульность это лучше чем монолит. Слово лучше опасное. Модульность просто другая. Живет по другим законам и в другой концепции.


                Есть примеры компаний в которых 90+ конфигураций 1С, под каждое ЦФО — оно не лучше и не хуже, оно другое. Там много маленьких серваков 1С в горизонте, а не один большой сервер. И отдельное решение для интеграции и трансформации и это не КонвертацияДанных


                И вообще неважно будет это монолит на PHP и микросервисы на PHP, или на С# — архитектура и проблематика будет одинаковая


                Ну и вообще — не надо грузить обмены данных за квартал: снижается гранулярность до минут и секунд. А формат можно и EDI.


                Кстати порционность изменений в ПланахОбмена — это насколько я помню уже имеющаяся давно функциональность, вплоть до "одного изменения". Главное транспорт данных выбрать не файлы и FTP, а использовать штатный сервис SOAP:GetMessages и т.д.


                Про 1С совместимо


                там есть отдельный пункт — не менее 20 продаж, то есть продукт должен иметь реальных пользователей
                плюс продукт при сертификации проходит статический анализ кода
                при выборе продукта 1С Совместимо стоит смотреть на поддержку последних версий платформы и linux. ну и сам сертификат проверять надо: он же может в 1997 году выдан был.


                но на самом деле все эти маркетиновые заявления "МЫ интегрируемся с AmoCRM" — они как бы для любой технологии применительны: пока пилот не построишь не поймешь реально ли вообще это работает или нет. Mailchimp например — все указывают что умеют с ним интегрироваться, однако там же может быть 30-50 разных API объектов, и вот сколько из этих объектов задействовано неизвестно.


                Про управляемый интерфейс в браузере


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


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


                Повышайте компетенцию людей которые стоят с вами перед доской ;-).

                • 0
                  Что сказать. В основном с Вами согласен. Единственно только, там где я говорю о блокировках, обратите внимание — нигде не сообщаю что это как-то зависит от 1С. Наверное много текста в статье.
                  В данный момент моему заказчику блокировки не мешают и он не готов на это потратить даже 8 часов, не говоря уже про 40.
                  Вы для анализа блокировок чем пользуетесь?
                  • –1
                    Как правило, головой и жизненным опытом. Косяки, вызывающие избыточные блокировки, в-основном типичные и вызваны одним и тем же набором причин. Набив на них руку, вы уже беглым взглядом на код можете их выискивать.
                    • 0

                      Да Вы гений. Наверное проверка синиаксиса тоже не нужна.
                      Вот прибегает к Вам человек, мол вот такая ошибка появляется при записи документа.
                      И на что Вы собрались беглый взгляд бросать? Обработчики записи формы документа? Модуля объекта? А если и там всё "чисто"?

                      • 0
                        Я не сказал что что-то не нужно. Я сказал что посмотреть код, КАК ПРАВИЛО достаточно, для выявления подозреваемого куска кода. Инструмент — технологический журнал с настроенным фильтром, затем анализ движений по регистру, кто пишет, кто читает, как именно…
                  • 0
                    не надо грузить обмены данных за квартал: снижается гранулярность до минут и секунд

                    Было бы неплохо. А ещё было бы неплохо, если бы обмен работал побыстрее.
                    • 0
                      А что не так с обменом, точнее где проблема которую нельзя решить?
                      Выборка изменений тормозит — выбирайте изменения по таблицам изменений.
                      С записью изменений проблем не видел.
                      С транспортом проблема? Есть отдельные системы для обеспечения гарантированного транспорта.
                      • 0

                        Так речь шла из одной типовой в другую. Это как бы уже готовое решение. Почему пользователь должен ещё что-то решать?

                        • 0
                          При обмене между типовыми через XML за большой период времени объём выгружаемых данных действительно получается достаточно большой.
                          Тут можно только чаще делать обмен…
                          • 0
                            Вы преподносите это как проблемы платформы, хотя это всего лишь проблемы конкретных прикладных решений.
                            • 0
                              Так ведь типовые конфигурации используют механизмы платформы («бест практикс»).
                          • 0
                            С обменом полный порядок. Но можно улучшить. Даже если ничего особенного не менять, можно повысить скорость обмена в n-раз. Просто разбив на n потоков.

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

                              Также, для высоконагруженных систем или если производительность работы объектов платформы недостаточна для нужного процесса, всегда можно спуститься до уровня базы данных и решить задачу прямой записью в СУБД — это позволяет решить все возникающие проблемы с производительностью обмена.
                              Для меня, средств программного комплекса 1С-SQL, достаточно для решения любых вопросов с обменом.
                              • 0
                                всегда можно спуститься до уровня базы
                                правда лицензионное соглашение прямо запрещает это
                                • 0
                                  Спорное ограничение, которое противоречит действующему законодательству. Также есть коммерческие инструменты которые используют в своей основе прямой доступ к базе 1С ( 1С QlikView connector например), если у фирмы 1С не возникает к ним вопросов, то про остальных и речи нет.
                                  • 0
                                    Он только читает данные.
                                    1С, мне кажется, больше заботит попытка прямой записи в базу.
                                    • 0

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

                                      • 0
                                        Я не спорю — технически это непросто, но возможно.
                                        Просто противоречит лицензионному соглашению 1С.
                                        • 0
                                          Нет. В России реверс инжиниринг уже купленных тобой вещей не запрещен. В отличие от США
                                          • 0
                                            Т.е. вы считаете, что их лицензионное соглашение незаконно?
                                            • 0
                                              Почему? Согласно законодательству РФ вы можете использовать то за что заплатили. Любым способом.
                                              Но только то за что платили.
                                              Крякать можно. Добавлять количество подключений — нельзя
                                • 0
                                  Тому номеру который требуется исходя из логики конкретного решения

                                  Это Вы в уме прикинули. Как нибудь, всё-таки попробуйте написать код параллельной передачи данных.
                                  Если хотите, можно здесь в комментах попробовать.
                                  Я за конструктив. Вполне может быть, что я где-то ошибаюсь. Пока нового ничего не услышал. А было бы здорово получить какое-то новое понимание того, как правильно делать.
                                  • 0
                                    У меня есть реализованный обмен где выгрузка была распаралелена через выполнение фоновых заданий. Алгоритм в кратце:
                                    Разбиваем обмен по сущностям — xml строка по выгрузке каждого объекта метаданных формируется отдельно.
                                    Выборку изменений используем только для присвоения номера сообщений текущим записям в таблицах изменений.
                                    Выгрузку проводим по каждому объекту метаданных запуском отдельного фонового задания с указанием номера сообщений для выборки.
                                    Возвращенные строки XML склеиваем в результирующий файл обмена.

                                    • 0
                                      Какой объём файла обмена обычно получается?
                                      Перечни изменений в какой момент очищаются?
                                      • 0

                                        Чем чаще обмен, тем меньше порции — обычно несколько КБ при ежеминутном обмене.
                                        Очистка стандартная после подтверждения от источника об успешной загрузке.

                                      • 0

                                        Хорошо работает?
                                        Смотрите: вот в поток 1 выбрал 100 изменений. Им допустим был присвоен номер сообщения 51.
                                        Вот поток 2 выбрал ещё 100 изменений. Им бы присвоен номер сообщения… какой? 52?
                                        Ок. Допустим 52. Поток 2 закончил работу. Вызвана функция УдалитьИзменения(52), которая благополучно удалит и изменения с номером 51.
                                        Поэтому я и спросил ранее про номер сообщения.

                                        • 0

                                          И первый и второй поток выбирают изменения для сообщения 51 — в моем случае распаралеливалась выборка данных. Удаление регистрации в данном случае никаких конфликтов не вызывало.

                                          • 0

                                            Так а в чём плюс такого подхода? Почти всё время передачи занимает непосредственно формирование сообщения и его чтение. Это и нужно параллелить.

                                            • 0
                                              Я понял. Вы получаете выборку, запускаете потоки на формирование нескольких сообщений, потом ждёте окончания завершения каждого, потом склеиваете и передаёте на ту сторону. А там наверное снова делите на части, запускаете потоки на чтение частей сообщения, ждёте окончания и так далее.
                                              Я делаю проще: каждый поток на передачу делает выборку и формирует сообщение. Просто в теле сообщения есть информация по своей нумерации.
                                              • 0
                                                Получается, что у вас загрузка полученного файла нестандартная?
                                                • 0
                                                  А что поделать? Загрузка процентов 65-70 времени занимает от всей передачи.
                                                  Но это только там, где стояла задача по скорости. В основном стараюсь классические схемы применять, строго по букве руководства, второй том.
                                        • +1
                                          Я в таком случае регистрировал на фэйковые узлы через раунд робин и выгружал/загружал параллельно. А «основной» узел только для передачи конфигурации был.
                              • 0
                                Просто поставлю две цитаты рядом:
                                порционность изменений в ПланахОбмена — это насколько я помню уже имеющаяся давно функциональность

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

                                  Мне кажется Вы не очень внимательно прочитали просто.
                                  • +2
                                    Просто он дилер 1С.
                                    А еще, для меня фразы типа «Все тормоза 1С связаны только с одной вещью — дефектами прикладного кода допускаемыми программистами. НУ и еще с неумением проектировать „нормальные“ метаданные.» пахнут маркетингом. 2й свежести.
                                    • +2

                                      Уберите из предложения буквы 1С и фраза не потеряет актуальности :)

                                      • 0
                                        Фу как не культурно. Лично персонально Я дилером 1С не являюсь. Своим комментарием я в очередной раз предлагаю убрать слово 1С оставив остальные тезисы критики. И все тезисы критики будут подходить для любого фреймворка и любой технологии.
                                    • 0
                                      И отдельное решение для интеграции и трансформации и это не КонвертацияДанных

                                      Про это было бы интересно по подробнее. Что за решение?
                                      • 0
                                        На выбор — WSO2, IBM BlueMix, Axelot Data Integration… есть примеры использования Shutle.ESB, BizTalk, а также облачных Microsoft Flow и Zapier

                                        Есть даже ZatoESB интеграция для 1C

                                        Про RabbitMQ говорить не буду — он просто транспорт, а трансформацией не занимается.
                                    • 0
                                      С точки зрения блокировок: Есть системы с ~5000 одновременных пользователей(25к в целом)
                                      и они работают и проблем с блокировками не испытывают. но там каждый запрос, и каждая процедура проходит ревью на предмет избыточных блокировок.
                                      Так что я пришел к выводу, что в большинстве случаев «специалисты 1с» не особо заморачиваются и дергают данные довольно бездумно, а это порождает те самые пресловутые «Блокировки».
                                      • 0
                                        В 1С запросы бывают только на чтение. Запросы на запись изолированы от разработчика.
                                        каждый запрос, и каждая процедура проходит ревью

                                        «специалисты 1с» не особо заморачиваются и дергают данные довольно бездумно

                                        Я бы так не сказал. Давайте напишем:
                                        ДокументОбъект.Записать();

                                        Теперь проведите ревью этого кода. Ничего страшного не видно?
                                        Давайте выполним с записью запросов к базе. Похоже мы дёрнули бездумно много данных.

                                        Я же пишу про то, что инструмент нужен, простой и доступный, для поиска и анализа блокировок.
                                        • 0
                                          Автоматическая проверка конфигураций он называется — если из бесплатных.
                                          • 0
                                            нужен, простой и доступный, для поиска и анализа блокировок
                                            • 0
                                              Как Вы себе представляете работу такого инструмента, как в Вашем скрине?
                                              В простом случае, например, у меня есть блокировки, а у Вас на тех же данных нет, что даст такой инструмент? Что он покажет?
                                              • 0
                                                Есть вот замер производительности. Он пишет происходящее в отлаживаемом сеансе. Просто нажал, поработал, отпустил, изучаешь результат.

                                                Есть технологический журнал — он пишет то, что происходит во всех сеансах.
                                                Собственно, ничего нового я не ожидаю. Должно показать, что Вы или кто-то ещё ожидали там-то на блокировке столько-то, в другом месте — столько то. Может быть также — нажал, подождал, отпустил, изучаешь. Тыкаешь в строку и видишь причину (или список причин), из-за которого происходило удержание на блокировке.
                                                Что-то такое.
                                                • +1
                                                  ИМХО, анализ блокировок не является функцией среды разработки.
                                                  Скорее относится к СУБД и сильно от этого зависит.
                                                  • 0

                                                    Вы большой молодец. Еслиб мог поделиться шоколадкой, угостил бы. Поставлю плюсик тогда.
                                                    Вот вам инструмент БД показал, что запрос, что-нибудь вроде "INSERT INTO ##T436(_Fld0298, _Fld0292)… и так далее блокируется такого же вида запросом. Я знаю MS SQL вам даже визуальную схему нарисует. И чего дальше?
                                                    А управляемые блокировки?
                                                    Да и почему не иметь всё в одном месте? Особенно если взаимодействие с кодом не помешает.

                                                    • 0
                                                      Конфигуратор — это комплексный продукт, который предназначен не только для разработки, но и для отладки (это в 7.7 были разные программы). Я тоже не вижу особых проблем с настройкой технологического журнала напрямую из конфигуратора с последующим анализом накопленной информации. Обеими руками за такую фичу!
                                                      • 0
                                                        Да, так, безусловно, было бы гораздо удобнее настраивать отборы для ТЖ.
                                                • 0
                                                  А от Гилева сервис чем плох?
                                                  • 0

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

                                                    • 0
                                                      Но эта проблема не стоит у подавляющего большинства клиентов 1с, у которых до нескольких десятков человек в базе.
                                                      Я согласен, что инструмент был бы полезен, но надо понимать, что у 1с другие приоритеты.
                                                      • +1
                                                        Тут затраты для 1с не велики. А профит может быть существенен.
                                                        • 0
                                                          Ваш комментарий весьма кстати. Меня уже почти убедили, что цвета формочек важнее.
                                                  • +1
                                                    Я же сознательно указал статический анализатор… Не ради троллинга, а ради того чтобы поделиться подходом — их два

                                                    * для начала включается статический анализатор чтобы исключить гарантированные ошибки в части работы с объектными блокировками и избыточным чтением в запросах
                                                    * затем включается любой из существующих эмуляторов многопользовательской нагрузки: мы используем Vanessa Behavior для этого, чтобы еще и тестами покрыть

                                                    в итоге точка контроля подобного будет лежать в стороне
                                                    * APDEX — там в БСП встроен штатный отчет
                                                    * журнал регистрации — даже на двух пользователях вы сразу словите Exception
                                                    * ну и СУБД конечно — для MSSQL BrentOzar сразу покажет где вы ошибаетесь в коде

                                                    То есть — суть в том, что инструмент анализа блокировок в ПРОДУКТИВЕ, это инструмент пост-реакции на аварии, а тот подход который пропагандируем мы — в продуктив должна уходить проверенная система, и в продуктиве ничего анализировать не надо: только мониторинг и алертинг.
                                                    • 0
                                                      Спасибо за конкретику. Про инструменты «Vanessa Behavior» и «BrentOzar» не знал.
                                                      За ваш (кто это мы?) подход голосую двумя руками.
                                                      • +1
                                                        Алексей, судя по количеству и длине твоих комментариев тебе (вам?) пора запланировать цикл статей на хабре о зарекомендовавших себя практиках применительно к разработкам на 1С. Давай делитесь тем, что накопили ).
                                                        А на автора зря вы тут набросились. Одна из немногих статей по 1С-ной тематике на хорошем языке от адекватного автора. Я прочитал с интересом.
                                                  • 0
                                                    ДокументОбъект.Записать()
                                                    как минимум тянет за собой все процедуры и подписки которые срабатывают при записи этого документа… и если там все нормально, и написано не криво, то все будет проходить довольно быстро просто и даже таблица документов не будет блокироваться исключительно… так что тут никаких проблем не будет, блокировкам взяться неоткуда.(еще раз, это при условии что при записи документа ничего не происходит.)
                                                    • +2
                                                      Если там все быстро и ничего не происходит, значит у Вас точно не флагманское решение 1С и Вы точно накостылили ненужный пустой документ. Верх профессионализма для элитных решений нынче считается копировать типовые документы вместе со всеми сопутствующими регистрами сведений, дублирующими итоги в регистрах накопления, а так же подписки к ним. Копировать потому, что написать это с нуля уже никто не в силах.
                                                      • 0

                                                        )) если…
                                                        Если заниматься разработкой нофой конфы с нуля, есть такая роскошная возможность, как проведение ревью с самого начала. Я так и понял, что Вы под таким углом зрения проблему рассматриваете, когда написали про "окинуть взглядом".
                                                        А представьте, что конфа уже написана и такая, какая есть.
                                                        Нет автотестов. Нет никакой уверенности, что там всё хорошо.
                                                        Вот на такой случай было бы неплохо иметь простенький инструмент по поиску источника блокировок, если они таки случились.
                                                        А можно и без, обходились без него всё это время, и дальше обойдёмся.

                                                    • 0

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

                                                      • +1
                                                        для хохмы замерьте время исполнения пустого цикла от 1 до 100000000
                                                        — а в чём смысл этого?
                                                        1С это не универсальный ЯП, а предметно-ориентированный.
                                                        • 0

                                                          а смысл, что в даже самых примитивных интерпретаторах примитивных языков типа бейсика это было поправлено еще в 90-е, но программистам ядра 1с этот опыт не пригодился

                                                          • 0
                                                            Потому что в 1С кода, который бы вращал циклы от 1 до 1000000000, практически не бывает в реальной жизни. А жечь человеко-часы, чтобы ускорить синтетические тесты… Ну я бы, например, не стал, будь я 1С.
                                                            • 0
                                                              Для прикола засёк — у меня такой цикл выполнялся 22 сек.
                                                              Но, действительно, в практике я ни разу не встречал потребности крутить такие циклы.
                                                              Как я уже писал, 1С это не универсальный ЯП, а предметно-ориентированный.
                                                              Работа ведётся большей частью с бизнес-объектами.
                                                              • 0
                                                                Да любая примитивная расчетная задача от этого страдает. Пустой цикл — это лишь один пример. Все конструкции языка такие. А все потому, что внутри используются COM-объекты. А на клиенте еще и 32 бита! Потому и клиент до сих пор 32-битный (Карл!). Тут половина комментариев на тему, что «мы особенные — предметный язык». Прекрасно распиаренная идея самой фирмой 1С в головы программеров и внедренцев, лишь бы не исправлять ядро. И никому не пришло в голову, что у 1сников отбили желание и возможность кодить на языке именно потому, что интерпретатор неэффективен, и кроме как запросами (на чтение) к СУБД дело не исправить. Но это не заслуга «предметного» языка, это беда интерпретатора. Python, Javascript и Lua — такие же предметно-ориентированные скриптовые языки (python реализует это, а js и lua непосредственно работают со своими объектами, как и 1С).
                                                                • 0
                                                                  Клиент давно 64 битный.
                                                                  А сом объекты давно не используются. В качестве доказательства клиент под линукс.
                                                                  • 0
                                                                    Многолетний опыт показывает, что куда более существенное время тратится именно на работу с данными.
                                                                    Скорость выполнения именно операторов языка при этом роли не играет.
                                                                • 0
                                                                  Был как то случай, из ком объекта массив байтов получали в кривой кодировке, так что в цикле их крутили, немного меняли значения. Бывало цикл со сложением внутри выполнялся несколько часов на 20-30кк операций.
                                                                  • 0
                                                                    Точного примера кода не осталось?
                                                                    • 0
                                                                      К сожалению нет, давно было, к тому же потом выяснилось что необходимость перекодирования — из за настроек шины возникла, соответственно код этот выкинули после изменения настроек.
                                                                      • 0
                                                                        Ком-объект сам по себе медленный, возможно, это из-за него было
                                                                    • 0
                                                                      Был как то случай, из ком объекта массив байтов получали в кривой кодировке, так что в цикле их крутили, немного меняли значения. Бывало цикл со сложением внутри выполнялся несколько часов на 20-30кк операций.

                                                                      Я бы просто написал бы мааааааленькую утилитку конвертации на C/Go/Rust/Python/по вкусу. А будучи скомпилированной с безконсольными ключиками она даже на экране не мелькает.


                                                                      Или 1С не умеет вызывать внешние процессы?

                                                                      • 0
                                                                        Умеет, конечно
                                                                        • 0
                                                                          Сейчас я бы тоже так сделал, или ВК написал бы, а скорее всего изначально бы упорнее пинал тех кто за шину отвечает, что они неправы когда говорят про присылают utf-8. Но когда ты джун который и года не проработал и тебе дают готовое решение генподрядчика которое у них где то уже работает — меньше всего будешь заниматься такими вещами.
                                                                • 0
                                                                  А вы запишите этот цикл от 1 до 100000000 в одну строчку.
                                                                  ПС. В режиме отладки платформа 1С выполняет много всего на каждый перевод строки.
                                                                  • 0
                                                                    Дефектами прикладного кода допускаемыми программистами. НУ и еще с неумением проектировать «нормальные» метаданные.


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

                                                                    РегистрСведений же — тупой прикладной объект для хранения сведений, причем реализованный достаточно грамотно для доступа к сведениям согласно концепции регистров правил (Ключ-Детерминант) описанный в книге Фаулера «Архитектура корпоративных приложений».

                                                                    НО: Я знаю что бывают дефекты платформы — они были, есть сейчас и будут я думаю. Один из фееречиных я запомнил на всю жизнь — когда объект АнализДанных математически неправильно считал дисперсию, вот это была подстава.
                                                                • 0
                                                                  Вот куда б блокчейна капнуть
                                                                  • +1
                                                                    Куда именно???
                                                                    • 0
                                                                      Да хоть те же неблокирующие выгрузки. Теоретически этим же можно решать проблемы передачи объектов в разные конфигурации. Но это сильно абстрактные прикидки.
                                                                      • +1
                                                                        Можно поподробнее пояснить, чем именно это могло бы помочь?
                                                                        • 0
                                                                          Снижение нагрузки, резервирование, увеличение количества пользователей после которых 1С начинает поскрипывать, уменьшение/избавление от блокировок благодаря консенсусам. Правда неисследованных нюансов огромное количество. Та же сложность развертывания новых конфигураций или взаимодействие ролей.
                                                                        • 0
                                                                          Есть уже пробники у участников сообщества на эту тематику — практические концепты. Получается прикольно — можно действительно выстроить настоящие распределнные базы данных. Но исследований там вагон — как минимум с аутентификацией.

                                                                          Для концептов использовались blockstack.org
                                                                          • 0
                                                                            Ну, вот, да, так что остается дальше ждать полетов на Марс
                                                                    • +1
                                                                      Из собственного опыта.
                                                                      1С хороша тогда, когда используются проверенные временем типовые конфы вроде УТ10, БП2, БП3, УПП1.3 и т.д. То есть когда, надо вести бизнес и не париться — все хорошо. Но настает момент когда компания «вырастает». И тут начинается самое интересное.
                                                                      Если стоит задача идти в ногу со временем, BigData, ИИ, HighLoad и прочее, то тут начинаются проблемы, и проблемы настолько серьезные, что проше написать с нуля на привычном для вас языке (Java, Python, C#).
                                                                      Возможно у меня руки кривые, но всегда когда дело имел с переработанными конфигурациями, то все «хотелки» заказчика, только запутывали «паутину» все хуже. И латание одной дыры непременно создавала одну, а то и две новые.
                                                                      В таком случае приходится держать штат собственных квалифированных программистов, а что если их нет?
                                                                      В общем не так все просто с 1с, хотя и стоит признать, что ситуация налаживается. Платформа 8.3 так это вообще глоток свежего воздуха, для любителя «нативных» интеграций.
                                                                      • 0
                                                                        Ну это вообще характерно для кровавого энтырпрайза. Тут не в 1С дело, а вообще, специфика жизни.
                                                                        • 0
                                                                          1С хороша тогда, когда используются проверенные временем типовые конфы вроде УТ10, БП2, БП3, УПП1.3 и т.д. То есть когда, надо вести бизнес и не париться — все хорошо. Но настает момент когда компания «вырастает». И тут начинается самое интересное.

                                                                          Это проблема квалификации. Только и всего.
                                                                          Обновлятор типовой конфигурации на следующую типовую вообще не программист. Это и бухгалтера умеют делать.


                                                                          Если стоит задача идти в ногу со временем, BigData, ИИ, HighLoad и прочее, то тут начинаются проблемы, и проблемы настолько серьезные, что проше написать с нуля на привычном для вас языке (Java, Python, C#)

                                                                          А при чем здесь вообще язык?
                                                                          BigData — это проблема не в языке а в архитектуре.


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

                                                                          • +1
                                                                            Это проблема квалификации. Только и всего.
                                                                            Обновлятор типовой конфигурации на следующую типовую вообще не программист. Это и бухгалтера умеют делать.

                                                                            Собственно я о том же.

                                                                            BigData — это проблема не в языке а в архитектуре.

                                                                            А она у 1с идеальная?

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


                                                                            Я разве говорил, что у нас случился переход с типовой конфы на БигДату? Хотя думаю, таких компаний хватает.

                                                                            Это проблема квалификации. Только и всего

                                                                            Кстати это какой квалификацией надо обладать чтоб правильно готовить 1с?
                                                                            Я на пальцах могу пересчитать из своего окружения ребят, которые правильно «готовят» 1с. Не бегут править типовые модули, и добавлять свои реквизиты в регистры, а используют это в крайних случаях, а в большинстве своем используют либо внешние обработки, расширения, либо подстраиваются под типовой бизнес процесс.
                                                                            Это я к тому, что если все сводится к наличию хороших прогеров, то все тоже самое сделать практически на любом стеке, благо хороших программистов c#, python, java не развелось, только еще не надо будет платить за 1с. В общем баян…
                                                                        • +1
                                                                          масса пользователей переваливает за некий порог, после которого уже ничего не помогает, даже корпоративный инструментальный пакет

                                                                          дальше правильный путь — Центр поддержки крупных внедрений. Да и вообще без него видел внедрения на 700-1000 онлайн пользователей. А то, что написано в варианте 1 и 2 — дорого и без гарантированного результата. Да еще и с резким удорожанием поддержки.
                                                                          А без ЦПКВ можно часто сделать базу распределенной (причем на платформе 1с это сделано очень хорошо) и получить вместо одной большой базы на одного килопользователя 4 базы по 250 пользователей на разных серверах с актуальностью данных от «фуллонлайн» для части данных до 10-15 минут для данных, к которым нет таких требований. Делить можно как функционально (склад отдельно, финансы отдельно), так и территориально (питер отдельно, москва отдельно).
                                                                          • 0

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

                                                                            • 0
                                                                              Асинхронность в 1с это боль и кошмар.
                                                                              В той же Рознице в обработке РМК только для того, что бы избавиться от модальности сделали кучу «ассинхронных» вызовов (например это вызов который совершается после закрытия формы когда никаких других действий не осуществляется) после каждого происходит блокировка интерфейса.
                                                                              Спрашивается зачем?
                                                                              Ассинхронность при работе с ККМ или ПК это вообще идиотизм порождающий периодически глюки.

                                                                              Но в целом 1с — Хороша. Без кавычек. Хотелобы конечно создавать массив вот так
                                                                              a=[1,2,5,4]
                                                                              

                                                                              а не так
                                                                              а= новый Массив;
                                                                              а.Добавить(1);
                                                                              а.Добавить(2);
                                                                              а.Добавить(5);
                                                                              а.Добавить(4);
                                                                              


                                                                              Хотелось бы в запросах делать накопительные поля
                                                                              Выбрать Т.Измерение, НакопительнаяСумма(Т.ресурс)
                                                                              из Справочник как Т
                                                                              Упорядочить по Т.Измерение
                                                                              

                                                                              И
                                                                              Выбрать Т.Измерение, НакопительнаяСумма(1) как ТутПорядокНомеровПоВозростанию
                                                                              из Справочник как Т
                                                                              Упорядочить по Т.Измерение
                                                                              
                                                                              • 0
                                                                                Асинхронность в 1с это боль и кошмар
                                                                                — совершенно верно.
                                                                                Мне кажется не по верному пути 1С пошла
                                                                                • 0
                                                                                  Не нужно путать открыть страничку сайта или получить алгоритм с изменениями данных в документах.
                                                                                  • 0
                                                                                    А разве я путаю?
                                                                                    Поясните вашу мысль.
                                                                              • +1
                                                                                то проше написать с нуля на привычном для вас языке (Java, Python, C#)

                                                                                О да, вы серьезно? Прямо вот все-все взять и переписать? И UI и Reporting и ORM… Ну т.е. надо конечно взять все готовое из опенсорса, а потом долго все это сопрягать. И постойте… бизнес-логику с 1С тоже надо портировать. И все сущности базы, и алгоритмы… Это точно «проще», чем отпрофилировать тормозные запросы, починить и все же оставить 1С?
                                                                                • 0
                                                                                  Все кто надо уже в комментах, накину еще своего мнения:
                                                                                  — тормозной интерпретатор, ну правда и не говорите что это не важно. Кроме прочитать — вставить в 1С еще куча вычислений, переборов и прочего и порой эти тормоза очень даже заметны;
                                                                                  — отсутствие кастомных индексовю Нет я конечно могу поставить «индексировать» на атрибут, но а если мне надо сразу по двум полям или сделать inсlude? Легко вводится дополнительным метаданным к документам и справочникам;
                                                                                  — ну и стабильности
                                                                                  • 0
                                                                                    Некоторое время назад администрировал 7.7, жутко тормозила. В целях сомообразования установил ODBC+Firebird и нарисовал простейший интерфейс для работы с БД sql-запросами. После этого всё стало понятно.
                                                                                    • 0
                                                                                      Ну так, поэтому 1С и развивается дальше: 8.1, 8.2, 8.3 и т.д.
                                                                                      • +1

                                                                                        Разумеется любой программист средней руки может написать УЗКОспециализированное решение которое даже летать будет.


                                                                                        Но так делают не часто. Наверное это просто не выгодно по сравнению с типовыми универсальными пусть и не быстрыми решениями от 1С?


                                                                                        Иначе бы балом правила не 1С а множество программистов с очень шустрыми наколенными УЗКОспециализированными решениями.

                                                                                      • 0
                                                                                        ВыдИрается туда же )
                                                                                        • 0
                                                                                          Спасибо. Поправил.
                                                                                        • +1

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

                                                                                          • 0
                                                                                            А лепить свои кнопки вместо платформенных, если хотим задать вопрос перед записью, это нормально?
                                                                                            • 0
                                                                                              Асинхронность тоже хороша, если её осознать, а не пытаться использовать со старой меркой...
                                                                                              Это вы про ее наличие вообще или про реализацию в 1С в частности?
                                                                                              • 0
                                                                                                В 1с она не засахарена.
                                                                                                Это ее минус.
                                                                                            • –1
                                                                                              Прочитал обе статьи и понял, что у меня просто не хватит желания тратить кучу времени на расписывание проблем 1С, которые не были озвучены в этих публикациях.

                                                                                              Переписывать все нужно с нуля, причем с открытым исходным кодом и без всякого русского языка в синтаксисе, а на общедоступных скриптовых языках. Это я говорю как программист 1С с 5 летним стажем знающим ассемблер, С++, C#, JavaScript.
                                                                                              • +1
                                                                                                Переписывать все нужно с нуля, причем с открытым исходным кодом и без всякого русского языка в синтаксисе, а на общедоступных скриптовых языках. Это я говорю как программист 1С с 5 летним стажем знающим ассемблер, С++, C#, JavaScript.

                                                                                                То есть вы не знаете что у языка 1С есть английский синтаксис уже больше 20 лет?

                                                                                                • 0
                                                                                                  Переписывать все нужно с нуля, причем с открытым исходным кодом и без всякого русского языка в синтаксисе, а на общедоступных скриптовых языках.
                                                                                                  И что это даст?
                                                                                                  • 0
                                                                                                    И главное — почему уже не сделано.
                                                                                                    Сделаны то только примитивные вещи для склада.

                                                                                                    За бухгалтерию опенсоурсному сообществу взяться слабо.
                                                                                                    А бухгалтерам сесть на опенсоурс для сдачи отчетов — стремно. Штраф за неправильные или не вовремя сданные налоги…

                                                                                                    Но это не мешает очередному шапкозакидателю.
                                                                                                    nclockworker покажите нам пример. Сделайте уже.
                                                                                                    Это же так просто…