1с как узнать имя таблицы в sql
Перейти к содержимому

1с как узнать имя таблицы в sql

  • автор:

�� Как узнать имя таблицы 1с в SQL: простая инструкция для начинающих

Для того чтобы узнать имя таблицы 1С в SQL, вам нужно взглянуть на структуру базы данных 1С и найти соответствующую таблицу в ней. Вы можете использовать следующий запрос SQL, чтобы просмотреть список всех таблиц в базе данных:

SHOW TABLES;

После выполнения этого запроса, вы увидите список всех таблиц, включая таблицы 1С. Если вы хотите узнать имя конкретной таблицы 1С, то можете использовать команду DESCRIBE или SELECT для просмотра структуры таблицы и ее содержимого соответственно:

DESCRIBE table_name;

где table_name — это имя таблицы 1С, которую вы хотите исследовать. Надеюсь, что эта информация поможет вам найти имя таблицы 1С в SQL!

Детальный ответ

Привет ученик! Прежде чем перейти к основной теме, давайте обсудим, что такое SQL и 1C.

SQL

SQL (Structured Query Language) — это язык программирования, который используется для работы с реляционными базами данных. SQL позволяет выполнять операции как на структуре данных, так и на содержимом. Он широко используется в сфере разработки программного обеспечения.

1C

1C — это платформа для автоматизации учета, управления предприятием и разрабатываемых на ее базе прикладных решений. В 1C хранятся данные в специальных таблицах, и нам нужно знать имя этих таблиц для работы с ними в SQL.

Как узнать имя таблицы 1С в SQL?

Чтобы узнать имя таблицы 1С в SQL, мы можем воспользоваться следующими шагами:

Шаг 1: Откройте 1C

Первым шагом необходимо открыть 1C. Запустите программу 1C на своем компьютере.

Шаг 2: Выберите нужную базу данных

Во вкладке «Базы данных» выберите нужную базу данных, в которой хранятся таблицы, имя которых вы хотите узнать.

Шаг 3: Перейдите в режим «SQL»

После выбора базы данных перейдите в режим «SQL». Для этого щелкните правой кнопкой мыши на выбранной базе данных и выберите в контекстном меню пункт «Открыть SQL-консоль».

Шаг 4: Выполните запрос с информацией о таблицах

Теперь мы можем выполнить запрос SQL для получения информации о всех таблицах в выбранной базе данных. Введите следующий запрос в SQL-консоли:

 SELECT name FROM sys.tables; 

Этот запрос выберет все имена таблиц из системной таблицы «sys.tables». Здесь «name» — это имя столбца, содержащего имена таблиц.

Шаг 5: Получите результаты запроса

Нажмите кнопку «Выполнить» или нажмите клавишу F5, чтобы выполнить запрос. Результаты запроса отобразятся в режиме «SQL». Вы увидите список имен таблиц в выбранной базе данных.

Заключение

Теперь вы знаете, как узнать имя таблицы 1С в SQL. Не забывайте, что SQL — мощный инструмент для работы с данными, и эти знания будут полезны в вашей разработке программного обеспечения. Удачи в изучении SQL и 1C, ученик! Продолжай стараниями, и ты обязательно добьешься успеха!

�� Как узнать имя таблицы 1с в SQL: простая инструкция для начинающих

Для того чтобы узнать имя таблицы 1С в SQL, вам нужно взглянуть на структуру базы данных 1С и найти соответствующую таблицу в ней. Вы можете использовать следующий запрос SQL, чтобы просмотреть список всех таблиц в базе данных:

SHOW TABLES;

После выполнения этого запроса, вы увидите список всех таблиц, включая таблицы 1С. Если вы хотите узнать имя конкретной таблицы 1С, то можете использовать команду DESCRIBE или SELECT для просмотра структуры таблицы и ее содержимого соответственно:

DESCRIBE table_name;

где table_name — это имя таблицы 1С, которую вы хотите исследовать. Надеюсь, что эта информация поможет вам найти имя таблицы 1С в SQL!

Детальный ответ

Привет ученик! Прежде чем перейти к основной теме, давайте обсудим, что такое SQL и 1C.

SQL

SQL (Structured Query Language) — это язык программирования, который используется для работы с реляционными базами данных. SQL позволяет выполнять операции как на структуре данных, так и на содержимом. Он широко используется в сфере разработки программного обеспечения.

1C

1C — это платформа для автоматизации учета, управления предприятием и разрабатываемых на ее базе прикладных решений. В 1C хранятся данные в специальных таблицах, и нам нужно знать имя этих таблиц для работы с ними в SQL.

Как узнать имя таблицы 1С в SQL?

Чтобы узнать имя таблицы 1С в SQL, мы можем воспользоваться следующими шагами:

Шаг 1: Откройте 1C

Первым шагом необходимо открыть 1C. Запустите программу 1C на своем компьютере.

Шаг 2: Выберите нужную базу данных

Во вкладке «Базы данных» выберите нужную базу данных, в которой хранятся таблицы, имя которых вы хотите узнать.

Шаг 3: Перейдите в режим «SQL»

После выбора базы данных перейдите в режим «SQL». Для этого щелкните правой кнопкой мыши на выбранной базе данных и выберите в контекстном меню пункт «Открыть SQL-консоль».

Шаг 4: Выполните запрос с информацией о таблицах

Теперь мы можем выполнить запрос SQL для получения информации о всех таблицах в выбранной базе данных. Введите следующий запрос в SQL-консоли:

 SELECT name FROM sys.tables; 

Этот запрос выберет все имена таблиц из системной таблицы «sys.tables». Здесь «name» — это имя столбца, содержащего имена таблиц.

Шаг 5: Получите результаты запроса

Нажмите кнопку «Выполнить» или нажмите клавишу F5, чтобы выполнить запрос. Результаты запроса отобразятся в режиме «SQL». Вы увидите список имен таблиц в выбранной базе данных.

Заключение

Теперь вы знаете, как узнать имя таблицы 1С в SQL. Не забывайте, что SQL — мощный инструмент для работы с данными, и эти знания будут полезны в вашей разработке программного обеспечения. Удачи в изучении SQL и 1C, ученик! Продолжай стараниями, и ты обязательно добьешься успеха!

�� Как узнать название таблицы 1С в SQL? Гайд для начинающих

Чтобы узнать название таблицы 1С в SQL, можно воспользоваться запросом, который покажет все таблицы в базе данных. Вот пример:

 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='имя_базы_данных' 

В этом запросе используется системная таблица INFORMATION_SCHEMA.TABLES для получения информации о всех таблицах в базе данных. Значение ‘имя_базы_данных’ должно быть заменено на фактическое имя вашей базы данных. После выполнения этого запроса, вы увидите список всех таблиц в базе данных, включая таблицы 1С. Узнать конкретное название таблицы 1С можно по ее структуре и содержимому.

Детальный ответ

Привет! Давай разберемся, как узнать название таблицы 1С в SQL. Это может понадобиться, например, когда ты работаешь с базой данных 1С и хочешь написать SQL-запрос к одной из таблиц. Таблицы 1С имеют свою специфику, поэтому для этого нам потребуется немного дополнительной информации. В 1С таблицы называются «регистрами». Регистр может быть нескольких видов, таких как регистр накопления, регистр сведений или регистр бухгалтерии. Каждый вид регистра в 1С имеет свое название, поэтому важно знать, какое именно название таблицы ты хочешь использовать в SQL-запросе. Следующий код на языке 1С поможет нам узнать названия всех таблиц (регистров) в базе данных:

 SELECT Description, Name FROM _InfoRg43 

В этом примере мы используем системную таблицу _InfoRg43, которая содержит информацию о регистрах в базе данных. Колонка Description содержит описания регистров, а колонка Name содержит их названия. Запустим этот код в SQL-клиенте базы данных 1С и получим полный список названий всех таблиц (регистров). Теперь, когда у нас есть список названий таблиц, давай узнаем более детальную информацию о каждой таблице в базе данных. Для этого мы можем использовать следующий SQL-запрос:

 SELECT * FROM InformationRegisterRecordSet('_InfoRg43') WHERE Period = &AtStartDate 

В этом примере мы используем функцию InformationRegisterRecordSet, которая позволяет получить все записи из регистра за определенный период времени. Здесь мы указываем название таблицы вместо ‘_InfoRg43’. Этот запрос вернет все записи из указанной таблицы (регистра), отфильтрованные по текущей дате. Также, мы можем получить информацию о полях таблицы (регистра), используя следующий SQL-запрос:

 SELECT FieldName, FieldType FROM InformationRegisterField('_InfoRg43') 

В этом запросе мы используем функцию InformationRegisterField, которая позволяет получить информацию о полях таблицы (регистра). Мы указываем название таблицы вместо ‘_InfoRg43’. Запустив этот запрос, мы получим список всех полей таблицы (регистра) и их типов данных. Теперь у тебя есть все необходимые инструменты, чтобы получить информацию о таблицах 1С в SQL. Используй эти примеры в своей работе с базой данных 1С и будь уверен, что ты всегда будешь знать название таблицы, которое тебе нужно. Удачи в изучении баз данных и SQL! If you have any further questions or need more assistance, feel free to ask. Keep up the good work! ��

1с как узнать имя таблицы в sql

Часто возникает необходимость определить в какой таблице СУБД хранится тот или иной объект метаданных. Или наоборот, какой объект метаданных соответствует определенной таблице СУБД. Здесь стоит упомянуть, что имена таблиц и полей СУБД, в которых хранятся объекты метаданных 1С:Предприятия, не соответствуют именам объектов метаданных, их реквизитам, измерениям, ресурсам. Получение такой информации не представляет особой сложности, тем не менее, если Вы никогда этого не делали, данная статья будет Вам полезна.

Получение структуры хранения базы данных

В целом, эту статью можно было бы изложить в одном коротком предложении: для получения информации о структуре хранения базы данных, а также соответствие имен объектов в терминах 1С:Предприятие и СУБД необходимо воспользоваться методом ПолучитьСтруктуруХраненияБазыДанных () . Но мы пойдем дальше и попробуем разобраться с областью применимости этого метода, а также организуем удобную работу с возвращаемыми методом данными.

Давайте, для начала, посмотрим что же возвращает данный метод. Результатом вычисления данной функции будет таблица значений, в которой каждая строка таблицы определяет одну таблицу СУБД. В первых двух колонках указано имя таблицы в терминах СУБД и в терминах 1С:Предприятия. Далее идут колонки описывающие к какому метаданному относится таблица и назначение этой таблицы СУБД. Последние две колонки содержат вложенные таблицы значений полей и индексов таблицы СУБД. В таблице полей содержится соответствие имен полей в терминах СУБД и терминах 1С:Предприятие, а так же связь поля с объектом метаданного (какой реквизит/ресурс/измерение). Таблица индексов содержит набор имен индексов, а так же вложенную таблицу значений, содержащую поля таблицы СУБД, включенные в состав индекса, и соответствие их имен в терминах СУБД и 1С:Предприятие.

Структура хранения базы данных

Структура хранения базы данных

Область применимости

Подготовка базы

Набор таблиц базы данных в СУБД и методе платформы

Откроем обработку в 1С:Предприятие, а также откроем список таблиц базы данных в СУБД и сравним их. Как видно, метод ПолучитьСтруктуруХраненияБазыДанных () вернул не полный список таблиц базы, который мы можем увидеть на уровне СУБД, а набор таблиц за исключением системных таблиц, таких как Config, ConfigSave, v8users и другие.

Структура базы данных на уровне СУБД и платформы

Структура базы данных на уровне СУБД и платформы

Набор полей (колонок) в таблице

Структура полей (колонок) в таблице базы данных

Перейдем теперь к нашему регистру сведений. Получим набор полей таблицы регистра с помощью обработки, а так же получим набор колонок в СУБД и сравним их. Как видно, для не составных типов (вне зависимости от типа) в СУБД используется 1 колонка таблицы, структура хранения 1С:Предприятия отражает аналогичную информацию. Если же мы перейдем к полям составного типа, то в обработке все так же выводится информация только об 1 поле, как мы его и задавали в конфигурации, а в СУБД это поле хранится в нескольких колонках и их количество может быть различно в зависимости от состава типа поля, определенного в конфигурации. Это связано со способом хранения информации платформой и более подробно можно прочесть на сайте ИТС. Замечу, что при анализе запроса в СУБД или анализе плана запроса необходимо учитывать этот факт и правильно интерпретировать имена колонок.
Структура полей (колонок) в таблице базы данных

Состав индексов

Структура и состав индексов на уровне СУБД и платформы

Структура и состав индексов на уровне СУБД и платформы

Продолжаем эксперименты

Давайте продолжим наши эксперименты и (в исследовательских целях) нарушим лицензионное соглашение. Для того чтобы быть уверенными что не сломаем нашу базу данных, сделаем ее резервное копирование средствами СУБД.

Сделаем следующие вещи:

Откроем нашу обработку и проверим что получилось:

  1. Платформа не знает о том что порядок полей в индексе был изменен
  2. Платформа не знает о том что индекс удален
  3. Платформа не видит добавленную колонку
  4. Платформа не видит добавленную таблицу

Задание для самостоятельной работы

Выводы

Метод ПолучитьСтруктуруХраненияБазыДанных () предоставляет достаточно полную и корректную информацию о структуре хранения базы данных, а так же выводит соответствия имен таблиц, их колонок, и индексов в терминах СУБД и 1С:Предприятие. Но, при этом есть некоторые ограничения при работе с этим методом:

  1. Нет информации о системных таблицах (но она особо и не нужна)
  2. Состав полей отражается с точки зрения 1С, а не с точки зрения хранения в СУБД (только в терминах 1С:Предприятие)
  3. Набор индексов так же отражается с точки хранения 1С, а не с точки зрения СУБД (только в терминах 1С:Предприятие)
  4. Некоторые существующие поля индекса могут быть не отражены в составе индекса на уровне платформы (только в терминах 1С:Предприятие)
  5. Информация, видимо, строится не по структуре базы данных, а по некому представлению платформы о структуре базы на основании метаданных конфигурации и их свойств
  6. Необходимо иметь ввиду что механизм работы метода может быть изменен в другой версии платформы

Если запустить эту обработку в первой и второй базе ( обе одной конфигурации УПП 1.3 (1.3.38.4)), то имеем для первой базы имя таблицы SQL = Reference131, для второй имя таблицы SQL = Reference162. Если смотреть структуру полей таблиц, то видим, что имена полей различны.

Вопрос: подтвердите или опровергните вывод: таблицы SQL создаются динамически и могут иметь различные имена (имена полей в том числе). При создании новой базы загрузкой конфигурации из *.cf –файла, получим таблицы новой базы с именами, отличными от имен таблиц базы, из которой был выгружен файл конфигурации *.cf .

cf это метаданные 1С к sql отношения не имеют. из того же cf можно вообще сделать файловую базу.

а вообще — проводлжайте наблюдать, вас столько открытий ждет

В базе1 добавили новый справочник, появилась таблица _Reference131.
В базе1 удалил справочник, таблица _Reference131 удалилась.
В базе1 добавили новый справочник, появилась таблица _Reference132
На базу2 накатили обновление из базы1. в базе2 появился справочник с таблицей _Reference131
но если загрузить в 2 разных базы чистых одинаковый Цф — то и структура с большой долей вероятности будет одинакова

>но если загрузить в 2 разных базы чистых одинаковый Цф — то и структура с большой долей вероятности будет одинакова

одинаковы будут id по которым происходит «быстрая» сверка. также это будет гарантировать что данные не отвалятся при нахлабучивании изменений одной конфы на другую через «загрузить»

(6) Ага. Следует заметить, что отсортированный по имени объектов cf-ник и такой же без сортировки скорее всего даст разные имена таблиц и полей, если, конечно, количество объектов метаданных в каждом типе больше 1 🙂
(7) это понятно, я про стуртуру таблиц ы скуле, она тоже совпасть должна

Ребята. Всем СПАСИБО!!

НЕОБХОДИМО из SQL-таблиц получать информацию для другого программного продукта (НЕ 1С). получается, что надо создавать таблицу соответствий что ли, чтооб не изменять код при чтении данных 1С из таблиц в другом программном продукте(базу 1С планируем обновлять. ведь можно разными способами получить базу данных обновленную чистую для учета с нового года, например).

Кто-нибудь решал такую проблему? Может кто подскажет оптимальное решение.

(15) снабди своё 1С вебсервисом, который будет отдавать то , что надо, и ни чего лишнего. Иначе однажды утром 1С не заведется потому. что какой-то осел нечаянно сказал DROP DATABASE не в то окно
(15) Образение через com в 1с и получение структуры оттуда.
Но обычно более эффективным считается работа от обратного, когда 1с отдает в нужном виде.
(15)
я решал при обнослении config
в случае необходимости пересоздается view
с именами метаданных.
+(17) Ащета лицензионное соглашение 1С запрещает лезть своими грязными пальцАми в 1Совские БД

(15) Другой продукт каждый раз при коннекте каким то образом инициирует ПолучитьСтруктуруХраненияБазыДанных(МассивИменМетаданных)
в конфиге и дальше работает через этот мапинг до конца коннекта.

Как реализовать вызов этой процедуры — уже технические формальности

Я создавал базу данных соответствий НазвваниеОбъекта- таблица SQL.так же с реквизитами. дальше запросом получал соответствие и формировал динамически запрос к базе данных. если менялось название какой либо таблицы или реквизита то я просто в базе соответствий менял значение. и запрос опять давал корректный результат. Это все делалось для сверки с 1С другой учетной системы
(21) это легко оспорить в суде и вертеть потом на вертеле. Другое дело, что это не разумно и не безопасно. Вот это уже вертеть чревато
(24) если данные только получать для отчетов и сверок- то это ничем не чревато. а вот если писать в базу то тут существует опасность.
(25)
какие опасности существуют при записи в таблицы (представления) ?
(16) а чем чревато создание собственных функций, процедур, вьюшек etc в одинесовской базе?
(25) ему придется отдать насторону огин и пароль к кишкам, из которых получить можно что угодно и ни кто не знает, что потом будет по факту получаться и куда передаваться. Это все равно, что голую задницу в интернет выставить
(28) всё-равно побаиваюсь. Создать другую базу и в ней создаю всё это хозяйство
(30) Ничего не будет. Я индексами игрался, функции и вьюхи создавал — всё работало как часы
(29) Можно ведь создать еще одно юзера к кишкам с доступом на ридонли
данные из 1С читать надо только, обрабатываться будут в другой системе
(31) единственное, наверно, если создавать архив средствами 1С, то потеряется. Но, это не страшно
Создай базу данных в которой будут вьюхи и процедуры(которые будут читать данный из рабочий базы)-как уже сказали зверя создать только на чтение.
я не рискнул вьюхи и процедуры создавать в рабочей базе. данные получал в другую базу во вьюхи.
(33) есть штатный безопасный механизм, дающий любой необходимый программный интерфейс к чему угодно. Вебсервисы. Надо научиться ими пользоваться, а не городить велосипеды с квадратными колесами.
(39) так я думаю это самое верное решение. т.к. на этапе проектирования не один пуд соли съел)))
все-таки, еще раз вопрос — что в 1С не хватает ? (38) + — изобретать велосипид, БД зависимый. Типа, круто, на asm ваять, а vb — отстой
(38) прямые (Ровные запросы, а не оптимизированные кривым оптимизатором 1С) запросы гораздо быстрее выполняются напрямую-если важна скорость
(34) Значит все средства интеграции, которые предлагает 1С штатно, мы вертели на вертеле? Или просто лень почитать?
(43) прямыми (Ровные запросы, а не оптимизированные кривым оптимизатором 1С) сделаешь базу кривой. В резюме, потом напиши, что сделал суперские оптимизированные запросы
(47) абсолютно не при чем. «За державу обидно».
Меня устраивает «оптимизатор запросов 1С», хоть и не фан. Как, говорилось на этом форуме не раз, готовить запросы надо уметь.
Почему-то все адепты прямых запросов не учитывают вероятности получить несогласованные данные.
данные из 1С попадают в систему весовых терминалов. обрабатываются там. затем обратно в 1С. кто работает с весовым оборудованием. средства 1С дают хорошие возможности.

(51) Часть блокировок живет в памяти сервера. Сторонне приложение о них не в курсе.

(56) Например у тебя больше чем 1 кластер ( рабочих процессов) как ты их блокировать то будешь?
v8: Разделяемый или Исключительный режим блокировки
(55) в продолжение темы для «адептов»:
Для чего надо делать так (0):
ускорить шибко тугой запрос на уровне СУБД, или, запудрить тех, кто будет это хозяйство разбирать
Для чего не надо делать так:
3. даются средства высокого уровня, зачем лезть в кору
4. потом, после реализатора «нетленки» долго нужно разбираться — из прямых запросов к БД, т.к. это уровень не бизнес-логики
(61) Как другой кластер (рабочий процесс) об этом узнает? Проще использовать блокировки БД

(60)
запудрить тупых рисовальщиков формочек и отчётов
0 что значит бд зависимо? 1с примерно одинаково гененрирут названия полей для разных субд (всего 3 варианта)

2 с учетом оговорок смысла не имеет. тк практически любой объект бд- метаданных можно привести к состоянию требующему разрешённому и рекомендованному фирмой 1с вмешательству.

3. вот тут верно. тк 1с8 на риалтайм систему не тянет.
лучше через коннектор.
мне через саповский коннектор в 10 раз удобней было работать с САП
чем на прямую в скл сервер писать.

4. если делать через view с именами метаданных — то все равно.

(62) Рабочие процессы обращаются к менеджеру. А другой кластер это другая база.
(64) Рабочие процессы это реально разные процессы со всоей виртуальной памятью.
Другой кластер это другой компьютер а база у всех одна.
Так как ты будешь хранить эти блокировки? Неужто это будет эффективнее чем хранить блокировки в самой БД?
Меня интересует технический процесс.
(17) чтобы этого не случалось в SQL есть роль db_datareader

(65) (66) Народ, желтые книжки почитайте, я с них цитирую. Конечно я в исходниках платформы не копался, но оснований не верить нет.

Блокировок БД бывает недостаточно, поэтому вводятся блокировки прикладного уровня. Сам не раз реализовывал, в других системах. Некоторые СУБД предоставляют механизмы для того, чтобы и прикладные блокировки жили в БД. Грубо говоря API к своему менеджеру блокировок. Но в случае 1С кроссплатформенность и кросс-СУБД диктует свои правила. Поэтому прикладные блокировки живут в памяти сервера 1С. Очевидно они не могут быть свои у каждого рабочего процесса, поэтому в памяти менеджера кластера.
И не путайте «рабочий процесс» и «кластер».

(66) Хранить блокировки только в БД разумеется эффективнее. Но это не всегда возможно, см. выше.

(69)
«желтые книжки почитайте» —
— какую главу. если Вы сами не использовали что-то
то к ЖК лучше не аппилировать, тк это 1с.
В ней заявленое может не работать, рабочее может быть не декларированным.

поэтому и интересно, можете ли Вы точнее чем общий отсыл к
ЖК или интернет подтвердить работу кластера с разными бд.

(70 >подтвердить работу кластера с разными бд.
Не понял

Главу постараюсь найти.

(38) Ты опоздал, вроде как веб сервисами пользоваться умеют уже все, а поднимать веб сервер дорогого стоит
(71) Нашел.
Клиент-серверный вариант. Руководство администратора. 2.1.3. Сервисы кластера
На ИТС тоже есть.

Мало того в 8 ке применяется оптимистическая блокировка. Управляемые блокировки используют хинты SERIALIZABLE,REPEATABLEREAD

Оптимистическая блокировка осуществляется на уровне поля ._Version v8: Кэши разные нужны, кэши нужные важны.

Пессимистическая на уровне блокировок в транзакции. Нет смысла городить огород там, где он не нужен. Но вот если будут реальные примеры объектных блокировок осообенно в контексте нескольких серверов приложений.

Правда, перечитал еще раз про упр. блокировки, и появилось сомнение в (50). Если они действительно держатся ТОЛЬКО до конца транзакции, то ЧИТАТЬ извне вроде можно. Но не уверен до конца.
(76) Так и объектные блокировки имеют смысл без транзакции.
Управляемые блокировки только на уровне транзакции и на уровне БД. Не управляемы это уже уровень изоляции REPEATABLE READ. Но тогда и на уровне блокировок запросов нет смысла в объектных блокировках для клиент сервера. Для Локальных баз на уровне LockFile
(78) Давай прежде всего не путать объектные блокировки и управляемые. Первые с танзакциями не связаны, они чисто прикладные.
Вот про это я и говорю зачем мешать объектные блокировки и транзакционными блокировками бд. Объектные блокировки так или иначе не взаимодействуют с блокировками БД. Тогда какой в них смысл? Управляемые блокировки это блокировки БД в режиме изоляции Read Commited с помощью хинтов SERIALIZABLE,REPEATABLEREAD. Автоматические это уже на уровне Изоляции REPEATABLE READ.

(81) Давай ты прочитаешь (82), с терминологией и общей концепцией все устаканится, потом продолжим.

Правда, там в тексте упоминается 8.1, кое-что могло и устареть.

(81) > Управляемые блокировки это блокировки БД в режиме изоляции Read Commited с помощью хинтов SERIALIZABLE,REPEATABLEREAD.

Это неправда, при наложении управляемой блокировки никакие блокировки в БД не накладываются.

(84)
раньше
(до 14 релиза)
накладывались блокировки субд.

сейчас может исправили.

ух разошлись про блокировки. Ну и что, выяснили что нибудь? Если, выяснили, то через несколько релизов платформы 1С забудьте. Вам же ясно говорят, нечё лезть куда ни надо
(88) Внутри одного из менеджеров кластера (процесс) запускается служба (в терминах 1С) транзакционных блокировок, конечно, это маршалинг, но если рабочих процессов больше одного, то без этого управляемые блокировки не организовать. Если рабочий процесс один то в предыдущих версиях этот механизм блокировок размещался в рабочем процессе, с тех пор рекомендация, на х64 запускать один рабочий процесс, если нет веских причин поступить по-другому.
(88) Так и сказано управляемые блокировки используют Read Commited (или Snapshot Isolation в 8.3), а блокировки в разрезе объектов 1С держит менеджер блокировок.
(89) Так это и есть официально объяснение лицензионного запрета, вы там наулучшаете, а мы в свою очередь всё переделаем внутри в новой версии и в неё уже автоматом ничего не сконвертируется при обновлении, и могут обвинить в этом не улучшателя, а производителя.
(90) Объясни зачем городить огород если все это можно решить на уровне БД, для рабочих процессов больше 1?
Могут быть кластеры на нескольких серверах. Где выигрыш если рабочих процессов больше чем 1?

(91) Зачем в запрсах применять хинты
FROM _AccRg5523 T3 WITH(SERIALIZABLE)
LEFT OUTER JOIN _Acc6_ExtDim5518 T4 WITH(REPEATABLEREAD)

(91) Глупо изобретать велосипед, там где он уже эффективно работает. Snapshot Isolation хорорша при чтении данных снимка данных до начала транзакции. Если же ты хочешь, что бы данные не изменялись до конца транзакции нужно накладывать блокировки явно.

(92) Например, надо заблокировать одно значение субконто в регистре бухгалтерии по всем счетам, предложи как это сделать блокировками на уровне СУБД.
Менеджер блокировок просто запишет в своих структурах: Пространство блокировок (РБ.Хозрасчетный), Субконто, Его значение. И будет держать его до конца транзакции.
Всё дело в том, что, именно, сервер 1С хранит в себе бизнес модель на предметном уровне. Например, меня огорчает, что журнал регистрации не хранится в БД, но у производителя свои взгляды на продукт.

SET TRANSACTION ISOLATION LEVEL READ COMMITTED
go
SELECT spid, blocked FROM master..sysprocesses WHERE blocked > 0 AND lastwaittype LIKE ‘LCK_%’
go
BEGIN TRANSACTION
go

(93) .1 это точно управляемый режим новых версий 8.2?
.2 так это ради Оракла, который версионник, а не блокировочник как MS SQL, поэтому все блокировки они решили делать сами с учётом внутренней природы бизнес объектов (справочники, документы и тд.) и не объектов (регистры). А работать должно везде одинаково!
(96) Для автоматического режима хинт REPEATABLEREAD не имеет смысла.
(97) Для Оракла есть FOR UPDATE и DBMS_LOCK. Но не являюсь хоть каким то знатоком Оракула.

Блокировки могут быть еще в режиме 4 (разделяемая блокировка таблицы share mode, генерируется, например, оператором lock table in share mode) и 5 (разделяемая блокировка таблицы и монопольная блокировка строк share row exclusive; генерируется, например, оператором lock table in share row exclusive mode). Но эти режимы встречаются крайне редко.

ИмяТаблицы:
ИмяТаблицыХранения: _InfoRgOpt33787
Назначение: НастройкиХраненияИтоговРегистраСведений

ИмяТаблицы: РегистрСведений.ВерсииОбъектов
ИмяТаблицыХранения: _InfoRg18749
Назначение: Основная

Тестировалось в 1С:УПП 1.3 на Платформе 8.3.9.2170.

Получить имя таблицы SQL из пользовательского сеанса 1С:

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Просмотры 6647

Загрузки 9

Создание 23.05.17 21:18

Обновление 23.05.17 21:18

№ Публикации 625574

Конфигурация Конфигурации 1cv8

Операционная система Windows

Страна Россия

Вид учета Не имеет значения

Доступ к файлу Абонемент ($m)

Код открыт Да

См. также

Универсальный редактор данных (УРД) Промо

Универсальный редактор данных (УРД) — это лучший инструмент в своем классе, который позволяет редактировать реквизиты и движения объектов

27.08.2021 5988 124 Adeptus 51

Доп. панель Alt+Z

Панель, вызываемая для объекта комбинацией клавиш Alt+Z (для документа, справочника, плана вида характеристик, плана счетов и т.д.). Возможности: Редактор всех реквизитов, таблиц и движений, Анализ прав к объекту, Поиск ссылок на объект с фильтрами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Подключается как Расширение.

24.06.2021 8115 100 sapervodichka 57

Оптимизация размера изображений из присоединенных файлов УТ 11.4

10.07.2020 8814 5 Neti 4

Работа с базами данных 1С в SQL Server Management Studio (Расширение для SSMS)

Расширение позволяет просматривать связи объектов метаданных и таблиц БД, сгруппированные данные (по группам метаданных) об используемом дисковом пространстве и выполнять трансляцию SQL текста запроса в термины 1С. И бонусом — при наведении курсора мыши на таблицу или поле показывает назначение объекта в терминах 1С.

27.11.2019 17338 46 akpaevj 46

Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек. Промо

Эффективное средство для устранения ошибок, возникающих в локальном кэше 1С на клиенте, которым легко сможет воспользоваться пользователь с любым уровнем знаний. Wsf-скрипт, созданный на стандартном языке автоматизации Windows — «WSH JScript», очищает кэш 1С просто, быстро и безопасно. Кроме варианта, очищающего кэш текущего пользователя, имеется также вариант для чистки кэша 1С всех пользователей терминального-сервера.

04.11.2018 54191 533 Eugen-S 35

Конфигурация для администраторов «Центр управления базами» для 8.3 УФ

Конфигурация предназначена для централизованного управления информационными базами предприятия. Разработана на БСП версии 2.4.4.76. В работе использует COM-соединение.

09.10.2019 10776 36 WhiteOwl 17

Информация о программных лицензиях 1С (Ring GUI)

Обработка, представляющая из себя обертку функций Утилиты лицензирования 1С (ring) в понятном для обычного человека виде. По сути, это GUI утилиты RING

18.09.2019 9622 34 MaxxG 6

Обновление конфигурации 1С из cf по расписанию

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

09.09.2019 4113 1 sivin-alexey 2

DroidRAC2 — консоль администрирования кластера серверов 1С:Предприятие 8.3 под Android Промо

DroidRAC2 — клиент для RAS-сервиса кластера серверов платформы 1С:Предприятие 8.3 под Android.

24.02.2017 27575 12 user700211_a.straltsou 20

Кто уложил 1С, или мониторинг загрузки кластера в разрезе пользователей с помощью Grafana

Мониторингом различных параметров работы кластера 1С в zabbix сейчас уже никого не удивишь. Собственно потребление памяти, процов и места на серверах обычно настраивают первыми. Потом идет мониторинг в разрезе rphost’ов и различные метрики функционирования SQL сервера. Но вот когда уже все это есть, то временами возникает вопрос — какой же конкретно нехороший человек пытается съесть все (ну не все, но много) ресурсы сервера? Можно смотреть в консоль кластера и ловить редиску там. Можно анализировать журнал регистраций, включать технологический журнал или накапливать статистку в специализированных базах 1С. Но, «настоящим» сисадминам проще как-то с внешними скриптами, базами данных и, например, Grafana. Расскажу что у нас получилось.

Данные, которые определяют логику функционирования системы на базе 1С:Предприятия, относятся к информационной базе. Хранение информационной базы осуществляется в базе данных с виде набора таблиц, для чего 1С:Предприятие 8.1 может использовать одну из четырех систем управления базами данных (СУБД):
* Встроенную в 1С:Предприятие 8.1 (файловый вариант информационной базы). В этом случае все данные информационной базы хранятся в файле с именем 1Cv8.1CD. Этот файл имеет двоичный формат и по сути является базой данных для встроенной в 1С:Предприятие 8.1 СУБД.
* Microsoft SQL Server (клиент-серверный вариант информационной базы). Все данные информационной базы хранятся в базе данных Microsoft SQL Server.
* PostgreSQL (клиент-серверный вариант информационной базы). Все данные информационной базы хранятся в базе данных PostgreSQL.
* IBM DB2 (клиент-серверный вариант информационной базы). Все данные информационной базы хранятся в базе данных IBM DB2.

На уровне объектов базы данных (таблиц, полей, индексов и т. п.) как файловый так и клиент-серверный вариант информационной базы имеют сходный формат (отличающийся несущественными деталями). Некоторая информация об этом формате содержится ниже.

Вся информационная база представляется в базе данных в виде набора таблиц. Среди них есть несколько таблиц, которые обязательно присутствуют в представлении любой информационной базы:

* Config — основная конфигурация информационной базы. Эта конфигурация соответствует реальной структуре данных и используется 1С:Предприятием 8.0 в режиме Предприятия.
* ConfigSave — конфигурация, редактируемая Конфигуратором. Конфигурация из ConfigSave переписывается в Config при выполнении «Обновления конфигурации базы данных» в Конфигураторе, а наоборот — при выполнении в Конфигураторе операции «Конфигурация — Конфигурация базы данных — Вернуться к конфигурации БД».
* Files содержит служебную информацию, например, о работе с хранилищем конфигурации.
* Params содержит параметры информационной базы. Среди них:
=> Список пользователей информационной базы.
=> Национальные настройки информационной базы.
=> Таблица соответствия объектов метаданных и объектов базы данных (таблиц, полей, индексов).
=> Некоторая другая информация.
* _YearOffset — смещение дат в базе данных. Эта таблица создается только при использовании Microsoft SQL Server.
* DBSchema содержит информацию о структуре базы данных 1С:Предприятия и определяет другие объекты базы данных, используемые данной информационной базой.

Перечень и структура других таблиц базы данных определяется конкретной конфигурацией, а именно, определенными в ней объектами метаданных. Имя каждой таблицы состоит из буквенного префикса и следующего за ним номера. Префикс определяет назначение таблицы, а номер позволяет различать таблицы одинакового назначения, относящиеся к разным объектам метаданных. Если в качестве СУБД используется IBM DB2, то описанную структуру имеют не имена таблиц, а их псевдонимы.

Если в конфигурации определен хотя бы один план обмена с установленным флагом «Распределенная информационная база», то будут созданы следующие таблицы:

* _ConfigChangeRec — таблица регистрации изменений объектов конфигурации.
* _ConfigChangeRec_ExtProps — таблица имен файлов измененных внешних свойств объектов конфигурации.

Ниже перечислены различные объекты метаданных, которым могут соответствовать те или иные таблицы.

* Константы
=> _Consts содержит текущие значения всех констант, определенных в конфигурации.
=> _ConstsChangeRec — таблица регистрации изменений констант. Создается, если хотя бы одна константа участвует хотя бы в одном плане обмена.
* Планы обмена
=> _Node — таблица плана обмена.
=> _Node_VT — табличная часть плана обмена, создается для каждой табличной части.
* Справочники
=> _Reference — таблица справочника.
=> _Reference_VT — табличная часть справочника — для каждой табличной части.
=> _ReferenceChangeRec — таблица регистрации изменений справочника. Создается, если справочник участвует хотя бы в одном плане обмена.
* Документы
=> _Document — таблица документов для каждого объекта метаданных «документ».
=> _Document_VT — табличная часть документа — для каждой табличной части каждого документа.
=> _DocumentChangeRec — таблица регистрации изменений объекта метаданных типа «документ». Создается для каждого объекта метаданных типа «документ», если он участвует хотя бы в одном плане обмена.
* Последовательности документов
=> _Sequence — таблица регистрации документов — для каждой последовательности.
=> _SequenceBoundary — таблица границ последовательности — для каждой последовательности.
=> _SequenceChangeRec — таблица регистрации изменений последовательности. Создается для каждой последовательности, которая участвует хотя бы в одном плане обмена.
* Журналы документов.
=> _DocumentJournal — таблица журнала документов, создается для каждого журнала документов.
* Перечисления
=> _Enum — таблица перечисления — по одной для каждого перечисления.
* Планы видов характеристик
=> _Chrc — основная таблица плана видов характеристик.
=> _Chrc_VT — табличная часть плана видов характеристик — для каждой табличной части.
=> _ChrcChangeRec — таблица регистрации изменений плана видов характеристик. Создается, если план видов характеристик участвует хотя бы в одном плане обмена.
* Планы счетов
=> _Acc — основная таблица плана счетов.
=> _Acc_ExtDim — таблица видов субконто плана счетов, создается для плана счетов в том случае, если максимальное количество субконто больше нуля.
=> _Acc_VT — табличная часть плана счетов, создается для каждой табличной части плана счетов.
=> _AccChangeRec — таблица регистрации изменений плана счетов. Создается, если план счетов участвует хотя бы в одном плане обмена.
* Планы видов расчета
=> _CalcKind — основная таблица плана видов расчета.
=> _CalcKind_BaseCK — таблица базовых видов расчета, создается для плана видов расчета в случае, если его свойство «Зависимость от базы» имеет значение, отличное от «Не зависит».
=> _CalcKind_DisplacedCK — таблица вытесняемых видов расчета, создается для плана видов расчета в случае, если у него установлен флаг «Использует период действия».
=> _CalcKind_LeadingCK — таблица ведущих видов расчета — для каждого плана видов расчета.
=> _CalcKindDN — вспомогательная таблица для порядка вытеснения, создается, если у плана видов расчета установлен флаг «Использует период действия».
=> _CalcKind_VT — табличная часть плана видов расчета, создается для каждой табличной части.
=> _CalcKindChangeRec — таблица регистрации изменений плана видов расчета. Создается, если план видов расчета участвует хотя бы в одном плане обмена.
* Регистры сведений
=> _InfoReg — таблица движений регистра сведений.
=> _InfoRegChangeRec — таблица регистрации изменений регистра сведений. Создается, если регистр сведений участвует хотя бы в одном плане обмена.
* Регистры накопления
=> _AccumReg — таблица движений регистра накопления.
=> _AccumRegTotals — таблица итогов регистра накопления, если регистр поддерживает остатки.
=> _AccumRegTurnovers — таблица оборотов регистра накопления, если регистр поддерживает обороты.
=> _AccumRegChangeRec — таблица регистрации изменений регистра накопления. Создается, если регистр накопления участвует хотя бы в одном плане обмена.
=> _AccumRegOptions — таблица настроек хранения итогов регистров накопления одна на все регистры накопления.
* Регистры бухгалтерии
=> _AccntReg — таблица движений регистра бухгалтерии.
=> _AccntRegED — таблица значений субконто регистра бухгалтерии, создается в том случае, если он ссылается на план счетов, у которого максимальное количество субконто больше нуля.
=> _AccTtl0 — таблица итогов по счету.
=> _AccTtl — где i от 1 до максимального количества субконто. Таблица итогов по счету с количеством видов субконто равным i.
=> _AccTtlC — таблица итогов оборотов между счетами, только для регистра бухгалтерии поддерживающего корреспонденцию.
=> _AccntRegChangeRec — таблица регистрации изменений регистра бухгалтерии. Создается, если регистр бухгалтерии участвует хотя бы в одном плане обмена.
=> _AccntRegOptions — таблица настроек хранения итогов одна на все регистры бухгалтерии.
* Регистры расчета
=> _CalcReg — таблица движений регистра расчета.
=> _CalcRegActPer — таблица фактических периодов действия для регистра расчета, создается, если у регистра расчета установлен флаг «Период действия».
=> _CalcRegChangeRec — таблица регистрации изменений регистра расчета. Создается для каждого регистра расчета, участвующего хотя бы в одном плане обмена.
=> _CalcRegRecalc — таблица перерасчета регистра расчета, создается для каждого перерасчета.
=> _CalcRegRecalcChangeRec — таблица регистрации изменений перерасчета. Создается, если перерасчет участвует хотя бы в одном плане обмена.
* Бизнес-процессы
=> _BPRoutePoint — таблица точек маршрута бизнес-процесса для каждого бизнес-процесса.
=> _BusinessProcess — основная таблица бизнес-процесса.
=> _BusinessProcess_VT — табличная часть бизнес-процесса для каждой табличной части.
=> _BusinessProcessChangeRec — таблица регистрации изменений бизнес-процесса. Создается для каждого бизнес-процесса, участвующего хотя бы в одном плане обмена.
* Задачи
=> _Task — основная таблица задачи.
=> _Task_VT — табличная часть задачи для каждой табличной части.
=> _TaskChangeRec — таблица регистрации изменений в задачах. Создается для каждого объекта метаданных типа «задача», который участвует хотя бы в одном плане обмена.

При использовании IBM DB2 префиксы псевдонимов таблиц начинаются не с символа подчеркивания, а сразу с буквенной части.

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

Важно также, чтобы резервное копирование и восстановление базы данных, хранящей информационную базу, выполнялось только целиком. С этой целью рекомендуется использование средств резервного копирования баз данных, встроенных в в используемую СУБД. Резервное сохранение файлового варианта информационной базы может быть выполнено копированием файла 1Cv8.1CD.

В конфигураторе есть специальная функция: Администрирование — Выгрузить информационную базу. С ее помощью можно выгрузить в указанный файл (файл выгрузки) все данные, относящиеся к информационной базе, и больше никакие. Обратная ей функция «Загрузить информационную базу» позволяет в текущую информационную базу вместо существующих загрузить все данные из файла выгрузки. Эти функции также можно использовать для резервного копирования данных информационной базы как в файловом так и в клиент-серверном варианте.

Как просмотреть структуру таблиц информационной базы?

Читайте также:

  • 1с рефакторинг что это
  • Как измерить производительность программы java
  • Visual studio app center что это
  • Как убрать значки пользователей у ярлыков яндекс браузера
  • Туалетная кабина утепленная типа аляска 1с

Добавить комментарий

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