Как выжить, если у тебя в базе 1С 50+ расширений

Публикация № 1659621 16.05.22

Приемы и методы разработки - Рефакторинг и качество кода

Расширения – это простой способ делать доработки на лету. Но администрировать большое количество расширений и не допустить бардак – очень сложно. О том, как выжить в такой ситуации, реализовать управление доработками и установкой актуальных версий расширений, на митапе «Путь к идеальному коду» рассказал Юрий Былинкин – архитектор 1С в компании Аскона.

Меня зовут Юрий Былинкин, я работаю архитектором 1С в компании Аскона.

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

 

 

Не так давно мы перешли с УПП на ERP и нам пришлось значительно дорабатывать функциональность конфигурации. Было много задач, которые, помимо наших программистов, выполняли различные подрядчики, их было очень много.

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

 

Расширения – преимущества и недостатки

 

 

Расширения – это вообще хорошо, это все знают. Я до сих пор остаюсь фанатом расширений.

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

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

  • На продуктиве разворачивать расширение тоже очень просто – никаких сравнений, объединений не требуется. Все очень быстро.

  • Расширения просто администрировать – в пользовательском режиме ERP есть интерфейс для работы с расширениями, в котором их можно устанавливать, удалять, обновлять.

 

 

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

Я тут перечисляю некоторые недостатки:

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

  • Альтернатива инструкции &Вместо – инструкция &ИзменениеИКонтроль. Ее использовать тоже не очень хорошо, потому что &ИзменениеИКонтроль нужно контролировать.

  • Еще один недостаток – отсутствие инструкций препроцессора при захвате процедур и функций.

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

Давайте рассмотрим подробно.

 

&Вместо – зло

 

 

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

Мы пытались с этим бороться следующим образом: на этапе подготовки к релизу просматривали все заимствования «Вместо» и анализировали, правильно ли это, нужно ли это заимствование вообще. Но это увеличивало время подготовки обновления, и в конце концов мы от этого отказались. Мы просто решили, что инструкцию &Вместо мы не будем использовать.

Мы используем плагин для SonarQube от компании «Серебряная пуля» и просто добавили в него свое правило, которое выдает предупреждение, если кто-то в расширении использует инструкцию &Вместо.

Чуть позже мы это правило доработали: поняли, что наиболее частый вариант использования &Вместо – это когда мы проверяем параметры, переданные в процедуру или функцию, и в случае наличия там нужных нам параметров делаем свой вызов. А если это не случается, мы просто делаем «ПродолжитьВызов()».

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

 

&ИзменениеИКонтроль – как контролировать, если текст модуля изменился

 

 

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

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

Мы АПК используем только для выполнения проверок и передачи результата.

 

Отсутствие инструкций препроцессора при захвате процедур

 

 

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

#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ВнешнееСоединение Тогда

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

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

Как мы это решили?

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

 

Сложное администрирование большого количества расширений – бардак

 

 

Почему вообще возникла проблема большого количества расширений?

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

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

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

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

Что мы сделали?

  • Мы запустили проект объединения расширений с одинаковой функциональностью – для удобства отказались от возможности давать подрядчикам работать в своих расширениях. Если возникает задача, которую должен кто-то решить, мы передаем подрядчику последний вариант этого расширения, и он над ним работает. У нас все расширения хранятся в справочнике «Файлы» программы СППР – «Система проектирования прикладных решений» от фирмы «1С». Там включено версионирование. В справочнике «Файлы» от СППР есть очень удобная фишка – когда человек редактирует файл, он его захватывает. У нас реализовано таким образом, что файлы расширений, над которыми в данный момент ведется работа, захвачены.

  • Дальше – мы опять же написали отчет, показывающий, файлы каких расширений сейчас захвачены.

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

 

Следующая проблема – разворачивание расширений на продуктиве

 

 

Каждый день мы выпускаем наши внутренние релизы, которые состоят из 2-3-4-6 измененных расширений – у нас очень активно ведется разработка.

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

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

  • В итоге мы немного доработали СППР. Теперь у нас расширения хранятся в справочнике СППР «Файлы» с историей версий. Кроме этого, мы добавили в СППР несколько регистров и возможность запрашивать установку расширения – на слайде видно, что можно запрашивать установку конкретной версии или просто последней версии.

 

 

На верхней картинке карточка файла с расширением.

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

Еще мы автоматизировали саму установку расширений. Зачем это делать вручную?

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

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

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

 

Актуальность расширений на продуктиве и в базах разработчиков

 

 

Установка – это одно, но мы как архитекторы не полностью контролируем свою базу. Любой человек с админскими правами (а такие кроме нас должны быть по ряду причин) может в рабочей базе изменить расширение. У нас не принято отлаживать код на рабочих базах, но раньше довольно часто встречалось такое, что программист подключается к рабочей базе в отладке и что-то меняет. И по факту мы видим, что внезапно в середине рабочего дня у нас в базе изменилось расширение.

Мы, опять же, это решили тем же самым HTTP-сервисом.

 

 

С его помощью мы получаем отчет, который показывает:

  • какие расширения у нас в данный момент в СППР в разработке;

  • какие расширения установлены;

  • может быть, в какой-то базе вообще нет расширения – такое тоже допустимо.

 

 

Дальше – актуальность расширений в базах разработчиков. Это тоже была очень большая проблема.

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

Но нет, оказывается, ночью с этим расширением работал еще кто-то, и в СППР уже лежит новая версия.

 

 

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

 

Итоги

 

 

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

Я только верил, что нас спасет объединение расширений, что надо тупо волевым усилием сделать, чтобы их было меньше, и, наверное, все будет хорошо.

В итоге мы не только уменьшили количество, но и реализовали полезные фишки. На них мы затратили совсем немного времени – HTTP-сервис и обработки, с помощью которых СППР работает с расширениями ERP, мы разрабатывали меньше недели.

  • Зато теперь мы значительно упростили себе жизнь – установка расширения для обновления нашего внутреннего релиза занимает пару минут, это очень легко и просто.

  • Аналитикам и программистам мы тоже помогли, потому что у них всегда есть понятная картина – достаточно запросить установку расширения, и его установят. А если не установят, сразу видно, что оно еще не установлено.

  • В целом, уменьшился бардак.

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

И неудач – наверное, только одно.

  • Проект объединения расширений нарушил принцип «Работает – не трогай!» и разработчики, которые занимались объединением расширений, столкнулись с тем, что причиной любой ошибки в программе все автоматически считали некорректный перенос кода из расширения в расширение. Хотя там ошибиться очень сложно, и всегда причинами ошибок были другие вещи.

 

 

Если эта тема окажется интересной, я планирую опубликовать на Инфостарте

  • отчет для поиска ошибок отсутствия инструкций препроцессора;

  • отчет по составу метаданных в расширениях, который нам помог понять, что где разрабатывать;

  • HTTP-сервис для работы с расширениями и клиент для этого сервиса

 

Вопросы

 

Используете ли хранилище для разработки расширений? Из контекста доклада это было не очень понятно.

Так исторически сложилось, что мы начинали с релиза, который не поддерживал хранилище расширений. И до сих пор мы не используем хранилище, хотя думали об этом. В любом случае, количество расширений у нас в рабочих базах будет 20-25, потому что они разделены по функциональности. Это означает, что разработчик, если они у него все подключены, должен будет 25 раз подключаться к хранилищу при запуске конфигуратора. Я лично пробовал работать с хранилищем расширений, мне не понравилось – именно из-за того, что нужно подключаться. А одно расширение – это опасно. Если кто-то накосячит, а мы это пропустим, расширение не будет работать – это плохо.

А почему не Git?

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

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

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

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

Вы добавляете метаданные в основную конфигурацию или в расширение?

Мы добавляем метаданные исключительно в основную конфигурацию. Наша система репликации не позволяет работать с метаданными, добавленными в расширение. У нас используется система репликации от компании SoftPoint. Наверное, как и другие, она работает на таблицах SQL, и если мы добавим метаданные в расширение, и в одной из реплицированных баз оно применится, а в других по какой-то причине – нет (забыли установить или что-то сломалось), то новые таблицы, связанные с этими метаданными, появятся только в одной базе, и репликация встанет.

А как тестируете? Только ручное тестирование или есть автоматизация?

Автоматизация тестирования у нас в планах – собираемся использовать Vanessa Automation, но пока еще не начали.

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

Действительно, вы правы, это можно автоматизировать.

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

У нас 4 базы, которые находятся в общем контуре. Все эти базы доступны в одной и той же сети. Эти базы одинаковые, но они независимые. И у нас есть HTTP-сервис, которому мы даем команду поместить расширение в базу №1, в базу №2, в базу №3 и в базу №4.

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

Зачем 50+ расширений? Я так и не понял.

Я тоже не понял, но так получилось. Так сложилось исторически, потому что расширения – это простой способ делать доработки на лету. Сейчас мы некоторые расширения объединили и у нас стало около 20 расширений. А раньше было расширение «Продажи» от нас и от подрядчиков, расширение «Закупки» от нас и от подрядчиков, два расширения «Зарплата» и т.д. За счет этого получалось так много лишних расширений.

 

*************

Данная статья написана по итогам доклада (видео), прочитанного на онлайн-митапе "Путь к идеальному коду". Больше статей можно прочитать здесь.

Приглашаем всех 6-8 октября принять участие в INFOSTART EVENT 2022 в Санкт-Петербурге: //infostart.ru/events/1573038/

*************

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. tuxik07 16.05.22 18:10 Сейчас в теме
спасибо, доклад - огонь! у самих в базе КА 2.4 30 расширений и 171 элемент в справочнике Дополнительные отчеты и обработки, предстоит переход на 2.5.
artspeed; ardn; +2 Ответить
2. aximo 1937 17.05.22 09:35 Сейчас в теме
"Я тоже не понял, но так получилось" - хороший аргумент от "архитектора" 1с компании....
autosvg; Brawler; itoptimum; +3 Ответить
7. ardn 409 17.05.22 09:59 Сейчас в теме
(2)
аргумент от "архитектора"

Наверное из доклада не понятно, такая штука досталась мне в наследство
9. aximo 1937 17.05.22 10:13 Сейчас в теме
(7) Наоборот, я из доклада понял, что это под вашим руководством создавалось "Не так давно мы перешли с УПП на ERP и нам пришлось значительно дорабатывать функциональность конфигурации. Было много задач, которые, помимо наших программистов, выполняли различные подрядчики, их было очень много."
10. ardn 409 17.05.22 10:18 Сейчас в теме
(9) В данном случае МЫ - это организация.
Странно было бы сначала добавлять проблемы, чтобы потом их мучительно разрешать.
12. s22 19 17.05.22 11:54 Сейчас в теме
(10)
Странно было бы сначала добавлять проблемы, чтобы потом их мучительно разрешать.


Ведь кто то принимал решение внедрять УПП?
3. s22 19 17.05.22 09:41 Сейчас в теме
Предлагал 1с добавить кроме изменитьиконтроль добавить областьизменитьиконтроль. В функциях уже есть области и при изменить и контроль перетаскивается вся функция и проверяется ВСЯ.

Если использовать области, а они уже зачастую разбивают функции в типовых, то размер области изменения уменьшится
itoptimum; +1 Ответить
4. John_d 4309 17.05.22 09:47 Сейчас в теме
Сейчас 54, через 5 лет 250, через 10 лет 500.
Может лучше после успешного тестирования маленького расширения, объединять все расширения в одно большое.
Brawler; maksa2005; ivnik; ardn; ivanov660; +5 Ответить
6. ivanov660 3628 17.05.22 09:52 Сейчас в теме
(4)На сколько я помню, то больше трех расширений на одни метаданные не сделать, т.ч. процесс "схлопывания" должен быть.
А из этого последует - расширенная конфигурация (в расширении).
8. ardn 409 17.05.22 10:00 Сейчас в теме
(6) надо поставить эксперимент
5. s22 19 17.05.22 09:47 Сейчас в теме
для расширений надо добавить папки, так было бы удобнее
13. cdiamond 221 17.05.22 11:59 Сейчас в теме
(5) и чтоб с иерархией, расширение расширений ))
11. sapervodichka 6082 17.05.22 11:06 Сейчас в теме
По расширениям у меня такое мнение - это очень хороший инструмент:
- В расширения запихиваю автономные решения, не зависящие от изменений релизов основной конфы.
- Имею отдельный префикс для объектов и методов каждого расширения.
- А что-то завязанное на конфу делаю в конфе с динамическим выводом на формы и переопределением событий.
gmw; myoker; json; ivnik; erutan; ardn; +6 Ответить
14. quazare 2618 17.05.22 12:19 Сейчас в теме
(11) молодец! краткость - сестра таланта!
sapervodichka; +1 1 Ответить
26. sapervodichka 6082 19.05.22 11:53 Сейчас в теме
(14) осторожно, у тебя уже хейтеры появились )))
15. vld1973 71 17.05.22 16:19 Сейчас в теме
Спасибо, вы проделали колоссальную работу. Самому предстоит переход на КА25, уже начал "склеивать" лишние расширения, чтобы переход стал возможен в разумные сроки.
16. user1647001 17.05.22 16:34 Сейчас в теме
Юра, Юра... 50 расширений.. а разработчиков сколько - тоже 50?)
привет с завода)))
17. Brawler 438 17.05.22 21:39 Сейчас в теме
Скажу так, в ноябре 2021 годя мне досталась база ERP 2.4.13 с 40+ расширений, ну и обработок/отчетов внешних под 300 штук
На сегодняшний день еще живы порядка 180 обработок/отчетов внешних.
Расширений осталось грубо говоря 3 штуки: Основное расширение, Интеграция с ДО, Затычки (исправление косяков 1С)
Да есть и несколько других расширений, но они сервисные, для программистов, а не юзверей.

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

