Большая проблема 1С — Одноразовый код

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

1С завершила поддержку УТ 10.3, реализовав поддержку пробития в разрешительном режиме только при вводе чека из РМК, не из формы чека или реализации.

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

Дело в том, что типовой код 1С всегда «одноразовый».

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

В итоге код 1С — это монолитный конгломерат.

Я как-то пробовал внедрить Библиотеку Подключаемого Оборудования (БПО) к самописной конфигурации. И мне даже удалось это сделать, но ощущения были не очень приятные.

Но о БПО (и БСП) 1С еще позаботилась, чтобы они были изолированы. А что говорить о других модулях — маркировки, учета НДС, списания себестоимости и прочих алгоритмов.

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

Но в итоге функции пишутся на угоду текущему моменту. Нет многократно хорошо отлаженного кода, все новое, полное багов, сложно переплетенное, плохо отлаживаемое.

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

Это одна из слабостей типового кода 1с.

image_pdfimage_print

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Вам может также понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *