Размер таблиц в SQL базе для 1С:8.3 (УФ)

Обработка для определения размера таблиц в SQL базе.

Обработка была переделана для 1С:83 из публикации

Принцип работы аналогичен с публикаций 8.2.

Показывает размер всех таблиц информационной базы в виде таблички 
-SQL имя таблицы
-1C имя таблицы
-Назначение
-Строк
-Зарезервировано, mb
-Данные, mb
-Индексы, mb
-Неиспользуется, mb

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

 

Как это работает:

1.Открываем обработку.

2.Указываем Имя сервера, базы, пользователя и пароль.

Имя сервера в 1с состоит из 2х значений:

   2.1. Имя сервера

   2.2. Имя Сервере SQL (Если не знаетете, можно запустить SQL Server Management Studio и в диалоговом окне будет указано по умолчанию)

3.Сформировать

 

27 Comments

  1. нормальный такой

    какова актуальность?

    атата

    http://infostart.ru/public/179281/

    http://www.gilev.ru/sqlsize/

    Reply
  2. DERL

    а почему не реализована возможность подключаться к SQL серверу посредством Windows авторизации???

    Reply
  3. maksa2005

    (2) DERL, Я не создавал с нуля обработку, мну нужно было ей воспользоваться на платформе 8.3

    Reply
  4. V.Nikonov

    Только разумнее сортировать по убыванию размера! Чаще волнуют большие таблицы!

    Ещё лучше управлять сортировкой динамически…

    Reply
  5. maksa2005

    (4) V.Nikonov, учту

    Reply
  6. Chelyapin

    Можете прислать мне обработку для управляемых форм, пожалуйста? Почта krasevE@yandex.ru

    Reply
  7. maksa2005

    (6)

    лови

    Reply
  8. Salexey

    тут немного поудобнее есть https://infostart.ru/public/1093355/

    Reply
  9. maksa2005

    (8)согласен. вот только одно но! он выложил это в 2019 года, а я 2015. есть что-то добавить? и кто у кого скопировал)

    Reply
  10. Salexey

    (9)мне не важно скопировали код или нет, совершенствуйте обработки я у вас скачивать буду

    Reply
  11. Xershi

    (9) можете написать ИС и за копипаст просто удалят публикацию.

    Reply
  12. Xershi

    (8) а комментарии я так понял закрыли, чтобы не писали ссылки на публикации 2000 годов? А вопрос с расширениями я так понимаю тоже не делали?

    Reply
  13. maksa2005

    (10)

    нет смысла.

    Reply
  14. maksa2005

    (11)мне это не важно

    Reply
  15. maksa2005

    (12)пусть пишут если Им надо. я написал и выложил. Кому что удобнее — тот пусть и качает

    Reply
  16. user703966_martynyuknatalia

    Функция ВернутиРезультатПостроителя(пИсточникДанных,пЗначение,пОтбор,пВидСравнения)

    Построитель = Новый ПостроительЗапроса;

    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(пИсточникДанных);

    тОтбор = Построитель.Отбор.Добавить(пОтбор);

    тОтбор.ВидСравнения = пВидСравнения;

    тОтбор.Значение = пЗначение;

    тОтбор.Использование = Истина;

    Построитель.Выполнить();

    Результат=Новый ТаблицаЗначений;

    Результат = Построитель.Результат.Выгрузить();

    Возврат Результат;

    КонецФункции

    Процедура ПоказатиТаблицю(пТаб)

    П=Новый ПостроительОтчета;

    П.ИсточникДанных=Новый ОписаниеИсточникаДанных(пТаб);

    П.ЗаполнитьНастройки();

    ТабДок=новый ТабличныйДокумент;

    П.Вывести(ТабДок);

    ТабДок.Показать();

    КонецПроцедуры

    Процедура ОсновныеДействияФормыСтруктура(Кнопка)

    тч.Очистить();

    ИмяСервераSQL = «192.0.0.0»;

    ПользовательSQL = «admins»;

    ПарольSQL = «qwer123»;

    Строка=СтрокаСоединенияИнформационнойБазы();

    п=Найти(Строка,»Ref=»);

    Строка=Сред(Строка,п+5,СтрДлина(Строка)-п-6);

    //Сообщить(Строка);

    БазаДанныхSQL = Строка;

    Соединение = Новый COMОбъект(«ADODB.Connection»);

    Команда = Новый COMОбъект(«ADODB.Command»);

    Соединение.ConnectionString =

    «driver={SQL Server};» +

    «server=»+ИмяСервераSQL+»;»+

    «uid=»+ПользовательSQL+»;»+

    «pwd=»+ПарольSQL+»;»+

    «database=»+БазаДанныхSQL+»;»;

    Соединение.ConnectionTimeout = 30;

    Соединение.CommandTimeout = 600;

    //Открытие соединение

    Соединение.Open();

    Команда.ActiveConnection = Соединение;

    ПідключилисьДоSQL=Истина;

    Команда = ПолучитьМакет(«Макет»).ПолучитьТекст();

    //Сообщить(Команда);

    Рез=Соединение.Execute(Команда,,);

    Пока НЕ Рез.EOF() Цикл

    стр=тч.Добавить();

    стр.Таблиця= Рез.Fields(«TableName»).Value();

    стр.Розмір = Рез.Fields(«Total_MB»).Value();

    Рез.MoveNext();

    КонецЦикла;

    тч2.Очистить();

    ТаблицаБД = ПолучитьСтруктуруХраненияБазыДанных(, Истина);

    тч2.Загрузить(ТаблицаБД);

    ксть=тч2.Количество()-1;

    к=ксть;

    Пока к>=0 Цикл

    стр=тч2[к];

    нс=тч.Найти(стр.ИмяТаблицыХранения);

    стр.Розмір=?(нс=Неопределено,0,нс.Розмір);

    Если стр.Розмір=0 Тогда

    тч2.Удалить(стр);

    КонецЕсли;

    Состояние(«————————————————————«+ксть+» «+к);

    к=к-1;

    КонецЦикла;

    тч2.Сортировать(«Розмір Убыв»);

    КонецПроцедуры

    Reply
  17. maksa2005

    (16)?

    Reply
  18. user703966_martynyuknatalia

    1

    Reply
  19. user703966_martynyuknatalia

    Это код обратотки

    Reply
  20. XelOla

    {ВнешнийОтчет.РазмерТаблицВSQLБазе.Форма.ФормаОтчета83.Форма(15)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): [DBNETLIB][ConnectionOpen (Connect()).]SQL Server не существует, или доступ запрещен.

    ??? верните мани

    Reply
  21. maksa2005

    (20)В смысле? у всех работает у Вас только не работает

    Reply
  22. XelOla

    (21) почему тогда не работает?!

    Reply
  23. maksa2005

    (22)написал же он Вам:

    Server не существует, или доступ запрещен.

    Reply
  24. XelOla

    (23) не правильно.

    сервер существует. через sqlexpress я авторизируюсь sa

    Reply
  25. XelOla

    (23) мани верните

    Reply
  26. maksa2005

    (25)на почту отправить или голубем?😎😁🤣🤣🤣

    Reply
  27. XelOla

    (26) у меня качните чтонибудь.

    мне вернется.

    но ваша обработка у меня не работает.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *