База знаний 1С

Структурированный справочник для разработчиков. От базовых принципов до настройки железа.

0.1

Что это за база знаний?

1Сbase — это открытый, структурированный учебник и справочник, созданный для программистов, которые работают с платформой 1С:Предприятие 8.3+. Это не просто набор статей, а логически выстроенная система, которая проведёт вас от самых основ (понимания того, что такое платформа и метаданные) до глубоких архитектурных знаний (HighLoad, DevOps, работа с СУБД).

В базе собраны реальные практики разработки, проверенные на коммерческих проектах. Здесь нет «воды» и устаревших примеров из книг 2010 года. Только актуальный стек: 1C:EDT, Git, Vanessa Automation, SonarQube, RabbitMQ и современные подходы к оптимизации.

0.2

Для кого этот сайт?

  • Для Junior-разработчиков: чтобы понять, как устроена платформа, выучить синтаксис, разобраться с формами и запросами, и не наделать фатальных ошибок на старте карьеры.
  • Для Middle-специалистов: чтобы прокачать архитектурное мышление, научиться работать с блокировками, интеграциями и писать код, который выдержит нагрузку.
  • Для Senior и Архитекторов: для шлифовки знаний в области CI/CD, анализа производительности (APDEX, Технологический журнал), проектирования отказоустойчивых кластеров и работы с HighLoad.
  • Для студентов и стажеров: чтобы подготовиться к собеседованию, понять, какие вопросы задают на разных грейдах, и быстро найти нужную тему.
0.3

Как устроен учебник?

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

Раздел Что внутри Уровень
§1 — §2. Основы и Ядро Платформа, метаданные, объектная модель, запросы, СКД. Junior / база
§3 — §7. Архитектура и Грейды Стандарты, СУБД, блокировки, DevOps, матрица компетенций. Junior → Middle
§8 — §11. Глубокий разбор Инженерия СУБД, брокеры, HighLoad, APDEX, кластеры. Middle → Senior
§12 — §15. Практика Формы, транзакции, паттерны проектирования, типовые конфигурации. Все уровни
§16 — §19. Справочник Сниппеты (готовый код), глоссарий, вопросы с собеседований, релизы. Шпаргалка
§20. Инфраструктура Настройка ПК, серверов СУБД и промышленных станков с ЧПУ. Инфраструктура
ℹ️
Как пользоваться поиском: Введите в строку поиска вверху любую тему (например, «Дедлоки», «Транзакции», «Станки» или «1C:EDT») и нажмите на выпавший результат. Сайт мгновенно переключится на нужную главу.
0.4

Почему это важно?

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

§1. Основы платформы

Архитектура, режимы работы и ключевые понятия

1.1

Что такое 1С:Предприятие

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

ℹ️
Важно: Разработчик работает с метаданными, а платформа автоматически генерирует физические структуры базы данных. Вы не создаёте таблицы вручную (как в чистом SQL), вы описываете объекты (справочники, документы), а платформа делает всё остальное.
1.2

Два режима работы

Платформа имеет два фундаментально разных режима работы:

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

§2. Ядро платформы

Фундамент, без которого невозможно написать ни одну грамотную строчку кода

2.1

Объектная модель

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

2.2

Язык запросов 1С

Запросы — это главный инструмент получения данных. В отличие от обычного чтения объектов через точку (что вызывает много запросов к СУБД), язык запросов позволяет получить все данные одним пакетом. Важно уметь проектировать сложные запросы, использовать виртуальные таблицы (Остатки, Обороты) и временные таблицы (для оптимизации), а также правильно соединять таблицы, чтобы не получить декартово произведение.

2.3

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

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

§3. Архитектура и СУБД

Знания, отличающие Senior-разработчика от Junior-специалиста

3.1

Стандарты разработки

Фирма «1С» выпустила официальные стандарты разработки. Это не просто рекомендации, а правила, которые позволяют разным программистам понимать код друг друга. Сюда входит правильное именование переменных, отсутствие дублирования кода, грамотная обработка ошибок и разделение клиентского и серверного кода.

3.2

Работа с СУБД

1С — это лишь прослойка (ORM), которая переводит объекты в SQL-запросы. Senior понимает, как 1С хранит данные в MS SQL или PostgreSQL, как работают индексы и почему запрос с подзапросом в цикле может «положить» сервер. Он умеет читать планы запросов СУБД.

3.3

Управление блокировками

При одновременной работе сотен пользователей возникают конфликты доступа. Разработчик должен уметь работать с объектными и управляемыми блокировками, знать уровни изоляции транзакций и уметь предотвращать дедлоки (взаимные блокировки), когда два пользователя блокируют данные друг друга.

§4. DevOps и CI/CD

Современные инструменты и интеграция

4.1

Протоколы обмена

1С редко работает в вакууме. Она должна обмениваться данными с сайтами, CRM и банками. Для этого используются форматы XML, JSON и протокол HTTP. Современный разработчик умеет не только потреблять чужие REST-сервисы, но и создавать собственные Web- и HTTP-сервисы внутри 1С.

4.2

1C:EDT и Git

Старый «Конфигуратор» уходит в прошлое. Новая среда 1C:EDT (на базе Eclipse) позволяет хранить код в виде обычных текстовых файлов, что даёт возможность использовать классический Git (ветки, коммиты, пулл-реквесты) и командную разработку.

4.3

Расширения

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

§5. Предметные области

Код в 1С всегда автоматизирует реальные деньги, товары или процессы

5.1

БСП (Библиотека стандартных подсистем)

Это набор готовых модулей от 1С, которые реализуют типовые задачи: присоединенные файлы, контактную информацию, версионирование объектов, варианты отчетов, печать. Хороший разработчик не пишет эти блоки с нуля («велосипеды»), а использует БСП.

5.2

Знание конфигураций

На рынке ценятся специалисты, которые понимают не только синтаксис, но и логику работы конкретных конфигураций: 1С:ERP (сложное производство и логистика), 1С:Бухгалтерия (план счетов, регламентированная отчетность), 1С:ЗУП (расчет зарплаты, кадровый учет).

5.3

Учетные процессы

Чтобы программировать склад, нужно понимать, что такое FIFO/LIFO, партионный учет и адресное хранение. Чтобы программировать бухгалтерию — знать, что такое двойная запись и себестоимость. Без знания предметной области код будет формально верным, но бесполезным для бизнеса.

§6. Soft Skills

Разработчик 1С напрямую влияет на реальный бизнес

6.1

Архитектурное мышление

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

6.2

Язык бизнеса

Заказчик не понимает слов «регистр» или «транзакция». Он говорит «маржа», «себестоимость», «остатки». Разработчик должен уметь переводить технические термины на язык бизнеса и обратно, чтобы правильно понять задачу.

6.3

Управление ожиданиями

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

§7. Матрица компетенций

Требования к специалисту на каждом этапе

Область Junior Middle Senior Architect
Кодинг и Платформа Знает синтаксис, создает простые формы, нарушает стандарты 1С. Пишет чистый код, использует БСП, разделяет контексты Клиент/Сервер. Проектирует сложные подсистемы, пишет оптимальный код под HighLoad. Формирует стандарты разработки, закладывает отказоустойчивую архитектуру.
СУБД Не задумывается о работе СУБД. Пишет запросы с подзапросами. Понимает структуру таблиц, умеет индексировать, избегает запросов в циклах. Читает планы запросов, оптимизирует индексы, устраняет дедлоки. Проектирует БД под терабайты данных, настраивает шардинг.
Интеграция Умеет настраивать типовой обмен (КД 2.0 / 3.0). Пишет HTTP/Web-сервисы, парсит JSON/XML. Строит асинхронный обмен (RabbitMQ, Kafka), знает веб-сокеты. Проектирует корпоративную шину данных (ESB) и весь ИТ-ландшафт.
DevOps Работает только в Конфигураторе. Слышал про Git. 1C:EDT, Git, простые тесты в Vanessa. SonarQube, CI/CD пайплайны, автотесты. Выстраивает культуру автоматического тестирования и деплоя.

§8. Инженерия СУБД

Высококлассный разработчик понимает, что платформа — это лишь ORM

8.1

Трансляция типов данных

Составные типы (например, «ДокументСсылка.РеализацияТоваров» или «СправочникСсылка.Номенклатура» в одном поле) в SQL превращаются в несколько колонок: поле для самой ссылки и поле для типа. Это сильно замедляет выборку, если не уметь этим пользоваться.

8.2

Механизм итогов регистров

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

8.3

Управляемые блокировки

Уровни изоляции транзакций (Read Committed, Repeatable Read). Умение явно управлять блокировками в коде для предотвращения избыточного блокирования таблиц другими пользователями.

§9. Корпоративный ландшафт

1С обязана мгновенно синхронизироваться с другими системами

9.1

OData и REST

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

9.2

Брокеры сообщений

Вместо прямых HTTP-запросов, которые могут «упасть» при недоступности сети, 1С отправляет пакет данных в RabbitMQ или Kafka. Внешняя система забирает его оттуда по мере готовности. Это принцип Publish-Subscribe для надежного обмена.

