Cписок сотрудников

1. Bandi 22.10.23 17:51 Сейчас в теме
Добрый день
В учебной версии 1с Предприятие 8.3 необходимо создать запрос, который выведет список сотрудников, работающих на период с 01.02.2023 по 22.10.2023.
Тип данных в реквизите ДатаУвольнения и ДатаПриема задан как "Дата".

В самом Справочник.Сотрудники добавлено четыре реквизита (Должность, Оклад, ДатаУвольнения и ДатаПриема)


ВЫБРАТЬ
Сотрудники.Наименование,
Сотрудники.Должность
ИЗ
Справочник.Сотрудники ГДЕ
Сотрудники.ДатаПриема <= '2023.02.01'

Или

Сотрудники.ДатаУвольнения >= '2023.10.22';


Консоль после выполнения выдает ошибку: {(6, 30)}: Синтаксическая ошибка "'2023.02.01'"
Сотрудники.ДатаПриема <= <<?>>'2023.02.01'

Посмотрите, пожалуйста, пока не пойму как правильно реализовать запрос.
Найденные решения
5. yispepotri 23.10.23 11:23 Сейчас в теме
ГДЕ
Сотрудники.ДатаПриема <= ДатаВремя(2023, 02, 01)

Или

Сотрудники.ДатаУвольнения >= ДатаВремя(2023, 10, 22)


думаю таким образом можно
6. GSokolov 320 23.10.23 12:06 Сейчас в теме
(4) Через параметры передавать значения в запрос нормально, только нужно учесть, что в дате хранится не только сама дата, но и время. Поэтому для корректного сравнения при задании параметра следует применять функции НАЧАЛОДНЯ() для даты начала периода и КОНЕЦДНЯ() для конца.
К тому же для того, чтобы в результат попали все, работавшие в этот период, даже один день, нужно, чтобы дата приёма была меньше или равна окончанию периода, а дата увольнения больше начала.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 33 22.10.23 18:25 Сейчас в теме
3. nomad_irk 81 23.10.23 06:13 Сейчас в теме
(1)кто вас научил в запросе 1С использовать символы " ' " для строковых значений?
кто вас научил в запросе 1С сравнивать значение даты и строки?
9. Vinzor 112 04.11.23 21:00 Сейчас в теме
(1) Вот так максимально правильно.

Даёте параметры. (к названию не придираться)
&ДН = НачалоДня('20230201') - дата начала периода выборки, 01.02.2023
&ДК = КонецДня('20231022') - дата окончания выборки, 22.10.2023

в запросе условие

ГДЕ
Сотрудники.ДатаПриема между &ДН и &ДК
И (Сотрудники.ДатаУвольнения = ДатаВремя(1,1,1) Или Сотрудники.ДатаУвольнения > &ДК)

Суть.
Дата приема между ДН и ДК, значит, в выборку попадают сотрудники, у которых
-- дата приема заполнена, значит, это работающий сотрудник,
-- дата приема входит в интервал, описанный параметрами
И
Дата увольнения не заполнена, что означает, что он не уволен (при этом принят)
Или уволен, но в будущем, дата увольнения находится после даты окончания периода выборки.
4. Bandi 23.10.23 10:59 Сейчас в теме
Я пробовал по по-разному, через "," и "." и через "-" всё равно не получается, не подскажете как исправить?
Также пробовал указать через параметры:

Сотрудники.ДатаПриема >= &ДатаПриема
Или
Сотрудники.ДатаУвольнения <= &ДатаУвольнения;

Но при нажатии на кнопку параметры, консоль выдала ошибку: Индекс находится за границами массива.
6. GSokolov 320 23.10.23 12:06 Сейчас в теме
(4) Через параметры передавать значения в запрос нормально, только нужно учесть, что в дате хранится не только сама дата, но и время. Поэтому для корректного сравнения при задании параметра следует применять функции НАЧАЛОДНЯ() для даты начала периода и КОНЕЦДНЯ() для конца.
К тому же для того, чтобы в результат попали все, работавшие в этот период, даже один день, нужно, чтобы дата приёма была меньше или равна окончанию периода, а дата увольнения больше начала.
5. yispepotri 23.10.23 11:23 Сейчас в теме
ГДЕ
Сотрудники.ДатаПриема <= ДатаВремя(2023, 02, 01)

Или

Сотрудники.ДатаУвольнения >= ДатаВремя(2023, 10, 22)


думаю таким образом можно
7. BackinSoda 23.10.23 12:09 Сейчас в теме
Как вариант - передавать через параметр, типа "ДатаУвольнения >= &ДатаУвольнения" или всё же через литерал - ДАТАВРЕМЯ(ГГГГ,ММ,ДД)
8. Bandi 23.10.23 12:44 Сейчас в теме
Спасибо ребят, всё получилось. Также исправил запрос, чтобы в выборку попали все сотрудники принятые на работу с 01.02.2023 по 22.10.2023 и уволены не позднее 22 октября 2023 года или до сих пор работают (если дата увольнения не определена).
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот