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

10.11.22

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

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

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

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

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

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

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

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

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

 

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

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

 

 

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

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

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

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

 
 Скриншот

 

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

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

 

 

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

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

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

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

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

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


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

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

 
 Скриншот

 

См. также

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

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

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

10000 руб.

02.09.2020    131981    721    390    

763

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

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

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

18000 руб.

06.10.2023    9640    28    6    

51

Автоподбор ролей для профилей и групп доступа в любых типовых базах 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    4720    21    1    

47

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

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

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

10000 руб.

10.11.2023    5681    16    2    

39

PowerTools

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

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

3600 руб.

14.01.2013    180237    1097    0    

871

OneDebugger - инструмент для отладки кода без использования режима конфигуратора

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

5400 руб.

17.05.2024    6731    15    12    

42

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

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

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

14400 руб.

29.04.2020    29081    86    149    

61

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

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

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

15000 руб.

07.10.2021    15512    3    12    

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

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

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