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

Доработка 1С:ЗУП 3.1 (3.1.34.77) - Добавление реквизита "Дата окончания отпуска" в форму списка справочника "Сотрудники"

Автор Danil_12, 16 сен 2025, 11:36

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

Danil_12

Требуется доработать типовую конфигурацию 1С:ЗУП (редакция 3.1). Необходимо добавить новый реквизит "Дата окончания отпуска" в форму списка справочника "Сотрудники". Этот реквизит должен программно заполняться на основе данных из документов "Отпуск" (например, как дата окончания последнего отпуска сотрудника).
Хотелось бы понять с чего начать и как вообще это реализовать.

sali

в зуп не сильно разбираюсь, но возможно отпуск записывается в регистр откуда и можно брать данные и заполнять ваше поле в спр

Danil_12

sali, я только-только начал заниматься 1с.
Не подскажите, правильно ли я мыслю.
Функция ОбновитьДатыОкончанияОтпусков() Экспорт

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Отпуска.Сотрудник КАК Сотрудник,
        |    МАКСИМУМ(Отпуска.Окончание) КАК ДатаОкончания
        |ИЗ
        |    Документ.Отпуска КАК Отпуска
        |ГДЕ
        |    Отпуска.Проведен = Истина
        |    И Отпуска.Окончание >= &ТекущаяДата
        |СГРУППИРОВАТЬ ПО
        |    Отпуска.Сотрудник";
   
    Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата());
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
   
    Пока Выборка.Следующий() Цикл
   
            // Получаем объект сотрудника для записи
            СотрудникОбъект = Выборка.Сотрудник.ПолучитьОбъект();
            СотрудникОбъект.ОДДатаВозврата = Выборка.ДатаОкончания;
            СотрудникОбъект.Записать();
           
    КонецЦикла;
   
    Возврат Истина;

КонецФункции

Этот программный код я записал в общий модуль с вызовом сервера в расширении.
И создал реквизит "ДатаВозврата" для справочника "Сотрудники".
Теперь же мне нужно это вызвать в модуле формы верно?
Или подскажите как правильно это реализовать.

sali


Danil_12

Ошибся немного вот запрос:
"ВЫБРАТЬ
        |    Отпуска.Сотрудник КАК Сотрудник,
        |    МАКСИМУМ(Отпуска.Окончание) КАК ДатаОкончания
        |ИЗ
        |    ЖурналДокументов.Отпуска КАК Отпуска
        |ГДЕ
        |    Отпуска.Проведен = Истина
        |    И Отпуска.Окончание >= &ТекущаяДата
        |СГРУППИРОВАТЬ ПО
        |    Отпуска.Сотрудник";
Прикрепил также рисунок,что выводится.

sali

согласно этому
Цитата: Danil_12 от 16 сен 2025, 11:36(например, как дата окончания последнего отпуска сотрудника).
правильно выводит?
Цитата: Danil_12 от 16 сен 2025, 11:36на основе данных из документов "Отпуск"
на основе каких данных?

Danil_12


Danil_12


Danil_12

Есть еще регистры сведений "Состояния сотрудников" и "Данные состояний сотрудников".
Там данные об отпусках еще есть

LexaK

Цитата: Danil_12 от 16 сен 2025, 14:16В общем я запутался в данной задаче
так форму списка сотрудников надо доработать,
откройте ее в конфигураторе, в поле Список, в ДС
измените вид запроса на произвольный
появится запрос к справочнику, в секции ИЗ добавьте левое соединение
с нужными данными, сохраните запрос,
новую колонку дата окончания отпуска - вытащите на форму
если помогло нажмите: Спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск