Практическое использование запросов в 1С 8

13.10.11

Разработка - Запросы

Представляю серию уроков по практическому использованию запросов для начинающих программистов 1С 8

Урок 1 - Роль и место запросов в системе 1С Предприятие

В системе 1С Предприятие 8 существует две модели представления данных: объектная и табличная. Типичный метод использования объектной модели выглядит примерно так:

//Развёрнутый вариант
ОтборПоВалюте = Новый Структура("Валюта", Валюта);
Результат = РегистрыСведений.Валюты.ПолучитьПоследнееЩатаКурса, ОтборПоВалюте); Курс = Результат.Курс;
//Краткий вариант
Курс = РегистрыСведений.Валюты.ПолучитьПоследнееЩатаКурса, Новый Структура("Валюта", Валюта)).Курс;

То же действие, но с обращением к табличной модели:

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Курсы. Курс
|ИЗ
| РегистрСведений.Валюты.СрезПоследних(&ДатаКурса, Валюта = &Валюта) КАК Курсы";

Запрос.УстановитьПараметр("ДатаКурса", ДатаКурса);
Запрос.УстановитьПараметр("Валюта", Валюта);

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Если Выборка.Следующий() Тогда
Курс = Выборка.Курс;
Иначе
Курс = 0;
КонецЕсли;

Таким образом, у обеих моделей есть свои достоинства и свои недостатки. Объектная модель хороша, прежде всего, тем, что она чрезвычайно лаконична: если поступиться «читабельностью», простейшие выборки можно получать всего одной строкой кода! Табличная модель значительно уступает по данному критерию объектной, зато имеет ряд неоспоримых преимуществ.

Табличная модель обеспечивает:

  • Гибкость: получение сложно-организованных выборок, использование сложных условий, управление блокировками;
  • Использование конструктора: повышение скорости написания запроса, уменьшение вероятности появления синтаксических и логических ошибок.

Урок 1 - Конструктор запросов 1C

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

Сразу оговоримся, что поместить главу о конструкторе в самом начале курса - решение неоднозначное. Если развивать тему использования запросов строго последовательно, знакомиться с конструктором следовало бы в самом конце, после того, как будут изучены все остальные свойства запросов. Но дело в том, что большую часть запросов мы будем «собирать» именно с помощью конструктора. В этом случае, проблема похожа на извечный вопрос: что было раньше, яйцо или курица? Всё-таки, мы решили начать с конструктора.

Изучать устройство конструктора мы будем на примере универсальной обработки Консоль запросов. Эта обработка входит в состав типовых конфигураций 1С, поэтому её так же вполне можно назвать типовым инструментом.

Урок 3 - Источники данных 1С

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

Теперь, когда мы определились с тем, что же такое табличная модель данных 1С:Предприятия пора рассмотреть ещё одно понятие, непосредственно с нею связанное. Речь идёт о виртуальных таблицах. Кроме таблиц, действительно существующих в базе, о которых мы говорили до сих пор, (они так и называются, Реальными) в системе вводится понятие Виртуальных таблиц. Физически, никаких новых мистических таблиц в базе, конечно же, нет. Просто обращение к виртуальной таблице автоматически преобразуется механизмом запросов в обращение к таблице реальной. Алгоритм преобразования может весьма изощренным, но нам (разработчикам) это никаких особых хлопот не доставляет. Нам важно то, что виртуальные таблицы на практике почти неотличимы от реальных.

Полностью все уроки вы можете найти по сслыке.

См. также

SALE! 20%

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

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

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

10000 8000 руб.

02.09.2020    122348    673    389    

716

Для чего используют конструкцию запроса "ГДЕ ЛОЖЬ" в СКД на примере конфигурации 1С:ERP

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных 1С:ERP Управление предприятием 2 Бесплатно (free)

В типовых конфигурациях разработчики компании 1С иногда используют в отчетах, построенных на СКД, такую конструкцию, как "ГДЕ ЛОЖЬ". Такая конструкция говорит о том, что данные в запросе не будут получены совсем. Для чего же нужен тогда запрос?

13.02.2024    5755    KawaNoNeko    23    

23

Набор-объект для СКД по тексту или запросу

Запросы СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    2006    2    Yashazz    0    

29

Запрос 1С copilot

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

Пишем на человеческом языке, что нам надо, и получаем текст запроса на языке 1С. Используются большие языковые модели (LLM GPT) от OpenAI или Яндекс на выбор.

5 стартмани

15.01.2024    6300    31    mkalimulin    25    

50

PrintWizard: поддержка представлений ЗУП в конструкторе

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

Одной из интересных задач, стоящих в процессе разработки, была поддержка механизма представлений в ЗУП. Но не просто возможность исполнения запросов с ними. Основная проблема была в том, чтобы с ними было удобно работать, а именно: создавать, модифицировать и отлаживать. Кратко о том, что в итоге получилось...

14.12.2023    1749    vandalsvq    7    

29

Объектная модель запроса "Схема запроса" 2

Запросы Платформа 1С v8.3 Запросы Конфигурации 1cv8 Бесплатно (free)

Далеко уже не новый тип данных "Схема запроса". Статья о том, как использовать его "попроще". Примеры создания текста запроса с нуля и изменение имеющегося запроса.

06.12.2023    5397    user1923546    26    

43

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    16198    skovpin_sa    14    

98
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Djonny 15.10.11 19:24 Сейчас в теме
2. anig99 2843 15.10.11 22:02 Сейчас в теме
Лучше почитайте "Практическое пособие разработчика". Там ПРАВИЛЬНО написано зачем и как использовать запросы.
3. anig99 2843 15.10.11 22:04 Сейчас в теме
Даже рекламу по-человечески не получилось сделать. На сайте лучше, чем здесь, но всё равно есть спорные моменты.
4. KliMich 15.10.11 22:28 Сейчас в теме
У Павла Чистова http://chistov.spb.ru/publ/free_webinar/6 есть несколько видео по запросам.
Рекомендую сначала их посмотреть, а потом идти по ссылке на рекомендуемый сайт (ИМХО так легче понять будет...)
5. Поручик 4670 15.10.11 22:33 Сейчас в теме
(0) Это вообще что?
Курс = РегистрыСведений.Валюты.ПолучитьПоследнееЩатаКурса, Новый Структура("Валюта", Валюта)).Курс;
11. user1600929 19.05.21 17:19 Сейчас в теме
(5)ПолучитьПоследнее(ДатаКурса, Новый Структура("Валюта", Валюта)).Курс;
6. fomix 33 18.10.11 10:09 Сейчас в теме
Данная статья - просто реклама. Основное на сайте, указанном внизу статьи. Автору "+" за труд!
7. tango 506 18.10.11 10:14 Сейчас в теме
-: попытка - это хорошо, но для такой темы надо быть на очень хорошем уровне
8. galyausik1 19.10.11 11:18 Сейчас в теме
Интересная - полезная ссылка.
На досуге почитаю.
9. NikZagVit 62 03.04.12 15:35 Сейчас в теме
10. husky 6 20.09.13 09:19 Сейчас в теме
Оставьте свое сообщение