Как разработчику 1С эффективно хранить наработки, куски кода и базы знаний?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

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

Способ 1. Стандартные шаблоны текста конфигуратора 1С

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

Рассмотрим, как устроен этот механизм. В Конфигураторе мы можем открыть меню Сервис — Шаблоны текста. Платформа позволяет создавать свои файлы шаблонов (с расширением .st). В этих файлах мы можем прописать любые конструкции кода и назначить им сочетания клавиш или текстовые автозамены. Например, при вводе слова созд_тз и нажатии клавиши пробела или табуляции платформа автоматически развернет это сокращение в полноценный блок создания таблицы значений с комментариями.

Однако у этого способа есть существенные ограничения, которые мы должны учитывать:

  1. Привязка к локальному рабочему месту. Настройки шаблонов по умолчанию хранятся локально на вашем компьютере. Если вы часто меняете рабочие серверы, базы или работаете у разных клиентов, вам придется постоянно переносить файл .st с собой.
  2. Ограниченный объем данных. Шаблоны не предназначены для хранения целых внешних обработок, книг или объемных инструкций с картинками. Это инструмент исключительно для текстовых микро-сниппетов.

Способ 2. Использование служебных обработок и расширений

Многие разработчики используют прагматичный подход — хранение наработок внутри самой рабочей среды. Разберем две популярные механики реализации этого подхода:

Метод пустой внешней обработки. Создается обычный файл ВнешняяОбработка1.epf. В его модуле объекта или модуле управляемой формы программист аккуратно собирает сотни полезных функций и процедур «на все случаи жизни». Преимущество метода в его автономности — этот файл можно быстро скинуть на флешку, отправить по почте или запустить в любой базе 1С для отладки. Недостаток заключается в отсутствии удобной каталогизации: ориентироваться в файле, где содержится 100 500 строк кода, становится сложно, даже используя поиск по тексту.

Метод служебного Расширения. Если вы постоянно ведете разработку или сопровождение крупной базы, очень удобно создать собственное служебное Расширение конфигурации. В него добавляется несколько общих модулей, например, Мой_МодульСервер, Мой_МодульКлиент и Мой_МодульMSSQL. Все полезные и отлаженные функции помещаются туда:


// Пример функции для быстрого экспорта таблицы значений в лог-файл, сохраненной в общем модуле расширения
Функция Мой_ЭкспортироватьТаблицуВТекст(ТаблицаЗначений, ПутьКФайлу) Экспорт
    Текст = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8);
    // Алгоритм обхода колонок и строк для выгрузки в CSV или TXT
    ...
    Текст.Закрыть();
КонецФункции

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

Способ 3. Создание специализированной конфигурации-хранилища

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

  1. Хранение любых объектов. В специальной конфигурации вы можете создать справочники для хранения не только текстового кода, но и файлов конфигураций (файлы .cf и .cfu), внешних отчетов (.erf) и обработок (.epf) прямо в реквизитах с типом ХранилищеЗначения.
  2. Полнотекстовый поиск. Платформа 1С обладает мощным механизмом полнотекстового поиска. Если вы правильно настроите индексы, то сможете мгновенно находить нужные примеры кода по ключевым словам, даже если они закопаны глубоко внутри модулей сохраненных обработок.
  3. Категоризация и метаданные. Вы можете спроектировать структуру справочников с неограниченной вложенностью, добавить тегирование (например, #СКД, #Интеграция, #HTTP), поля для детального описания, а также реализовать систему версионирования.

Для создания такой базы не обязательно писать все с нуля. В сообществе разработчиков регулярно публикуются готовые легкие конфигурации (так называемые «Базы знаний программиста»), которые достаточно развернуть на локальной платформе 1С и начать наполнять своими материалами.

Способ 4. Древовидные блокноты и персональные базы знаний (PKM)

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

Классические древовидные редакторы (My Notes Keeper, CherryTree). Эти программы предлагают простую и понятную концепцию: слева находится иерархическое дерево папок и документов, создаваемое пользователем в произвольной форме, а справа — редактор контента. В таких редакторах поддерживается форматирование текста (Rich Text), подсветка синтаксиса популярных языков программирования, вставка скриншотов «налету» и прикрепление произвольных файлов к веткам дерева. Это отличный локальный инструмент, не требующий подключения к интернету.

Современные Markdown-системы (Obsidian, Joplin). Это передовой стандарт управления персональными знаниями (PKM). Проанализируем ключевые преимущества перехода на систему Obsidian:

Способ 5. СпециализированныеSnippet-менеджеры и веб-сервисы

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

Способ 6. Использование современного окружения разработчика (VS Code)

В последние годы разработка на платформе 1С выходит за рамки классического Конфигуратора. Все больше специалистов используют редактор Visual Studio Code (VS Code) для работы с кодом, написания скриптов автоматизации и проектирования в EDT. В VS Code встроен мощнейший механизм пользовательских сниппетов (User Snippets).

Выясним, как настроить хранение заготовок 1С в VS Code. Вы можете открыть меню настроек сниппетов и создать файл конфигурации сниппетов для языка bsl (язык 1С). Записи в этом файле хранятся в формате JSON. Посмотрим на пример настройки такого файла:


{
    "Новый Запрос 1С": {
        "prefix": "запрос_созд",
        "body": [
            "Запрос = Новый Запрос;",
            "Запрос.Текст = ",
            "    \"ВЫБРАТЬ",
            "    |   $1",
            "    |ИЗ",
            "    |   $2\";",
            "РезультатЗапроса = Запрос.Выполнить();"
        ],
        "description": "Быстрое создание шаблона запроса 1С"
    }
}

При вводе префикса запрос_созд в редакторе VS Code, система автоматически развернет весь этот блок, установив курсор в позицию $1 для быстрого заполнения полей запроса. Эти конфигурационные файлы весят считанные килобайты, их невероятно удобно хранить в своем персональном Git-репозитории и синхронизировать между всеми рабочими компьютерами.

Рекомендации по организации процесса накопления знаний

Независимо от выбранного вами инструмента (будь то база данных 1С, Obsidian, локальная папка или Git), система не будет работать без соблюдения базовой дисциплины. Разберем ключевые правила успешного ведения базы знаний программиста:

  1. Документируйте сразу «по горячим следам». Если вы потратили два дня на решение нетривиальной проблемы с интеграцией через Web-сервисы или победили сложную ошибку в расчете себестоимости, не откладывайте запись на потом. Зафиксируйте решение сразу, пока все детали свежи в памяти. Опишите контекст проблемы, саму ошибку и приложите работающий кусок кода.
  2. Упрощайте копирование. Ваш код в базе знаний должен быть готов к повторному использованию (копированию). Избегайте жесткой привязки к конкретным именам объектов метаданных вашей текущей базы, заменяйте их на обобщенные переменные или делайте вызовы функций универсальными.
  3. Регулярно проводите ревизию. Как справедливо замечают опытные разработчики, технологии 1С быстро меняются. Раз в год просматривайте накопленную базу данных, удаляйте неактуальные решения (например, специфичные методы работы с файлами старых платформ 8.1/8.2), обновляйте алгоритмы под стандарты современной БСП (Библиотеки Стандартных Подсистем).
  4. Используйте сквозное тегирование. Разработайте для себя единую систему тегов. Например: #запросы, #скд, #оптимизация, #интеграция_http, #расширения. Это позволит быстро находить все смежные материалы по теме, даже если они хранятся в разных разделах вашей базы знаний.

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

← На главную