9.3

Большие бинарные данные

Хранение тяжелых сканов и картинок внутри базы 1С раздувает файл и замедляет работу. Правильно — выносить их во внешние S3-хранилища (MinIO, Yandex Cloud), а в 1С хранить только ссылки.

§10. DevOps-инструменты

Эпоха ручного обновления баз уходит в прошлое

10.1

Vanessa Automation (BDD)

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

10.2

OneScript

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

10.3

SonarQube

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

§11. Анализ и HighLoad

Когда система «тормозит», Senior использует научные методики

11.1

APDEX

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

11.2

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

ТЖ — это лог платформы 1С. Умение настроить его и с помощью регулярных выражений вычленить из гигабайтов данных конкретный SQL-запрос, который выполнялся дольше 10 секунд — ключевой навык.

11.3

Кластер 1С

Настройка рабочих серверов, отказоустойчивых кластеров, распределение требований к функциональности, управление сеансами и процессами (rmngr, rphost).

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

Глубокий разбор взаимодействия с интерфейсом

12.1

Архитектура

Форма создается на сервере, а затем выводится на клиент. Директивы &НаКлиенте и &НаСервере определяют контекст. Код на клиенте выполняется быстро, но не имеет доступа к БД. Код на сервере имеет доступ ко всему, но требует времени на передачу данных.

12.2

События

Классический пример обработки события ПриИзменении для поля табличной части — автоматический пересчет суммы при изменении количества:

&НаКлиенте
Процедура МатериалыКоличествоПриИзменении(Элемент)
    Строка = Элементы.Материалы.ТекущиеДанные;
    Строка.Сумма = Строка.Количество * Строка.Цена;
КонецПроцедуры

§13. Транзакции

Целостность данных при конкурентном доступе

13.1

Явная транзакция

Если нужно выполнить несколько операций записи атомарно (все или ничего), используется явная транзакция:

НачатьТранзакцию();
Попытка
    Документ.Записать();
    ЗафиксироватьТранзакцию();
Исключение
    ОтменитьТранзакцию();
КонецПопытки;
13.2

Блокировки

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

Блокировка = Новый БлокировкаДанных;
Элемент = Блокировка.Добавить("Справочник.Номенклатура");
Блокировка.Заблокировать();

§14. Паттерны

Архитектурные решения для чистого кода

14.1

GRASP

Information Expert: Обязанность должна быть у того объекта, который владеет данными. Например, расчет стоимости товара должен быть в модуле документа, а не в общем модуле.

Controller: Координация сценария использования. В 1С эту роль выполняют общие модули, которые управляют последовательностью вызовов.

14.2

Обработка ошибок

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

Попытка
    ВыполнитьОперацию();
Исключение
    ЗаписьЖурналаРегистрации("Ошибка", , , , ОписаниеОшибки());
КонецПопытки;

§15. Типовые конфигурации

Разработчик развивает существующие системы

15.1

БСП

Использование готовых блоков (файлы, контакты, версионирование) вместо «велосипедов».

15.2

Прикладные решения

Понимание логики работы хотя бы одной-двух ключевых конфигураций:

  • 1С:ERP / Комплексная автоматизация: Производство, логистика, финансы.
  • 1С:Бухгалтерия: План счетов, регламентированная отчетность, НДС.
  • 1С:ЗУП: Расчет зарплаты, кадровый учет, воинский учет.
  • 1С:УНФ: Управление небольшой фирмой, быстрый старт.

§16. Сниппеты и типовые приёмы

Готовые куски кода для частых задач

16.1

Поиск и создание элементов

// Найти по наименованию
Ссылка = Справочники.Контрагенты.НайтиПоНаименованию("ООО Ромашка", Истина);

// Создать новый элемент
Новый = Справочники.Номенклатура.СоздатьЭлемент();
Новый.Наименование = "Новый товар";
Новый.Записать();
16.2

Работа со строками

// Разбор строки
Части = СтрРазделить("a,b,c,d", ",");

// Объединение
Объединено = СтрСоединить(Части, "-"); // "a-b-c-d"

// Форматирование числа
Формат = Новый Формат("ЧЦ=15; ЧДЦ=2; ЧН=0,00; ЧРД=,");
Строка = Формат(Сумма, Формат); // 1 234,56
16.3

Работа с датами

ТекущаяДата = ТекущаяДата();
НачалоДня = НачалоДня(ТекущаяДата());
КонецМесяца = КонецМесяца(ТекущаяДата());
Разница = РазностьДат(Дата1, Дата2, "День");

§17. Глоссарий

Термины и определения

ТерминОпределение
ПлатформаТехнологическая основа 1С:Предприятие, предоставляющая среду разработки и исполнения
КонфигурацияПрикладное решение, разработанное на платформе (например, Бухгалтерия)
МетаданныеОписание объектов конфигурации в дереве конфигуратора
СсылкаУникальный идентификатор объекта в базе данных (GUID)
РеквизитСвойство объекта метаданных или формы
Табличная частьСтруктурированный набор данных (строк), принадлежащий объекту
РегистрОбъект для хранения и обработки данных в разрезе измерений
СКДСистема компоновки данных — механизм построения отчётов
Тонкий клиентКлиентское приложение, работающее с сервером через канал связи
Веб-клиентКлиент, работающий в браузере без установки на ПК
Технологический журналЛог платформы для анализа производительности и ошибок

§18. Вопросы на собеседовании

Что спрашивают на позиции Junior, Middle и Senior

18.1

Junior

  • Чем отличается документ от справочника и зачем нужны регистры?
  • Что такое виртуальная таблица регистра (Остатки, Обороты)?
  • Как работает разделение контекстов (Клиент/Сервер) и почему нельзя обращаться к БД с клиента?
  • Что такое транзакция и зачем она нужна?
18.2

Middle

  • Как найти дедлок и как его предотвратить?
  • В чем разница между объектными и управляемыми блокировками?
  • Как оптимизировать запрос с подзапросом?
  • Что такое БСП и какие модули вы использовали?
18.3

Senior

  • Как спроектировать отказоустойчивый кластер 1С?
  • Как работает механизм итогов регистров на уровне СУБД?
  • Опишите процесс настройки CI/CD для 1С.
  • Как вы анализируете технологический журнал?

§19. Сборка и релизы

Как правильно готовить обновления и выкатывать их без ошибок

19.1

Подготовка релиза

Перед релизом необходимо:

  • Провести Code Review всех изменений.
  • Прогнать автотесты (Vanessa Automation).
  • Сделать резервную копию базы данных.
  • Проверить обновление на тестовом контуре.
19.2

Автоматизация

Для автоматизации сборки и доставки релизов используется OneScript и CI/CD пайплайны (GitLab CI / Jenkins). Это позволяет минимизировать человеческий фактор.

⚠️
Важно: Никогда не выкатывайте релиз в пятницу вечером без возможности быстрого отката (Rollback).

§20. Инфраструктура и настройка

Железо, серверы и промышленное оборудование для 1С

20.1

Рабочие станции (ПК пользователей)

Для клиентских мест (тонкий клиент) не требуется мощное железо. Главное — стабильный интернет и достаточный объем ОЗУ. Для работы в режиме «Толстый клиент» (или Конфигуратор) требуются более мощные ПК:

  • Процессор: 4-ядерный (Intel Core i3/i5 или AMD Ryzen 3/5). Для разработчика лучше i7/Ryzen 7.
  • ОЗУ: Минимум 8 ГБ (рекомендуется 16 ГБ).
  • Диск: SSD NVMe (быстрая загрузка и компиляция).
  • ОС: Windows 10/11 (Pro), либо любой Linux (Astra, Alt) для тонкого клиента.
20.2

Серверы баз данных и приложений

Сервер 1С — это «сердце» системы. Для отказоустойчивости используется кластер. Требования к серверу СУБД (MS SQL / PostgreSQL) крайне высоки:

КомпонентТребованияРекомендация
ПроцессорМного ядер, высокая тактовая частотаIntel Xeon Silver/Gold или AMD EPYC (16+ ядер)
ОЗУБыстрая память с ECCОт 64 ГБ до нескольких ТБ (в зависимости от нагрузки)
ДискиВысокая скорость IOPSТолько NVMe SSD в RAID 10 (никаких HDD)
СетьСтабильный канал между сервером 1С и СУБД10 Гбит/с (10GbE)
20.3

Промышленное оборудование (Станки с ЧПУ)

Интеграция 1С с производством. Если предприятие использует станки с ЧПУ, 1С может управлять ими через OPC UA или прямые API. Настройка включает:

  • Промышленные ПК (IPC): Устанавливаются в цеху, имеют защиту от пыли/влаги (IP65).
  • Интеграция: Станок передает данные о выработке, браке и простоях напрямую в 1С:ERP, формируя фактические данные для расчета зарплаты и себестоимости.
  • Сеть: На производстве используется промышленный Ethernet (Profinet, EtherCAT) с защитой от помех.
💡
Совет: Всегда отделяйте сервер баз данных от сервера приложений 1С. Это повышает безопасность и позволяет масштабировать систему горизонтально при росте нагрузки.
```