И ваще красота когда расширение подключено к хранилищу конфигураций!!!
John_d; ardn; +2 Ответить
18. user662404_itlexusss 23 18.05.22 07:43 Сейчас в теме
Как вы выполняете отладку этого чуда? Не предскажешь какое расширение накрывает код, который видишь в модуле. Причём одно из расширений может кардинально перестроить результат. Мы даже среди десятка расширений начали теряться и в конце концов перешли на git+edt
TimurD; ardn; +2 Ответить
29. ardn 409 19.05.22 14:04 Сейчас в теме
(18) Да, в этом то и проблема
19. stein13 9 18.05.22 08:09 Сейчас в теме
Мы на проектах, как правило работаем с одним большим расширением. Причем работают несколько программистов одновременно средствами Хранилища.
Правда иногда возникает вопрос, есть ли смысл добавлять в расширения печатные формы, отчеты или лучше их сделать внешними? Как вы делаете, коллеги?
NeLenin; Brawler; +2 Ответить
21. s22 19 18.05.22 11:10 Сейчас в теме
(19)
Правда иногда возникает вопрос, есть ли смысл добавлять в расширения печатные формы, отчеты или лучше их сделать внешними? Как вы делаете, коллеги?


Справочники, реквизиты и т д добавленные в раширения не получится удобно использовать при разработки отчетов
mikl79; Brawler; +2 Ответить
22. ardn 409 18.05.22 11:29 Сейчас в теме
(19)
лучше их сделать
Говорят, и производительность обработок и отчетов в расширениях выше, чем во внешних.
Лучше конечно все делать в расширении. Но внешние обработки используются и будут использоваться, потому что их гораздо проще разрабатывать (создал обработку, кинул в модуль служебный текст, и рисуешь форму или отчет ваяешь), контекст конфигурации доступен в полной мере (а в расширении у тебя есть только контекст расширения), и самое главное - простота деплоя. Изменение расширения вызывает сообщение о перезапуске, а обработки ты можешь менять на лету.
23. Brawler 438 18.05.22 23:18 Сейчас в теме
(19) Мы все стараемся добавлять именно в одно расширение.
Реально проще потом искать, где какая функция применяется в наших разработка, и прочее.
И так как используем хранилище конфигурации, то есть и история кто что менял и когда.
Легко сдавать изменения в хранилище и потом легко их оттуда брать в рабочей базе чтобы применить.
Нет тупой возни с обработками, сохрани, измени, верни назад... засираются папки с этими обработками, начинаешь путаться...

Переход с 2.4.13 на 2.5.7 принес страдания, база новая для моей команды, наследство убогое, 300 обработок/отчетов, 40 расширений. Банально даже для теста накатывали 2.5.7, и сразу напрочь отваливались 20 расширений, обработки тоже массово умерли, во всем этом хозяйстве искать все проблемы это было еще то удовольствие, за 2.5 месяца вытянуть тока удалось. Сейчас рефакторинг и еще раз рефакторинг.

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

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

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

