Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 18:14

Получение периода из РС

Автор Алексей_1985_06, 31 мар 2024, 17:35

0 Пользователей и 1 гость просматривают эту тему.

Максим75

Алексей_1985_06, проверяйте, чтобы Индекс+1 не выскочил за границу. т.е. он не должен быть больше количества строк в таблице значений - 1, потому как начинается с нуля.
а если больше, то измените вывод, выводите не дату назначения из таблицы значений, а просто надпись типа "по текущую дату" или что-то в этом духе.

LexaK

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

Алексей_1985_06

LexaK, Вот профи и не хватало  :zebzdr:  :zebzdr:  :zebzdr: ! LexaK можете помочь с этим вопросом (кодом), как это сделать?

LexaK

Схема запроса
Выбрать
Р1.нужные поля,
Мин(естьнудд(р2.период,&ТекДата)) как ПериодПо
Из
Р1.сотр-р2.сотр
И р1.пер<р2.пер
И р1.долю<>р2.долю
Где...
Сгруппировать по
Р1...
Упорядочить по
Сотр, период

..
если помогло нажмите: Спасибо!

Алексей_1985_06

LexaK, Добрый день! Подскажите пжл что такое: р2. Не совсем понял.... :dfbbdrfb:

Алексей_1985_06

Цитата: Алексей_1985_06 от 04 апр 2024, 08:51LexaK, Добрый день! Подскажите пжл что такое: р2. Не совсем понял.... :dfbbdrfb:

Сделал так, но есть лишняя строка (см. рис. вторая строка - лишняя), как от нее избавиться:
ВЫБРАТЬ
    р1.Период КАК Период1,
    р1.Сотрудник КАК Сотрудник1,
   
    р1.Период КАК Период2,
    //р1.Сотрудник КАК Сотрудник2,
   
    МИНИМУМ(ЕСТЬNULL(р2.Период, "по настоящее время")) КАК ПериодПо,
   
    р1.ЗанимаемаяДолжность КАК ЗанимаемаяДолжность1
    //р2.ЗанимаемаяДолжность КАК ЗанимаемаяДолжность2

    ИЗ
    РегистрСведений.КадровыеПеремещения КАК р1
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадровыеПеремещения КАК р2
        ПО (р1.Сотрудник = р2.Сотрудник)
            И (р1.Период < р2.Период)
ГДЕ
    р1.Сотрудник = &Сотрудник

СГРУППИРОВАТЬ ПО
    р1.Период,
    р2.Период,
   
    р1.Сотрудник,
    р2.Сотрудник,
   
    р1.ЗанимаемаяДолжность,
    р2.ЗанимаемаяДолжность

УПОРЯДОЧИТЬ ПО
    р1.Сотрудник,
    р1.Период
Неверный ID вложения.

LexaK

Алексей_1985_06, ну ни какой внимательность
1в секции По, нет р1.долю <> р2.долю
2группировать только но ноля р1
если помогло нажмите: Спасибо!

LexaK

Алексей_1985_06, ну ни какой внимательность
1в секции По, нет р1.долж <> р2.долж
2группировать только но ноля р1
если помогло нажмите: Спасибо!

Алексей_1985_06

LexaK, Извиняюсь за невнимательность, поторопился.... ОГРОМНОЕ ВАМ СПАСИБО! ВЫ "МАСТЕР" ВЫСОЧАЙШЕГО КЛАССА  :ooifh:  :ooifh:

Готовое решение, может кому пригодится:

ВЫБРАТЬ
р1.Период КАК Период,
р1.Сотрудник КАК Сотрудник,
р1.ЗанимаемаяДолжность КАК ЗанимаемаяДолжность

МИНИМУМ(ЕСТЬNULL(р2.Период, "по настоящее время")) КАК ПериодПо,

ИЗ
РегистрСведений.КадровыеПеремещения КАК р1
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадровыеПеремещения КАК р2
ПО (р1.Сотрудник = р2.Сотрудник)
И (р1.Период < р2.Период) 
И (р1.ЗанимаемаяДолжность <> р2.ЗанимаемаяДолжность)

ГДЕ
р1.Сотрудник = &Сотрудник

СГРУППИРОВАТЬ ПО
р1.Период,
р1.Сотрудник,
р1.ЗанимаемаяДолжность


УПОРЯДОЧИТЬ ПО
р1.Сотрудник,
р1.Период

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск