Группа: Пользователи
Сообщений: 45
Из: г. Черкасcы
Спасибо сказали: 14 раз
Рейтинг: 9.3
Доброго дня... Шановні знатоки 1С кода, допоможіть вирішити наступну проблему... Ситуація наступна Є запрос, який формує таблицю по працівникам, і їхнім датам прийому та звільнення.
ПРАЦІВНИК | Дата прийому | Дата звільнення Іванов.О.О. | 01.02.2020 | 15.10.2024.............................................. Як зробити так щоб цей запрос виводив інформацію в розрізі років? По типу, ПРАЦІВНИК | Рік | Дата початок | Дата кінець Іванов.О.О. | 2020 | 01.02.2020 | 31.12.2020 Іванов.О.О. | 2021 | 01.01.2021 | 31.12.2021 Іванов.О.О. | 2022 | 01.01.2022 | 31.12.2022 Іванов.О.О. | 2023 | 01.01.2023 | 31.12.2023 Іванов.О.О. | 2024 | 01.01.2024 | 15.10.2023 аж до дати звільнення......
Группа: Пользователи
Сообщений: 480
Из: Казахстан
Спасибо сказали: 49 раз
Рейтинг: 49
Vofka @ Сегодня, 16:22
,
Извините,что вмешиваюсь,а может результат запроса выгрузить в Таблицу Значений ? Таблицу Значений отсортировать в нужном порядке по датам.И далее- вывод данных из ТЗ.
Группа: Местный
Сообщений: 239
Спасибо сказали: 49 раз
Рейтинг: 44
Доброго дня! Є такий варіант: в мене вийшло те що потрібно
ВЫБРАТЬ 0 КАК n ПОМЕСТИТЬ Т_Цифри
ОБЪЕДИНИТЬ
ВЫБРАТЬ 1
ОБЪЕДИНИТЬ
ВЫБРАТЬ 2
ОБЪЕДИНИТЬ
ВЫБРАТЬ 3
ОБЪЕДИНИТЬ
ВЫБРАТЬ 4
ОБЪЕДИНИТЬ
ВЫБРАТЬ 5
ОБЪЕДИНИТЬ
ВЫБРАТЬ 6
ОБЪЕДИНИТЬ
ВЫБРАТЬ 7
ОБЪЕДИНИТЬ
ВЫБРАТЬ 8
ОБЪЕДИНИТЬ
ВЫБРАТЬ 9 ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&Дата1, ГОД, а_Одиниці.n + б_Десятки.n * 10 + в_Сотні.n * 100 + г_Тисячі.n * 1000) КАК Дата ПОМЕСТИТЬ Т_Дат ИЗ Т_Цифри КАК а_Одиниці ЛЕВОЕ СОЕДИНЕНИЕ Т_Цифри КАК б_Десятки ПО (ИСТИНА) ЛЕВОЕ СОЕДИНЕНИЕ Т_Цифри КАК в_Сотні ПО (ИСТИНА) ЛЕВОЕ СОЕДИНЕНИЕ Т_Цифри КАК г_Тисячі ПО (ИСТИНА) ГДЕ а_Одиниці.n + б_Десятки.n * 10 + в_Сотні.n * 100 + г_Тисячі.n * 1000 <= РАЗНОСТЬДАТ(&Дата1, &Дата2, ГОД) ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.Сотрудник КАК Робітник, МАКСИМУМ(ВложенныйЗапрос.ДатаПрийому) КАК ДатаПрийому, МАКСИМУМ(ВложенныйЗапрос.ДатаЗвільнення) КАК ДатаЗвільнення ПОМЕСТИТЬ Т_Робітників ИЗ (ВЫБРАТЬ РаботникиОрганизаций.Сотрудник КАК Сотрудник, РаботникиОрганизаций.Период КАК ДатаПрийому, NULL КАК ДатаЗвільнення ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу) И РаботникиОрганизаций.Сотрудник = &Сотрудник
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ РаботникиОрганизаций.Сотрудник, NULL, РаботникиОрганизаций.Период ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) И РаботникиОрганизаций.Сотрудник = &Сотрудник) КАК ВложенныйЗапрос
СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Сотрудник ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Т_Робітників.Робітник, ГОД(Т_Дат.Дата) КАК Рік, ВЫБОР КОГДА Т_Робітників.ДатаПрийому МЕЖДУ НАЧАЛОПЕРИОДА(Т_Дат.Дата, ГОД) И КОНЕЦПЕРИОДА(Т_Дат.Дата, ГОД) ТОГДА Т_Робітників.ДатаПрийому ИНАЧЕ Т_Дат.Дата КОНЕЦ КАК ДатаПочаток, ВЫБОР КОГДА Т_Робітників.ДатаЗвільнення МЕЖДУ НАЧАЛОПЕРИОДА(Т_Дат.Дата, ГОД) И КОНЕЦПЕРИОДА(Т_Дат.Дата, ГОД) ТОГДА Т_Робітників.ДатаЗвільнення ИНАЧЕ КОНЕЦПЕРИОДА(Т_Дат.Дата, ГОД) КОНЕЦ КАК ДатаКінець ИЗ Т_Робітників КАК Т_Робітників, Т_Дат КАК Т_Дат
Группа: Основатель
Сообщений: 13993
Из: Киев
Спасибо сказали: 4568 раз
Рейтинг: 3697.7
Цитата(andrew76 @ 27.11.24, 16:01)
а может результат запроса выгрузить в Таблицу Значений ?
Может, почему нету. Моя основная мысль была в том, что только запросом я бы это, скорее всего, не делал бы. Я не знаю делает ли то что надо запрос выше, который alex1c написал, но понять, что там происходит мне лично сложно. Я бы избегал таких запросов там, где это можно.
Группа: Пользователи
Сообщений: 480
Из: Казахстан
Спасибо сказали: 49 раз
Рейтинг: 49
Vofka @ Сегодня, 20:21
, Если нужен срочно этот отчет и сверху команды от руководящих -"Давай быстрее ! Когда будет готово ?!", то проще мне кажется через ТЗ это решить.А если времени достаточно и без нервозности,то можно и запросами.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!