Внешние обработки/отчеты хороши при отладке в самом начале разработки отчета/обработки (медленно стартует ERP чтобы сразу все в расширении делать, хотя все от ситуации конечно), но потом все равно в расширение тянешь
20. Azamatex 11 18.05.22 10:22 Сейчас в теме
При обновлении конфигурации "ИзменениеИКонтроль" помогает увидеть какие процедуры изменились поставщиков, поэтому это удобно. Нажимаете Проверить возможность применения, и видите сразу все ошибки (не нужно ждать когда у пользователей выйдет ошибка).
"Вместо" я использую только совместно с "ПродолжитьВызов", тоже удобно, например пишите свое условие, если проходит, то продолжить вызов.
gmw; kote; Brawler; triviumfan; +4 Ответить
24. Brawler 438 18.05.22 23:20 Сейчас в теме
(20) то как 1С пишет платформу даже ИзменениеИКонтрольне спасает порой)) еще недавно приходилось в куче мест ИзменениеИКонтрольменять на Вместо, так как платформа ошибочно думала что есть изменения в коде, но их не было... уже починили конечно это, но осадочек остался)) когда сломают в следующий раз?
ardn; Azamatex; +2 Ответить
25. kote 534 19.05.22 11:08 Сейчас в теме
(24) в каком релизе починили?
ИзменениеИКонтроль чувствитилен к пустым строкам, переносам и пробелам, кто визуально в конфигураторе не видно. Сравнивать придется во внешнем инструменте (например, WinMerge), только то, что в секциях вставки должно отличаться.
32. Brawler 438 19.05.22 20:00 Сейчас в теме
(25) Версию уже не подскажу, в актуальных нет ошибок
Некогда реагировало болезненно на проблемы, но сейчас с этим проще.
Пробелы/табуляторы кстати очень видны если включить отображение непечатаемых символов в конфигураторе.
Я всех своих подчиненных прошу работать с включением этих символов, тогда меньше срача из пробелов и табуляторов.
Чтобы непечатаемые символы не мешали работать, им можно задать приглушенные еле заметные цвета.
39. olja-ljaaa 25 28.06.22 15:39 Сейчас в теме
(25) 8.3.19
Я использую KDIFF3 для сравнения. Пример применения описала в статье: https://infostart.ru/1c/articles/1535974/
27. biimmap 732 19.05.22 11:55 Сейчас в теме
Ради интереса спрошу: Вы всерьёз про 50+ расширений??? Реально думаете что стоит жить в таких условиях? Мне такая ситуация видится невероятным абсурдом! Даже просто разработка на расширениях это уже абсурд!!!

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

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

Что ж делать с таким волшебством? Мне кажется "пристрелить" автора такой идеологии!
rybolovlev_ms; ardn; +2 Ответить
28. ardn 409 19.05.22 12:49 Сейчас в теме
(27) так как раз я и говорил о том, что мы постепенно уменьшали их количество. Но это тоже время и ресурсы.
30. TimurD 5 19.05.22 16:38 Сейчас в теме
А как вы типовой релиз обновляете? Потом руками код мержите в расширениях? Я недавно занимался этим неблагодарным делом. УТ 11.4, все доработки в расширении (только код). Кроме как в ручную сравнивать тексты модулей (по методам), скажем, с помощью KDiff, я не нашел. Тот еще ад. Поэтому расширения - это зло в промышленной разработке. А если контора маленькая и доработок особо нет, то можно меньшими усилиями и в расширении запилить.
31. ardn 409 19.05.22 16:48 Сейчас в теме
(30)
се доработки в расширении (только код). Кроме как в ручную сравнивать тексты модулей (по методам), скажем, с помощью KDiff, я не нашел. Тот еще ад. Поэтому расширения - это зло в промышленной разработке. А если контора маленькая и доработок особо нет, то можно меньшими усилиями и в расширении запилить.
Как писали раньше, обновляешь - расширения отваливаются, чинишь.
35. TimurD 5 20.05.22 09:33 Сейчас в теме
(31) А если не отвалится? Кто даст гарантии, что все ок?
33. Brawler 438 19.05.22 20:04 Сейчас в теме
(30) Не могу согласиться, что расширения ЗЛО.
Если не можете аккуратно вести разработку, то и все прочее будет ЗЛО!
Расширения позволяют изолироваться от типовой конфы и не переживать сильно что заденешь именно типовой код или типовой объект и сломаешь его.
В расширениях платформа предоставляет прекрасный механизм (да не идеал) поиска того что сломалось с последнего обновления.
Конечно никто не отменял сначала прогонять обновления баз на тестовой базе + починка расширений и уже потом на рабочей базе применять.
olja-ljaaa; gmw; ardn; +3 Ответить
34. TimurD 5 20.05.22 09:31 Сейчас в теме
(33) В большей части задач мы затрагиваем типовые механизмы, так или иначе. Согласен, если сбоку напилить какой-нибудь функционал, вряд ли он сломается или сломает что-то при обновлении. НО, когда мы лезем и меняем (дорабатываем типовой кот), случиться может что угодно. Во-первых директива &Вместо: код у поставщика поменялся, а мы забыли его проверить и оставили старый. Может сразу при тесте все упадет, а может и нет. Может когда уже сформируются некорректные данные в базе, тогда мы поймем, что накосячили при обновлении. Во-вторых 1С не умеет сравнивать основную конфу с расширением(ями). Все нужно делать руками, при чем проверять весь перехваченный (как минимум) код. А тезис - если что-то сломается мы тогда посмотрим... Это просто не профессионально. Разработчик ответственен, что обновление встанет корректно (не берем во внимание данные).
Когда появились расширения я откровенно за них топил, спорил и ругался с коллегами. Но поработав с ними пару лет (с расширениями), хапнув Г*, пересмотрел свое мнение, т.к. ошибался.
nano1c; ardn; +2 Ответить
36. Brawler 438 20.05.22 10:08 Сейчас в теме
(34) ИзменениеИКонтроль очень помогает если руки лезут в типовой код и платформа сама сообщит что у вас есть то что нужно исправит.

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

4 года использовали в расширениях свои обьекты для хранения данных. Свои реквизиты тулили в типовые объекты.

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

А новые режимы совместимости несут больше плюшек, жаль типовые выше 8.3.17 пока ведкость
40. olja-ljaaa 25 28.06.22 15:45 Сейчас в теме
(30)Здравствуйте! Раньше тоже с ужасом смотрела на вынос доработок в расширение. Затратно по времени и кропотливо. Но, результат по дальнейшему обновлению конфигурации меня очень порадовал. Время на обновление релизов сократилось значительно! Решила свои действия описать в виде статьи. Может что-то для себя подчерпнёте нового ;) Ссылка https://infostart.ru/1c/articles/1535974/
37. ovasiliev 6 21.05.22 14:42 Сейчас в теме
Статья, как обычно в нашем глубокоэшелонированном мире 1С, несёт и изрядное количество вреда.
Менеджеры средней руки и средних же способностей (которых у нас, увы, большинство), как обычно, ищут абсолютных решений - чтобы применил, и оно работало "само". А таковых нет и быть не может.
Взять ту же директиву "Вместо". Конечно, все соображения относительно неё абсолютно справедливые, но ведь без неё нельзя обойтись совсем. Причём и ПродолжитьВызов() в ряде случаев неприменим. Приходится заимствовать весь код и править его. И при каждом обновлении мониторить все эти заимствования, что там изменилось в типовом коде.
И на это надо обязательно обращать внимание в подобных статьях. Иначе вы вводите в заблуждение подобных "менеджеров".
Award; ardn; +2 Ответить
38. ardn 409 23.05.22 08:50 Сейчас в теме
(37)
Иначе вы вводите в заблуждение подобных "менеджеров".

Да, вы правы, многие пытаются найти абсолютные рецепты, работающие всегда и везде, не понимая, что это невозможно
41. investec 01.07.22 15:06 Сейчас в теме
Почему не использовать ОДНО расширение, подключенное к ХРАНИЛИЩУ?
Зачем создавать проблемы, а потом мужественно и упорно их решать? На дворе 2022 год
Оставьте свое сообщение

См. также

Оформление и рефакторинг сложных логических выражений Промо

Рефакторинг и качество кода Платформа 1С v8.3 Россия Бесплатно (free)

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

20.09.2012    84764    tormozit    132    

Правила работы с транзакциями 1С

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Список правил при работе с транзакциями из BSL Language Server и SonarQube 1C (BSL) Plugin. Переработка и осмысление материала.

01.12.2022    2418    kuzyara    26    

Как избавиться от большого количества комментариев в коде с использованием EDT + Git

Рефакторинг и качество кода DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Публикация освещает вопрос улучшения качества и читабельности кода путем отказа от излишних комментариев. Рассматривается пример из опыта работы команды разработки на EDT + Git. Команда работает в EDT меньше года. Конфигурация сильно доработана и не обновляется типовыми релизами.

15.11.2022    615    shastin87    5    

Рефакторинг и реинжиниринг в повседневной практике

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В этой статье будут затронуты многие темы. Использование WS ссылок, HTTP запросов, асинхронных запросов к внешним сервисам, работа с XML, методики интеграции. Но лишь попутно. Для наглядности. На технических вопросах реализации останавливаться не буду. Все примеры работы с этими объектами есть в коде. Файлы обработки и расширения доступны. Главная цель - рассмотреть рефакторинг и реинжиниринг как инструменты для достижения вполне конкретных практических целей.

20.06.2022    880    user1374747    0    

Модульность в 1С – как следовать принципам DRY в реалиях 1С: Предприятие 8.3

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

Принцип DRY – Don't repeat yourself (не повторяйся) – один из классических принципов программирования. Краеугольным камнем реализации этого принципа является модульная архитектура, которую можно реализовать в 1С с помощью расширений. Но экосистемы модулей общего назначения, сравнимой с существующими в других языках, в 1С пока что нет. О том, как спроектировать архитектуру таких модулей и управлять ими с помощью менеджера пакетов, на митапе «Путь к идеальному коду» рассказал технический директор компании «А1» Арсений Геращенко.

03.06.2022    2450    Enigma    3    

Красота разработки в 1С, или художественная верстка кода

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рекомендации по верстке и организации кода в 1С, которые я вывел для себя. P.S. Нет, это не про комментарии и номера версий.

02.06.2022    5454    TimofeySin    64    

Про простой и понятный код

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

Внимание! Данная публикация с большой долей вероятности не добавит ничего нового к Вашим знаниям и Вашему опыту, поэтому если Вы читаете Инфостарт исключительно для целей "прокачки" своих навыков, не тратьте на её чтение своё время и перейдите сразу к следующей!

03.12.2021    5107    q_i    159    

Как читать чужой код? Часть 1. Общие вопросы. Доработка чужого кода. Code review

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Во всех вакансиях есть требование - умение читать чужой код. Но ни на одних курсах специально этому не учат. Чтобы устранить это противоречие, пишу данную статью. Рассмотрю случаи, в которых нам необходимо разбирать чужой код, поймём, чей код мы пытаемся разобрать, зачем и, главное, как. В статье описан личный опыт длиною в 18 лет начиная с версии платформы 7.7. Статья будет большой, набираемся терпения). Статья содержит в себе описание сценариев разбора кода, т.е. набор шагов. В статье не получится показать это на практике. Для этого планирую сделать онлайн или оффлайн курс, где на примерах будет показан разбор незнакомого кода. Статья разбита на 4 публикации для удобства изучения.

20.09.2021    11489    biimmap    55    

Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности

HighLoad оптимизация Рефакторинг и качество кода Технологический журнал Платформа 1С v8.3 Бесплатно (free)

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

07.09.2021    11317    ivanov660    26    

Распространенные ошибки разработчиков, приводящие к проблемам производительности

HighLoad оптимизация Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

Рассмотрим примеры ошибок, анализ, исправление и мероприятия по недопущению подобного в будущем. Всего будет 18 примеров.

02.08.2021    14372    ivanov660    77    

Антипаттерны программирования в 1С

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

Поговорим про плохой стиль программирования и рассмотрим 17 часто встречающихся антипаттернов.

19.07.2021    12181    ivanov660    121    

Чек-листы для проведения Code Review

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

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

17.05.2021    10633    Shining_ninja    99    

Эффективные приемы разработки

Математика и алгоритмы Рефакторинг и качество кода СКД Платформа 1С v8.3 Бесплатно (free)

На Infostart Meetup Ekaterinburg.Online выступил Сергей Наумов – руководитель центра аналитики и консалтинга WiseAdvice. Сергей поделился с коллегами приемами разработки, которые помогут избежать потенциальных проблем при реализации сложных проектов.

07.04.2021    4668    SergeyN    13    

Ускорение расчета себестоимости УПП 1.3 в несколько раз

Рефакторинг и качество кода Закрытие периода Платформа 1С v8.3 1С:Управление производственным предприятием Бухгалтерский учет Управленческий учет Бесплатно (free)

Как определить причину медленного расчёта себестоимости в УПП 1.3, один из вариантов поиска проблем производительности с помощью инструментов 1С и ускорения расчёта средствами встроенного языка

02.02.2021    4999    RPGrigorev    19    

Практика применения DevOps. Работа с SonarQube

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Во второй части мастер-класса «Практика применения DevOps» на конференции Infostart Event 2019 Inception выступил Виталий Подымников – он рассказал про процесс проверки качества кода и использование SonarQube для работы с ним.

07.12.2020    13560    arcius_7012    21    

Операторы перехода в программном коде: использовать или нет?

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим ситуации использования операторов перехода Перейти (GoTo), Возврат (Return), Прервать (Break), Продолжить (Continue). Как вы считаете - это дурной тон, нормальная практика или зависит от ситуации?

16.11.2020    7817    ivanov660    23    

Чистый кот (Clean cat)

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

От автора легендарного бестселлера "Совершенный кот".

04.11.2020    2295    vasilev2015    25    

Доработайте это "немедленно", или как уменьшить доработки конфигурации

Рефакторинг и качество кода Платформа 1С v8.3 Россия Бесплатно (free)

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

25.09.2020    4727    Богатырев Артур    24    

Метод борьбы с большим количеством комментариев в коде

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

08.09.2020    1980    tambu    9    

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

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Описание нескольких способов поиска и определения неиспользуемого кода

03.08.2020    5466    Infostart    29    

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

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

Наличие в 1С-решениях некачественного кода мешает их поддержке и эффективному развитию. Как добиться соблюдения стандартов разработки при написании кода и внедрить бюджетный Code Review с помощью инструментария на основе АПК (Автоматизированной проверки конфигураций) на конференции Infostart Event 2019 Inception рассказал технический руководитель компании Бизнес Лоджик Иван Козлов.

22.06.2020    4805    kozlov.alians    1    

Молчание "best practices": тестовые и эталонные данные, структура и связность, падения и новая функциональность, и другие неудобные вопросы к сценарному тестированию

Рефакторинг и качество кода Тестирование QA Платформа 1С v8.3 Бесплатно (free)

Непонимание некоторых базовых вопросов мешает программистам начать применять инструменты тестирования в процессе разработки для 1С. Как разобраться в терминологии и интегрировать процесс тестирования в разработку 1С-решений на конференции Infostart Event 2019 Inception рассказал руководитель отдела разработки компании C.T.Consultants Решитко Дмитрий.

29.05.2020    6317    grumagargler    14    

Рефакторинг в редакторе модулей

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Для тех, кто не пользуется Ctrl+Alt+R. “Контролируемый процесс улучшения кода без написания новой функциональности”, “Равносильное преобразование алгоритмов” и т.п в данной статье НЕ рассматриваются. Тема статьи: замечательные команды из подменю Рефакторинг контекстного меню редактора модулей в конфигураторе. В статье описано, как команды из подменю Рефакторинг помогают при написании кода

10.03.2020    5657    pparshin    6    

Качество кода: Поведенческие паттерны проектирования

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

Поговорим про применение паттернов проектирования в разработке на 1С.

03.03.2020    11530    ivanov660    0    

Боремся с запросами в циклах. Мой опыт рефакторинга запросов

Рефакторинг и качество кода Запросы Конфигурации 1cv8 Бесплатно (free)

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

02.03.2020    12763    aximo    55    

Код разработчика в зависимости от опыта работы

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

Пятничный пост! Как меняется код разработчика в зависимости от опыта работы.

14.02.2020    13325    Infostart    229    

Стабильность превыше всего

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

Странная заметка о поддержании стабильности в условиях интенсивного изменения конфигурации.

07.11.2019    10763    Infostart    41    

Оценка скорости кода. Сложность алгоритма

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Эта тема одной из первых всплывает на собеседовании программистов языков вроде Java и C, но она почти неизвестна в "мире 1С". Поговорим о вычислительной сложности алгоритмов.

07.10.2019    7386    m-rv    12    

Управление качеством кода

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

О SonarQube, АПК, EDT. Какие преимущества дает их использование. Для каких команд подходит.

22.07.2019    21872    Stepa86    40    

По следам код-ревью

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

Приведу примеры с картинками и небольшим пояснением по вопросам, связанным с код-ревью (обзором кода).

09.07.2019    15758    ivanov660    112    

Совершенный коТ (Cat complete)

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Стандарты программирования в картинках. Самоирония прилагается.

03.06.2019    10961    vasilev2015    150    

Даем названия переменным: как префиксы экономят наше время

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

Понятные названия переменных экономят время и силы разработчика : в начале, когда мы даём названия переменным, в процессе развития разработки, когда мы "на лету" понимаем назначение той или иной переменной, в конце, когда мы передаём разработку на поддержку других программистов, сами переходя к новым разработкам

06.05.2019    10948    Designer1C    86    

Логические выражения и красивый код

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

В данной статье я хочу поделиться своей практикой применения логических выражений при написании кода. Учитывая тот факт, что платформа 1С 8.х использует сокращенный цикл вычисления логических выражений, можно заменить громоздкие конструкции “Если Тогда ИначеЕсли КонецЕсли” на красивую и лаконичную запись, похожую на список операций.

20.04.2019    30515    Vortigaunt    88    

Антидот

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

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

22.01.2019    7923    mkalimulin    183    

Быстрый способ разобраться в чужом коде

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

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

29.12.2018    12670    wizard.ilmir02    22    

Что такое рефакторинг и в чем его цели

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

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

30.10.2018    16408    eu_genij    34    

Доработки конфигурации. Один совет по избежанию потенциальных грабель

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

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

16.08.2017    8944    ipoloskov    38    

Автоматизированная проверка конфигураций… и пара слов о стандартах разработки

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Предлагаю познакомиться с инструментом "Автоматизированная проверка конфигураций" и получить практику его применения

18.01.2017    68146    Vladimir Litvinenko    26    

Комментарии. Какие и зачем?

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

17.11.2015    20094    mrXoxot    32