- •Основы программирование в среде «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.5. Взаимосвязь таблиц
Механизм соединения таблиц, участвующих в запросе, позволяет дополнительно ограничивать состав данных, получаемых в результате выполнения запроса. Если в операторе ИЗ перечислить несколько таблиц, а в операторе ВЫБРАТЬ задать некоторые поля из этих таблиц, то результатом будут все возможные сочетания значений полей таблиц. Для ограничения выборки используют операторы соединения таблиц.
Различают четыре вида соединения:
[ВНУТРЕННЕЕ] СОЕДИНЕНИЕ
ЛЕВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ
ПРАВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ
ПОЛНОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ
Рассмотрим различие вариантов соединения на следующем примере. Пусть есть две таблицы:
Таблица 1
Номенкл. |
Номер1 |
Ручка |
1 |
Карандаш |
2 |
Вилка |
3 |
Таблица 2
ЕдИзм |
Номер2 |
Шт |
1 |
Гр |
3 |
Кг |
4 |
банка |
1 |
Пусть условием связи будет:
Таблица1.Номер1=Таблица2.Номер2
В качестве полей запроса определим две колонки: «Номенкл.» из первой таблицы и «ЕдИзм» из второй таблицы.
В соответствии с условием можно выделить записи, для которых условие выполняется (рис.13.6):
Рис.13.6
Записи, неудовлетворяющие условию соединения (Рис.13.7):
Теперь рассмотрим варианты соединения:
Внутреннее соединение: в результат выполнения запроса войдут только данные записей из обеих таблиц, для которых выполняется условие соединения т.е.
Ручка |
Шт. |
Ручка |
банка |
Вилка |
Гр. |
Левое внешнее соединение: в результат выполнения запроса войдут данные из записей, для которых выполняется условие соединения и «не вошедшие» из Таблицы 1.
Ручка |
Шт. |
Ручка |
банка |
Вилка |
Гр. |
Карандаш |
Null |
Правое внешнее соединение обратно левому.
Ручка |
Шт. | |
Ручка |
банка | |
Вилка |
Гр. | |
Null |
Кг. |
Полное внешнее соединение. В результат запроса войдут как записи, для которых выполнялось условие соединения, так и записи, полученные из «не вошедших» данных из обеих таблиц.
Ручка |
Шт. |
Ручка |
банка |
Вилка |
Гр. |
Карандаш |
Null |
Null |
Кг. |
В любом случае, даже в результате использования полного внешнего соединения не получается полная комбинация значений. (В случае полного соединения добавляются записи, не удовлетворяющие условию, а не все возможные их комбинации).
Пример внутреннего соединения показан на рис.13.6.
Рис. 13.6
Примеры внутренних соединений показаны на рис. 13.7.
// Показать курсы всех валют, которые хранятся в регистре
// сведений КурсыВалют.
// Возможно, что для некоторой валюты не будет найдено
// соответствующей записи в регистре сведений, но она также
// должна попасть в отчет.
| ВЫБРАТЬ Спр.Наименование, Рег.Курс
| ИЗ Справочник.Валюты КАК Спр
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.КурсыВалют.СрезПоследних() КАК Рег
| ПО Спр.Ссылка = Рег.Валюта
// Или то же самое можно сделать так:
| ВЫБРАТЬ Спр.Наименование, Рег.Курс
| ИЗ РегистрСведений.КурсыВалют.СрезПоследних() КАК Рег
| ПРАВОЕ СОЕДИНЕНИЕ
| Справочник.Валюты КАК Спр
| ПО Спр.Ссылка = Рег.Валюта
Рис.13.7