- •Основы программирование в среде «1с: предприятие»
- •1. Предметно-ориентированное моделирование информационных систем
- •1.1. Понятие предметно-ориентированного моделирования
- •1.2. Типы моделей
- •2. Система программ «1с: Предприятие 8»
- •2.1. Состав системы программ «1с: Предприятие 8»
- •2.2. Структура конфигурации
- •2.3. Архитектуры системы программ «1с: Предприятие»
- •2.4. Платформенно-зависимая модель «1с: Предприятие»
- •3. Объектная модель платформы «1с: Предприятие»
- •3.1. Объекты для построения платформенно-зависимой модели
- •3.2. Общая структура основного объекта
- •4. Основы работы с информационной базой
- •4.1. Создание информационной базы
- •4.2. Перенос информационной базы
- •4.3. Объекты системы
- •4.4. Классификация объектов
- •4.5. Прикладные объекты
- •4.6. Подчиненные объекты
- •4.7. Встроенный язык системы
- •4.8. Виды модулей
- •4.9. Подсистемы
- •4.10. Отладка конфигурации
- •Лабораторная работа 1
- •5. Справочники
- •5.1. Назначение справочников
- •5.2. Программные объекты справочников
- •5.3. Подчиненные справочники
- •5.4. Иерархические справочники
- •5.5. Модуль объекта Справочник
- •5.6. Свойства справочников
- •5.7. Формы объектов
- •5.8. Представления объектов
- •5.9. Настройка интерфейса
- •5.10 Структура экрана в пользовательском режиме
- •Лабораторная работа 2
- •6. Документы
- •6.1. Назначение документов
- •6.2. Программные объекты документов
- •6.3. Проведение документа
- •6.4. Ввод на основании
- •6.5. Типы данных. Типообразующие объекты конфигурации
- •6.6. Заполнение реквизитов
- •6.7. Расчет суммы в строках документа
- •Лабораторная работа 3
- •7. Регистры
- •7.1. Назначение и свойства
- •7.2. Виды регистров
- •7.3. Виртуальные таблицы
- •7.4. Программные объекты регистров
- •7.5. Регистры накопления
- •7.6. Движения документа
- •7.7. Командный интерфейс регистров
- •Лабораторная работа 4
- •8. Отчеты
- •Лабораторная работа 5
- •9. Макеты и формы
- •9.1. Создание макета печатной формы
- •9.2. Редактирование макета
- •9.3. Редактирование формы
- •Лабораторная работа 6
- •10. Регистры сведений
- •10.1. Создание периодического регистра сведений
- •10.2. Использование периодического регистра сведений в документе
- •Лабораторная работа 7
- •11. Перечисления
- •Лабораторная работа 8
- •12. Оборотные регистры накопления
- •Лабораторная работа 9
- •13. Табличная модель платформы «1с: Предприятие»
- •13.1. Табличная модель данных
- •13.2. Виды таблиц базы данных
- •13.3. Создание запроса и использование его результатов
- •13.4. Структура и описание запроса
- •13.5. Взаимосвязь таблиц
- •13.6. Упорядочивание
- •13.7. Группировка и итоги
- •13.8. Параметры
- •14. Система компоновки данных
- •Лабораторная работа 10.1
- •Лабораторная работа 10.2
- •Лабораторная работа 10.3
- •Лабораторная работа 10.4
13.6. Упорядочивание
Часто требуется представить результат выполнения запроса упорядоченным по какому-то полю или группе полей. Для этого используется оператор
УПОРЯДОЧИТЬ ПО СписокПолей
Для каждого поля из списка можно указать порядок сортировки: ВОЗР, УБЫВ, ИЕРАРХИЯ. Если порядок не указан, то сортировка происходит по возрастанию.
Последний порядок (ИЕРАРХИЯ) работает только для таблиц с иерархией, например таблиц иерархических справочников. Упорядочивание происходит сначала по первому полю списка, затем в рамках уже существующей сортировки упорядочивание по второму полю и т.д. (рис. 13.8).
| ВЫБРАТЬ Наименование КАК Товар
| ИЗ Справочник.Номенклатура
| УПОРЯДОЧИТЬ ПО Товар ИЕРАРХИЯ
Рис.13.8
Ключевое слово ПЕРВЫЕ ограничивает выборку несколькими первыми записями. Часто это слово используется в комбинации с упорядочиванием (рис.13.9).
// Найти 3 самых дорогих товара
| ВЫБРАТЬ ПЕРВЫЕ 3 Наименование КАК Товар, ЦенаПродажи КАК Цена
| ИЗ Справочник.Номенклатура
| УПОРЯДОЧИТЬ ПО Цена УБЫВ
Рис.13.9
13.7. Группировка и итоги
Часто при анализе данных необходимо получать суммирующую информацию для нескольких полей и всего отчета в целом или просто объединять записи в группы по какому-то признаку. Для этого используется механизм группировки и применяется оператор
СГРУППИРОВАТЬ ПО СписокПолей
Порядок следования полей в списке определяет и порядок вложенности (иерархию) групп. Для получения обобщенных данных по группам применяются агрегатные функции СУММА, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, КОЛИЧЕСТВО. Эти функции можно использовать и в операторе ВЫБРАТЬ, но при этом в список полей группировки нужно добавлять все поля из ВЫБРАТЬ, не охваченные агрегатными функциями. Ключевое слово АВТОУПОРЯДОЧИВАНИЕ позволяет включить режим автоматического формирования полей для упорядочивания результата запроса (рис. 13.10).
Рис.13.10
В группировке можно указывать дополнительные условия отбора по полям группировки и агрегатным функциям. Для этого используется оператор ИМЕЮЩИЕ. Он применяется только с группировками. Он существенно замедляет работу сервера по выполнению запроса (рис.13.11).
// Выбрать товары, которых продали не менее 100 штук
| ВЫБРАТЬ Номенклатура,
| СУММА(Количество) КАК Продано
| ИЗ Документ.ПродажаТоваров.Товары
| СГРУППИРОВАТЬ ПО Номенклатура
| ИМЕЮЩИЕ Сумма(Количество) >= 100
Рис.13.11
Логическим завершением группировки является получение общих итогов по полям запроса. Для этого применяется оператор
ИТОГИ СписокПолейСАгрегатнымиФункциями ПО СписокПолей
В списке полей можно использовать оператор ОБЩИЕ (рис.13.12).
// Итоги по группировкам
// Объем продаж по каждой комбинации контрагента и номенклатуры
| ВЫБРАТЬ Контрагент, Номенклатура, Сумма
| ИЗ РегистрНакопления.Продажи
| ИТОГИ СУММА(Сумма)
| ПО Контрагент, Номенклатура
| АВТОУПОРЯДОЧИВАНИЕ
Рис.13.12
13.8. Параметры
Для включения в текст запроса переменных значений непосредственно перед выполнением используется механизм параметров. Параметр – это аналог переменной любого языка программирования в языке запроса. Каждый параметр в тексте запроса обозначается знаком &, например &Параметр1. Параметры могут использоваться в операторе ГДЕ для сравнения с полями запроса. Заполнение значений параметров выполняется средствами встроенного языка перед выполнением запроса (рис.13.13).
// Использование параметров и ключевого слова МЕЖДУ
Запрос = Новый Запрос ("
| ВЫБРАТЬ Наименование КАК Товар,
| ЦенаПокупки
| ИЗ Справочник.Номенклатура
| ГДЕ ЦенаПокупки МЕЖДУ &МинЦена И &МаксЦена");
Запрос.УстановитьПараметр("МинЦена", 100);
Запрос.УстановитьПараметр("МаксЦена", 1000);
РЗ = Запрос.Выполнить();
Рис.13.13