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

Обработка удаления сотрудников

Автор CrIsSaLiT, 16 июн 2019, 23:22

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

CrIsSaLiT

Добрый день! нужно сделать обработку, которая бы удаляла из справочника сотрудников в том случае, если текущая дата больше даты увольнения. Пробовал её написать, но ничего не получилось. Прошу помочь


&НаСервере
    Процедура Команда1(Команда)

    ДатаТек = ТекущаяДата();
    Выборка = Справочники.Сотрудники.Выбрать();
    ДатаУвольнения = Выборка.ДатаУвольнения;

    Пока Выборка.Следующий() Цикл
Если ДатаТек > ДатаУвольнения Тогда

   ОбъектСправочника = Выборка.ПолучитьОбъект();
   ОбъектСправочника.Удалить();
   
       КонецЕсли   
    КонецЦикла;

КонецПроцедуры

bsn-chita


&НаКлиенте
Процедура Команда1(Команда)
ПервыйВариантНаСервере();
ВторойВариантНаСервере();
ОповеститьОбИзменении(Тип("СправочникСсылка.Сотудники"));
КонецПроцедуры

&НаСервере
Процедура ПервыйВариантНаСервере()
ДатаТек = ТекущаяДата();
    Выборка = Справочники.Сотудники.Выбрать();
    Пока Выборка.Следующий() Цикл   
ДатаУвольнения = Выборка.ДатаУвольнения;
Если ДатаУвольнения <> Дата(1, 1, 1) И ДатаТек > ДатаУвольнения Тогда
ОбъектСправочника = Выборка.ПолучитьОбъект();
      ОбъектСправочника.Удалить();   
КонецЕсли;
    КонецЦикла;
КонецПроцедуры

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

Z.spb

А сотрудники из справочника "Сотрудники" разве нигде в базе больше не встречаются? :xfbnsdfb: Документы начисления зарплаты, кадровые документы, приём, увольнение. Это всё те места, где ссылки на эти объекты должны быть. А вы, удаляя сотрудников, нарушаете ссылочную целостность. Разве ж можно так делать.

CrIsSaLiT

Цитата: Z.spb от 17 июн 2019, 10:36
А сотрудники из справочника "Сотрудники" разве нигде в базе больше не встречаются? :xfbnsdfb: Документы начисления зарплаты, кадровые документы, приём, увольнение. Это всё те места, где ссылки на эти объекты должны быть. А вы, удаляя сотрудников, нарушаете ссылочную целостность. Разве ж можно так делать.

В данном случае задача узконаправленная и не требует учета прочих связей

Геннадий ОбьГЭС


удалять же надо в опрелеленном порядке и не за 1 проход, если, хоть чуточку, но подумать

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск