empty basket
Ваша корзина пуста
Выберите в каталоге интересующий товар
и нажмите кнопку «В корзину».
Перейти в каталог
empty delayed
Отложенных товаров нет
Выберите в каталоге интересующий товар
и нажмите кнопку
Перейти в каталог
Заказать звонок
г. Жуковский
Поиск
Войти
Логин
Пароль
Войти как пользователь
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
1С: Франчайзинг
Логин
Пароль
Войти как пользователь
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Логин
Пароль
Войти как пользователь
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности

Маленькие хитрости в запросах

09.02.2020
Небольшие приемы упрощающие получение данных

Выбрать только целое значение:

накладываем условие в запросе: ВЫРАЗИТЬ(Данные КАК ЧИСЛО(15,0)) = Данные, где данные это поле запроса

Выбрать значение кратное например 5:

накладываем условие в запросе: ВЫРАЗИТЬ(Данные/5 КАК ЧИСЛО(15,0)) = Данные/5, где данные это поле запроса, а вместо 5 может быть любое число

Условие по типу значения документа или справочника:

накладываем условие в запросе: ГДЕ Реквизит ССЫЛКА Документ["НаименованиеДокумента"]

Разность дат в запросе:

Часто требуется рассчитать возраст, стаж, срок до события и пр. Это удобно сделать непосредственно в запросе при помощи функции РазностьДат:

РАЗНОСТЬДАТ (<Дата1>, <Дата2>, <Тип>)

В зависимости от указываемого типа - СЕКУНДА, ЧАС, ДЕНЬ, МЕСЯЦ, ГОД -  получим соответствующее числовое значение.

Однако есть один нюанс, поясню на примере расчета возраста:

РАЗНОСТЬДАТ (ДеньРождения (1 сентября 1980), ТекущаяДата (26 июля 2012), ГОД);

Эта функция вернет нам разницу в 32, хотя полных лет только 31, т.к. день рождения еще не наступил. Эту проблему можно решить разными способами, например обойти при помощи ввода дополнительного условия в запрос:

 ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДатаРождения, ГОД, РАЗНОСТЬДАТ(ДатаРождения, ТекущаяДата, ГОД)) > ТекущаяДата
ТОГДА РАЗНОСТЬДАТ(ДатаРождения, ТекущаяДата, ГОД) - 1
ИНАЧЕ РАЗНОСТЬДАТ(ДатаРождения, ТекущаяДата, ГОД)
КОНЕЦ

В нашем примере  функция вернет 31, что будет корректно для подсчета полных лет.