Основные изменения и улучшения по сравнению с исходными обработками:
- Добавлен выбор типа СУБД (с провайдером доступа к данных) из списка предусмотренных.
- При выборе типа СУБД выполняется стандартное заполнение строки соединения
с частичным заполнением ее параметров.
- При выборе типа СУБД выполняется стандартное заполнение строки соединения
- Для MS SQL добавлено оптимизированное формирование данных о размере таблиц хранения
в базе без обращения к временным таблицам (используется обработкой по умолчанию).- При этом заметно ускоряется формирование данных и уменьшается вероятность блокировок
при одновременной работе обработки в разных базах.
- При этом заметно ускоряется формирование данных и уменьшается вероятность блокировок
- Для PG SQL добавлен вывод информации о свободном объеме таблиц хранения в базе
(выделенного СУБД, но фактически не использованного). - В список с данными размеров таблиц хранения в базе вставлена новая колонка
- с признаком добавления объекта в базу каким-то из расширений конфигурации.
- Добавлена возможность вывода показателей размера таблиц хранения в базе
- в разных единицах измерения: в GB, в MB и в KB.
- Добавлена группировки списка с данными размеров таблиц хранения в базе
в двух возможных вариантах:- по типу объекта метаданных и имени объекта метаданных (вариант из исходных обработок);
- только по полному имени метаданных объекта таблиц хранения
(полезно для выявления самых проблемных объектов);
- Добавлена возможность фильтрации списка с данными размеров таблиц хранения в базе
- по имени объекта метаданных таблиц (по соответствию заданной маске поиска).
- Обработка адаптирована для использования в качестве дополнительной внешней обработки
- в конфигурациях, разработанных на основе БСП.
- При создании объекта обработки выполняется контроль прав доступа для текущего пользователя 1С.
- Контроль доступа выполняется по наличию списка "крутых" прав в 1С (подробней смотри ниже).
- При отсутствии хоть одного проверяемого права доступа - выбрасывается исключение.
- Выбранная строка соединения может быть сохранена в списке выбора строк в настройках
пользователя с именем "SA" для повторной установки из списка выбора поля ввода в форме.- Сохраненный список выбора строк доступен под любыми пользователями 1С,
имеющих право доступа к обработке.
- Сохраненный список выбора строк доступен под любыми пользователями 1С,
Подробнее о добавленных сервисных удобствах смотрите в справочной информации к обработке
- а также ниже в справочной информации с иллюстрациями.
Иллюстрированная справочная информация по обработке:
1) Предусмотренные в обработке значения "Тип СУБД (с провайдером)":
-
(1.0) MS SQL через провайдера ''Provider=SQLOLEDB.1''
-
(1.1) MS SQL через провайдера ''Provider=SQLNCLI10.1''
-
(1.2) MS SQL через провайдера ''Provider=SQLNCLI11.1''
-
(2.0) PostgreSQL через драйвер ''Driver={PostgreSQL Unicode}''
-
(2.1) PostgreSQL через драйвер ''Driver={PostgreSQL Unicode(x64)}''
От целой части значения зависит собственно сам тип СУБД, на сервере которой развернута база.
Соответственно, целая часть значения определяет текст запроса через ADO для получения размера
таблиц хранения и алгоритм обработки полученных данных.
От дробной части зависит стандартное заполнение строки соединения с использованием перечисленных
выше провайдеров OLEDB или драйверов ODBC.
При этом строка соединения после стандартного заполнения при выборе “Типа СУБД”
может быть произвольно изменена.
Например, можно указать строку соединения с провайдером или драйвером для выбранной СУБД
не из списка перечисленных выше.
2) Стандартное заполнение строки соединения для значения типа СУБД ‘’Provider=SQLOLEDB.1’’:
-
Имя Базы SQL заполняется именем базы на Сервере 1С (скорее всего его не придется корректировать);
-
Имя Сервера SQL заполняется именем Сервера 1С
(не придется корректировать, если СУБД установлена на одной машине с Сервером 1С); -
Имя Сервера 1С и имя базы на Сервере 1С определяются по строке соединения текущего сеанса;
3) Стандартное заполнение строки соединения для значения типа СУБД ‘’Provider=SQLNCLI10.1’’:
-
Имя Базы SQL заполняется именем базы на Сервере 1С (скорее всего его не придется корректировать);
-
Имя Сервера SQL заполняется именем Сервера 1С
(не придется корректировать, если СУБД установлена на одной машине с Сервером 1С); -
Имя Сервера 1С и имя базы на Сервере 1С определяются по строке соединения текущего сеанса;
4) Стандартное заполнение строки соединения для значения типа СУБД ‘’Provider=SQLNCLI11.1’’:
-
Имя Базы SQL заполняется именем базы на Сервере 1С (скорее всего его не придется корректировать);
-
Имя Сервера SQL заполняется именем Сервера 1С
(не придется корректировать, если СУБД установлена на одной машине с Сервером 1С); -
Имя Сервера 1С и имя базы на Сервере 1С определяются по строке соединения текущего сеанса;
5) Стандартное заполнение строки соединения для значения типа СУБД ‘’Driver={PostgreSQL Unicode}’’:
-
Имя Базы SQL заполняется именем базы на Сервере 1С (скорее всего его не придется корректировать);
-
Имя Сервера SQL заполняется именем Сервера 1С
(не придется корректировать, если СУБД установлена на одной машине с Сервером 1С); -
Имя Сервера 1С и имя базы на Сервере 1С определяются по строке соединения текущего сеанса;
6) Стандартное заполнение строки соединения для значения типа СУБД ‘’Driver={PostgreSQL Unicode(x64)}’’:
-
Имя Базы SQL заполняется именем базы на Сервере 1С (скорее всего его не придется корректировать);
-
Имя Сервера SQL заполняется именем Сервера 1С
(не придется корректировать, если СУБД установлена на одной машине с Сервером 1С); -
Имя Сервера 1С и имя базы на Сервере 1С определяются по строке соединения текущего сеанса;
7) Скрытие учетных данных в строке соединения из контекстного меню поля ввода:
-
При скрытии учетных данных в форме вместо фактической строки соединения показывается
ее стандартно заполненная копия с заменой значений учетных данных
(имя сервера, имя базы, логин-пароль, порт) на ”звёздочки”. -
При этом значение фактической строки соединения сохраняется в данных формы.
8) Результат скрытия учетных данных в указанной строке соединения:
-
При скрытии учетных данных в форме вместо фактической строки соединения показывается
ее стандартно заполненная копия с заменой значений учетных данных
(имя сервера, имя базы, логин-пароль, порт) на ”звёздочки”. -
При этом значение фактической строки соединения сохраняется в данных формы.
9) Отображение учетных данных в строке соединения из списка выбора поля ввода копии строки:
-
Также отобразить учетные данные можно нажатием на кнопку “Выбор” поля ввода
с картинкой “Увеличить масштаб”.
10) Контекстное меню при нажатии на кнопку “Регулирование” поля ввода строки соединения:
Позволяет выполнить следующие действия:
-
Стандартно заполнить строку соединения согласно выбранного значения Типа СУБД;
-
Очистить текущее значение строки соединения;
-
Скрыть учетные данные в текущей строке соединения (смотри выше пункт 7 и пункт 8);
При этом обработка нажатий на кнопки “Выбор из списка” и “Очистка” поля ввода
строки соединения выполняется стандартно.
11) Редактирование и проверка строки соединения в диалоге COM-объекта "DataLinks":
-
Диалог COM-объекта открывается при нажатии на кнопку “выбора” справа от поля ввода строки соединения;
-
При этом проверка доступности, естественно, всегда выполняется на стороне Клиента 1С;
12) Контекстное меню при нажатии на “сервисную” кнопку справа поля ввода строки соединения:
Позволяет выполнить следующие действия:
-
Проверить указанную строку соединения на доступность (на стороне Клиента 1С или на стороне Сервера 1С);
-
Если опция “Запрос ADO на клиенте” включена – проверка выполняется на стороне Клиента 1С;
-
Если опция “Запрос ADO на клиенте” отключена – на стороне Сервера 1С;
-
-
Сохранить текущую строку соединения в список выбора поля ввода строки соединения:
-
В списке выбора сохраняются только проверенные на доступность строки соединения;
-
Список выбора сохраняется в общих настройках пользователя с именем “SA” для повторного использования в будущем;
-
Сохраненный список выбора восстанавливается при открытии обработки для всех пользователей с полными правами;
-
-
Очистить список выбора поля ввода строки соединения (очищается стразу и в форме, и в настройках пользователей);
-
Скрыть учетные данные в строке соединения (смотри выше пункт 7 и пункт 8);
13) Сервисные возможности дополнительного подменю “ЕЩЁ” командной панели формы:
Из подменю можно выполнить следующие действия:
-
Включить или отключить использование временных таблиц в запросе ADO для случая СУБД MSSQL
(по умолчанию используются вариант запроса ADO без временных таблиц); -
Включить или отключить опцию выполнения с выводом результатов замеров времени выполнения отдельных
этапов формирования дерева списка с размерами таблиц в базе (отладочный режим); -
Показать текст запроса ADO для выбранного типа СУБД в текстовом редакторе 1С (отладочная возможность);
-
Открыть справочную информацию в формате (*.docx), иллюстрированную снапшотами;
-
Об остальных действиях из подменю смотрите в справочном описании обработки;
14) Формирование списка дерева объектов с размерами таблиц в базе с запросом ADO на стороне Клиента 1С:
Провайдер данных OLEDB или драйвер ODBC для выполнения запросов через ADO
должен быть установлен на стороне Клиента 1С.
-
На Клиенте 1С запрос через ADO выполняется заметно медленнее, чем при выполнении на стороне Сервера 1С;
-
Но при этом с установкой драйверов для доступа к данным через ADO
меньше административных проблем;
15) Формирование списка дерева объектов с размерами таблиц в базе с запросом ADO на стороне Сервера 1С:
Провайдер данных OLEDB или драйвер ODBC для выполнения запросов через ADO
должен быть установлен на стороне Сервера 1С.
-
На Сервере 1С запрос через ADO выполняется заметно быстрее, чем при выполнении на стороне Клиента 1С;
-
Но зато с установкой драйверов для доступа к данным через ADO могут быть
серьезные административные проблемы;
16) Выбор единицы измерения размеров таблиц для вывода в списке дерева:
Для изменения единицы размера таблиц не требуется повторный запрос ADO к базе
для получения данных размеров таблиц.
-
Возможные значения для вывода размеров таблиц в дереве списка:
-
“В гигабайтах”, “В мегабайтах” и “В килобайтах” (по умолчанию “В килобайтах”);
-
-
При изменении единицы измерения для обновления дерева списка используются данные предыдущего
запроса ADO, сохраненные во временном хранилище 1С для повторного использования.
17) Группировка списка дерева размеров таблиц в базе “по типу объекта метаданных”:
По типу объекта метаданных дерево списка группируется по умолчанию
(вариант группировки списка в исходных обработках).
При изменении порядка группировки списка не требуется повторный запрос ADO к базе
для получения данных размеров таблиц.
-
При изменении порядка группировки для обновления списка дерева используются данные предыдущего
запроса ADO, сохраненные во временном хранилище 1С для повторного использования.
18) Группировка списка дерева размеров таблиц в базе “по полному имени объекта метаданных”:
При изменении порядка группировки списка не требуется повторный запрос ADO к базе
для получения данных размеров таблиц.
-
При изменении порядка группировки для обновления списка дерева используются данные предыдущего
запроса ADO, сохраненные во временном хранилище 1С для повторного использования.
19) Сервисные возможности в контекстном меню списка дерева размеров таблиц в базе:
Контекстное меню позволяет выполнить следующие действия:
-
Свернуть все строки списка дерева первого уровня (без подчиненных строк);
-
Свернуть текущую строку списка дерева (с подчиненными и с выше лежащими родительскими строками);
-
Открыть настройки отбора по имени метаданных
(открывается диалог настройки параметров отбора, смотри ниже пункт 21);
20) Сервисные возможности подменю “Ещё” командной панели списка дерева размеров таблиц в базе:
Контекстное меню позволяет выполнить следующие действия:
-
Свернуть все строки списка дерева первого уровня (без подчиненных строк);
-
Свернуть текущую строку списка дерева (с подчиненными и с выше лежащими родительскими строками);
-
Открыть настройки отбора по имени метаданных
(открывается диалог настройки параметров отбора, смотри ниже пункт 21); -
Режим просмотра (системное подменю из трех команд);
-
Группировать список по типу объекта метаданных
(флаг группировки списка, смотри выше пункт 17 и пункт 18);
21) Диалог настройки параметров отбора по имени метаданных в списке дерева размеров таблиц:
-
Параметры отбора по имени метаданных объектов в списке дерева редактируются
в специальном диалоге настроек; -
Параметры отбора включают в себя флаг использования отбора и строку маски поиска
для условия ПОДОБНО в запросе; -
Диалог настроек открывается командой “Открыть настройки отбора по имени метаданных”
из контекстного меню (смотри пункт 19) дерева списка размеров таблиц или
подменю “Ещё” командной панели списка дерева (смотри пункт 20); -
Кроме флага использования и самой строки маски поиска в диалоге для строки маски можно установить
четыре варианта дополнения поиска (смотри ниже пункт 23, пункт 24, пункт 25 и пункт 26); -
При установке отбора в основной форме обработки отображается надпись со строкой маски поиска отбора;
22) Сервисные возможности контекстного меню надписи выбранной строки маски поиска:
Контекстное меню позволяет выполнить следующие действия:
-
Изменить отбор по имени метаданных (открывается диалог настройки параметров отбора из пункта 21 );
-
Сбросить отбор по имени метаданных
(снимается флаг использования отбора, строка маски поиска не изменяется); -
Очистить отбор по имени метаданных
(снимается флаг использования отбора и очищается строка маски поиска);
Полностью аналогичное выпадающее меню открывается также при нажатии на гиперссылку
надписи выбранной строки маски поиска.
23) Вариант дополнения строки маски поиска “Поиск в любом месте строки”:
В начале и конце строки поиска нет подстановок “отмены” (последовательностей символов “^%”).
Маска поиска в запросе дополняется символами процента “%” как слева, так и справа.
То есть в искомой строке допускается наличие любых символов как слева, так и справа.
Этот вариант дополнения поиска действует по “умолчанию”.
24) Вариант дополнения строки маски поиска “Поиск справа от начала строки”:
При установке варианта в начало строки поиска добавляется подстановка “отмены”
(последовательность символов “^%”).
В конце строки поиска все подстроки подстановок “отмены” убираются, если они там вдруг есть.
Маска поиска в запросе дополняется символами процента “%” только справа.
То есть в искомой строке допускается наличие любых символов только справа.
25) Вариант дополнения строки маски поиска “Поиск слева от конца строки”:
При установке варианта в конец строки поиска добавляется подстановка “отмены”
(последовательность символов “^%”).
В начале строки поиска все подстроки подстановок “отмены” убираются, если они там вдруг есть.
Маска поиска в запросе дополняется символами процента “%” только слева.
То есть в искомой строке допускается наличие любых символов только слева.
26) Вариант дополнения строки маски поиска “Поиск внутри строки”:
При установке варианта и в начало, и в конец строки поиска добавляется подстановки “отмены”
(последовательности символов “^%”).
Маска поиска в запросе используется как есть, без дополнения конечными символами процента “%”
То есть в искомая строка должна полностью удовлетворять указанной строке маски поиска
(без концевых подстановок “отмены”).
27) Вывод списка дерева размеров таблиц в базе в табличный документ (системной командой):
28) Формирование списка дерева полной структуры хранения базы данных 1С
(вспомогательный сервис):
Опции формирования дерева структуры:
-
“В терминах СУБД” - если включена, то в списке выводится структура базы в терминах СУБД,
иначе - в терминах модели 1С; -
“С типами 1С” - если включена, то в списке дополнительно выводятся типы значений 1С
реквизитов объектов (по их метаданным);
При изменении значений этих опций ранее сформированный список дерева структуры очищается
с подтверждением пользователя.
Для формирования дерева структуры строка соединения с базой SQL не используется и может не указываться.
Список дерева полной структуры хранения базы данных 1С формируется в формате,
описанном в статье //infostart.ru/1c/tools/97707/ .
Список полной структуры хранения базы данных 1С может быть полезен при написании
"прямых" запросов к базе через ADO.
29) Пример списка дерева полной структуры хранения базы данных 1С
(“в терминах СУБД без типов 1С”):
30) Пример списка дерева полной структуры хранения базы данных 1С
(“в терминах СУБД и с типами 1С”):
31) Сервисные возможности в контекстном меню списка дерева полной структуры
хранения базы данных 1С:
Контекстное меню позволяет выполнить следующие действия:
-
Свернуть все строки дерева списка первого уровня (без подчиненных строк);
-
Свернуть текущую строку дерева списка (с подчиненными и с выше лежащими родительскими строками);
32) Вывод списка дерева полной структуры хранения базы данных 1С в табличный документ
(системной командой):
33) Использование обработки в качестве “внешней дополнительной обработки”:
В конфигурациях 1С на основе “Библиотеки стандартных подсистем” обработка может быть сохранена
в стандартном справочнике “ДополнительныеОтчетыИОбработки” и
использована в качестве “внешней дополнительной обработки”.
34) Использование обработки в обычном приложении:
Реализация дублирующего функционала обработки в обычных формах признана нецелесообразной.
-
Поэтому для использования обработки в обычном приложении в корне конфигурации базы надо
установить флаг “Использовать управляемые формы в обычном приложении”. -
Сама обработка может быть либо включена в состав конфигурации базы, либо добавлена в одно
из расширений конфигурации (последнее предпочтительней).
35) Дополнительный контроль прав пользователя при инициализации модуля объекта обработки:
При инициализации модуля объекта у текущего пользователя дополнительно проверяется наличие прав доступа
по указанному ниже списку “крутых” полномочий:
-
“Администрирование”
-
“АдминистрированиеДанных”
-
“АдминистрированиеРасширенийКонфигурации”
-
“МонопольныйРежим”
-
“АктивныеПользователи”
-
“ЖурналРегистрации”
-
“ВнешнееСоединение”
-
“Automation”
-
“ИнтерактивноеОткрытиеВнешнихОбработок”
-
“ИнтерактивноеОткрытиеВнешнихОтчетов”
-
“ОбновлениеКонфигурацииБазыДанных”
-
“ТолстыйКлиент” //фактически право на запуск конфигуратора
-
“РежимТехническогоСпециалиста” или “РежимВсеФункции”
-
“СохранениеДанныхПользователя”
-
“Вывод”
При отсутствии у пользователя хотя бы одного права доступа из выше перечисленных
вызывается исключение “НЕДОСТАТОЧНО ПРАВ ДОСТУПА !!!”.
36) Использованные для разработки исходные обработки и авторские права:
Обработка является объединением, дальнейшим развитием и улучшением функционала
двух ниже перечисленных исходных обработок.
Статьи с исходными обработками на Инфостарте:
-
//infostart.ru/1c/tools/128362/ (для MS SQL)
-
//infostart.ru/1c/tools/978816/ (для PG SQL)
Обработка поставляется с открытым кодом “как есть”.
Все риски ее использования берутся на себя конечными пользователями.
Разрешается дальнейшее развитие и улучшение функционала обработки.
При публикации доработанных версий обработки в открытых источниках
обязательно указание ссылок на статьи со всеми исходными обработками,
включая эту обработку.
********************************************************************************************************
Тестирование предлагаемой внешней обработки:
Предлагаемая в статье внешняя обработка при разработке тестировалась
на следующих конфигурациях и релизах платформы 1С:
- Отраслевое решение "1С:Производственная безопасность, комплексная редакция 1.1".
- Релиз конфигурации 1.1.6.51 (с доработками)
- Релиз платформы 8.3.19.1522
- СУБД базы - MS SQL и PG SQL
- Отраслевое решение "1C:Фитнесклуб КОРП, редакция 4.0".
- Релиз конфигурации 4.0.37.1 (с доработками)
- Релиз платформы 8.3.181363
- СУБД базы - PG SQL
- Две самописные конфигурации на основе БСП (управляемое приложение).
- Релиз платформы 8.3.19.1522
- СУБД базы - PG SQL
- Одна самописная конфигурация без использования БСП (обычное приложение).
- Релиз платформы 8.3.181363
- СУБД базы - MS SQL
Проверено на следующих конфигурациях и релизах:
- 1С:Управление холдингом 3.2 (русский и английский интерфейсы), релизы 3.2.8.21