Преобразовать 1с запрос в sql
Решил написать статью о том, как вытягивать данные из 1С путем SQL запросов. Все нижесказанное касается 1С версии 8.2, оно также должно работать и в 1С версии 8.1. Особое внимание уделено проблеме с извлечением заголовков перечислений.
В идеале выборку данных из 1С должен делать 1С-программист. Хорошо, если он создаст обработку, которая выдаст данные в так называемую «буферную базу»: csv файлы, таблицы в SQL – что угодно. Проектировщик ХД и ETL должен брать данные из буфера.
В этом случае все работает предельно хорошо: зоны ответственности разделены, если найдена ошибка в данных отчета – ее вначале ищут в кубе, если в кубе все ОК – ищут в ХД, если в ХД все ОК – ищут в ETL, если в ETL все хорошо – значит пускай 1С-программист сам разбирается где у него ошибка в обработке, заполняющей «буферную БД».
Но не всегда такой способ доступен. Бывает, что 1С-специалиста либо вообще нет, либо слишком занят, либо мощностей железа не хватает, чтобы «выталкивать» данные из 1С с помощью обработки. И остается одно – делать извлечение данных с помощью SQL запросов.
Вот это собственно и есть этот способ – «сделать SQL запрос на 1С-базу». Главная задача – корректно написать сами запросы. Я думаю, ни для кого не есть секретом, что в 1С структура данных «хитрая», и что поля и таблицы имеют замысловатые названия. Задача проектировщика ETL – вытянуть данные из этой структуры.
Просмотр метаданных
Существуют обработки, дающие возможность просмотреть то, какие поля справочников/документов в каких таблицах/полях базы данных находятся.
Здесь Вы можете скачать несколько таких обработок (которые мы «отфильтровали» путем перебора десяток подобных, выбрав наилучшие). Они делают почти одно и то же – позволяют посмотреть все поля, понять какое поле на какой справочник ведет, и даже предлагают автоматически построить запрос:
Таким образом, начинаем исследовать нужные нам документы:
Дальше открываем любой из них, и находим то, куда он записывается – в какие регистры:
Ну а дальше найти этот регистр и сгенерировать SQL запрос с помощью показанных выше обработок (как на первом рисунке) не составляет труда.
Мы делаем как правило два уровня SQL запросов: «нижний уровень» — вьюхи для переименования полей, «верхний уровень» – вьюхи, которые берут данные из нижнего уровня, и уже они делают необходимые джойны.
Перечисления
Есть одна большая проблема – это перечисления. Пример:
И теперь если попытаться вытянуть это поле из базы напрямую, то получим вот что:
Да, мы нашли где заголовки перечислений сидят: таблица называется Config, в ней – image поля, в которых сидит зазипованный набор байт, который если раззиповать – получим непонятной структуры набор символов, разделителей и т.д. К сожалению, этот формат данных не документирован.
Вы можете скачать ее отсюда.
Запускается вот так:
Делает следующее: коннектится к 1С с помощью COM, берет оттуда все перечисления, и кладет их в указанную вами таблицу указанной базы, предварительно почистив ее. Таблица должна иметь следующую структуру
Дальше понятно, что SSIS-пакет (или другой механизм) может запустить этот код перед тем, как извлекать данные фактов/справочников, и мы получим заполненную таблицу
Если у Вас будут замечания или дополнительные идеи – все они с радостью принимаются, пишите на ibobak at bitimpulse dot com.
Инструмент "Транслятор запросов 1С в SQL" предназначен для быстрого и удобного получения SQL-запросов, которые генерируются платформой 1С в различных ситуациях: либо выполнение конкретного запроса на языке 1С, либо запуск кода встроенного языка, который также может формировать SQL-запросы к базе данных. Кроме этого, по полученным запросам можно посмотреть дополнительную информацию для диагностики их работы (затраченные ресурсы, планы запроса и другое). Ниже на анимации Вы можете видеть длинный пример работы транслятора. О каждой функции инструмента ниже будет рассказано подробнее.
Основными возможностями инструмента являются:
- Перевод запроса 1С в SQL с учетом всех особенностей работы платформы. Например, если выполнять запрос к виртуальной таблице "Движения с субконто", то фактически будет выполнен не 1 запрос, а целая серия вспомогательных запросов. Инструмент это покажет. Также будут собраны все связанные служебные запросы (получение информации о метаданных, создание и очистка временных таблиц и др.).
- Перевод запросов платформы 1С в SQL при выполнении конструкций кода встроенного языка. Вам когда-нибудь было интересно как работает функция "НайтиПоНаименованию(. )"? С помощью этой обработки Вы найдете ответы на все вопросы.
- Получение информации о затраченных ресурсах каждого отловленного запроса. Для каждого запроса будут получены показатели использования CPU, логических и физических чтений, операций записи и количество возвращенных записей в запросе.
- Возможность посмотреть план для каждого собранного запроса (если такой план есть на стороне СУБД). Вы можете сразу открыть его в SQL Server Management Studio или же сохранить его на диск в формате "*.sqlplan".
- Инструмент может быть использован как на тестовом , так и на рабочем окружении . Сам сбор информации о запросах создает минимальную нагрузку на сервер. Подробнее о принципах работы инструмента Вы можете прочитать ниже.
- Вывод служебной информации об анализируемой базе данных и СУБД.
Требования к работе:
- Платформа 1С версии 8.3.5 и выше.
- СУБД Microsoft SQL Server 2008 и выше. 2008 редакция поддерживается в ограниченном режиме в части получения данных расширенных событий по запросам, а также в скорости получения данных.
- Возможность подключения через ADO c сервера 1С к экземпляру SQL Server с правами "sysadmin".
- Только управляемые формы. Для использования в обычном приложении используйте известные обходные пути.
Из-за особенностей работы Extended Events для редакции SQL Server 2008 инструмент имеет следующие ограничения:
- Не все данные по запросам могут быть получены (количество чтений, CPU и др.).
- Из-за внутренних особенностей работы сессий Extended Events для достоверного получения данных расширенных событий приходиться делать паузку в 30 секунд перед получением данных из сессий.
- Из-за ограничений условий для отбираемых событий в некоторых случаях может быть выполнена обработка большого массива запросов, чтобы исключить излишние данные при выводе.
В остальном больших отличий пока не было найдено.
Таким образом, данная разработка может оказаться отличным инструментом для диагностики работы запросов и кода встроенного языка в части взаимодействия с СУБД, а также для изучения работы платформы 1С с СУБД. Тем более если диагностику нужно выполнить на рабочем окружении!
Принцип работы
Код обработки открыт и Вы можете самостоятельно его изучить. Сейчас же опишем общий принцип работы инструмента:
- Начинаем серверный вызов, в контексте которого и будет выполняться сбор информации.
- Определяем идентификатор соединения с СУБД, которое выделено платформой 1С из пула соединений для текущего сеанса (серверного вызова). Т.к. платформа использует пул соединений, то для гарантии того, что это соединение не будет использоваться другими сеансами 1С выполняется несколько трюков с временными таблицами.
- После того как мы определили идентификатор соединения, запускаем сессию Extended Events для сбора данных о выполняемых запросах с фильтром по базе данных и по соединению.
- Выполняем запросы или конструкции кода встроенного языка для анализа.
- Обрабатываем собранные данные и завершаем сессии сбора данных.
- Очистка от служебных данных.
Профит! Вся информация получена. За счет "точечной" фильтрации по соединению мы можем собирать данные в многопользовательской среде, т.к. такие фильтры и подход сбора информации практически исключает попадание лишних запросов других сеансов в собранные данные.
Да, для сбора информации НЕ используется технологический журнал. Все базируется на расширенных событиях SQL Server, которые позволяют достаточно эффективно собирать данные для анализа, не мешая основной работе приложения. Об этом мы уже говорили в статье "Мониторинг SQL Server с помощью Extended Events (и не только) для 1С. Как держать руку на пульсе?". Единственный минус такого подхода - то, что запрос / конструкции кода все же выполняются, поэтому если в них будет запущено что-то тяжелое, то именно они и могут повлиять на производительность и стабильность работы. Это стоит учитывать, если Вы пользуетесь инструментом на рабочем окружении.
Примеры использования
Рассмотрим несколько небольших кейсов использования инструмента.
Начало работы
Первое, что нужно сделать для продолжения работы - это настроить подключение к базе данных с правами "sysadmin". Если этого не сделать, то продолжение работы будет недоступно.
Настройки изменяйте под свои задачи.
А теперь в путь!
Что скрывается за простым запросом
Теперь можно попробовать транслировать простой запрос. Как на счет вот такого запроса.
Регистр бухгалтерии "Хозрасчетный" есть во многих типовых конфигурациях. Думаю, что многие с ним знакомы.
Теперь выполним его через инструмент.
Один клик - и SQL-запрос в кармане!
Итого, у нас есть:
Простой запрос 1С - простой запрос SQL.
Запрос выполнялся 289 миллисекунд, с 9 логическими чтениями и возвращает 100 записей.
Перейдем к примерам интереснее.
Найти по наименованию
Запрос транслировать хорошо. А можно ли отловить запросы к базе данных при выполнении кода встроенного языка? Можно! Как на счет такого простого примера.
Тут все просто. Сначала находим ссылку на пользователя, а после выводим представление найденного элемента.
Результат получим следующий.
Первый запрос - это поиск по наименованию, а второй - получение представления найденного элемента. Как и в прошлом примере, мы получили информацию о затраченных ресурсах.
Таким же способом Вы можете сделать проведение конкретного документа или любую другую операцию из кода встроенного языка, а после отловить тяжелые запросы на стороне базы данных для дальнейшей оптимизации. Попробуйте!
Сложный запрос
Можно пойти дальше и выполнить запрос сложнее, чем обычный SELECT. Как на счет запрос к одной из виртуальных таблиц регистра бухгалтерии.
Запрос к виртуальной таблице остатков.
И тут также трансляция будет работать как надо. Плюс посмотрим план запроса.
Транслировали запрос и посмотрели план. Жизнь удалась!
Вроде ничего сложного.
Hardcore!
А теперь что-нибудь особенное. Вас когда-нибудь интересовал вопрос как платформа 1С выполняет пересчет итогов? А вот как!
Осталось только разобрать что каждый запрос делает, но это уже другая история.
Некоторые настройки
Описание некоторых настроек:
Вместо заключения
Инструмент специфический, но может пригодиться как для диагностики запросов и поведения платформы 1С, так и для исследования и изучения ее работы. Вместе с отчетом "Просмотр и анализ структуры базы данных (отчет на СКД)" может послужить для решения множества проблем производительности.
Это только первая версия, в будущем он будет развиваться.
В версии 2.0 будут следующие изменения:
- Поддержка PostgreSQL
- Поддержка файловых баз
- Добавление комментариев к частям SQL-запроса для сопоставления с метаданными 1С и удобного чтения текста запросов.
- Оптимизации для SQL Server 2016 и выше.
- И много другое.
Выход 2 версии будет не раньше, чем во второй половине 2020 года :).
20.02.22 - Добавлена версия обработки для 1С:Предприятие 8.2
24.08.20 - Добавлена поддержка SQL Server 2008 и улучшена работа с планами запросов
- Добавлена поддержка SQL Server 2008
- Улучшена работа с планами запросов
- Изменена фильтрация по базе данных для улучшения производительности
- Добавлена служебная информация о базе и СУБД (версия СУБД, идентификатор и имя базы данных)
- Рефакторинг и другие небольшие улучшения
07.01.20 - Опубликована основная версия
Другие ссылки
Авторские разработки
Просмотр и анализ структуры базы данных (отчет на СКД) - отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.
Просмотр и анализ журнала регистрации (отчет на СКД) - отчет на базе системы компоновки данных (СКД) для просмотра записей журнала регистрации.
История работы пользователей (отчет на СКД) - отчет для просмотра истории работы пользователей (СКД, просмотр для любого пользователя).
Экспорт журнала регистрации. Набор инструментов (приложения + исходный код) - набор инструментов для экспорта данных журнала регистрации во внешние хранилища для Windows и Linux. Готовые приложения и исходный код.
Путеводитель по истории релизов - отчет по истории выпуска релизов продуктов фирмы "1С" и анализа информации по обновлениям.
-
Помощник работы с идентификаторами объектов - инструмент для расширенного анализа идентификаторов объектов.
Анализ производительности APDEX (бесплатный) - отчет для просмотра и анализа замеров производительности в конфигурациях на базе БСП.
Обозреватель криптографии - отчет для просмотра доступных провайдеров и сертификатов криптографии на сервере и клиенте.
Пакетная выгрузка / загрузка внешних отчетов и обработок - пакетная выгрузка / загрузка внешних отчетов и обработок для массовый манипуляций с ними.
Мастер полнотекстового поиска - набор инструментов для работы с полнотекстовым индексом платформы 1С. Стандартные и расширенные возможности.
Командный интерпретатор для 1С - инструмент для выполнения команд CMD / PowerShell из 1С
Диагностика контекста выполнения (внешняя компонента) - небольшая экспериментальная внешняя компонента для получения дополнительной информации о контексте выполнения.
Как то возникла ситуация, когда в справочник, с включенной проверкой на уникальность кода, из вне приходят элементы с такими же кодами. Отключать проверку нельзя. Пришлось делать затычку.
Подключение к SQL в общем то широко описано:
Код 1C v 8.х
Сервер и БД можно получить и программно, но муторно. Эти данные можно взять из свойств БД на сервере 1С.
Название таблицы и полей в SQL можно получить с помощью команды 1С:
Цитата
Глобальный контекст
ПолучитьСтруктуруХраненияБазыДанных (GetDBStorageStructureInfo)
Синтаксис:
ПолучитьСтруктуруХраненияБазыДанных(, )
Параметры:
(необязательный)
Тип: Массив. Массив имен объектов метаданных или массив объектов метаданных, для которых требуется получить структуру таблиц базы данных.
(необязательный)
Тип: Булево. Определяет, в каких терминах выдается информация о структуре хранения.
Истина - в терминах СУБД
Ложь - в терминах SDBL.
Значение по умолчанию: Ложь
Возвращаемое значение:
Тип: ТаблицаЗначений. Возвращает таблицу значений с описаниями структуры таблиц, индексов и полей базы данных в терминах SDBL или используемой СУБД, в зависимости от значения параметра "Имена базы данных".
Если параметр не используется, то возвращаемая таблица значений содержит информацию о структуре таблиц базы данных всех объектов метаданных.
Таблица значений включает следующие колонки:
ИмяТаблицыХранения(StorageTableName) – имя таблицы SDBL или базы данных;
ИмяТаблицы(TableName) – имя таблицы в терминах языка запросов (для тех у кого оно есть);
Метаданные(Metadata) – полное имя объекта метаданных;
.
Дальше нам нужно новый элемент справочника все ж таки записать, ну например :
Код 1C v 8.х
Все, делаем подмену.
Код 1C v 8.х
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Google maps : вывод точек на карту и режим панорамы 7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 2
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Посмотреть все результаты поиска похожих
Еще в этой же категории
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Что такое менеджер временных таблиц и как с ним работать? 11
В 1С есть такая замечательная вещь, как МенеджерВременныхТаблиц . Этот объект позволяет передавать временные таблицы из одного запроса в другой. То есть, мы можем создать временную таблицу в запросе, прерваться, выполнить какой-нибудь код, и продо Объектная модель схемы запроса 5
Периодически во встроенном языке возникает необходимость изменения текста запроса в зависимости от разных алгоритмических условий. Раньше подобная задача решалась путем непосредственного формирования нужного текста запроса в виде строки. А это не вс Как в запросе объединить несколько значений в один столбец отобрав по условию? 1
Бывают ситуации, особенно когда формируешь отчеты по проводкам, где надо вывести отчет по одному типу значений и эти значения могут быть в разных колонках регистра. В примере ниже, необходимо собрать отчет в разбивке по Номенклатурным группам. Про Курс по разработке и оптимизации запросов в 1С (Часть 1) 0
Часть 1. Основные конструкции языка запросов и их назначение • Назначение языка запросов • Структура запроса • Основные секции запроса и их назначение • Группировка результатов запроса • Фильтрация результатов запроса • Объединения и соединени Посмотреть все в категории Запросы
Транслятор запросов и Linq-провайдер для 1С-Бухгалтерии
License
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Latest commit
Git stats
Files
Failed to load latest commit information.
readme.md
This project is licensed under the terms of the MIT license.
Упрощаем интеграцию с 1С за счет двух основных функций:
умеем исполнять обычные запросы языка 1С ( выбрать * из Справочник.Контрагенты ) без участия самой 1С - напрямую через СУБД. Это может быть удобно при использовании механизма разделения данных чтобы выполнить запрос сразу на всех областях информационной базы или даже на нескольких информационных базах, если используется более одного сервера СУБД. Такая возможность становится особенно актуальной при большом числе различных организаций, работающих с одной типовой конфигурацией, например через технологию 1C-фреш.
Для установки Simple1C пакета, выполните следующую команду в NuGet-консоли
Преобразуем запрос в формате языка запросов 1С в чистый sql и исполняем его на реальной СУБД. Используем Irony для синтаксического анализа и построения AST.
На практике работает это следующим образом. Первым делом с помощью команды gen-sql-meta достаем через COM метаданные по объектам конфигурации и сохраняем их в отдельную схему simple1c в sql базе данных (пока поддерживается только PostgreSQL).
Эти метаданные нужны в первую очередь для установления соответствия между именами объектов и реквизитов конфигурации 1С и именами таблиц и колонок в БД. Затем для выполнения запроса используем команду run-sql следующим образом:
Результат выполнения запроса помещается в таблицу в базе, указанной параметром result-connection-string. Пока поддерживается только MS SQL Server в качестве такой базы. Имя таблицы берется из имени файла с запросом. Основные возможности:
Поддерживается большая часть конструкций языка - все стандартные элементы sql (подзапросы, union, group by, order by и т.п.), операторы Значение и Ссылка, функции ПРЕДСТАВЛЕНИЕ, ДАТАВРЕМЯ, ГОД, КВАРТАЛ и другие.
Поддерживается синтаксис для доступа к вложенным реквизитам через точку
При трансляции в sql к такому запросу будут добавлены необходимые цепочки join-ов на справочники контрагентов и договоров.
Можно использовать как русский, так и аглийский варианты синтаксиса - select * from Справочник.Контрагенты эквиваленто выбрать * из Справочник.Контрагенты .
Если вы используете 1С-Фреш и у вас несколько sql баз, то можно передать их все в параметре connection-strings. В этом случае запрос будет выпоняться параллельно на всех базах, а все результаты будут объеденены в одной общей таблице. Можно потом, например, через SQL Server Management Studio применить group by к этой таблице и получить группировку данных между различными базами.
Чтобы понять, какие объекты и реквизиты можно использовать в запросе, можно посмотреть в сгенерированные командой gen-sql-meta метаданные в схеме simple1c , а именно в таблицу tableMappings. В ней есть имена объектов, имена соответствующих им таблиц и такое же соответствие для реквизитов и колонок в таблицах.
Оператор Ссылка можно использовать для ускорения выполнения запроса. Дело в том, что в 1С реквизит может не иметь фиксированного статического типа, а допускать сразу несколько типов. Основной пример - это реквизит субконто, который для разных счетов может ссылается на разные объекты конфигурации: Контрагент, Статья учета и т.п. Если в запросе есть обращение через точку к свойствам такого реквизита ( doc.Субконто1.Наименование ), то единственный вариант получить нужные данные - это заджойниться на все возможные таблицы, в которых есть свойство Наименование . Если в запросе имеется в виду какой-то конкретный тип субконто, то можно воспользоваться оператором Ссылка следующим образом:
В этом примере будет сгенерирован только один джойн - с таблицей контрагентов, что существенно быстрее.
В схеме simple1c есть пара функций для работы с Guid-ами. to_guid преобразует байтовый массив, в котором 1С сохраняет ссылки между объектами, в стандартное строковое представление guid-а. date_from_guid получает дату из строкового представления guid-а. Так как 1С генерирует guid-ы на основе текущего времени, по этой дате можно судить о том, когда был создан объект с данным идентификатором. Эти функции можно использовать в любой части запроса, аналогично стандартным функциям языка запросов 1С.
Можно получить данные по остаткам и оборотам аналогично стандартному отчету ОСВ в 1С. Для этого доступны четыре таблицы. РегистрБухгалтерии.Хозрасчетный.Остатки - здесь лежат помесячные сальдо и обороты без субконто, РегистрБухгалтерии.Хозрасчетный.Субконто1 , РегистрБухгалтерии.Хозрасчетный.Субконто2 , и РегистрБухгалтерии.Хозрасчетный.Субконто3 - здесь тоже самое, только с субконто. Каждая транзакция по счету учитывается в остатках и в одной из таблиц Субконто, в зависимости от количества субконт по данному счету.
Вот статья на Хабре о том, как все это работает.
- Автоматическая генерация классов объектной модели по 1С-конфигурации :
Такая команда создаст класс СписаниеСРасчетногоСчета в папке Документы. Этот класс будет обладать всеми свойствами исходного 1С-документа СписаниеСРасчетногоСчета, включая все табличные части. По классу так же будет создано для каждого из объектов конфигурации, на которые эти свойства ссылаются (транзитивное замыкание). Основные возможности:
Для имен генерируемых классов используем исходные русскоязычные идентификаторы из 1С. За счет этого модель становится проще - нет необходимости придумывать англоязычные аналоги для весьма специфических терминов 1С, одни и те же вещи называются одинаково по всей кодовой базе.
Не навязываем механизм управления коннекциями. Здесь возможны различные варианты (ThreadLocal, Pool, пересоздание по таймауту, пересоздание при обрыве и т.п.), многое зависит от приложения и конкретных потребностей. Простейший пример чтобы начать работать:
Абстрагируем ссылки, про них в прикладном коде можно просто забыть - создаем экемпляры классов объектной модели, присваиваем их свойствам других классов, при маппинге на соответствующие COM-объекты ссылки между ними будут проставлены автоматически.
- Метод Save сохраняет все объекты, до которых может добраться по ссылкам. Пример выше можно упростить следующим образом
- В запросах можно использовать стандартные Linq-операторы (Join, GroupBy пока не реализованы)
- Умеем обновлять отдельные строки табличных частей. Так, например, в таком примере
на втором вызове Save будет сгенерирован единственный вызов метода Сдвинуть , меняющий местами две строки.
Как то возникла ситуация, когда в справочник, с включенной проверкой на уникальность кода, из вне приходят элементы с такими же кодами. Отключать проверку нельзя. Пришлось делать затычку.
Подключение к SQL в общем то широко описано:
Код 1C v 8.х
Сервер и БД можно получить и программно, но муторно. Эти данные можно взять из свойств БД на сервере 1С.
Название таблицы и полей в SQL можно получить с помощью команды 1С:
Цитата
Глобальный контекст
ПолучитьСтруктуруХраненияБазыДанных (GetDBStorageStructureInfo)
Синтаксис:
ПолучитьСтруктуруХраненияБазыДанных(, )
Параметры:
(необязательный)
Тип: Массив. Массив имен объектов метаданных или массив объектов метаданных, для которых требуется получить структуру таблиц базы данных.
(необязательный)
Тип: Булево. Определяет, в каких терминах выдается информация о структуре хранения.
Истина - в терминах СУБД
Ложь - в терминах SDBL.
Значение по умолчанию: Ложь
Возвращаемое значение:
Тип: ТаблицаЗначений. Возвращает таблицу значений с описаниями структуры таблиц, индексов и полей базы данных в терминах SDBL или используемой СУБД, в зависимости от значения параметра "Имена базы данных".
Если параметр не используется, то возвращаемая таблица значений содержит информацию о структуре таблиц базы данных всех объектов метаданных.
Таблица значений включает следующие колонки:
ИмяТаблицыХранения(StorageTableName) – имя таблицы SDBL или базы данных;
ИмяТаблицы(TableName) – имя таблицы в терминах языка запросов (для тех у кого оно есть);
Метаданные(Metadata) – полное имя объекта метаданных;
.
Дальше нам нужно новый элемент справочника все ж таки записать, ну например :
Код 1C v 8.х
Все, делаем подмену.
Код 1C v 8.х
Похожие FAQ
Еще в этой же категории
Значения NULL ( ЕСТЬ NULL и ЕСТЬNULL()) 48
NULL – отсутствующие значения. Не путать с нулевым значением! NULL – это не число, не равно пробелу, пустой ссылке, Неопределено. NULL – типообразующее значение, т.е. есть тип NULL и единственное значение этого типа. NULL значения появляются в 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Нарастающий итог в запросе 23
Необходимо использовать левое соединение таблицы с самой собой. ВЫБРАТЬ Обороты.Период, Обороты.Номенклатура, Обороты.Количество ПОМЕСТИТЬ ВТдвижения ИЗ РегистрНакопления.Обороты КАК Обороты ; //////////////////////////////////////////////// Полезные сведения о языке запросов 1С 8.х 22
В статье приведены полезные приемы при работе с запросами 1С v.8.2, а также сведения, которые не так хорошо известны о языке запросов. Я не стремлюсь дать полное описание языка запросов, а хочу остановиться лишь на некоторых моментах, которые для ко Оператор ПОДОБНО 19
ПОДОБНО - Оператор проверки строки на подобие шаблону. Аналог LIKE в SQL. Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если з Посмотреть все в категории Запросы
Читайте также:
- Открыть или создать новый документ в редакторе microsoft word можно используя панель
- Как открыть машину с помощью телефона программа
- Удаление предустановленных программ windows 10 через командную строку
- Запуск программы невозможен так как на компьютере отсутствует npkscrypt dll
- Транслятор не обнаружил в программе никаких ошибок однако она не выполняется верно