Пустое значение в запросе 1с 8.3. Значение() в запросе. Как же работать с предопределенными значениями

Понятие пустой даты и ее использование в запросах 1С

Пустое значение в запросе 1с 8.3. Значение() в запросе. Как же работать с предопределенными значениями

У всех документов, существующих в конфигурациях 1С, а, следовательно, и практически у всех регистров обязательно должен быть хотя бы один реквизит с типом Дата, именно поэтому каждому разработчику необходимо знать и понимать:

  • Как выполнять преобразования параметров других типов к рассматриваемому типу;
  • Как определить пустую дату в запросе 1С;
  • Чем отличается дата и граница времени.

Именно на эти вопросы мы и постараемся ответить в нашей статье.

Что такое дата и как ее определить

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

  • Год, когда произошло событие;
  • Месяц этого события;
  • День.

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

Существующие в мире форматы даты имеют существенное различие:

  1. В России мы привыкли на первое место ставить день, затем идет месяц события, в конце – год;
  2. Жители США начинают дату с месяца;
  3. Чехи, поляки и словенцы записывают период в формате «Год – Месяц – День».

Именно последний формат и использует платформа 1С.

Преобразование к дате

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

Рис. 1

Как видно из приведенного рисунка, определить дату можно как с помощью одной строки, так и с разбиением этой строки на составные части при помощи запятой, результат от этого не поменяется.

Важно понимать, что год даты должен содержать четыре цифры, включая тысячелетие и век события, месяц, день, часы и секунды – должны иметь длину в два символа, включая лидирующие нули.

Отсчет времени в программе идет от начала дня 1 января 0001 года. Для приведенного выше кода это значение можно определить одним из двух способов (Рис. 2).

Рис. 2

Во второй строке мы опустили часы, минуты и секунды события, что нисколько не повлияло на работоспособность нашего кода.

Особенности использования даты в запросах 1С

Для большинства типов данных, используемых платформой 1С, существуют предопределенные значения пустоты. Для чисел – это 0, для ссылок можно определить значение ПустаяСсылка(), для даты пустым значением принято считать дату начала отсчета, именно с ней необходимо сравнивать реквизиты соответствующего типа при установке параметров запроса.

Важно понять, что даже если в значении реквизита формы, имеющем рассматриваемый тип, не указано никаких цифр, то есть окно имеет вид (Рис. 3), это не означает что в нем ничего не указано, сравнение этого параметра с пустой строкой не пройдет.

Рис. 3

Получив пустую дату, мы можем указать ее в качестве параметра к нашему запросу, то есть использовать конструкцию (Рис. 4)

Рис. 4

Однако, существуют моменты, когда проверку лучше проводить внутри текста запроса, не передавая пустую дату в качестве параметра. Для этого в коде запроса можно ввести соответствующее условие (Рис. 5) и использовать функцию запроса ДатаВремя().

Рис. 5

В приведенном тексте запроса мы опустили лидирующие нули у года, месяца и дня, а так же не указали часов, минут и секунд и программа, что называется, скушала это допущение.

Дата и граница времени

Еще один интересный факт, касающийся соотношения запросов и даты – это использование понятия «момент времени» при обращении к различным таблицам базы данных.

Точность «до миллисекунды», указанная в технической документации при описании примитивного типа Дата ярче всего проявляется при выборке записей из виртуальных таблиц регистра накопления: если у регистра накопления помимо таблицы Обороты, существуют таблицы Остатки и ОстаткиИОбороты, то выборка по ним, осуществленная на определенное время, может дать различные результаты.

Для того чтобы понять, как и почему это происходит, рассмотрим простой пример:

  1. До проведения в 12 часов 31 минуту 36 секунд документа реализации остатки по номенклатуре Сахар составляли 30 кг;
  2. Документом в указанное время было списано 10 кг;
  3. Отчет, формируемый на дату документа на 12 часов 31 минуту 36 секунд по таблице Остатки, покажет остаток 30кг;
  4. Тот же самый отчет по таблице ОстаткиИОбороты на то же самое время покажет остаток в 20 кг.

В чем же причина подобного поведения и как этого избежать?

Проблема в том, что в таблице Остатки период задается открытым отрезком, то есть, движения, осуществленные на момент времени формирования отчета не берутся в расчет, то есть время берется на начало указанной в параметре секунды. В то же самое время, для таблицы Оборотов и для таблицы ОстаткиИОбороты границы времени берутся в расчет то есть время берется на конец указанной секунды.

Выходов из этой ситуации несколько:

  1. При использовании таблицы Остатки, указывать момент времени на 1 секунду больший, чем заданный;
  2. Использовать только таблицу ОстаткиИОбороты (не самый оптимальный с точки зрения производительности вариант);
  3. Использовать понятие Граница.

Последний вариант можно представить кодом, указанном на Рис. 6.

Рис. 6

В первом параметре нашего объекта мы указываем дату, на которую необходимо сформировать отчет, второй параметр определяет тип границы. Так как для нас важно, чтобы движения на заданную дату вошли в выборку мы должны установить этот параметр в положение «Включая».

Источник: http://blog.it-terminal.ru/programmirovanie-1s/pustaya-data-v-zaprose-1s.html

1с проверить на пустой документ в запросе 1с

Пустое значение в запросе 1с 8.3. Значение() в запросе. Как же работать с предопределенными значениями

Первоначально мои мысли заработали в направлении функции ПОДСТРОКА, и я написал Разумеется, такая конструкция конструктору запросов крайне не понравилась, и это к лучшему (так как иначе эта статья бы не появилась). Здесь Вы получаете доступ к публикациям, в которых профессионалы делятся своим уникальным опытом.

Как использовать условный оператор выбора в запросе. Проверено на платформе 8.3 (8.3.9.2233). Пустая ссылка в запросе в 1 С. В языке запросов 1 С часто требуется проверить: является ли значение пустой ссылкой. 1 С 8.3 программирование для начинающих. Данная задача решалась для определенной организации, она НЕ претендует на универсальность.

Ответственный у пустой сделки, скорее всего NULL.

Null, Естьnull() И Есть Null В Запросах 1с

Как написать запрос таким образом, чтобы на определенном уровне иерархии запроса считались одни итоговые функции, а на другом уровне другие? Как в запросе проверить значение на вхождение в диапазон (включительно) в 1с 8.

3, 8.2. Это требуется, например для того что бы исключить из запроса пустые ссылки на справочники или документы. Номенклатура = ЗНАЧЕНИЕ (Справочник.Номенклатура.ПустаяСсылка). Получается узнать это только после закрытия формы.

  1. Проверка результата запроса на Пустой
  2. Проверка на пустоту в запросе
  3. Проверка на пустую ссылку в запросе
  4. Новое в версии 3.0.24.2.
  5. С использованием функции Значение.
  6. Не могу поймать это момент.
  7. СтавАналит. Контактная информация
  8. 1с 8.2 запрос ко всем документам.
  9. Всё для 1 С

А каким образом можно получить остаток из регистра накопления по списку, к примеру номенклатуры, но в каждом случае на разную дату? Богдан, спасибо, курс действительно интересный, авторский. Как отловить событие пометки на удаление.

Обработка удаляет организацию из программы, проведенные под ней документы, движения документов (регистры) и элементы справочника (УФ). Таким образом, чтобы получить пустую дату в запросе достаточно указать ДАТАВРЕМЯ (1, 1, 1).

В 1 С 7.7. было ПустоеЗначение () Чтобы проверить на пустое значение в 1 С 8 надо использовать: ЗначениеЗаполнено (). Рекомендую предварительно оформить запрос в ФСБ России и МВД России запросы о наличии или отсутствия запрета на въезд в Россию, что бы избежать неприятных ситуации на пограничных пунктах.

Обработку использовал у себя в организации на ЗУП 3.1.7.106 без ошибок, так же протестировал на БП 3.. Подробности по телефону (для связи + 79037926525 viber/whatsapp). Проведен = ИСТИНА Пример запроса: ВЫБРАТЬ 1 с 8 Предприятие. Проверить билет можно непосредственно в ходе трансляции передачи на канале “НТВ”.

У меня часто спрашивают как в 1 С:Предприятие 8.2 и 8.3 проверить является ли дата пустой.

Документы Цикл Текст = Текст + ВЫБРАТЬ Ссылка | ИЗ Документ. Есть несколько способов выполнить эту проверку. В документе обозначено, что физлица будут платить 4% налога, а юрлица – 6%. Как в запросе проверить поле на соответствие ссылочному типу. Как в запросе проверить поле на пустую ссылку?

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

Как в запросе 1с8 установить условие проверки периода на конец дня? Реестр лжепредпринимателей перестанут пополнять с 1 января. Новая форма расчета по страховым взносам. Другой Ваш курс – Установка и настройка 1 С 8.3 мне тоже очень понравился. Объединенный Пак 2.1 Дата выхода: 28.12.2018 В Объединенный Пак 2.

1 внесено громадное количество разных изменений, пройти игру по старой памяти не получится. Работники банка рекомендуют проверять всю информацию на сайте финансового учреждения.

Дата = ДАТАВРЕМЯ (1, 1, 1, 0, 0, 0) или ВЫБРАТЬ ЗаказПокупателя. Обработки, настройки и отчеты для 1 С 8.3 8.2 7.7 Краснодар. Товары КАК ПоступлениеТоваровУслугТовары ГДЕ ПоступлениеТоваровУслугТовары.

Запрос – это специальный объект в 1 С 8.2, который используется для формирования и выполнения запросов к таблицам базы данных в системе. Пример запроса КО ВСЕМ НЕ ПОМЕЧЕННЫМ на удаление ДОКУМЕНТАМ. Используемая конфигурация Управление торговли 11.0. Методическая рекомендация (полезный совет).

