Если в исполняемом коде заполняется переменная с таким именем, то ее значение на момент окончания исполнения возвращается в качестве результата функции Выполнить.

1C Несовместимые Типы Ссылка в Запросе
Язык запросов является существенным отличием версии 7.7 от 8-ой программного продукта компании 1С. Именно язык запросов – важная составляющая изучения параметров программирования в 1С. Благодаря языку запросов программа версии 8 стала более функциональной, теперь гораздо проще получать данные в автоматизированном решении.
Алгоритм соединения данных таблиц
Как происходит соединение данных из двух таблиц нагляднее показать на конкретном примере. Здесь начинают действовать такие понятия как: ЛЕВОЕ СОЕДИНЕНИЕ, ПРАВОЕ СОЕДИНЕНИЕ, ПОЛНОЕ СОЕДИНЕНИЕ и ВНУТРЕННЕЕ СОЕДИНЕНИЕ. Действительно, соединения данных в программировании бывают 4-х типов.
Возьмём для примера данные, сгруппированные в две таблице. В одной таблице представлены сведения описательного характера, в другой – остатки по каждой позиции.
Товар | Материал |
Диван | Кож/зам |
Стол | Пластик |
Стол | Дерево |
Кресло | Кожа |
Табурет | Пластик/металл |
Табурет | Дерево/металл |
Товар | Материал | Кол-во |
Диван | Кож/зам | 1 |
Стол | Дерево | 15 |
Табурет | Дерево/металл | 46 |
Варианты стандартных соединений в языке запросов для 1С
Левое соединение
Нам нужно получить единую таблицу, содержащую данные таблицы «Номенклатура» и таблицы «Остатки номенклатуры», которые удовлетворяют требованию связки: Поле «Товар», Условие «Равно». Получаем следующий результат:
Товар | Материал/Номенклатура | Материал/Остатки | Кол-во |
Диван | Кож/зам | Кож/зам | 1 |
Стол | Пластик | Дерево | 15 |
Стол | Дерево | Дерево | 15 |
Кресло | Кожа | NULL | NULL |
Табурет | Пластик/металл | Дерево/металл | 46 |
Табурет | Дерево/металл | Дерево/металл | 46 |
Товар | Материал | Кол-во |
Диван | Кож/зам | 1 |
Стол | Пластик | 0 |
Стол | Дерево | 15 |
Кресло | Кожа | 0 |
Табурет | Пластик/металл | 0 |
Табурет | Дерево/металл | 46 |
Расширения (проблемы и решения)
Полное соединение или full outer join галочка ВСЕ стоит и слева и справа в запрос попадут все записи из обоих таблиц, которые 1С попытается сопоставить с помощью условия связи.

Работа с пустыми значениями в запросе
Независимо от того, необходимо ли вам явно ввести в результат запроса пустое значение или сравнить с ним существующие значения, необходимо знать, каким образом описывать пустые значения в запросе.
Типы Число, Строка, Булево описываются в запросе как во встроенном языке:
Неопределено, являясь по существу примитивным типом, описывается аналогично:
Пустые ссылочные значения определяются немного сложнее. У всех ссылочных объектов предусмотрено предопределенное служебное значение ПустаяСсылка. Благодаря этому есть возможность единым способом выбрать пустую ссылку – через функцию Значение:
Возможности работы со значениями типа Null несколько богаче. Как и другие примитивные типы, Null описывается так же, как во встроенном языке. Помимо этого, предусмотрены специальный оператор Есть Null и функция ЕстьNull.
- Оператор Есть Null позволяет создать логическое выражение сравнивающее выбранное значение со значением Null.
- Функция ЕстьNull возвращает первый аргумент, если он не равен Null, и второй аргумент в обратном случае.
Выражения, определяющие пустые значения, можно использовать в любых разделах запроса поддерживающих выражения. Например, вы можете добавить пустую ссылку в секцию Выбрать или проверку на Null в Условие.
Промокоды на Займер на скидки
1с8 Соединения запросов |
- Для типа Число – пустым значением является ноль – 0.
- Для типа Строка – пустая строка – «».
- Для типа Дата – первое января первого года – 01.01.0001 00:00:00. Именно с этой даты ведется отсчет времени в 1С.*
- Для типа Булево – значением по умолчанию, технически, является Ложь, но логически оба значения типа являются заполненными. Поэтому принятие решения о том пустое значение Ложь или нет, основывается на логике конкретного алгоритма.
Практические примеры
Пример демонстрирует частую практическую ситуацию, когда при левом соединении, для первой таблицы не находится соответствия во второй. В этом случае все поля второй таблицы будут равны Null.
Модификация предыдущего запроса для демонстрации часто встречающейся методики по получению каких-либо значений по умолчанию, взамен отсутствующих. В данном примере с использованием функции ЕстьNull, производится замена отсутствующего значения остатка, на логически правильное 0.
В рамках этой статьи мы рассмотрели различные типы пустых значений и их свойства, изучили способы определения различных типов пустых значений в запросах, а в практической части убедились в простоте применения рассмотренного материала.
Эти функции удобно применять, например, когда нужно выяснить является ли полученное в запросе поле значением какого-то типа.

Левое (Правое) соединение
Контрагенты | |
Контрагент | Полное наименование |
Иванов | Иванов И.И. |
Петров | Петров П.П. |
Сидоров | Сидоров С.С. |
Семёнов | Семёнов С.С. |
Продажи | |
Контрагент | Сумма |
Иванов | 5000 |
Петров | 7500 |
Сидоров | 15000 |
Продажи контрагентам | ||
Контрагент | Полное наименование | Сумма |
Иванов | Иванов И.И. | 5000 |
Петров | Петров П.П. | 7500 |
Сидоров | Сидоров С.С. | 15000 |
Семёнов | Семёнов С.С. | Null |
Продажи контрагентам | ||
Контрагент | Полное наименование | Сумма |
Иванов | Иванов И.И. | 5000 |
Петров | Петров П.П. | 7500 |
Сидоров | Сидоров С.С. | 15000 |
Семёнов | Семёнов С.С. | Null |
Выразить ссылку как строку в запросе 1с |
Полное соединение
Поскольку полное соединение несколько сложнее других видов соединений, немного изменим наш пример. Теперь нам нужно получить не просто развёрнутый список продаж, а список всех действующих контрагентов.
Закупки | |
Контрагент | Сумма |
Иванов | 4000 |
Андреев | 3500 |
Продажи | |
Контрагент | Сумма |
Иванов | 5000 |
Петров | 7500 |
Сидоров | 15000 |
Таблица после полного соединения, со всеми полями исходных таблиц:
Действующие контрагенты | |||
КонтрагентЗакупки | СуммаЗакупки | КонтрагентПродажи | СуммаПродажи |
Иванов | 4000 | Иванов | 5000 |
Null | Null | Петров | 7500 |
Null | Null | Сидоров | 15000 |
Андреев | 3500 | Null | Null |
Окончательный вид таблицы, в которой контрагенты сведены в одно поле:
Действующие контрагенты | ||
Контрагент | СуммаЗакупки | СуммаПродажи |
Иванов | 4000 | 5000 |
Петров | 7500 | |
Сидоров | 15000 | |
Андреев | 3500 |
Ниже приводится вариант соответствующего запроса. Обратите внимание, что данные по контрагентам мы получаем не просто из документов, а из подзапросов. В них мы выполняем группировку по контрагентам таким образом, что бы каждый контрагент был представлен в выборке но одному разу. И, естественно, не забываем про Null:
В данном примере мы создали контекст документа через ссылку на документ, заполнили некоторые поля, добавили строку в табличную часть Товары и записали документ в режиме проведения.

Запросы
Перед тем как возьметесь за конструктор, попробуйте представить поля выходной таблицы, источники этой таблицы, приблизительно как должна получать эти данные система.
Таблицы и поля
Группировка строк запроса.
При формировании запроса очень часто бывает необходимо «свернуть» данные запроса, то есть к примеру у нас в результате выборки получились такие записи
Здесь в процессе группировки в качестве группируемых полей будет выступать сотрудник, в качестве суммируемых сумма. В итоге мы должны получить следующие записи:
Условие и параметры в запросе
Передать параметр в запрос, можно следующим образом:
Псевдонимы
Объединения
Соединения
Перед построением запроса, необходимо четко определить какие данные и из каких таблиц должны попадать в результат запроса. Огромное значение имеет то, как запрос будет связывать между собой данные из нескольких таблиц. Существуют следующие виды соединений:
Внутреннее соединение или inner join(галочка «ВСЕ» не стоит не слева, не справа), необходимо использовать тогда когда из двух таблиц нужно получить только те данные которые совпадают по условию связи в обоих таблицах.
Левое соединение или left inner join (галочка «ВСЕ» стоит слева) – в результат запроса попадают все записи которые находятся в левой таблице, и те записи из правой таблицы которые отвечают условию связи.
Полное соединение или full outer join (галочка «ВСЕ» стоит и слева и справа) в запрос попадут все записи из обоих таблиц, которые 1С попытается сопоставить с помощью условия связи.
Вложенные запросы
Сортировка
Тип данных NULL
NULL тип данных который можно получить только в одном месте: в запросе, этот тип данных получается, когда при соединении таблиц левым, правым или полным соединением, нет данных удовлетворяющих условию соединения. Любая проверка значения с этим типом всегда возвращает Ложь. Любая операция с этим полем возвращает NULL. Для обработки этого типа существуют следующие операторы:
ЕСТЬNULL(ПроверяемоеЗначение, ЗначениеКотороеНадоВернутьЕслиВПроверяемомЗначенииNULL) выражение вернет либо первое значение, либо второе если первое NULL, удобно использовать в полях выходной таблицы
Использование функций
Соединяем таблицы вместе и отбираем записи | Всё о программировании на 1С: Предприятие
Микрофинансирование → Микрокредиты → Специальные предложения → Скачать файлы → Обзор Быстроденег → Предмет договора → Ответственность сторон → Отличные наличные→ Экспресс займы