Неверные параметры разностьдат 1с
Функция разности дат
Вообщем есть дата например 16.02.2009 надо отнять от нее 13 дней, те получить дату 03.02.2009.
Расчет периода разности дат
Здравствуйте! Кто может помочь? Не могу понять где ошибаюсь. Есть на форме четыре поля: ДатаНачала.
Расчет разности дат в запросе
Здравствуйте. Делаю собственную конфигурацию в 1с 8.3. Есть справочник "ЭтапыДоговоров", с.
Вычисление разности дат
Ребят, нужна помощь. Нужно, чтобы при вводе 1 даты и 2 даты показывалась их разность (с учётом.
ну понятно что нужно поставить одно число, я бы хотел здесь поставить, допустим: минус 1(день) минус 2 (дня) и т.д.
как можно здесь такое поставить подскажите плиз
в 1) не уверен в плане синтаксиса, надо попробовать. но тем интереснее чтоб заработал он. тем более так правильнее.
Совсем не понятна цель вашего маневра.
Если вы хотите сделать -1 потом -2 потом -3, то почему бы сразу не сделать -6 ?)
Если нужен 1 из 3 вариантов, набросайте как написали вам постом выше.
Если нужно какой то определенный выбирать в зависимости от условия, задайте там параметр и устанавливайте его вне тела запроса.
Yulunga, Вот так прописал:
я закончил выступления в данной теме
Можете вы подскажете:
Вот так прописал:
Удали это из запроса и смотри внимательней что ты копируешь.
Yulunga, я в курсе)
Вдруг дальше проще пойдет у человека, а я окажу медвежью услугу и заберу бесценный опыт у человека.
Добавлено через 13 секунд
Yulunga, я в курсе)
Вдруг дальше проще пойдет у человека, а я окажу медвежью услугу и заберу бесценный опыт у человека.
Баг с вычислением разности дат
Всем привет, быстро пробежавшись по поиску похожей проблемы не нашел. Вот собственно процедурка: .
Найти максимум по разности дат
Надо ввести дату (или взять текущую) и найти максимум по разности дат, сравнивая их в цикле. Как.
Вычисление разности двух дат
Нужен исходник программы либо помогите вы пожалуйста реализовать вычисление между двумя датами и.
Реализовать перегрузку операторов для нахождения разности двух дат и увеличения даты на определенное количество дней
Задача в том что бы создайте класс Date, который будет содержать информацию о дате (день, месяц.
Платформа 1С 8.3 ориентирована на удобство разработчиков, поэтому богата встроенными возможностями, включая разнообразные функции. Одной из таких функций для облегчения разработки в 1С является «РАЗНОСТЬДАТ()». Ее использование может сэкономить массу времени при вычислении разницы между датами. У этой функции есть несколько особенностей, и с ними нужно ознакомиться перед использованием в тексте запроса.
Предназначение данной конструкции – выдавать календарную разницу между двумя датами в указанных единицах времени. При работе помните, что количество рабочих дней отличается от календарных. В качестве параметров в функцию разность дат передаются две даты и одно из следующих значений в виде строки:
В качестве первого параметра функции разность дат необходимо указать дату начала периода, а в качестве второго – окончания. Стоит строго придерживаться этого правила, чтобы в запросе 1С функция отработала корректно. Если перепутать местами даты, то в итоге выполнения запроса получится отрицательное значение.
Результат будет показан именно в выбранных единицах измерения, причем меньшие будут проигнорированы. То есть, если в качестве третьего параметра указан «МЕСЯЦ», то будет отражаться разность месяцев, а дни не будут иметь значения. Если в качестве единицы измерения указаны секунды или минуты, а даты введены без времени, то время считается равным «00:00:00».
Вместо входных параметров функции разностьдат в СКД могут фигурировать переменные. Их значение можно устанавливать как переменные, через команду «УстановитьПараметр()» перед выполнением запроса. Этим пользуются при вводе дат пользователем на форме отчета, документа или обработки.
Также вы можете использовать эту функцию в разделе условий, если вам необходимо отобрать документы, заведенные в пределах определенной даты. Достаточно лишь сравнить полученное количество дней с заранее заданной переменной, и в результат запроса попадут только нужные документы. Подобный прием достаточно часто используется в бухгалтерских отчетах, чтобы обнаружить просроченные или близкие к просроченным документы.
В конструкторе запроса 1С есть удобная возможность посмотреть синтаксис и необходимые параметры для функции РАЗНОСТЬДАТ. Для этого нужно добавить в область полей новое поле и в верхней правой области будет дерево с подсказками по функциям. При перетаскивании функции в нижнее окно 1С подробно напишет, какие подсказки требуются.
Рис.1 Конструктор запроса
Возможность в запросе узнать разницу между датами позволит решить множество задач, не ломая голову. Другие встроенные функции не менее полезны, поэтому, перед тем как придумывать особенно сложный алгоритм, изучите все возможности языка запросов 1С. Это сэкономит вам время, нервы и силы.
Тип «Дата» в 1С входит в число 4 основных типов данных наряду с числом, строкой и булево. В конфигурациях даты встречаются повсеместно – при разработке невозможно избежать работы с этим типом данных. Поэтому лучше начинать писать запросы, уже понимая, как обрабатывать даты, какие есть возможности для работы с ними, как они хранятся, а до этого «безопаснее» использовать услуги программистов по доработке 1С, которые предоставляют большинство компаний-франчайзи. Рассмотрим на примерах все нюансы написания запросов с различными датами.
Примеры работы с датами в запросах 1С
В первую очередь, необходимо получить дату в запросе в нужном формате – со временем или без него. Выполнить эту задачу можно несколькими путями:
- Передать через параметр. Получить текущую дату сеанса можно только этим методом;
- Получить дату в запросе из поля выборки;
- Преобразовать из числовых значений с помощью функции ДАТАВРЕМЯ().
Самой распространенной задачей при работе с документами является проверка на пустую дату в запросе 1С. В этом случае легче всего сравнить переменную или поле с пустой датой, которая получается с помощью функции ДАТАВРЕМЯ(1,1,1):
Аналогичной командой можно получить произвольную дату и время в запросе. При этом их можно указать с точностью до секунды, задав в качестве параметров 6 чисел. Если же используется только 3 числа, то часы, минуты и секунды будут приравнены к 0 (начало дня). Например, нам необходимо в запросе выбрать документы за первые 10 дней января 2018 года:
В запросе на встроенном языке 1С можно не только выбирать различные поля и получать параметры. Существует множество функций, облегчающих форматирование даты под нужды конкретной задачи.
Если вы часто работаете с датами в запросе, то вы должны знать эти команды:
- НАЧАЛОПЕРИОДА. В качестве параметров указывается дата и промежуток времени, в разрезе которого необходимо получить начало даты. Используется, чтобы преобразовать дату к формату без времени. Для этого необходимо задать второй параметр – «ДЕНЬ»;
- КОНЕЦПЕРИОДА. Аналогичная команда, возвращающая последнюю дату в разрезе указанных в параметрах единиц;
- ДОБАВИТЬКДАТЕ. Позволяет получить дату, большую на заданное количество указанных единиц времени. В качестве параметров функции указывают дату, единицу измерения времени и число;
- РАЗНОСТЬДАТ. Получает разницу между датами в указанных единицах измерения;
- ДЕНЬНЕДЕЛИ. Вернет порядковый номер одного из дней недели.
Грамотно применяя эти функции, разработчик может решать достаточно нетривиальные задачи. К примеру, получение наименования дня недели текущей даты в запросе в виде строки:
Преобразование типов в запросе 1С из числа или строки в дату – трудоемкое занятие. Из чисел можно получить дату с помощью функции ДАТАВРЕМЯ, из строки – комбинируя функцию ПОДСТРОКА и конструкцию ВЫБОР КОГДА ТОГДА ИНАЧЕ. Исходя из этого, разработчики предпочитают получать дату из других типов в модуле и передавать ее в запрос с помощью параметра. К сожалению, это не всегда реализуемо, поэтому приходится менять формат даты в запросе.
Есть возможность указать дату в запросе 1С в качестве параметра для получения данных из виртуальных таблиц регистров. В этой роли также можно использовать все вышеперечисленные функции. Но здесь важно не допустить, чтобы пустая дата в запросе 1С могла сказаться на конечном результате выполнения кода, поэтому обязательно надо делать проверку.
Надеемся, статья была вам полезна. Если у вас остались вопросы по указанию даты в запросе, обратитесь к нашим специалистам в рамках консультационных услуг по 1С, мы обязательно вам поможем.
Параметр в 1С – это некий элемент, принятый функцией. В данной статье поговорим о видах и типах параметров, а также рассмотрим, как задать параметры так, чтобы избежать ошибки «Неверные параметры» в 1С.
1. Как установить параметр в запросе?
Параметр запроса – это некоторый элемент, который находится внутри функции поиска по базе данных. Рассмотрим пример, как должны быть установлены параметры запроса. Например, пускай нам нужно получить составляющие из перечня-справочника под названием «Еда» красного, жёлтого или зелёного цвета, это будет иметь такой вид:
Рис. 1 Как установить параметр в запросе «Красный»
Рис. 2 Как установить параметр в запросе «Желтый»
Рис. 3 Как установить параметр в запросе «Зеленый»
Можно увидеть, что, по факту, все эти запросы одинаковые и разность только в цвете. Это-то и есть наш параметр – та переменная, которую не хотелось бы каждый раз повторять. В вышеуказанном примере параметр – это цвет, дадим ему имя «ВыбранныйЦвет» и поменяем значения цветов на эту переменную внутри запроса. А для того чтобы указать, что это именно параметр, нужно приписать перед именем амперсанд «&», тогда мы сможем задать параметр в запросе:
Рис. 4 Как задать параметр в запросе «ВыбранныйЦвет»
После этой процедуры пробуем выполнить наш запрос, результат будет пустым и выглядеть так:
Рис. 5 Результат неверного параметра в запросе пустой
Результат запроса пустой по причине того, что в коде не было указано само значение параметра. Выберем имя, для этого потребуется задействовать панель, которая находится над редактором запросов. Внутри данной панели размещен текст запросов:
Рис. 6 Редактор запросов – панель с текстом запросов
Система 1С уже узнала параметр внутри запроса и выделила его в соответствующей секции, но пока без значений. Меняем пустое значение запроса, например, на значение «Жёлтый».
Рис. 7 Смена пустого значения запроса на «Желтый»
Теперь запрос выполнится! Аналогично можно заполнить оставшиеся значения. Так при помощи параметра можно в одном и том же запросе получать результаты, которые отличаются. То есть, главная функция параметров внутри запросов – делать их более обобщёнными. Это особенно актуально в сложных запросах, так как достаточно будет только изменить сам параметр, не меняя весь запрос.
2. Функция параметра «Ссылка»
В этом варианте будет сравниваться в качестве ограничения для параметра не название цвета, а значение по ссылке:
Рис. 8 Ограничение для параметра – значение по ссылке
Наш параметр «ВыбранныйЦвет» из строки превратился в ссылку на какой-то элемент внутри справочника «Цвета», поэтому у пользователя есть возможность изменить параметр и его тип:
Рис. 9 Изменения типа параметра в 1С
После этого, в момент, когда ведётся выбор значения данного параметра, перед нами появится выпадающий список с перечнем цветов – это функция параметра ссылки.
3. Параметр «Дата»
Допустим, нужен запрос, который будет выбирать заказы клиентов в определённый период. Данный период будет иметь две границы – «НачалоИнтервала» и «КонецИнтервала».
Рис. 10 Параметр «Дата»
Аналогично выполняем данный запрос и видим, что 1С уже распознала, что у данного параметра тип «Дата». Пусть нам нужны заказы за январь 2014 года, тогда получим:
Рис. 11 Пример запроса по параметру «Дата»
Результат запроса с параметром «Дата» будет выглядеть следующим образом:
Рис. 12 Результат запроса с параметром «Дата»
В данной статье были рассмотрены параметры в системе 1С, видов параметр внутри запроса, параметр с типом «Дата», параметры с типом «Ссылка», аналогично проводится работа с параметрами в списках таблиц и таблиц со значениями. Ошибка в них возникает в случае задания невозможного названия, типа, их несоответствий, пунктуационных ошибок в коде программы.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
Параметр в 1С – это некий элемент, принятый функцией. В данной статье поговорим о видах и типах параметров, а также рассмотрим, как задать параметры так, чтобы избежать ошибки «Неверные параметры» в 1С.
1. Как установить параметр в запросе?
Параметр запроса – это некоторый элемент, который находится внутри функции поиска по базе данных. Рассмотрим пример, как должны быть установлены параметры запроса. Например, пускай нам нужно получить составляющие из перечня-справочника под названием «Еда» красного, жёлтого или зелёного цвета, это будет иметь такой вид:
Рис. 1 Как установить параметр в запросе «Красный»
Рис. 2 Как установить параметр в запросе «Желтый»
Рис. 3 Как установить параметр в запросе «Зеленый»
Можно увидеть, что, по факту, все эти запросы одинаковые и разность только в цвете. Это-то и есть наш параметр – та переменная, которую не хотелось бы каждый раз повторять. В вышеуказанном примере параметр – это цвет, дадим ему имя «ВыбранныйЦвет» и поменяем значения цветов на эту переменную внутри запроса. А для того чтобы указать, что это именно параметр, нужно приписать перед именем амперсанд «&», тогда мы сможем задать параметр в запросе:
Рис. 4 Как задать параметр в запросе «ВыбранныйЦвет»
После этой процедуры пробуем выполнить наш запрос, результат будет пустым и выглядеть так:
Рис. 5 Результат неверного параметра в запросе пустой
Результат запроса пустой по причине того, что в коде не было указано само значение параметра. Выберем имя, для этого потребуется задействовать панель, которая находится над редактором запросов. Внутри данной панели размещен текст запросов:
Рис. 6 Редактор запросов – панель с текстом запросов
Система 1С уже узнала параметр внутри запроса и выделила его в соответствующей секции, но пока без значений. Меняем пустое значение запроса, например, на значение «Жёлтый».
Рис. 7 Смена пустого значения запроса на «Желтый»
Теперь запрос выполнится! Аналогично можно заполнить оставшиеся значения. Так при помощи параметра можно в одном и том же запросе получать результаты, которые отличаются. То есть, главная функция параметров внутри запросов – делать их более обобщёнными. Это особенно актуально в сложных запросах, так как достаточно будет только изменить сам параметр, не меняя весь запрос.
2. Функция параметра «Ссылка»
В этом варианте будет сравниваться в качестве ограничения для параметра не название цвета, а значение по ссылке:
Рис. 8 Ограничение для параметра – значение по ссылке
Наш параметр «ВыбранныйЦвет» из строки превратился в ссылку на какой-то элемент внутри справочника «Цвета», поэтому у пользователя есть возможность изменить параметр и его тип:
Рис. 9 Изменения типа параметра в 1С
После этого, в момент, когда ведётся выбор значения данного параметра, перед нами появится выпадающий список с перечнем цветов – это функция параметра ссылки.
3. Параметр «Дата»
Допустим, нужен запрос, который будет выбирать заказы клиентов в определённый период. Данный период будет иметь две границы – «НачалоИнтервала» и «КонецИнтервала».
Рис. 10 Параметр «Дата»
Аналогично выполняем данный запрос и видим, что 1С уже распознала, что у данного параметра тип «Дата». Пусть нам нужны заказы за январь 2014 года, тогда получим:
Рис. 11 Пример запроса по параметру «Дата»
Результат запроса с параметром «Дата» будет выглядеть следующим образом:
Рис. 12 Результат запроса с параметром «Дата»
В данной статье были рассмотрены параметры в системе 1С, видов параметр внутри запроса, параметр с типом «Дата», параметры с типом «Ссылка», аналогично проводится работа с параметрами в списках таблиц и таблиц со значениями. Ошибка в них возникает в случае задания невозможного названия, типа, их несоответствий, пунктуационных ошибок в коде программы.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
Читайте также: