| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Командировки и Отпуска |
| Автор: bucdapus 14.11.2010, 19:14 |
| задача состоит в том чтобы дописать кусок кода в общий модуль документа "Командировки организации", а именно чтобы перед записью командировки происходила проверка а не находится ли сотрудник или сотрудники в отпуске. т.е если сотрудника организации отправили в отпуск с 14 ноября по 1 декабря. то при заполнении командировки другим лицом он не мог отправить сотрудника в командировку с 14 ноября по 1 декабря. я написал кусок... но только если в документе 1 сотрудник ... Как сделать чтобы шла проверка всех???? ДатаНачалаКомандировки = РаботникиОрганизации[0].ДатаНачала; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ФизЛицо",РаботникиОрганизации[0].ФизЛицо); Запрос.УстановитьПараметр("Организация",Организация); Запрос.Текст = "ВЫБРАТЬ | ОтпускаОрганизацийРаботникиОрганизации.ФизЛицо КАК ФизЛицо, | ОтпускаОрганизацийРаботникиОрганизации.ДатаНачала КАК ДатаНачала, | ОтпускаОрганизацийРаботникиОрганизации.ДатаОкончания КАК ДатаОкончания, | ОтпускаОрганизацийРаботникиОрганизации.Ссылка.Организация КАК Организация, | ОтпускаОрганизацийРаботникиОрганизации.Ссылка КАК Ссылка |ИЗ | Документ.ОтпускаОрганизаций.РаботникиОрганизации КАК ОтпускаОрганизацийРаботникиОрганизации |ГДЕ | ОтпускаОрганизацийРаботникиОрганизации.Ссылка.ПометкаУдаления = ЛОЖЬ | И ОтпускаОрганизацийРаботникиОрганизации.ФизЛицо = &ФизЛицо | И ОтпускаОрганизацийРаботникиОрганизации.Ссылка.Организация = &Организация"; ВыборкаКонтактныеЛица = Запрос.Выполнить().Выбрать(); Пока ВыборкаКонтактныеЛица.Следующий() Цикл //Сообщить(ВыборкаКонтактныеЛица.ФизЛицо); //Сообщить(ВыборкаКонтактныеЛица.ДатаНачала); //Сообщить(ВыборкаКонтактныеЛица.ДатаОкончания); Если (ДатаНачалаКомандировки>=ВыборкаКонтактныеЛица.ДатаНачала) и (ДатаНачалаКомандировки<=ВыборкаКонтактныеЛица.ДатаОкончания) Тогда Сообщить("Ошибка записи командировки!!! У "+ВыборкаКонтактныеЛица.ФизЛицо+" отпуск до "+ВыборкаКонтактныеЛица.ДатаОкончания+". Документ об отпуске "+ВыборкаКонтактныеЛица.Ссылка); Отказ = Истина; КонецЕсли; КонецЦикла; |