Структура хранения ИБ - обработка за 5 минут и 2 строки кода - DIY

10.11.22

База данных - Инструменты администратора БД

Платформа "1С:Предприятие 8" не держит в секрете информацию об именах таблиц SQL (или внутренней БД для файловой). Для получения подробнейшей информации - есть штатная функция "ПолучитьСтруктуруХраненияБазыДанных". Данная обработка - лишь обертка над функцией. Думаю, нет смысла качать и тратить $m на то, что можно сделать самому за 5 минут.

Скачать исходный код

Наименование Файл Версия Размер
Обработка СтруктураХраненияИБ.epf (упр. и обычные формы)
.epf 12,53Kb
1840
.epf 12,53Kb 1840 Скачать бесплатно
 
 Для чего это нужно?

Время от времени возникает необходимость посмотреть в SQL таблицы и узнать за что отвечает то или иное поле, где именно хранятся данные и как всё организовано. Бывает, это нужно для исправления технических проблем с базой после обновления, сбоя диска, выключения света и т.п. Или же - просто любопытство.

Платформа "1С:Предприятие 8" не держит в секрете информацию об именах таблиц SQL (или внутренней БД для файловой). Для получения подробнейшей информации - есть штатная функция "ПолучитьСтруктуруХраненияБазыДанных".

Данная обработка - лишь обертка над функцией.

На Инфостарте можно найти несколько решений за $m, но зачем тратиться на то, что можно собрать за 5 минут?..

Потому, привожу инструкцию как самостоятельно собрать себе такую обработку на обычных и управляемых формах.

 

Управляемые формы

Первым делом создаем внешнюю обработку, добавляем на форму реквизит "ТаблицаСтруктураБД" тип - таблица значений, структура таблицы:

 

 

Все колонки типа строка неограниченной длины (кроме тех, тип которых - таблица значений)

Далее - добавляем обработчик события "ПриСозданииНаСервере" - собственно, заполним таблицу:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	СтруктураБД = ПолучитьСтруктуруХраненияБазыДанных();
	ЗначениеВРеквизитФормы(СтруктураБД, "ТаблицаСтруктураБД");
	
КонецПроцедуры

Сохраняем, пользуемся.

 
 Скриншот

 

Обычные формы

Тут чуть сложнее. Создаем внешнюю обработку и при помощи мастера закидываем на неё 4 таблицы, немного "колдуем" с настройками и получаем такое:

 

 

Таблицы я назвал так: СтруктураБД, ПоляТаблицы, ИндексыТаблицы, ПоляИндекса.

Далее - добавляем обработчик события "ПриОткрытии" - собственно, заполним таблицу:

Процедура ПриОткрытии()
	
	СтруктураБД = ПолучитьСтруктуруХраненияБазыДанных();
	
КонецПроцедуры

В таблицах полей и индексов надо добавить обработчики активизации строки. Код тоже прост:

Процедура СтруктураБДПриАктивизацииСтроки(Элемент)
	
	Если ЭлементыФормы.СтруктураБД.ТекущаяСтрока=Неопределено Тогда
		ПоляТаблицы = новый ТаблицаЗначений;
		ИндексыТаблицы = новый ТаблицаЗначений;
		ПоляИндекса = новый ТаблицаЗначений;
	Иначе
		ПоляТаблицы = ЭлементыФормы.СтруктураБД.ТекущаяСтрока.Поля;
		ИндексыТаблицы = ЭлементыФормы.СтруктураБД.ТекущаяСтрока.Индексы;
		ИндексыТаблицыПриАктивизацииСтроки(Элемент);
	КонецЕсли;

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


Процедура ИндексыТаблицыПриАктивизацииСтроки(Элемент)
	
	Если ЭлементыФормы.ИндексыТаблицы.ТекущаяСтрока=Неопределено Тогда
		ПоляИндекса = новый ТаблицаЗначений;
	Иначе
		ПоляИндекса = ЭлементыФормы.ИндексыТаблицы.ТекущаяСтрока.Поля;
	КонецЕсли;
	
КонецПроцедуры

Сохраняем, пользуемся.

 
 Скриншот

 

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    126229    683    389    

737

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    8243    24    6    

44

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

14400 руб.

06.12.2023    3701    19    1    

40

Infostart УДиФ: Управление данными и формами 1С

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4612    12    2    

38

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2280 руб.

14.01.2013    178807    1085    0    

862

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    28080    83    146    

61

Бустер Конвертации данных 3 (Infostart Toolkit)

Инструментарий разработчика 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    15061    3    12    

37

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11880    5    9    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. aleksey2 86 10.11.22 08:24 Сейчас в теме
а как сделать такое для ПолучитьРазмерДанныхБазыДанных() ?
2. DrAku1a 1718 10.11.22 08:43 Сейчас в теме
(1)
ПолучитьРазмерДанныхБазыДанных
- тут чуть сложнее. Поскольку метод возвращает только суммарный размер данных по указанным отборам, нужно делать цикл по метаданным, перебирая всё, из чего состоит конфа, и заполнять вручную. В справке - достаточно прозначный пример:
МассивИменМетаданных = Новый Массив();
МассивИменМетаданных.Добавить("Справочник.Номенклатура");
РазмерДанных=ПолучитьРазмерДанныхБазыДанных(Новый Массив(),МассивИменМетаданных);

Доступен, начиная с версии 8.3.15.
3. tormozit 7143 10.11.22 09:17 Сейчас в теме
Попробовал. Работает =)
fatman78; voneska7; itoptimum; fancy; DrAku1a; ardn; +6 Ответить
4. WorkerPavel 10.11.22 14:17 Сейчас в теме
Написано
Саму обработку не прилагаю.

Но она приложена!
DrAku1a; itoptimum; +2 Ответить
5. DrAku1a 1718 11.11.22 01:56 Сейчас в теме
(4) Забыл убрать фразу. Поправлено. Обработка бесплатна - чтобы сэкономить себе эти 5 минут (на её "изготовление").
bocharovki; alezander; voneska7; +3 Ответить
6. CheBurator 3119 11.11.22 08:02 Сейчас в теме
7. DrAku1a 1718 11.11.22 10:02 Сейчас в теме
(6) Разборки с настройкой и установкой ИР обычно занимают более 5 минут. Знаю, там удобные вещи реализованы, но...
Прикрепленные файлы:
alezander; ixijixi; dnikolaev; +3 Ответить
11. PerlAmutor 129 12.11.22 06:34 Сейчас в теме
(7) Не пожалеть времени и один раз разобраться себе на пользу. Обновление релизов слабо сказывалось на работоспособности ИР, кроме того, автор ИР оперативно вносит доработки по заявке.
fatman78; +1 Ответить
8. kser87 2441 11.11.22 11:17 Сейчас в теме
9. starik-2005 3038 11.11.22 11:41 Сейчас в теме
Автору респект уважуха, т.к. фактически рассказал, как сделать простое еще более простым. Только зачем две строки кода? Я справился и одной ))) https://infostart.ru/public/796664/
В таблицах полей и индексов надо добавить обработчики активизации строки.
Это вообще лишнее ))) Хотя... Для ОФ это не лишнее - печаль.
12. gzharkoj 504 12.11.22 20:23 Сейчас в теме
(9) Так и тут можно в одну строку написать, вопрос стиля.
10. kser87 2441 11.11.22 13:17 Сейчас в теме
А потом эти люди возмущаются, что 1С функции встроенного языка меняет. Добавят/удалят колонку и сломается непонятно что и непонятно где и быстро не исправить.
13. petrobol25 15.07.23 19:58 Сейчас в теме
а как получить виртуальные таблицы регистров?
14. DrAku1a 1718 15.07.23 20:10 Сейчас в теме
(13) Виртуальные таблицы - стороятся из других таблиц БД при формировании запроса.
15. alezander 05.01.24 03:18 Сейчас в теме
Спасибо! Нашел нужную таблицу в SQL и "надругался" над ней ))
16. iD1n 11 17.04.24 15:34 Сейчас в теме
Оставьте свое сообщение