Полный Roadmap 1С-разработчика: от Junior до Architect

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

1. Основы платформы, базовые объекты метаданных, язык программирования и введение в язык запросов

Основы платформы, базовые объекты метаданных, язык программирования и введение в язык запросов

Добро пожаловать в курс «Полный Roadmap 1С-разработчика». Это первая и фундаментальная статья, которая заложит основу вашего понимания экосистемы 1С:Предприятие. Прежде чем мы погрузимся в код и конфигуратор, нам необходимо увидеть полную картину — карту местности, по которой нам предстоит пройти путь от начинающего специалиста (Junior) до архитектора систем (Architect).

Глобальный Roadmap 1С-разработчика

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

!Визуализация этапов развития карьеры 1С-разработчика от новичка до архитектора

Этап 1: Junior (База)

На этом этапе вы учитесь «говорить» на языке 1С и понимать, из чего состоит система. * Что нужно знать: Архитектура платформы, основные объекты метаданных (Справочники, Документы, Регистры), синтаксис языка, базовые запросы, создание печатных форм.

Этап 2: Middle (Расширение инструментария)

Вы начинаете решать сложные задачи бизнеса и взаимодействовать с внешним миром. * Что нужно знать: Система Компоновки Данных (СКД), механизмы интеграции (HTTP, Web-сервисы, JSON/XML), Библиотека Стандартных Подсистем (БСП), оптимизация производительности, расширения конфигурации.

Этап 3: Senior (Глубина и качество)

Вы отвечаете за качество кода команды и работу высоконагруженных систем. * Что нужно знать: 1C:EDT и Git, автоматическое тестирование, механизмы блокировок транзакций, клиент-серверное взаимодействие на глубоком уровне, паттерны проектирования.

Этап 4: Architect (Видение)

Вы строите информационные ландшафты предприятий. * Что нужно знать: Методологии разработки (Agile, Kanban), проектирование распределенных систем, управление техническим долгом, интеграционные шины.

В этой статье мы сосредоточимся на первой половине этапа Junior.

---

Тема 1. Архитектура платформы 1С:Предприятие

Платформа «1С:Предприятие 8» — это среда разработки и исполнения приложений (конфигураций). Уникальность 1С заключается в подходе Metadata Driven Development (разработка, управляемая метаданными). Вы не пишете код для создания таблицы в базе данных вручную; вы создаете объект «Справочник» в визуальном редакторе, а платформа сама создает нужные таблицы в СУБД.

Режимы работы

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

    Современная 1С работает в трехзвенной архитектуре: * Клиент: Приложение на компьютере пользователя (Тонкий клиент, Веб-клиент). Отвечает за отображение интерфейса. * Кластер серверов 1С: «Мозг» системы. Выполняет сложные вычисления, обрабатывает данные. * СУБД (MS SQL, PostgreSQL): Хранилище данных. 1С транслирует свои запросы в SQL-запросы к базе данных.

    !Схема взаимодействия клиента, сервера приложений 1С и системы управления базами данных

    > Что надо узнать в этой теме: > * Разницу между файловым и клиент-серверным вариантом работы. > * Понятие «Толстый клиент», «Тонкий клиент», «Веб-клиент» и «Сервер». > * Как установить учебную версию платформы.

    > Задание для запоминания: > Установите учебную версию платформы 1С. Создайте пустую информационную базу. Запустите её сначала в режиме «Конфигуратор», а затем в режиме «Предприятие». Найдите в меню «О программе» информацию о версии платформы и режиме работы приложения.

    ---

    Тема 2. Базовые объекты метаданных

    Все прикладное решение строится из «кирпичиков» — объектов метаданных. Платформа предоставляет готовые классы объектов для решения типовых бизнес-задач.

    1. Справочники (Catalogs)

    Это списки условно-постоянной информации. Это «существительные» системы. Примеры:* Сотрудники, Товары, Клиенты, Склады. Особенности:* Имеют иерархию (папки) и предопределенные элементы.

    2. Документы (Documents)

    Отражают хозяйственные операции, события, происходящие во времени. Это «глаголы» системы. Примеры:* Продажа товара, Прием на работу, Списание материалов. Особенности:* Имеют дату, номер и привязку к оси времени. Главная функция документа — проведение (изменение состояния учета).

    3. Регистры (Registers)

    Это таблицы, где хранятся итоги и состояния, созданные документами. Если Документ — это «сделка», то Регистр — это «запись в гроссбухе». * Регистры сведений: Хранят значения в разрезе измерений (например, цена товара на конкретную дату). * Регистры накопления: Хранят остатки и обороты (например, сколько товара осталось на складе).

    4. Константы (Constants)

    Хранят информацию, общую для всей системы, которая редко меняется. Примеры:* Название организации, Валюта учета, Ставка НДС.

    [VISUALIZATION: Иллюстрация взаимосвязи объектов. Документ

    2. Продвинутая разработка: регистры, сложные запросы, система компоновки данных (СКД) и управляемые формы

    Продвинутая разработка: регистры, сложные запросы, система компоновки данных (СКД) и управляемые формы

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

    Эта статья охватывает вторую половину этапа Junior и плавно подводит к уровню Middle. Именно здесь происходит магия превращения «программы для ввода накладных» в мощную аналитическую систему.

    Roadmap этапа: Продвинутый Junior

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

    1. Механизмы учета (Регистры)

    * Регистры сведений: Периодические и непериодические, независимые и подчиненные регистратору. Понимание метода СрезПоследних. * Регистры накопления: Виды регистров (Остатки и Обороты). Понятие «Виртуальная таблица». Почему нельзя брать остатки из документов. * Проведение документов: Обработка проведения, запись движений в регистры, контроль отрицательных остатков.

    2. Язык запросов (Query Language)

    * Связи таблиц (JOINs): Левое, Правое, Внутреннее и Полное соединение. Понимание ЕСТЬNULL. * Виртуальные таблицы: Параметры виртуальных таблиц (условия на уровне построения базы данных). * Временные таблицы и пакетные запросы: Оптимизация сложных выборок, менеджер временных таблиц. * Объединения (UNION): Разница между ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ.

    3. Система Компоновки Данных (СКД)

    * Архитектура СКД: Схема компоновки, Настройки, Макет. * Наборы данных: Запрос, Объект, Объединение. * Ресурсы и Вычисляемые поля: Агрегатные функции (Сумма, Количество, Максимум).

    4. Управляемые формы (Managed Forms)

    * Клиент-серверное взаимодействие: Директивы компиляции (&НаКлиенте, &НаСервере, &НаСервереБезКонтекста). * Контекст формы: Передача данных между клиентом и сервером. ДанныеФормы vs Объект. * События формы: ПриСозданииНаСервере, ПриОткрытии, ПередЗаписью.

    ---

    Тема 1. Регистры: Двигатель учета

    Если Документы — это первичная фиксация событий (например, «Мы продали товар»), то Регистры — это последствия этих событий для учета (например, «Товара стало меньше», «Денег в кассе стало больше»).

    Почему не хватает документов?

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

    !Документ совершает движения в Регистр, а Отчет читает готовые данные из Регистра, а не из Документа

    Регистры накопления

    Это аналог бухгалтерских счетов или складских карточек. Они бывают двух видов:
  • Остатки: Хранят финальное состояние (сколько есть сейчас). Пример: Остатки товаров, Взаиморасчеты с клиентами.
  • Обороты: Хранят историю изменений за период (сколько ушло/пришло). Пример: Продажи (нам не важно, сколько продаж «осталось», нам важно, сколько мы продали за месяц).
  • Математически работу регистра остатков можно выразить формулой:

    Где — конечный остаток, — начальный остаток, — приход (движение +), — расход (движение -).

    Регистры сведений

    Используются для хранения информации, которая не накапливается, а просто есть. * Периодические: Хранят историю изменений значения во времени. Пример: Курсы валют (сегодня курс один, завтра другой). * Непериодические: Хранят актуальное значение навсегда (пока не перезапишут). Пример: Штрихкоды товаров, Ответственные менеджеры.

    > Что надо узнать: Как создать регистр накопления, как прописать в модуле документа код, который создает записи (движения) в этом регистре.

    > Задание для запоминания: Создайте регистр накопления «ОстаткиТоваров». В документе «ПриходнаяНакладная» настройте движение «Приход», а в «РасходнаяНакладная» — «Расход». Проведите документы и посмотрите содержимое регистра.

    ---

    Тема 2. Сложные запросы

    Язык запросов 1С основан на SQL, но он русифицирован и адаптирован под объектную модель. Самая мощная часть запросов — это получение данных из нескольких таблиц одновременно.

    Соединения (Joins)

    Представьте, что у вас есть список Сотрудников и список Кабинетов, где они сидят.

  • Левое соединение (LEFT JOIN): Мы берем всех сотрудников. Если у сотрудника есть кабинет — показываем его. Если нет — поле кабинета будет пустым (NULL). Это самый частый вид соединения.
  • Внутреннее соединение (INNER JOIN): Мы берем только тех сотрудников, у которых точно есть кабинет. Сотрудники без кабинетов и пустые кабинеты в выборку не попадут.
  • Полное соединение (FULL JOIN): Мы берем всё: сотрудников с кабинетами, бездомных сотрудников и пустые кабинеты.
  • Виртуальные таблицы

    Это «магия» 1С. Вместо того чтобы писать сложный запрос с группировкой и суммированием всех приходов и расходов, вы обращаетесь к виртуальной таблице РегистрНакопления.ТоварыНаСкладах.Остатки. Платформа сама построит оптимальный SQL-запрос к базе данных.

    > Что надо узнать: Синтаксис ЛЕВОЕ СОЕДИНЕНИЕ, функцию ЕСТЬNULL (ISNULL), параметры виртуальных таблиц (почему условие по дате надо ставить в параметры таблицы, а не в ГДЕ).

    ---

    Тема 3. Система Компоновки Данных (СКД)

    Раньше, чтобы сделать красивый отчет, программист писал сотни строк кода: выбирал данные, рисовал макет, заполнял ячейки. СКД (Data Composition System) позволяет создавать отчеты практически без кодирования, используя декларативный подход.

    Вы говорите системе: «Я хочу взять данные отсюда, сгруппировать их по Складам и просуммировать Количество». Система сама генерирует запрос, сама рисует форму отчета и сама выводит результат.

    Основные элементы СКД:

  • Набор данных: Откуда берем информацию (обычно это Запрос).
  • Ресурсы: Поля, которые нужно суммировать (Числа).
  • Настройки: Как данные будут выглядеть (Группировки, Таблицы, Диаграммы).
  • !СКД берет схему данных, накладывает на нее пользовательские настройки и автоматически генерирует результат

    > Что надо узнать: Как создать отчет на СКД, как добавить параметры (НачалоПериода, КонецПериода), как сделать группировку.

    > Задание для запоминания: Создайте отчет «Остатки товаров» с помощью СКД. Он должен показывать количество товара в разрезе Складов. Не пишите ни строчки кода, используйте только конструктор.

    ---

    Тема 4. Управляемые формы и Клиент-Сервер

    Это самая сложная тема для новичков. В современном 1С интерфейс (форма) и данные (база) разделены.

    * Клиент (Тонкий клиент, Браузер): Здесь происходит взаимодействие с пользователем. На клиенте нет доступа к базе данных. Вы не можете здесь сделать Запрос или найти Справочник по коду. * Сервер: Здесь живет база данных. Здесь выполняются запросы и тяжелые вычисления.

    Контекстный вызов

    Когда вы нажимаете кнопку на форме, вы находитесь на Клиенте. Чтобы сохранить данные, вам нужно «позвонить» на Сервер, передать туда данные, записать их и вернуть результат обратно.

    Код в модуле формы разделяется директивами: * &НаКлиенте — процедуры, работающие интерфейсом (сообщения, открытие окон). * &НаСервере — процедуры, имеющие доступ к данным формы и базе данных.

    > Что надо узнать: Почему нельзя писать Справочники.Товары.НайтиПоКоду(...) в процедуре с директивой &НаКлиенте. Что такое РеквизитФормыВЗначение и ЗначениеВРеквизитФормы.

    > Задание для запоминания: Создайте внешнюю обработку с формой. Добавьте поле ввода и кнопку. При нажатии на кнопку код должен уходить на сервер, находить там любого пользователя базы данных и возвращать его имя на клиент в виде сообщения.

    Заключение

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

    3. Механизмы интеграции: HTTP/Web-сервисы, XDTO, JSON, XML, планы обмена и Конвертация Данных

    Механизмы интеграции: HTTP/Web-сервисы, XDTO, JSON, XML, планы обмена и Конвертация Данных

    Мы продолжаем наш путь по Roadmap 1С-разработчика. В прошлых статьях мы освоили базу (Junior Part 1) и научились строить сложную внутреннюю логику с помощью регистров и запросов (Junior Part 2). Теперь пришло время выйти за пределы «песочницы».

    Современная учетная система не может существовать в вакууме. Бизнесу нужно, чтобы 1С общалась с сайтом интернет-магазина, мобильным приложением курьера, системой маркировки «Честный знак» или CRM-системой. Умение настраивать этот диалог — это именно тот навык, который превращает Junior разработчика в уверенного Middle специалиста.

    Эта статья посвящена интеграции — искусству обмена данными между разнородными системами.

    Roadmap этапа: Middle (Интеграция)

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

    Ключевые навыки для освоения:

  • Форматы обмена: Понимание синтаксиса XML и JSON. Умение читать их глазами и парсить программно.
  • Механизм XDTO: Главный инструмент 1С для сериализации данных (превращения объектов 1С в текст и обратно).
  • Транспортные протоколы: HTTP-сервисы (REST) и Web-сервисы (SOAP). Разница между ними и сценарии использования.
  • Асинхронный обмен: Планы обмена, регистрация изменений, универсальный формат Enterprise Data.
  • ---

    Тема 1. Языки общения: XML и JSON

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

    XML (eXtensible Markup Language)

    Это «ветеран» интеграции. Он строгий, иерархичный и многословный. Данные оборачиваются в теги.

    * Плюсы: Строгая структура, поддержка схем проверки (XSD), читаемость. * Минусы: Большой объем передаваемых данных из-за повторяющихся тегов.

    Пример XML:

    JSON (JavaScript Object Notation)

    Это современный стандарт для веб-разработки и мобильных приложений. Он легче, компактнее и быстрее парсится.

    * Плюсы: Лаконичность, нативная поддержка в браузерах и JS. * Минусы: Менее строгий контроль типов данных по сравнению с XML.

    Пример JSON:

    Оценка эффективности формата

    Если представить объем передаваемых данных как математическую модель, то размер сообщения можно выразить формулой:

    Где: * — общий размер сообщения (в байтах). * — количество полей данных. * — полезные данные (значение поля, например, «Стол»). * — метаданные (теги, кавычки, скобки).

    В XML значение значительно выше, чем в JSON, из-за наличия открывающих и закрывающих тегов. Поэтому для высоконагруженных систем и мобильного интернета чаще выбирают JSON.

    > Что надо узнать: Как использовать объекты ЧтениеXML / ЗаписьXML и ЧтениеJSON / ЗаписьJSON. Как прочитать файл с диска и как сформировать строку ответа.

    > Задание для запоминания: Создайте внешнюю обработку. По нажатию кнопки она должна сформировать JSON-строку с массивом из трех ваших любимых книг (Название, Автор, Год) и сохранить её в текстовый файл на рабочий стол.

    ---

    Тема 2. XDTO: Универсальный переводчик

    В 1С есть справочник «Номенклатура». В Java есть класс Product. Как передать номенклатуру в Java? Напрямую это невозможно. Нужно превратить объект 1С в строку (сериализация).

    XDTO (XML Data Transfer Objects) — это мощный механизм платформы, который позволяет описать структуру данных (Схему) и автоматически преобразовывать объекты 1С в XML или JSON согласно этой схеме.

    Вам не нужно писать ЗаписьXML.ЗаписатьАтрибут(...) вручную для каждого поля. Вы просто говорите системе: «Возьми этот Справочник и преврати его в XDTO-объект», а затем «Запиши этот XDTO-объект в файл».

    Фабрика XDTO

    Это объект, который знает правила преобразования. У платформы есть глобальная фабрика ФабрикаXDTO, которая знает про все типы данных конфигурации.

    [VISUALIZATION: Схема работы XDTO. Слева иконка объекта 1С (Справочник), посередине механизм

    4. Инженерные практики и оптимизация: Git, CI/CD, OneScript, анализ производительности и индексы БД

    Инженерные практики и оптимизация: Git, CI/CD, OneScript, анализ производительности и индексы БД

    Мы продолжаем движение по Roadmap 1С-разработчика. В предыдущих статьях мы научились создавать функционал (Junior) и интегрировать системы (Middle). Но чем сложнее становится система, тем выше цена ошибки. Если в маленькой базе ошибка в коде приведет к тому, что у одного бухгалтера не проведется накладная, то в высоконагруженной системе (HighLoad) неоптимальный запрос может «положить» сервер на час, остановив работу всего завода.

    Эта статья посвящена переходу от «написания кода» к «инженерной культуре». Мы поговорим о том, как управлять версиями, автоматически проверять качество и заставлять базу данных работать быстро.

    Roadmap этапа: Strong Middle / Senior

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

    Ключевые компетенции:

  • Контроль версий (Git): Уход от «Хранилища конфигурации» к современным распределенным системам.
  • Автоматизация (OneScript): Написание скриптов для рутинных задач без запуска 1С.
  • CI/CD (Continuous Integration / Continuous Delivery): Автоматическая сборка, тестирование и обновление баз.
  • Производительность: Индексы, планы запросов, блокировки и анализ технологического журнала.
  • ---

    Тема 1. Git в мире 1С

    Традиционно 1С-разработчики используют «Хранилище конфигурации». Это надежный, но устаревший инструмент. Он не позволяет вести ветвление (branching) так гибко, как это принято в мировой разработке, и плохо подходит для Code Review.

    Проблема 1С в том, что конфигурация (.cf) — это бинарный файл. Git же создан для работы с текстом. Если вы положите .cf в Git, вы не увидите разницу между версиями (diff).

    Как подружить 1С и Git?

    Существует два основных подхода:
  • Выгрузка в XML: С помощью платформенных механизмов или инструментов вроде Vanessa-Ext конфигурация разбирается на тысячи текстовых XML-файлов. Их уже можно класть в Git.
  • 1C:EDT (Enterprise Development Tools): Среда разработки на базе Eclipse, которая хранит исходники сразу в файловой системе, а не в бинарнике. Это «нативный» способ работы с Git.
  • Использование Git открывает двери к Flow-разработке: каждая задача делается в отдельной ветке, проверяется коллегами (Merge Request), автоматически тестируется и только потом попадает в основную конфигурацию.

    ---

    Тема 2. OneScript: 1С за пределами 1С

    Обычно код на языке 1С работает только внутри платформы «1С:Предприятие». Но сообщество создало OneScript (oscript.io) — кроссплатформенный интерпретатор языка 1С.

    OneScript позволяет писать консольные скрипты на родном языке 1С, не запуская саму платформу. Это аналог Python или Bash для 1С-ника.

    Зачем это нужно?

    * Скрипты администрирования: Бэкапы, очистка кэша, рассылка уведомлений. * Работа с файлами: Парсинг логов, генерация отчетов. * DevOps: Управление процессами сборки и развертывания (о чем мы поговорим ниже).

    В экосистеме OneScript есть пакетный менеджер opm (аналог npm или pip), через который можно установить тысячи готовых библиотек.

    ---

    Тема 3. CI/CD: Конвейер поставки

    CI (Continuous Integration) — непрерывная интеграция. Это практика, когда код разработчиков сливается в общую ветку несколько раз в день, и каждое слияние запускает автоматическую проверку.

    CD (Continuous Delivery) — непрерывная доставка. Это автоматическая установка проверенного кода на тестовые или продуктовые серверы.

    !Визуализация автоматического конвейера проверки и доставки кода

    Из чего состоит пайплайн (Pipeline) 1С-ника:

  • Синтаксический контроль: Проверка, что код вообще компилируется.
  • SonarQube: Статический анализ кода. Робот проверяет, не забыли ли вы точку с запятой, нет ли дублирования кода и соблюдаются ли стандарты разработки.
  • Vanessa Automation: Запуск сценарных (BDD) тестов. Робот запускает 1С и «кликает» кнопки, проверяя, что при нажатии «Провести» документ действительно проводится.
  • Сборка комплекта поставки: Формирование .cf или .cfe файла.
  • ---

    Тема 4. Индексы базы данных

    Когда данных становится много (миллионы записей), простой перебор таблицы («Full Scan») становится недопустимо медленным. Здесь на сцену выходят индексы.

    Индекс — это специальная структура данных (обычно B-дерево), которая помогает СУБД быстро находить строки по значению определенного поля. Представьте, что Регистр — это книга. Без индекса вам нужно пролистать каждую страницу, чтобы найти слово «Слон». С индексом вы открываете алфавитный указатель в конце книги, находите «С» и сразу видите номер страницы.

    Математика поиска

    Эффективность индекса можно оценить через сложность алгоритма.

    При полном сканировании (Full Scan) время поиска линейно зависит от количества записей :

    Где — время обработки одной записи, а — количество записей в таблице.

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

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

    > Пример: Если в таблице 1 000 000 записей (). > * Без индекса системе нужно проверить в среднем 500 000 записей. > * С индексом (при ) потребуется всего около операций. > Разница в скорости — в 25 000 раз!

    Индексы в 1С

    В 1С вы не пишете CREATE INDEX. Платформа создает их сама, когда вы:
  • Ставите галочку «Индексировать» в свойствах реквизита.
  • Добавляете поле в Измерения регистра.
  • Делаете поле Ссылкой (для ссылочных полей индексы создаются автоматически).
  • Важно: Индексы ускоряют чтение, но замедляют запись (так как при записи нужно обновить и таблицу, и дерево индекса). Нельзя индексировать всё подряд.

    ---

    Тема 5. Анализ производительности

    Если база «тормозит», инженер не гадает на кофейной гуще, а использует инструменты.

    1. Замер производительности (в Конфигураторе)

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

    2. Технологический журнал (ТЖ)

    Это текстовые логи, которые пишет сама платформа. ТЖ позволяет увидеть, какие именно SQL-запросы 1С отправляет в СУБД, сколько они длятся и есть ли блокировки.

    3. Планы запросов (Query Plan)

    Это карта того, как СУБД (SQL Server или PostgreSQL) решила выполнять ваш запрос.

    !Графическое представление плана выполнения запроса СУБД

    В плане запроса мы ищем: * Table Scan / Index Scan: Полное сканирование таблицы (плохо для больших таблиц). * Index Seek: Поиск по индексу (хорошо). * Nested Loops: Циклы соединения таблиц.

    > Что надо узнать: Как включить замер производительности. Что такое «Покрывающий индекс». Почему условие ГДЕ Наименование ПОДОБНО "%Стул%" никогда не использует индекс (поиск по подстроке с начала).

    > Задание для запоминания: > 1. Создайте справочник с 100 000 элементов (скриптом). > 2. Сделайте запрос с поиском по реквизиту без индекса. Замерьте время. > 3. Включите индексирование реквизита. > 4. Повторите замер. Оцените разницу.

    Заключение

    Освоение Git, CI/CD и оптимизации производительности — это «знак качества» разработчика. Теперь вы можете создавать системы, которые не только работают правильно, но и выдерживают высокие нагрузки, легко обновляются и поддерживаются командой. В следующей, финальной части курса, мы поднимемся на уровень Architect и поговорим о проектировании сложных распределенных систем.

    5. Архитектура корпоративных систем, EDT, паттерны проектирования и управление разработкой

    Архитектура корпоративных систем, EDT, паттерны проектирования и управление разработкой

    Поздравляем! Вы добрались до финальной точки нашего курса «Полный Roadmap 1С-разработчика». Мы прошли путь от создания первого справочника (Junior) до настройки CI/CD пайплайнов (Middle+). Теперь перед нами открывается вершина мастерства — уровень Architect.

    На этом уровне код отходит на второй план. Архитектор не думает о том, как написать цикл. Он думает о том, как система будет жить через 5 лет, как она выдержит нагрузку в 10 000 пользователей и как организовать работу команды из 20 разработчиков так, чтобы они не мешали друг другу.

    В этой статье мы разберем инструменты и концепции, которые отличают «программиста» от «инженера систем».

    Roadmap этапа: Architect

    Архитектор — это стратег. Его задача — видеть лес за деревьями. Если Junior видит задачу «Сделать кнопку», а Middle видит задачу «Реализовать бизнес-процесс», то Architect видит задачу «Обеспечить отказоустойчивость и масштабируемость бизнеса».

    Ключевые компетенции:

  • 1C:EDT (Enterprise Development Tools): Переход на современную среду разработки на базе Eclipse.
  • Паттерны проектирования: Применение проверенных архитектурных решений (GoF, Enterprise Patterns) в контексте 1С.
  • Высоконагруженные системы (HighLoad): Кластеры серверов, балансировка нагрузки, шардирование данных.
  • Управление разработкой: Технический долг, Code Review, методологии (Agile, Scrum, Kanban).
  • ---

    Тема 1. 1C:EDT — Новая эра разработки

    Десятилетиями разработчики 1С жили в «Конфигураторе». Это монолитная среда: в ней и код пишут, и структуру базы правят, и администрируют. Но у Конфигуратора есть фундаментальный недостаток — он работает с бинарным файлом конфигурации. Это делает командную разработку сложной.

    1C:EDT — это среда разработки нового поколения, построенная на платформе Eclipse (как и многие Java IDE). Главное её отличие — проектоориентированный подход.

    Ключевые отличия EDT от Конфигуратора:

  • Файловая структура: В EDT ваша конфигурация — это не один файл .cf, а тысячи файлов и папок на диске. Каждый модуль, каждая форма, каждый макет — это отдельный файл. Это позволяет Git работать на полную мощность (видно, кто и какую строчку изменил).
  • Интроспекция и контекстные подсказки: EDT «понимает» код глубже. Она может подсказать, что метод устарел, или найти все места, где используется экспортная процедура, даже если она вызывается через Выполнить() (с ограничениями).
  • Рефакторинг: Переименование переменной или функции происходит во всем проекте автоматически. В Конфигураторе это приходится делать через «Поиск и замену», что чревато ошибками.
  • Валидация на лету: Ошибки подсвечиваются сразу в момент написания, а не при попытке сохранения.
  • !Схематичное сравнение двух сред разработки: классического Конфигуратора и современной 1C:EDT

    > Что надо знать: Как импортировать конфигурацию в EDT, как настроить связь с Git, что такое «Проект» и «Информационная база» в терминологии EDT.

    > Задание для запоминания: Установите 1C:EDT. Импортируйте туда любую небольшую базу (например, из прошлых уроков). Попробуйте переименовать общий модуль с помощью функции рефакторинга и посмотрите, как изменятся вызовы этого модуля во всех документах.

    ---

    Тема 2. Паттерны проектирования в 1С

    Паттерны (шаблоны) проектирования — это типовые решения часто встречающихся проблем при проектировании архитектуры программ. В мире Java или C# их знают наизусть. В 1С они тоже есть, но имеют свою специфику.

    1. MVC (Model-View-Controller)

    Платформа 1С навязывает этот паттерн в Управляемых формах. * Model (Модель): Это данные (СправочникОбъект, ДокументОбъект) и база данных. Логика работы с данными живет на сервере. * View (Представление): Это сама форма, кнопки и поля ввода. Она живет на клиенте. * Controller (Контроллер): Это модуль формы, который обрабатывает нажатия кнопок и связывает форму с данными.

    2. Singleton (Одиночка)

    Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа. В 1С:* Параметры сеанса или Повторное использование возвращаемых значений (кэширование) в Общих модулях. Если вы написали функцию ПолучитьТекущегоПользователя() и включили повторное использование — это реализация Singleton в рамках сеанса.

    3. Factory (Фабрика)

    Используется для создания объектов без указания конкретного класса создаваемого объекта. В 1С:* Яркий пример — XDTO-фабрика. Мы просим её создать объект типа «Номенклатура», и она сама определяет, какую структуру он должен иметь согласно схеме.

    4. Data Mapper

    Разделяет объекты в памяти и схему базы данных. В 1С:* Это встроенный механизм платформы. Когда вы работаете со СправочникОбъект, вы работаете с объектом в памяти. Платформа сама знает, как разложить его поля по таблицам SQL (Data Mapping).

    ---

    Тема 3. Архитектура корпоративных систем

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

    Кластер серверов 1С

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

    Закон Амдала

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

    Где: * — ускорение системы. * — доля вычислений, которые можно распараллелить (от 0 до 1). * — количество процессоров (или серверов).

    Если у вас есть алгоритм (например, проведение документа), который на 50% состоит из последовательных действий (блокировка регистров), то . Даже если вы поставите миллион серверов (), ускорение никогда не превысит 2 раза:

    Это объясняет, почему оптимизация кода (уменьшение последовательной части) часто важнее покупки «железа».

    Сервисная шина предприятия (ESB)

    В крупных компаниях 1С не соединяют с сайтами и другими системами «напрямую». Используют шину данных (RabbitMQ, Kafka, 1С:Шина). * Принцип: 1С не знает, кому нужны данные о новом заказе. Она просто кидает сообщение в Шину: «Создан заказ №1». А Шина сама доставляет это сообщение на склад, в логистику и в CRM.

    !Архитектура интеграции через сервисную шину данных

    ---

    Тема 4. Управление разработкой и Технический долг

    Архитектор отвечает не только за код, но и за процессы.

    Технический долг

    Это метафора. Когда вы пишете код «быстро и грязно» (хардкод, отсутствие комментариев, дублирование), вы берете долг у системы. Сначала вы выигрываете время. Но потом вам приходится платить «проценты»: любая доработка занимает в 3 раза больше времени, потому что код запутан.

    Задача архитектора: Держать баланс. Иногда нужно взять в долг, чтобы успеть к релизу, но потом обязательно нужно провести рефакторинг (вернуть долг).

    Code Review (Рецензирование кода)

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

    Методологии

    * Waterfall (Каскад): Пишем ТЗ полгода, потом программируем полгода. В современном мире работает плохо, так как бизнес меняется быстрее. * Agile (Гибкая разработка): Делаем короткими итерациями (спринтами) по 1-2 недели. Постоянно показываем результат заказчику.

    > Задание для запоминания: Найдите в своей текущей работе или учебном проекте пример «Технического долга» (место, которое вы сделали «костылем»). Опишите, как бы вы переделали это «правильно» с использованием паттернов или чистого кода.

    Заключение курса

    Мы прошли огромный путь. Вы узнали, как устроена платформа, как писать запросы, как интегрировать системы и как управлять сложной архитектурой.

    Профессия 1С-разработчика — это не просто «обновление бухгалтерии». Это инженерия, аналитика и творчество. Теперь у вас есть карта (Roadmap) и компас (знания). Дальше — только практика и реальные проекты. Удачи в карьере!