Информационная база «1С:Предприятие 7.7». Взгляд изнутри::Журнал СА 7.2008
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6199
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6908
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4193
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2990
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3796
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3805
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6299
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3152
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3446
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7263
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10629
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12352
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13985
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9110
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7064
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5375
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4604
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3416
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3145
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3392
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3013
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Информационная база «1С:Предприятие 7.7». Взгляд изнутри

Архив номеров / 2008 / Выпуск №7 (68) / Информационная база «1С:Предприятие 7.7». Взгляд изнутри

Рубрика: Базы данных /  Изучаем «1С»

Андрей Луконькин

Информационная база «1С:Предприятие 7.7».
Взгляд изнутри

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

Информационная база «1С:Предприятие 7.7» в файл-серверном варианте работы представляет собой набор файлов, имена большинства которых состоят из префикса и числа. В клиент-серверном варианте данные находятся на сервере SQL в виде таблиц (см. рис. 1).

Рисунок 1. Каталог информационной базы в файл-серверном варианте работы

Рисунок 1. Каталог информационной базы в файл-серверном варианте работы

Чтобы узнать, что именно хранится в конкретной таблице, достаточно открыть файл 1cv7.DD (расширение Data Dictionary – словарь данных), представляющий собой простой текстовый файл с описанием всех таблиц информационной базы и их полей (см. рис. 2). Для клиент-серверного варианта это файл 1cv7.dds, располагающийся в каталоге SQL-базы.

Рисунок 2. Фрагмент файла 1cv7.DD, описывающий таблицу констант

Рисунок 2. Фрагмент файла 1cv7.DD, описывающий таблицу констант

Все элементы этого дерева имеют сквозную нумерацию, повторяющихся кодов нет.

Полистав файл 1cv7.DD, можно выявить некоторые закономерности:

  • в таблицах, имя которых начинается на «SC», хранятся справочники;
  • «DH» – шапки документов;
  • «DT» – табличные части документов;
  • «1SJOURN» – таблица документов (общих и системных реквизитов);
  • «1SCRDOC» – таблица подчиненных документов;
  • «RG» – таблица остатков;
  • «RA» – таблица движений.

Рассмотрим теперь подробнее структуру информационной базы.

Таблица 1SCONST – константы

Предназначена для хранения значений констант и периодических реквизитов справочников.

Таблица 1SCRDOC – ссылки документов

Предназначена для хранения ссылок подчиненных документов и граф отборов реквизитов документов. Для хранения ссылок документов в подчиненном документе должен быть реквизит (поле), в котором будет ссылка на документ-родитель. Без такой ссылки документ не считается подчиненным.

Таблица 1SJOURN – журналы

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

Таблица 1SDNLOCK – номера документов

Предназначена для хранения информации о зарезервированных номерах документов, т.е. тех номерах документов, которые вводятся в данный момент в систему, но еще не сохранены (не записаны в таблицу журналов 1SJOURN).

Таблица 1SSTREAM – последовательности документов

Предназначена для хранения информации о последовательностях.

Таблица 1SSYSTEM – системная таблица

Предназначена для хранения информации о датах точки актуальности и рассчитанного периода бухгалтерских итогов, также в таблице хранится информация о параметрах УРБД.

Таблица 1SUIDCTL – уникальности

Предназначена для хранения информации о последнем ID коде документов и справочников.

Таблица 1SUSERS – соединения

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

Также в файле 1Cv7.DD можно увидеть описание и других таблиц, используемых в работе: 1SACCS (счета), 1SOPER (операции), 1SENTRY (проводки) и множество других.

Документы

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

DH – таблицы документов (реквизитов шапки)

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

DT – таблицы документов (реквизитов табличной части)

Создаются при первом добавлении реквизита табличной части в документ. Хранятся данные реквизитов табличной части (каждый реквизит – минимум одно поле таблицы плюс системное поле LINENO – номер строки документа).

Регистры

Физически регистры остатков состоят из двух таблиц: таблица остатков RGххх и таблица движений RAххх. В таблице движений хранятся все движения документов по регистрам. Список документов, которые сделали движения по регистру, можно получить, выбрав записи из таблицы журналов _1SJOURN, с условием равенства поля RFxxx 1 (или не равно 0).

В таблицу RA записываются все движения документов с учетом флага прихода или расхода. То есть в таблице RA хранятся сведения о всех движениях документов, которые сделали движения по этому регистру.

Для того чтобы не производить громоздких пересчетов, разработчики системы «1С» организовали регистры остатков таким образом, что они состоят из двух таблиц.

1 – RA (хранятся все движения с флагом прихода или расхода), 2 – RG для хранения промежуточных итогов (как бы заблаговременно подсчитанные итоги по таблице RA за определенный период).

Зачем нужны эти знания?

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

Зная структуру хранения, можно получать данные напрямую из таблиц «1С», минуя программу «1С:Предприятие». Конечно, для этого нужно уметь обращаться с SQL Server Enterprise Manager и SQL Server Query Analyzer, и если владение этими инструментами для вас не проблема, то можно оперировать данными базы гораздо эффективнее, чем это происходило раньше.

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

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

Пример 1

Получение записей только не помеченных на удаление элементов справочника из таблицы SC19 (кроме периодических реквизитов).

SELECT

    *

FROM

    SC19

WHERE

    ISFOLDER = 0  AND ISMARK = 0

Здесь ISMARK – это флаг пометки элемента (или группы) на удаление, ISFOLDER – признак группы справочника.

Пример 2

Получение списка только проведенных документов. Для отбора только проведенных документов можно воспользоваться значением поля CLOSED таблицы _1SJOURN.

SELECT

    TabJ.*, Tab1.*

FROM

    DH14 As Tab1

INNER JOIN

    _1SJOURN As TabJ ON (Tab1.IDDOC = TabJ.IDDOC)

WHERE

    TabJ.CLOSED&1 = 1

Пример 3

Получение итогов на ТА или на конец периода.

Получение итогов на ТА или на конец периода.

SELECT

    TabRegOst.SP20 As Товар,

    Sum(TabRegOst.SP21) As КвоКонОст

FROM

    RG13 As TabRegOst

WHERE

    TabRegOst.PERIOD = @PERIODR

GROUP BY

    TabRegOst.SP20

ORDER BY

    TabRegOst.SP20

Здесь @PERIODR – переменная типа DateTime, условие по которой служит для получения результата запроса на тот период, который нам необходим.

Также возможно использование так называемых прямых запросов непосредственно из системы «1С:Предприятие», но уже с подключением внешних компонентов (таких как 1sqlite, 1С++, SpellSQL, Rainbow, ToySQL и других). Тогда код программы будет выглядеть примерно так:

RS = СоздатьОбъект("ODBCRecordset");

RS.УстБД1С();

ТекстЗапроса = "

|SELECT

|    Спр.Code as Код,

|    Спр.Descr as Наименование

|FROM

|    sc433 as Спр";


ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса);

ТЗ.ВыбратьСтроку();

Работа с прямыми запросами позволит ускорить выполнение некоторых операций (таких как пересчет итогов, формирование объёмных отчетов) в буквальном смысле в несколько раз.

Заключение

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

  1. http://www.metaprog.co.ua/secrprog.
  2. http://www.script-coding.info/v77tables.html.
  3. http://www.gendin.ru/budni/b25.html.
  4. http://1csql.ru/materials/articles/develop.html.

Комментарии отсутствуют

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

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru