Содержание:
2. Левое соединение в запросе в 1С 8.3
1. Соединение в запросах 1С
Соединение на платформе 1С – это одна из самых популярных и необходимых операций, которая выполняется посредствам реляционных систем по управлению базами данных. Данная операция используется для того, чтобы проводить сопоставление строк в одной из таблиц со строками в другой таблице.
В случаях, когда внутри системы 1С возникает необходимость отображения данных по нескольким таблицам одновременно, то есть несколько таблиц соединяются в одну общую таблицу, мы пользуемся соединением таблиц данных, а также табличными связями.
Типы соединений таблиц:
1. Левое соединение;
2. Правое соединение;
3. Внутреннее соединение;
4. Полное соединение.
Рис. 1 Таблицы данных до соединения
Чтобы произвести соединение таблиц в запросе, необходимо прописать условия и типы тех полей, которые нужно связать друг с другом.
2. Левое соединение в запросе в 1С 8.3
Левое соединение является одним из 4-х возможных видов соединений таблиц. При использовании левого соединения в запросе в 1С 8.3 мы сообщаем системе, что результат должен быть в виде абсолютно всех записей из левой таблицы с добавлением записей из правой таблицы, но только тех, которые подходят по условию связей.
Пусть нужно сделать связку таблиц, основываясь на поле товар. Условие у нас будет равно, тогда результатом будет следующая таблица, которая представлена на примере ниже:
Пусть у программиста есть две различные таблицы: в первой таблице находятся описания различных номенклатур, а во второй – информация по остаткам различных номенклатур, как показано на примерах таблиц ниже:
Рис. 2 Пример результата левого соединения в запросе в 1С
В этом случае текст запроса будет выглядеть следующим образом:
Рис. 3 Запрос для соединения таблиц данных
В номенклатуре «Стул» нет сопоставления, так как данное поле не соответствует нашему условию, так что поле в общей таблице, после левого соединения таблиц будет иметь значение «NULL». Данное значение обязательно следует подвергнуть обработке при помощи функции «ЕСТЬNULL».
Механизм работы левого соединения в запросе схож с видом цикла внутри другого цикла, а именно: сначала берут первую запись из таблицы слева, после чего это значение «проходит» все записи в таблице справа и проверяет на соответствие условию для связи таблиц. Далее берётся вторая запись из левой таблицы и так далее, пока не произойдёт проверка каждой из записей.
Если под условие для связи подходят несколько пунктов из таблицы справа, то в таблице-результате появится несколько строк. Но, в таком случае, таблица не будет отражать корректную информацию, так что лучше проводить связи опираясь на два поля, в нашем примере, на «Товар» и «Цвет», при этом обязательно произвести обработку значений «NULL».
Таблица будет иметь следующий вид:
Рис. 4 Левое соединение таблиц - результат
А текст запроса, с обработкой, будет выглядеть так:
Рис. 5 Левое соединение в запросе
Специалист компании «Кодерлайн»
Анна Лисовая