← Назад к вопросам

На каком уровне работал с SQL?

1.0 Junior🔥 171 комментариев
#Опыт и софт-скиллы

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Работа с SQL на уровне 1С разработчика

Основной уровень владения

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

Оптимизация запросов

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

  • Индексация — правильный выбор реквизитов для индексов ускоряет выборку в 10-100 раз
  • Виртуальные таблицы — для регистров накопления использовал ОстаткиИОбороты, Обороты, Остатки для получения данных
  • Условия в запросе — фильтрация на уровне БД вместо фильтрации в памяти
  • Отсутствие CROSS JOIN — избегал декартова произведения больших наборов

Работа на уровне СУБД

На уровне СУБД (PostgreSQL, MS SQL Server) работал с помощью внешних SQL запросов через OLE DB подключение или внешние источники данных. Писал прямые SQL запросы для сложных интеграций, когда возможности запросов 1С недостаточно.

SELECT t1.Документ, t1.Сумма, t2.СтавкаНДС
FROM ДокументыПродажи t1
LEFT JOIN НастройкиНДС t2 ON t1.НДС = t2.Код
WHERE t1.Дата > DATEADD(MONTH, -1, GETDATE())
ORDER BY t1.Дата DESC

Проведение документов и блокировки

При проведении документов часто приходилось работать с транзакциями и блокировками. Нужно было обеспечивать целостность данных: сначала проверить остатки (SELECT FOR UPDATE), затем написать записи в регистры. Без правильной работы с блокировками возникали race condition и двойной расход материалов.

Регистры и виртуальные таблицы

Основная работа с данными была через регистры:

  • Регистры накопления для остатков и оборотов
  • Регистры сведений для реквизитов
  • Виртуальные таблицы регистров

Это избавляло от необходимости писать сложный SQL — 1С сама генерировала оптимальные запросы.

Уровень владения

Мой уровень: средний-продвинутый. Я хорошо пишу запросы 1С, оптимизирую их, понимаю как они преобразуются в SQL. С прямыми SQL запросами работаю при необходимости интеграции, но это не основная часть работы 1С разработчика.