Какие нововведения ждут автомобилистов в 2019 году

Иногда в запросе 1 С 8 требуется проверить число на чет или нечет, Как это сделать можно прочитать в статье. Если правильно объяснить — поймёт каждый.

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

При этом мне нужно в запросе проверить пустое СубконтоДт или содержит значение! В то же время если требуется выбрать (или выгрузить) результат запроса, то предварительный вызов метода Пустой не требуется. Но теперь не могу побороть такое Вы получаете таблицу (пусть даже состоящую из одной строки).

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

Запрос = Новый Запрос; Текст =; Для Каждого Документ Из Метаданные. Обработка анализирует метаданные конфигурации и помечает либо делает отмену пометки на удаление. Для Вас мы собрали более 30000 различных материалов по 1 С. Решил опубликовать исходный код C # для работы с форматом конфигураций 1 С: Предприятие.

бывший в наличии (сейчас не проверял) онлайн-ресурс по декомпиляции байт-кода 1 С полностью перекрывают все возможности данной программы.

Для основных социальных и демографических групп населения Хотите прокачаться в расчете и начислении Заработной платы?! Во встроенном языке 1 С, в программном коде или запросе есть возможность получить ПустуюСсылку.

1с как проверить на пустую дату в запросе 1с

  1. Профессия — 1 С » Дата в запросах 1 С
  2. Форум 1 С: Одинэс.Ру.
  3. Проверка типа в запросе
  4. Статья :Примеры работы в 1 С
  5. Вакансия Оператор
  6. Каталог отчетов и обработок для 1 С
  7. Проверка заполнения поля / 1 С / Sql.

    ru

Представление – строка неограниченной длины. Если в тексте запроса надо сделать проверку на пустое значение ссылочного типа, это делается так: ГДЕ Поле = ЗНАЧЕНИЕ (Справочник.Номенклатура.

ПустаяСсылка); А если Поле – это строковый тип, как его проверить на пустую строку?

В табличной части документа поля ОтветственныйМенеджер нет. Например в результате соединения таблиц запроса, не нашлось значения в одной из таблиц при связи по полям соединения. Как в запросе сделать проверку значения на NULL в 1с 8.3, 8.2 Как получить пустую ссылку в запросе в 1с 8.3, 8.2.

Такие ссылки могут применяться в конструкциях сравнения. В 1 С проверка на пустое значение осуществляется специальной функцией.

Это универсально – потому что весь код по проверке заполнения находится в одном месте, и если понадобилось для нескольких операций выполнять сходные действия, настройка будет более удобней. Проверка на пустую строку в запросе 1 С.

В условиях для нахождения пустой строки необходимо использовать пустое значение строки nastroyvse.ru. Основные правила написания оптимальных запросов в 1 С. Вложенные запросы и виртуальные таблицы рекомендую заменить на временные таблицы.

Услуги по сопровождению компьютерных систем (ИТС 1 С программ семейства 1 С Предприятие). Бизнес-процессы создаются в пользовательском режиме различной сложности по усмотрению пользователя.

По ссылке на документ Требование Накладная определяется есть ли записи в табличной документа части или нет. Учет будет проводить центр занятости независимо от зарегистрированного места жительства или пребывания безработных.

В документе сказано установить в 2019 году прожиточный минимум на одно лицо в расчете на месяц в размере с 1 января 2019 года — 1853 гривны, с 1 июля — 1936 гривен, с 1 декабря — 2027 гривен.

Как проверить на четное число в 1 С 8 8.2 8.3?

Функция СформироватьСтруктуруДляОтчетаБезГашения (Касса, Операция, ДополнительныеПараметры). Как запросом для документа найти все подчинённые ему документы? Полезные материалы для 1 С:Документооборота на Инфостарте. Документ опубликован на сайте Правительства и находится в свободном доступе.

Чтобы расширить функциональные возможности используемой системы, требуется приобрести новые приложения. Запрос кажись работает, но неужели в языке запроса нет штатной проверки на пустое значение? Т. е.

у меня например справочник Бухи убирают из документов ПоступлениеТоваровУслуг счет расчета по авансам 60.02.

Может проще вернуть количества материала в процедуру и там уже с ней манипулировать.

Для передачи в запрос значений перечислений и значений предопределенных элементов ссылочного типа можно воспользоваться Сообщений: 42 Зарегистрирован: 13. СчетНаОплатуПокупателю Как Счет ГДЕ Счет.

Для каждой операции необходимо формировать свое тело запроса, реализовали под каждую операцию свою функцию которая формирует структуру для отправки на задание. С 1 квартала 2019 года сдавать отчетность по взносам надо будет на новом бланке.

ГДЕ Дата = & ПустаяДата Запрос.УстановитьПараметр (ПустаяДата, 00010101) 1С8 Запросы.

Как изменить динамический список 1 С. Добавить поля остатков по номенклатуре. Независимо от того, необходимо ли вам явно ввести в результат запроса пустое значение или сравнить с ним существующие значения, необходимо знать, каким образом Проверка на пустую ссылку.

Как проверить достаточность остатков товаров на складах, указанных в документе? Проверьте работоспособность сервера и параметры кассы! Что бы проверить заполнен ли имеющийся у вас реквизит или переменная следует использовать функцию из глобального контекста ЗначениеЗаполнено ().

Для языка программирования 1 С. ДАТА (1, 1, 1). Как обычно проверяют запрос пустой или нет? Контрагент ЗНАЧЕНИЕ (Справочник.Контрагенты.ПустаяСсылка). Подсистема бизнес-процессы позволяет расширить конфигурации в которых не используются бизнес-процессы.

Продолжение и текстовые версии некоторых уроков можно найти на странице курса: new1c.ru/authors_courses В 5-ом уроке курса Язык запросов 1 С для пользователей мы научимся получать с помощью запросов сгруппированные данные.

Особенно когда запрос строится к объектам метаданных в которых содержится периодическая информация.

Глава 1: Мой первый запрос Глава 2: Условия в запросах Приведение параметров к типу колонки Отбор по пустому значению Отбор по списку или группе Глава 3 Для начала нужно научиться выполнять элементарные запросы к базе 1 С непосредственно из самой программы. ЗаказПокупателя КАК ЗаказПокупателя ГДЕ ЗаказПокупателя.

Применение функции ЗНАЧЕНИЕ в запросах 1 С для обращения к перечислениям и предопределенным элементам. ЗапросУслуги = Новый Запрос; ЗапросУслуги.УстановитьПараметр (ТекущийДокумент, ЭтотОбъект.Ссылка) Итак, как же проверить тип ссылки в запросе? Проверка на пустую дату в запросах ВЫБРАТЬ ЗаказПокупателя. Как в прямом запросе проверить на пустую дату?

Однако после предварительного рассмотрения документ вернули авторам в связи с отсутствием заключения Правительства РФ.

В качестве примера выберем из регистра сведений РаботникиОрганизаций записи у которых не заполнен ПериодЗавершения Запросы, отчеты. Чем больше документов, договоров и тд – тем дольше процесс удаления.

Как в запросе проверить значение на вхождение в диапазон (включительно). Вашему вниманию предлагается седьмой урок из курса уроков по 1С8.х для начинающих.

NULL в результате запроса, означает отсутствие значения (это не пустое значение, не нулевое, не пустая ссылка). 1 С 8.x 1 С 8.x Узелки на память Ссылка в запросе на текущий документ.

Что бы проверить поле запроса на пустую ссылку нужно использовать функцию ЗНАЧЕНИЕ.

Во второй половине 2019 года на территории Московской области рост тарифов для населения в одноставочном выражении составит 3,3%.

Источник: http://herringbonq.gq/864-1s-proverit-na-pustoy-dokument-v-zaprose-1s

1С запрос пустое значение

Пустое значение в запросе 1с 8.3. Значение() в запросе. Как же работать с предопределенными значениями

1. Проверку того, что результат выполнения запроса не содержит строк следует выполнять с помощью метода Пустой. Поскольку на получение выборки из результата запроса (выгрузка его в таблицу значений) будет затрачиваться дополнительное время.

Неправильно:

Выборка = Запрос.Выполнить().Выбрать();Если Выборка.Следующий()ТогдаВозвратИстина;ИначеВозвратЛожь;КонецЕсли;

Правильно:

ВозвратНЕ Запрос.Выполнить().Пустой()

Методическая рекомендация (полезный совет)2. В то же время если требуется выбрать (или выгрузить ) результат запроса, то предварительный вызов метода Пустойне требуется .Например, вместо:РезультатЗапроса = Запрос.Выполнить();ЕслиНЕ РезультатЗапроса.Пустой()Тогда// избыточный вызов Выборка = РезультатЗапроса.Выбрать();Пока Выборка.Следующий()Цикл…правильно:Выборка = Запрос.Выполнить().Выбрать();Пока Выборка.Следующий()Цикл…

Курсы программирования 1С:Предприятие 8.2

Другие материалы по теме:
выгрузить, пустой, выгрузка, истина, получение, иначе, буфер обмена, копировать, выполнить, обмен, возврат, время, выбрать, результат, конфигурирование

Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Реализация обработки данных

Другие материалы по теме:

Использование параметров сеанса

Чтение отдельных реквизитов объекта из базы данных

Начальные действия при работе конфигурации

Использование привилегированного режима

Использование транзакций при чтении данных

Нас находят: Результа запроса, результат запроса, 1с пустой запрос, результат запроса пустой, 1С 8 проверить что ТЗ не пустая, Если выборка Следующий, Результат КАК 1с 8, Результат запроса* «Тесты для автомехаников с ответами»:, пустой запрос, проверить результат запроса на пустой результат

1с 8 запрос проверка на пустое значение

1с 8 запрос проверка на пустое значение

Скачать файл — 1с 8 запрос проверка на пустое значение

Здравствуйте, гость Вход Зарегистрироваться. Искать только в этом форуме? Не спишите писать Значение Справочник. ПустаяССылка Вопрос вот в чем. Есть реквизит с составным типом данных. Не годится — нужен универсальный метод — Вы не знаешь состав. А причем тут NULL если я говорю про не заполненное значение? Значение ЕСТЬ — как его проверить на заполненность?

Использование функции ЗНАЧЕНИЕ в запросе

А что, если попробовать выразить значение в строку и проверять на пустую строку? Вроде и все детали на месте, но без молотка и напильника нифига не собирается. Ardi , Vofka ,. Это если только ссылочный тип.

И чем это они отличаются? Никогда не бойся делать то, что не умеешь, помни — Ноев ковчег был построен любителем, профессионалы построили Титаник. А так жму палец. В качестве параметра функции передается выражение, представление результата которого нужно получить.

В случае, если результатом выражения является ссылка, результатом функции будет строка — представление данной функции. В остальных случаях результатом функции будет значение переданного параметра. Вот и вся разница. Не нашли ответа на свой вопрос? Зарегистрируйтесь и задайте новый вопрос. Звит Пользователю 1С 7.

Система стандартов и методик разработки конфигураций для платформы 1С: Заказы на доработку 1С сервис удаленной работы. Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С. Статьи, описание работы, методики по работе с 1С. Проверка на пустую ссылку в запросе.

У нас здесь своя атмосфера Это если только ссылочный тип Спасибо сказали: Это если только ссылочный тип Вообще не по идее Неопределенно и NULL совершенно разное! Как можно сравнивать два этих значения? Есть немного отличий я в решении написал ответ — там кстати написано чем они отличаются.

NULL — когда в соединении не найдена соответсвующая строка Неопределено — когда строка найдено, но в колонке неопределен тип. Вот и вся разница Когда-то писали — очередной костыль от 1С — для СКЛ сервера прямого запроса — никакой разницы. А костыль обусловлен методой хранения типизированых значений в базе.

Как в запросе проверить поле на пустое значение?

Домашнее видео ню крупным планом свежее

Сюрикены из бумаги своими руками схемы

Форум

Управление ритуальными услугами

Описание модельной стрижки

Нужна ли виза в дубай

Последние новости в мире фото

Пустая ссылка, дата или строка в запросе 1С 8.3 и 8.2

Как заработать деньги в интернете майнинг

Монеты с иероглифами каталог

Новаринг через сколько месячные

Проверка на пустую ссылку, дату или строку в запросе 1С

Корпорация центр лысьва каталог товаров акции

Помогает ли хулахуп похудеть

Должностная инструкция склад инструкция

1С 8.3 : Как опраделить пустую ссылку в запросе

В статье рассмотрен один из способов передачи значений предопределенных элементов в запрос.

Для передачи в запрос значений перечислений и значений предопределенных элементов ссылочного типа можно воспользоваться:

  1. параметрами запроса;
  2. функцией ЗНАЧЕНИЕ().

Рассмотрим второй вариант, на мой взгляд, он более красивый.

При помощи функции ЗНАЧЕНИЕ можно обратиться к:

  • значениям перечислений;
  • значениям пустых ссылок;
  • предопределенным элементам:
  • справочников;
  • планов видов характеристик;
  • планов счетов;
  • планов видов расчетов;
  • значениям точек маршрута бизнес-процессов;
  • значениям системных перечислений (ВидДвиженияНакопления, ВидСчета, ВидДвиженияБухгалтерии).
  • В параметр ИмяЗначения передается строка, которая может иметь один из следующих видов:

    Перечисление..ЗначениеПеречисления
    Перечисление..ПустаяСсылка

    Справочник..
    Справочник..ПустаяСсылка

    Документ..ПустаяСсылка

    ПланВидовХарактеристик..
    ПланВидовХарактеристик..ПустаяСсылка

    ПланСчетов..
    ПланСчетов..ПустаяСсылка

    ПланВидовРасчета..
    ПланВидовРасчета..ПустаяСсылка

    БизнесПроцесс..ТочкаМаршрута.
    БизнесПроцесс..ТочкаМаршрута.ПустаяСсылка

    Задача..ПустаяСсылка

    .

    Вот несколько примеров с фрагментами запросов, иллюстрирующие использование функции Значение:

    ГДЕ ТаблицаКИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)

    ГДЕ ВидыКИ.Родитель = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.СправочникПользователи)
    ВЫБРАТЬ ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) КАК Ссылка

    ГДЕ РеализацияТоваровУслугТовары.ЗаказКлиента ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка)

    ВЫБРАТЬ ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.НДФЛ) КАК СчетУчета

    ГДЕ Задание.ЗадачаИсточник = ЗНАЧЕНИЕ(Задача.ЗадачаИсполнителя.ПустаяСсылка)

    ВЫБОР КОГДА РасчетыСКлиентами.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА РасчетыСКлиентами.Сумма ИНАЧЕ 0

    КОНЕЦ

    Смотри также:

    Запросы в 1СПрограммная работа со справочниками

    Программная работа с массивом

    kay05

    сабж

     
     

       IronDemonНе поверишь    alekccТоварищь, не путайте Элемент справочника Склады со строкой “Торговый зал”,и это, Сообщить(СпрТовар.НайтиПоНаименованию(СокрЛП(ДобТовар))) что пишет ? И ДобТовар — что за зверь такой ? Откуда взялся ? Какого ТИПА?    Alpen906Запрос.УстановитьПараметр(“ПустойДокумент”, Документы.ТвойВидДокумента.ПустаяСсылка()); Запрос.Текст = … ГДЕ ТвойВидДокумента.Ссылка = &ПустойДокумент;    Mitriy(0) в смысле битую?    Mitriy(3)+ млин, ни разу не надо было… … ГДЕ ТвойВидДокумента.Ссылка = Значение(Документ.ТвойВидДокумента.ПустаяСсылка());    Mitriy(5)* пардонте… … ГДЕТвойВидДокумента.Ссылка = Значение(Документ.ТвойВидДокумента.ПустаяСсылка);    Alpen906(5)Согласен. Про ЗНАЧЕНИЕ в запросе забыл.    FedayА что, если реквизит имеет составной тип? Но только ДокументСсылка.    Ненавижу 1С(8) ГДЕ ТвойВидДокумента.Ссылка = НЕОПРЕДЕЛЕНО;    Defender aka LINN

    (9) Щютник ©
    Что ж ты такие гадости неправильные подсказываешь?

    Источник: https://printscanner.ru/1s-zapros-pustoe-znachenie/

    Язык запросов 1С 8.3 и 8.2 – полное руководство

    Пустое значение в запросе 1с 8.3. Значение() в запросе. Как же работать с предопределенными значениями

    Закажите бесплатный расчет стоимости вашей задачи по 1С!
    Перезвоним за 10 минут! (в рабочие часы)

    Язык запросов 1С — одно из основных отличий между версиями 7.7 и 8. Одним из важнейших пунктов в изучении 1С-программирования является язык запросов.  В 1С 8.3 запросы — самый мощный и эффективный инструмент получения данных. Язык запросов позволяет в удобном виде получать информацию из базы данных.

    Сам синтаксис очень сильно напоминает классический T-SQL, за исключением того, что в 1С с помощью языка запросов можно только получать данные, используя конструкцию Выбрать(select). Язык поддерживает и более сложные конструкции, например, вложенные запросы (запрос в запросе).  Запросы в 1С 8 можно составлять как на кириллице, так и на латинице.

    В статье я постараюсь рассказать про основные ключевые слова в языке запросов 1С:

    • выбрать
    • разрешенные
    • различные
    • выразить
    • первые
    • для изменения
    • значение
    • тип значения (и оператор ССЫЛКА)
    • выбор
    • сгруппировать по
    • имеющие
    • ЕСТЬNULL
    • Есть NULL
    • соединения — правые, левые, внутренние, полные.

    А так же небольшие хитрости языка 1С, применяя которые вы сможете оптимально построить текст запроса.

    Для отладки запросов в системе 1С 8.2 предусмотрен специальный инструмент — консоль запросов. Увидеть описание и скачать его можно по ссылке — консоль запросов 1C.

    Основные конструкции языка запросов

    Рассмотрим самые важные и интересные операторы языка запросов 1С.

    ВЫБРАТЬ (SELECT)

    В языке запросов 1С предприятия 8 любой запрос начинается с ключевого слова ВЫБРАТЬ. В языке 1С нет конструкций UPDATE, DELETE, CREATE TABLE, INSERT, эти манипуляции производятся в объектной технике. Предназначение его — только чтение данных.

    Например:

    ВЫБРАТЬТекущийСправочник.НаименованиеИЗ

    Справочник.Номенклатура КАК ТекущийСправочник

    Запрос вернёт таблицу с наименованиями номенклатуры.

    Рядом с конструкцией ВЫБРАТЬ можно встретить ключевые слова ДЛЯ ИЗМЕНЕНИЯ, РАЗРЕШЕННЫЕ, РАЗЛИЧНЫЕ, ПЕРВЫЕ

    ДЛЯ ИЗМЕНЕНИЯ — блокирует записи таблицы на время транзакции (не актуально для управляемых блокировок). Подробнее в статье ДЛЯ ИЗМЕНЕНИЯ в запросах 1С.

    РАЗРЕШЕННЫЕ — выбирает только записи из таблицы, на которые есть права у текущего пользователя.

    РАЗЛИЧНЫЕ — означает, что в результат не попадет дублирующих строк.

    ПЕРВЫЕ n — в языке 1С 8.3 запрос отберет только n первых записей.

    ВЫБОР (CASE)

    Очень часто данная конструкция недооценивается программистами. Пример её использования:

    ВЫБРАТЬ

    ТекущийСправочник.Наименование,

    ВЫБОР

    КОГДА ТекущийСправочник.Услуга ТОГДА

    «Услуга»

    ИНАЧЕ

    «Товар»

    КОНЕЦ КАК ВидНоменклатуры

    ИЗ

    Справочник.Номенклатура КАК ТекущийСправочник

    Пример возвратит в поле «ВидНоменклатуры» текстовое значение — «Товар» или «Услуга».

    ГДЕ (WHERE)

    Конструкция языка запросов 1C, позволяющая наложить отбор на получаемые данные. Учтите, что от сервера система получает все данные, а только потом они отбираются по данному параметру.

    Пример:

    ВЫБРАТЬСправочник.НаименованиеИЗТекущийСправочник.Номенклатура КАК ТекущийСправочник

    ГДЕ ТекущийСправочник.Услуга = ИСТИНА

    В примере мы отбираем записи, у которых значение реквизита «Услуга» установлено в положение «Истина».  В данном примере можно было бы обойтись и таким условием:

    «ГДЕ Услуга»

    По сути, мы отбираем строки, у которых выражение после ключевого слова равно «Истина».

    В выражениях можно использовать прямые условия:

    ГДЕ Код = «005215»

    С помощью оператора «ЗНАЧЕНИЕ()» в условиях использовать обращение к предопределенным элементам и перечислениям в запросе 1С:

    ГДЕ ТипНоменклатуры= Значение(Перечисление.ТипыНоменклатуры.Товар)

    Значения времени могут указываться следующим образом:

    ГДЕ ДатаПоступления > ДАТАВРЕМЯ(2012,01,01):

    Чаще всего условия указываются в виде параметров, передаваемых в запрос:

    Получите 267 видеоуроков по 1С бесплатно:

    ГДЕ НоменклатурнаяГруппа= &НоменклатурнаяГруппа

    Условие можно наложить на тип реквизита, если он составного типа:

    ГДЕ РегистрНакопления.Регистратор ССЫЛКА Документ.ПоступленияТоваров

    Если необходимо ограничивать отбор из списка значений или массива, можно поступить следующим образом:

    ГДЕ РегистрНакопления.Регистратор В (&СписокДокументовДляОтбора)

    Условие может быть и сложное, состоящее из нескольких условий:

    ГДЕ ДатаПоступления > ДАТАВРЕМЯ(2012,01,01)  И НоменклатурнаяГруппа= &НоменклатурнаяГруппа И НЕ Услуга

    СГРУППИРОВАТЬ ПО (GROUP BY)

    Конструкция языка запросов 1С 8.2, используемая для группировки результата.

    Например:

    ВЫБРАТЬПоступлениеТоваровУслугTовары.Товар,СУММА(ПоступлениеТоваровУслугTовары.Количество) КАК Количество,СУММА(ПоступлениеТоваровУслугTовары.Сумма) КАК СуммаИЗ

    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугTовары

    СГРУППИРОВАТЬ ПО
    ПоступлениеТоваровУслугTовары.Товар

    Данный запрос просуммирует все поступления по сумме и количеству в разрезе номенклатуры.

    Помимо ключевого слова СУММА можно использовать другие агрегатные функции: КОЛИЧЕСТВО, КОЛИЧЕСТВО РАЗНЫХ, МАКСИМУМ, МИНИМУМ, СРЕДНЕЕ.

    ИМЕЮЩИЕ (HAVING)

    Конструкция, о которой часто забывают, но она очень важна и полезна. Она позволяет указать отбор в виде агрегатной функции, этого нельзя сделать в конструкции ГДЕ.

    Пример использования ИМЕЮЩИЕ в запросе 1С:

    ВЫБРАТЬПоступлениеТоваровУслугТовары.Товар,СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество,СУММА(ПоступлениеТоваровУслугТовары.Сумма) КАК СуммаИЗ

    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары

    СГРУППИРОВАТЬ ПО
    ПоступлениеТоваровУслугТовары.товар

    ИМЕЮЩИЕ

    СУММА(ПоступлениеТоваровУслугТовары.Количество) > 5

    Так мы отберем количество товаров, которых поступило более 5 штук.

    ЗНАЧЕНИЕ()

    В запросе 1C ЗНАЧЕНИЕ ()  можно использовать для указания предопределенных значений, таких как значения перечисления, пустую ссылку или значение предопределенного элемента (справочника, плана счетов, ПВХ  и т.д).

    Например:

    ГДЕ  Банк = Значение(Справочник.Банки.ПустаяСсылка)

    или

    ГДЕ ВидНоменклатуры = Значение(Справочник.ВидыНоменклатуры.Товар)

    или

    ГДЕ ТипНоменклатуры= Значение(Перечисление.ТипыНоменклатуры.Услуга)

    ТИП в запросе

    Тип данных можно проверить следующим образом: с помощью функций ТИП() и ТИПЗНАЧЕНИЯ() или с помощью  логического оператора ССЫЛКА.

    Пример:

    ГДЕ ТИПЗНАЧЕНИЯ(Проект.Ссылка) ТИП(Справочник.Проект)

    или

    ГДЕ Проект.Ссылка ССЫЛКА Справочник.Проект

    ВЫРАЗИТЬ()

    Оператор Выразить в запросах 1С служит для преобразования типов данных.

    Синтаксис: ВЫРАЗИТЬ( КАК ) 

    С помощью него можно преобразовать строковые значения в дату или ссылочные в строковые данные и так далее.

    В практическом применении оператор Выразить() очень часто используется для преобразования полей неограниченной длины, потому что поля неограниченной длины нельзя отбирать, группировать и тд. Если такие поля не преобразовывать, Вы получите ошибку Нельзя сравнивать поля неограниченной длины и поля несовместимых типов.

    Пример:

    ВЫБРАТЬКонтактнаяИнформация.Объект,ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(150)) КАК ПредставлениеИЗ

    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация

    СГРУППИРОВАТЬ ПОВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(150)),

    КонтактнаяИнформация.Объект

    ЕСТЬNULL (ISNULL)

    Достаточно полезная функция языка запросов 1С, которая проверяет значение в записи, и если оно равно NULL, то позволяет заменить на своё значение. Чаще всего используется при получении виртуальных таблиц остатков и оборотов, чтобы скрыть NULL  и поставить понятный 0 (ноль).

    Пример:

    ЕСТЬNULL(НалогиПредМесяца.ПримененнаяЛьготаФСС, 0)

    Такая функция языка запросов 1С ЕСТЬNULL при отсутствии значения вернет ноль, что позволит избежать ошибки.

    СОЕДИНЕНИЕ (JOIN)

    Соединения бывают 4 типов: ЛЕВОЕ, ПРАВОЕ, ПОЛНОЕ, ВНУТРЕННЕЕ.

    Левое и правое соединение

    Соединения используются для связи двух таблиц по определенному условию. Особенность при ЛЕВОМ СОЕДИНЕНИИ в том, что мы берём первую указанную таблицу полностью и привязываем по условию вторую таблицу. Поля второй таблицы, которые не удалось привязать по условию, заполняются значением NULL.

    Пример левого соединения в запросе 1С:

    ВЫБРАТЬКлиенты.Ссылка КАК Контрагент,Банки.Ссылка КАК БанкИЗСправочник.Контрагенты КАК КлиентыЛЕВОЕ СОЕДИНЕНИЕСправочник.Банки КАК БанкиПО

    Клиенты.Наименование = Банки.Наименование

    Вернет всю таблицу Контрагентов и заполнит поле «Банк» лишь в тех местах, где будет соблюдаться условие «Контрагенты.Наименование = Банки.Наименование». Если условие не соблюдается, в поле Банк будет установлено NULL.

    ПРАВОЕ СОЕДИНЕНИЕ в языке 1С 8.3 абсолютно аналогично ЛЕВОМУ соединению, за исключением одного отличия: в ПРАВОМ СОЕДИНЕНИИ «главная» таблица — вторая, а не первая.

    Полное соединение

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

    Например:

    ВЫБРАТЬКлиенты.Ссылка КАК Клиенты,Банки.Ссылка КАК БанкИЗ

    Справочник.Контрагенты КАК Клиенты

    Полное соединение
    Справочник.Банки КАК Банки

    ПО
    Клиенты.Наименование = Банки.Наименование

    Язык запросов вернет обе таблицы полностью лишь по выполненному условию Соединить записи. В отличие от левого/правого соединения возможно появления NULL в двух полях.

    ВНУТРЕННЕЕ СОЕДИНЕНИЕ

    ВНУТРЕННЕЕ СОЕДИНЕНИЕ отличается от полного тем, что выводит только те записи, которые смогли соединить по заданному условию.

    Например:

    ВЫБРАТЬКлиенты.Ссылка КАК Клиенты,

    Банки.Ссылка КАК Банк

    ИЗ
    Справочник.Контрагенты КАК Клиенты

    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    Справочник.Банки КАК Банки

    ПО
    Клиенты.Наименование = Банки.Наименование

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

    Заключение

    Это лишь небольшая часть синтаксиса из языка запросов 1С 8, в дальнейшем я попробую рассмотреть более подробно некоторые моменты, показать способы оптимизации запросов и многое другое!

    курс по 1С

    Если вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на — регулярно выходят новые виде):

    К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

    Источник: https://programmist1s.ru/yazyik-zaprosa-1s/

    Искарик
    Добавить комментарий