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

Отбор сотрудников

Автор Tyshkan, 28 янв 2013, 15:41

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

Tyshkan

Необходимо сделать обработку создания документов Больничный листы для сотрудников. Вопрос в том что нужно из создать для всех сотрудников  зарегистрированных на данное физ лицо, как отобрать этих сотрудников???

Klyacksa

Платформа? Конфигурация?
<уныло> Ну что ж одно и то же все-время...
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Tyshkan


Dethmontt

ВЫБРАТЬ Ссылка ИЗ Справочник.СотрудникиОрганизаций ГДЕ Ссылка.ФизЛицо = &МоеФизЛицо
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Tyshkan

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

Для одного физлица попадаются сотрудники с одинаковым подразделением, должностью или видом занятости. В ТЗ попадают данные которые нужны, но как записать выбранного сотрудника в документ, при поиске он выбирает первого попавшегося...

Dethmontt

Добавляе в запросе
СотрудникиОрганизаций.Ссылка

Вместо
Больничный.Сотрудник = Справочники.СотрудникиОрганизаций.НайтиПоНаименованию(Элемент.Наименование);

Пишем
Больничный.Сотрудник = Элемент.Ссылка;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

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

Рейтинг@Mail.ru

Поиск