Отправляет email-рассылки с помощью сервиса Sendsay

1С и электронная коммерция

  Все выпуски  

1С и электронная коммерция Запросы




1С и электронная коммерция    Рассылка сайта Новый Иерусалим on-line

Вторник, 3 Апреля 2007 года (21 Марта 2007 по ст.ст.)
Страстная седмица, Великий Вторник


Великий пост. Прп. Иакова, еп., исп. (VIII-IX). Свт. Кирилла, еп. Катанского (I-II). Свт. Фомы, патр. Константинопольского (610). Прп. Серапиона, еп. Тмуисского. Новосщмч. архиеп. Феодора (Поздеевского) (1938). Прп. Пахомия Нерехтского. Прп. Серафима Вырицкого. Прп. Лупина, отшельника (Галл.). Св. Енды, первоначального возглавителя ирландского монашества (Кельт. и Брит.). Мчч. Филимона и Домнины, Римских (Греч.).

Детскому православному центру творчества - нужна Ваша помощь и поддержка! Помощь - это не только финансовые пожертвования, но и Ваши знания, которые могут быть полезными, услуги или желание преподавать. Вы можете помочь, даже живя далеко от нас - расстояние это не преграда! Подробнее можете узнать в разделе "Воскресная школа" на сайте http://www.ierusalim.ru или просто нажмите на ссылку. Будем рады Вам!
Пишите мне: mags05@mail.ru или ICQ: 340597008

Запросы

Запросы

Терминология и обозначения

- "Запрос" - объект метаданных типа "Запрос";

- Текст запроса - текстовое описание запроса к ИБ на специализированном языке запросов;

- Выборка - набор данных, полученных в результате выполнения запроса;

- Группировка данных - накопление различных значений одного и того же типа данных.

- Отчёт - совокупность текста запроса, процедуры его выполнения и интерпретации выбранных данных.

Введение

С чего начать

Начнем с начала

Для начала, прежде чем проектировать запрос, необходимо задаться вопросом: "Что же я хочу в результате получить?". Да, да, именно так все и начинается, с тривиальной "постановки задачи".

Постановка задачи

Предположим, я хочу получить "Данные об оборотах и остатках товаров на складах за какой-то период времени" в виде вот такой таблицы:

Формирование текста запроса

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

 1. "... за какой-то период времени". Значит, мы можем описать период времени, за который запрос будет извлекать информацию. Отразим это:

Период с '98' по '98'

Правды ради, следует отметить, что задание конкретных дат интервала запроса не слишком удобно в большинстве случаев, поэтому создадим в модуле отчета две внешние переменные, определяющие дату начала и конца запроса - ДатаС и ДатаПо :

Период с ДатаС по ДатаПо;

 2. "Данные об оборотах и остатках товаров ...". Значит, мы хотим видеть перечень товаров. Ну что ж, давайте так и сделаем - объявим переменную запроса - Товар

Товар =

 3. "Данные об оборотах и остатках товаров на складах ...". Для каждого товара хотим отобразить склад, на котором он хранится. Для этого объявляем переменную Склад :

Склад =

 4. "Данные об оборотах ". Во-первых, необходимо определиться, какие конкретные обороты мы хотим отразить: денежные, количественные. Давайте определим

Количество =

Поскольку нам нужны данные об оборотах, то следует объявить и сами функции накопления:

Приход = Функция Приход(Количество);

Расход = Функция Расход(Количество);

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

 5. "Данные об остатках ". Объявим функции остатков:

НачОст = Функция НачОст(Количество);

КонОст = Функция КонОст(Количество);

Данные об остатках из документов уже не получишь, для этой цели предназначены регистры остатков. Следовательно, в работе запроса мы будем использовать регистры. Этот вывод существенно помогает в проектировании запроса, так как мы теперь в состоянии корректно описать переменные, зная, что учет оборотов и остатков ведется по регистру "Товарные запасы":

Товар = Регистр.ТовЗап.Товар;

Склад = Регистр.ТовЗап.Склад;

Количество = Регистр.ОстаткиТоваров.ОстатокТовара;

 6. Если мы хотим получить перечень товаров, то нам необходимо эти товары группировать, то есть отображать различные виды товаров. Для чего мы заводим группировку по переменной Товар :

Группировка Товар;

 7. Те же самые резоны приводят нас к созданию группировки по переменной Склад :

Группировка Склад;

 8. Теперь соберем полный текст запроса, который можно присвоить какой-нибудь переменной модуля отчёта, скажем, ТекстЗапроса:

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

"Период с ДатаС по ДатаПо

|Товар = Регистр.ТовЗап.Товар;

|Количество = Регистр.ТовЗап.ОстатокТовара;

|Приход = Функция Приход(Количество);

|Расход = Функция Расход(Количество);

|НачОст = Функция НачОст(Количество);

|КонОст = Функция КонОст(Количество);

|Группировка Товар;

|Группировка Склад;

|"//}}ЗАПРОС

;

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

Что происходит внутри

Как текст запроса превращается в выборку?

После того, как создан агрегатный объект типа "Запрос":

Запрос = СоздатьОбъект("Запрос");

сформулирован текст запроса и присвоен переменной ТекстЗапроса , запрос запускается на выполнение:

Запрос.Выполнить(ТекстЗапроса);

Что же происходит внутри этого метода? Как же там всё устроено?

Попадая в метод Выполнить , текст запроса превращается в выборку путём следующих метаморфоз:


Архив рассылки по адресу: www.anobis.ru
Пишите нам: mags05@mail.ru
ICQ: 340597008

Надежные серверы и графические станции на платформе Intel (Xeon) и AMD различного назначения. Большой выбор моделей. Сборка конфигураций на заказ. Трехлетняя гарантия, сервисное обслуживание серверов с выездом к Заказчику. Бесплатная доставка.

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

Приглашаем рекламодателей размещать текстовую рекламу в виде статей, обзоров и новостей в наших рассылках и сайтах - более 32 067 подписчиков. Заявки присылайте по почте и ICQ 340597008. Подробнее здесь>>>

Подпишитесь на другие наши рассылки

Рассылки Subscribe.Ru
Секреты рекламы и создания интернет-магазинов
Скидки, подарки, призы...
1С и электронная коммерция
Серверы, сетевое оборудование, тесты, характеристики, советы
Рукопашный бой для девушек – выживание, психология, самозащита!
Милосердие. Чем ты можешь помочь ближнему.
Православные знакомства.
Здоровый образ жизни.

В избранное