gifts2017

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

Опубликовал Дмитрий Николайчук (dimetra2008) в раздел Программирование - Инструментарий

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

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