Подготовка к получению сертификата «1С:Эксперт по технологическим вопросам» — это один из самых серьезных вызовов для разработчика и администратора систем на базе 1С. Этот статус подтверждает не просто знание языка программирования, а глубокое понимание механики работы платформы, взаимодействия с СУБД и операционной системой под высокой нагрузкой. Разберем пошагово, какие инструменты нам понадобятся и на каких аспектах стоит сосредоточить основное внимание.
Первый вопрос, который возникает у специалиста: на чем практиковаться, если рабочая «боевая» инфраструктура закрыта для экспериментов? Рассмотрим доступные варианты MS SQL Server. Существует две бесплатные версии: Express и Developer. Проанализируем их применимость для наших задач.
MS SQL Server Developer Edition — это наш основной выбор. С точки зрения функционала она полностью идентична версии Enterprise, но ограничена лицензией только для разработки и обучения. В ней доступны все необходимые механизмы мониторинга, включая SQL Profiler и современные Extended Events. Версия Express нам не подходит, так как она имеет жесткие ограничения по объему базы данных, использованию оперативной памяти и количеству ядер процессора, что не позволит имитировать реальные нагрузки и анализировать сложные планы запросов.
Для работы с импортонезависимым стеком обязательно развернем PostgreSQL. Рекомендуется использовать сборки, оптимизированные именно для 1С, чтобы изучить специфические настройки конфигурационного файла postgresql.conf.
Многие ошибочно полагают, что знание SQL Profiler — это залог успеха. На самом деле, это лишь малая часть необходимых навыков. Разберем, что именно нам нужно освоить:
XE, так как они создают значительно меньшую нагрузку на сервер. Нам нужно научиться создавать сессии для отлова длительных запросов и событий взаимоблокировок (deadlocks).Duration, Reads, Writes и CPU, а также понимать различие между событиями RPC:Completed и SQL:BatchCompleted.Index Scan (сканирование), которые нужно превращать в Index Seek (поиск), и выявлению Key Lookup, сигнализирующих о недостаточности покрывающих индексов.Работа с технологическим журналом является критически важным навыком. На экзамене часто требуется настроить сбор логов вручную через файл logcfg.xml. Проанализируем структуру этого файла и основные события, которые мы должны знать «наизусть»:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\LOGS\ALL" history="24">
<event>
<eq property="Name" value="TLOCK"/>
</event>
<event>
<eq property="Name" value="TTIMEOUT"/>
</event>
<event>
<eq property="Name" value="TDEADLOCK"/>
</event>
<property name="All"/>
</log>
</config>
Разберем основные события подробнее:
TLOCK — управление блокировками в 1С.TTIMEOUT — превышение времени ожидания на блокировке.TDEADLOCK — возникновение тупиковых ситуаций (взаимоблокировок).DBMSSQL / DBPOSTGRS — запросы, уходящие непосредственно в СУБД.SDBL — запросы на внутреннем языке платформы.Поскольку файлы ТЖ могут достигать гигантских размеров, нам необходимо освоить инструменты быстрой фильтрации. Рассмотрим использование командной строки (PowerShell или связку grep/awk). Эксперт должен уметь одной строкой вытащить из лога за 10 ГБ все события, длительность которых превышает 5 секунд.
Это «ядро» теоретической части экзамена. Нам нужно четко разграничивать понятия. Рассмотрим ситуацию: когда в 1С используются управляемые блокировки, а когда — объектные. Выясним разницу между режимами Read Committed и Read Committed Snapshot Isolation (RCSI) в MS SQL Server.
Особое внимание уделим эскалации блокировок. Проанализируем причину, по которой СУБД может решить заблокировать всю таблицу целиком вместо нескольких строк, и как это влияет на параллельную работу пользователей. Нам нужно знать, как программно в коде 1С минимизировать время нахождения в транзакции:
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
ЭлементБлокировки.УстановитьЗначение("Номенклатура", СсылкаНоменклатуры);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Помним правило: сначала устанавливаем управляемую блокировку, затем выполняем запрос на чтение, и только потом — запись.
Эксперт должен видеть общую картину. Рассмотрим ключевые счетчики производительности (Perfmon), которые помогут нам локализовать проблему вне 1С:
% Processor Time. Если он стабильно выше 80%, выясним, не вызвано ли это неоптимальными планами запросов или нехваткой мощностей.Avg. Disk Queue Length (длина очереди). Если очередь велика, СУБД не успевает сбрасывать данные на диск.Page Faults/sec. Большое количество ошибок отсутствия страницы говорит о том, что серверу катастрофически не хватает оперативной памяти и он постоянно обращается к файлу подкачки.Для успешной сдачи недостаточно теории. Посмотрим на список обязательных к изучению материалов:
Во-первых, это «Настольная книга эксперта по технологическим вопросам». Ее нужно проработать от корки до корки. Во-вторых, необходимо изучить состав и принципы работы КИП (Корпоративного инструментального пакета), в частности ЦУП (Центр управления производительностью) и ЦКТ (Центр контроля качества).
На экзамене нас может ждать задание по поиску «тормозящего» участка кода в незнакомой конфигурации. Практикуйтесь в анализе чужого кода: ищите запросы в циклах, избыточные соединения, использование подзапросов в условиях ГДЕ и отсутствие индексов на полях, участвующих в связях. Только комплексный подход — от настройки сервера до оптимизации конкретной строки кода — позволит успешно пройти сертификацию и стать настоящим технологическим экспертом.