1. С чего начать подготовку к сдаче экзамена 1С: Эксперт по технологическим вопросам
2. Настройки технологического журнала в 1С
1. С чего начать подготовку к сдаче экзамена 1С: Эксперт по технологическим вопросам
В процессе эксплуатации крупных информационных систем возникают различные вопросы, связанные с оптимизацией повышения производительности. Решением этих вопросов и занимаются эксперты по технологическим вопросам.
Экспертиза применяется для решения вопросов крупных внедрений, то есть баз с клиент-серверной архитектурой, где число пользователей, как правило, превышает 50 человек.
В настоящее время 1С работает в клиент-серверной архитектуре со следующими СУБД: MS SQL Server, PostgreSQL, IBM DB2, Oracle. При этом на экзамене проверяются компетенции по двум СУБД 1C: MS SQL Server и PostgreSQL.
Файловый вариант 1С ERP Управление предприятием 2.5, с файлом 1Cv8.CD не рассматривается при работе с крупными базами.
Вот укрупненный список задач по оптимизации повышения производительности, встречающихся на практике:
Настройка серверов 1C СУБД
Загруженность оборудования, в том числе и сетевого
Блокировки и взаимоблокировки
Оптимизация запросов 1С
Анализ технологического журнала
Сбор и анализ планов запросов
Code review
С помощью специальной обработки можно получить структуру хранения базы данных, включая структуру индексных таблиц. На левой панели обработка показывает соответствие имен объектов метаданных именам таблиц, хранящимся в 1C СУБД. На правой панели на закладке “Индексы” если в имени индекса есть символы PK (Primary Key) – то это кластеризованный индекс, он для любого объекта ИБ всегда один, остальные индексы – некластеризованные.
Структура ИБ в 1С ERP Управление предприятием 2.5
В книге “Реализация прикладных задач в системе 1С:Предприятие 8.2” в Приложении в разделе Хранение данных описаны структура и предназначение каждого типа объекта метаданных (документы, справочники, регистры сведений…)
2. Настройки технологического журнала в 1С
Технологический журнал (сокращенно ТЖ) предназначен для сбора и последующего анализа событий, происходящих в системе.
Необходимо произвести настройку технологического журнала, чтобы события системы начали собираться внутри него. Нужно в каталог C:\Program Files (x86)\1cv8\ 8.3.19.1229\bin\conf поместить файл logcfg.xml
Вот пример полного технологического журнала
Настройки технологического журнала: пример полного ТЖ
Не рекомендуется собирать все события в технологический журнал – в этом случае файлы ТЖ будут быстро расти и это может привести к переполнению диска.
Целесообразно произвести настройку технологического журнала в его минимальном варианте, в нем будут собираться события EXCP - Исключительная ситуация приложения системы «1С ERP Управление предприятием 2.5», которое штатно не обрабатывается и может послужить причиной аварийного завершения серверного процесса или подсоединенного к нему клиентского процесса
Настройки технологического журнала: минимальный ТЖ
В каталог D:\DUMPS будут собираться дампы в случае аварийного завершения серверного процесса.
В 1С 8.3 технологический журнал собирается в каталог D:\LOGS, строка history = 28 показывает что ТЖ будет храниться 28 часов, файлы созданные ранее 28 часов назад относительно текущего времени будут удаляться.
Вот так выглядит технологический журнал в неотформатированном виде.
Настройки технологического журнала: неотформатированный вид технологического журнала 1С 8.3
С наступлением каждого нового часа – создается новый файл. Само расширение в проводнике не отображается.
Настройки технологического журнала: создание нового файла расширением в проводнике
Существуют различные обработки для форматированного просмотра файлов технологического журнала
Просмотр логов технологического журнала
На сайте its можно скачать обработку “Настройки технологического журнала” (TechnologicalLogSetup.epf)
Обработка предназначена для создания и редактирования конфигурационного файла технологического журнала. Она позволяет настроить создание дампа аварийного завершения, а также указать перечень событий и условия, при которых информация будет записываться в технологический журнал 1С 8.3.
Pедактор файла конфигурации в 1С 8.3: технологический журнал
Следует обратить внимание, что под кнопками панели управления достаточно незаметно расположена строка для указания месторасположения конфигурационного файла технологического журнала. Она начинается с “Редактируемый файл:”, полный путь к файлу logcfg.xml вместе с файлом считывается в случае если данный файл уже есть в каталоге.
На закладке “Настройка технологического журнала” есть строка “Местоположение технологического журнала:” – здесь следует указать полный каталог, где будут располагаться сами файлы технологического журнала, файлы с расширением log.
В 1С кросс таблица отражает в себе параметры технологического журнала: в строках располагаются события ТЖ, в столбцах – дополнительные свойства этих событий. Сетка кросс таблицы 1С не сплошная поскольку каждому событию присущи только определенные свойства.
В самом первом столбце “Выбор события” опять-таки довольно незаметном, слева от столбца с наименованием события, есть возможность выбора события, для этого надо включить флажок. Для добавления в ТЖ определенного свойства – надо поставить флажок на пересечении события и соответствующего свойства.
Есть возможность увеличения/уменьшения размера рабочей области (таблицы) настроек ТЖ с помощью Ctrl + прокрутка мыши.
После внесения изменений в существующий ТЖ, предыдущие настройки сохраняются в файл logcfg.bak в этом же каталоге.
Если в процессе сохранения файла ТЖ возникает следующая ошибка:
Ошибка в процессе сохранения файла технологического журнала 1С 8.3
то это означает, что 1С запущена под пользователем, у которого недостаточно прав для редактирования ТЖ. В этом случае необходимо зайти в систему под пользователем с соответствующими правами или запустить 1С через опцию “Запуск от имени администратора” в контекстном меню.
Внесем изменения в файл ТЖ: добавим свойство “Длительность события, мкс” для события Блокировка и Сеанс, а также событие Таймаут:
Внесение изменения в файл 1С 8.3 технологического журнала
В результате в файл logcfg.xml добавляется выделенный на рисунке блок. Видно, что под событием ttimeout (таймаут) добавляется свойство all – все события, поскольку нет детализации по свойствам. А для свойства durationus (длительность) указано, что оно будет действовать только для событий tlock (блокировки) и sesn (сеанс).
Добавление выделенного блока в файл logcfg.xml
Таким образом в ТЖ будут собираться указанные события с соответствующими свойствами.
3. Анализ и трассировка программы с помощью приложения, входящего в линейку продуктов MS SQL Server для 1С
SQL Server Profiler входит в линейку продуктов MS SQL Server для 1С, используется для анализа и оптимизации запросов 1С. В SQL Profiler можно увидеть текст запроса в том виде, в котором он выполняется на сервере.
Запускаем приложение SQL Server Profiler, входящее в линейку продуктов MS SQL Server для 1С. Выбираем элемент “Создать трассировку”, подключаемся к серверу, открывается окно “Свойства трассировки”. На закладке “Выбор событий” включим сначала [v] Показать все события [v] Показать все столбцы. Далее выберем только события:
ShowplanStatisticsProfile– текстовый план выполнения запроса.
ShowplanXMLStatisticsProfile– графический план выполнения запроса.
RPC:Completed– текст запроса с параметрами.
SQL:BatchCompleted– текст запроса без параметров.
Выбор событий в приложении SQL Server Profiler входящего в линейку продуктов MS SQL Server для 1С
Нажимаем кнопку “Фильтры столбцов”. Для свойства DatabaseName указываем Похоже на -> TestExp, чтобы видеть запросы только к этой базе данных.
Фильтры столбцов в приложении SQL Server Profiler входящего в линейку продуктов MS SQL Server для 1С
В ТЧ документа Расходная Накладная 3 строки
Документ Расходная накладная
В консоли запросов будем исполнять запрос:
ВЫБРАТЬ
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма,
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.ВидНоменклатуры
ПОМЕСТИТЬ ТабДок
ИЗ
Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
ГДЕ
РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
ИНДЕКСИРОВАТЬ ПО
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТабДок.Номенклатура КАК Номенклатура,
ТабДок.Количество КАК Количество,
ТабДок.Сумма КАК Сумма,
ОстаткиНоменклатурыОстатки.Партия,
ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток,
ОстаткиНоменклатурыОстатки.СуммаРубОстаток КАК СуммаРубОстаток,
ОстаткиНоменклатурыОстатки.СуммаВалОстаток КАК СуммаВалОстаток,
ОстаткиНоменклатурыОстатки.Партия.Дата КАК ПартияДата,
ТабДок.НоменклатураВидНоменклатуры
ИЗ
ТабДок КАК ТабДок
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
&Момент,
Номенклатура В
(ВЫБРАТЬ
ТабДок.Номенклатура
ИЗ
ТабДок КАК ТабДок)) КАК ОстаткиНоменклатурыОстатки
ПО ТабДок.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
УПОРЯДОЧИТЬ ПО
Номенклатура,
ПартияДата ВОЗР
ИТОГИ
МАКСИМУМ(Количество),
СУММА(КоличествоОстаток),
СУММА(СуммаРубОстаток),
СУММА(СуммаВалОстаток),
МАКСИМУМ(СУММА),
МИНИМУМ(НоменклатураВидНоменклатуры)
ПО
Номенклатура
Запустить (трассировку программы).
Для того чтобы убрать служебные строки, если они есть, можно воспользоваться кнопкой с ластиком. И для чистоты эксперимента окно трассировки и окно программы можно расположить каскадным образом.
Окно трассировки и программы
После выполнения запроса - в окне трассировки появляется 23 строки.
Окно трассировки программы
Рассмотрим строки с текстовым и графическим планом запроса. Первая строка ShowPlan Statistics Profile – это план запроса в текстовом формате. Согласно этому плану и будет выполняться запрос. Чтобы понять что происходит, начнем просмотр строк сверху-вниз, находим самый глубокий уровень вложенности. Поскольку таких строк две – то выполнение начнется с верхней строки. Строка Clustered Index Seek получает в результате 3 строки – это видно по колонке Rows (первая колонка, самая левая). Эта строка передала данные в Nested Loops (вышестоящая на один уровень вверх), получаемая таблица является ведущей по отношению ко второй строке Clustered Index Seek. Поскольку было получено 3 строки в ведущей таблице, то вторая строка Clustered Index Seek выполняется 3 раза, это видно по колонке Execute.
Это можно увидеть и на графической схеме элемента (строка трассировки Showplan XML Statistics Profile), также есть контекстное меню у графических элементов. Графическую схему элемента можно увеличивать и уменьшать с помощью Ctrl+прокрутка мыши. Для каждого элемента графической схемы есть свой список свойств в контекстном меню.
Трассировка программы SQL Server Profiler
Удобно анализировать текстовый план в продвинутом текстовом редакторе Notepad ++, есть подсветка встречающихся элементов при выборе элемента.
Анализ текстового плана в текстовом редакторе Notepad ++
Специалист компании «Кодерлайн»
Ильдар Мингалеев