8.х ЗУП Мои Задачи

Тема в разделе ""1С:Зарплата и управление персоналом ЗУП"", создана пользователем Korolev, 11 май 2010.

  1. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Попросили создать задачу, которая будет уведомлять пользователей о том, что сотрудник уходит в отпуск.

    Собственно это удалось реализовать:
    Код:
    Процедура ДобавитьЗадачиЗапланированныйОтпуск(ВремяФормированияЗадач)
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |	ПланированиеОтпускаРаботники.ДатаНачала КАК ДатаНачала,
    |	ПланированиеОтпускаРаботники.Сотрудник.Физлицо КАК Физлицо,
    |	ПланированиеОтпускаРаботники.Ссылка
    |ИЗ
    |	Документ.ПланированиеОтпуска.Работники КАК ПланированиеОтпускаРаботники
    |		ЛЕВОЕ СОЕДИНЕНИЕ Задача.ЗадачаИсполнителя КАК Задачи
    |		ПО ПланированиеОтпускаРаботники.Ссылка = Задачи.ОбъектЗадачи
    |			И (Задачи.ВидЗадачи = ЗНАЧЕНИЕ(Справочник.ВидыЗадачПользователей.ЗапланированныйОтпуск))
    |ГДЕ
    |	Задачи.Ссылка ЕСТЬ NULL ";
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
    ФИОСотрудника = СокрЛП(Выборка.Физлицо);
    КолВоДней = 60*60*24*16; //сек*мин*часы*дни
    Разница = Выборка.ДатаНачала - ВремяФормированияЗадач;
    
    Если Разница > 0 И Разница <= КолВоДней тогда
    ЗадачаЗапОтдых = Задачи.ЗадачаИсполнителя.СоздатьЗадачу();
    ЗадачаЗапОтдых.Дата			= НачалоДня(ВремяФормированияЗадач);
    ЗадачаЗапОтдых.ВидЗадачи	= Справочники.ВидыЗадачПользователей.ЗапланированныйОтпуск;
    ЗадачаЗапОтдых.ОбъектЗадачи	= Выборка.Ссылка;
    ЗадачаЗапОтдых.Наименование	= "Через 16 дней запланированный отпуск у " + ФИОСотрудника;
    ЗаписатьАдресациюЗадачи(ЗадачаЗапОтдых, Справочники.Организации.НайтиПоНаименованию("ЗАО Станкоимпорт"), Справочники.РолиИсполнителей.Кадровик);
    ЗадачаЗапОтдых.Записать();
    КонецЕсли;
    КонецЦикла;
    
    
    
    Но вот проблема в том, что когда создается документ и в него вносятся данные о том что сотрудник1 уйдет в отпуск определенного числа (скажем через 16 дней), то задача высвечивается в поле.

    Но если затем снова вернуться в документ и добавить сотрудника2, который уйдет в отпуск (устанавливаю те же параметры что и у сотрудника1) и затем "обновить" задачи, то информации о том что сотрудник2 уходит нет. Естественно, если создать новый документ с сотрудником2, то все нормально (либо при первом же создании указывать и сотрудника1 и сотрудника2).

    В двух словах, проблема в том, что не обновляются задачи после редактирования документа, на основе которого формируется определенная задача (описана выше).
  2. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Еще нюанс. Если удалить задачу у сотрудника1 и обновить список задач (сотдруник2 добавлен в документ к сотруднику1), то в "МоихЗадачах" отображаются оба сотрудника.
  3. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    А время терпить? просто я сейчас не дома и буду только ближе к пятницы и соответсвенно С у меня под рукой появиться. Тут еще много ньюансов. Например сразу один из них что если стоит ограничение доступа на уровне записей и в документе 2ил 3 работника к одному из которых нет доступа?....
  4. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    В общем разобрался - нужно добавить новый реквизит в "Задачи", а именно добавить Сотрудника, по которому будет еще одно сравнение :)

Поделиться этой страницей