Вопрос № 143282: В конфигурации 1С 7.7 Зарплата и кадры получил данные из документа ПриказПоОтпуску. ДокОтпуск = СоздатьОбъект("Документ.ПриказПоОтпуску"); ДокОтпуск.Выбрать("Журнал.КадровыеПриказы"); Сотрудник=ДокОтпуск.Сотрудник; Дал...
Вопрос № 143.282
В конфигурации 1С 7.7 Зарплата и кадры получил данные из документа ПриказПоОтпуску. ДокОтпуск = СоздатьОбъект("Документ.ПриказПоОтпуску"); ДокОтпуск.Выбрать("Журнал.КадровыеПриказы"); Сотрудник=ДокОтпуск.Сотрудник; Далее нужно получить должность и подразделение Сотрудника. Пробовал получить из Справоник.Сотрудники, в одной конфигурации ЗиК сработало, в другой ЗиК нет. Переменная Должность имеет тип Справочник.Должности. Переменная Подразделение соотвтетственно Справочник.Подразделения. Подскажите
как правильно получить Должность и Подразделение сотрудника имея ФИО полученные из документа ПриказПоОтпуску.
Заранее благодарен за ответ.
Отправлен: 07.09.2008, 17:41
Вопрос задал: Kriman (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 8)
Отвечает: Gl0betrotter
Здравствуйте, Kriman!
Процедура НаКнопку() ДокПриказПоОтпуску = СоздатьОбъект("Документ.ПриказПоОтпуску"); ДокПриказПоОтпуску.Выбрать("Журнал.КадровыеПриказы"); //выбираем нужный нам приказ НомерДок=ДокПриказПоОтпуску.НомерДок; Сотрудник=ДокПриказПоОтпуску.Сотрудник; ДатаДок=ДокПриказПоОтпуску.ДатаДок; КоличествоДнейОтпуска=ДокПриказПоОтпуску.КоличествоДнейОтпуска; Начало=ДокПриказПоОтпуску.Начало; Окончание=ДокПриказПоОтпуску.Окончание; НачалоПериода=ДокПриказПоОтпуску.НачалоПериода; ОкончаниеПериода=ДокПриказПоОтпуску.ОкончаниеПериода; //Должность
имеет тип Справочник.Должности //Подразделение соотвтетственно Справочник.Подразделения СпрСотрудники=СоздатьОбъект("Справочник.Сотрудники");
СпрСотрудники.НайтиЭлемент(Сотрудник); //Просто производим позиционирование на конкретном элементе справочника СотрДолжность=СпрСотрудники.Должность.Получить(ДатаДок); //Определяемся с должностью на дату до
кумента СотрПодразделение=СпрСотрудники.Подразделение.Получить(ДатаДок); //Определяемся с подразделением на дату документа КонецПроцедуры
Вариант 2:
Процедура НаКнопку() ДокПриказПоОтпуску = СоздатьОбъект("Документ.ПриказПоОтпуску"); ДокПриказПоОтпуску.Выбрать("Журнал.КадровыеПриказы"); //выбираем нужный нам приказ НомерДок=ДокПриказПоОтпуску.НомерДок; Сотрудник=ДокПриказПоОтпуску.Сотрудник; ДатаДок=ДокПриказПоОтпуску.ДатаДок; КоличествоДнейОтпуска=ДокПриказПоОтпуску.КоличествоДнейОтпуска; Начало=ДокПриказПоОтпуску.Начало; Окончание=ДокПриказПоОтпуску.Окончание; НачалоПериода=ДокПриказПоОтпуску.НачалоПериода; ОкончаниеПериода=ДокПриказПоОтпуску.ОкончаниеПериода;
СотрДолжность=Сотрудник.Должность.Получить(ДатаДок);
//Определяемся с должностью на дату документа, незачем идти в справочник, если можем получить значение реквизита у объекта сразу СотрПодразделение=Сотрудник.Подразделение.Получить(ДатаД
ок); //Определяемся с подразделением на дату документа, незачем идти в справочник, если можем получить значение реквизита у объекта сразу КонецПроцедуры
Второй вариант тоже работоспособен (мало того, он еще и практичнее) - не смотря на то, что в документе "ПриказПоОтпуску" нет должности и подразделения, мы их берем непосредственно через реквизиты Сотрудника - смотрите, что я написал Сотрудник.Должность.Получить(ДатаДок) и Сотрудник.Подразделение.Получить(ДатаДок)
Удачи!
PS
Ответ перенесен из мини-форума вопроса для отправки в рассылку.
Ответ отправил: Gl0betrotter (статус: Специалист)
Ответ отправлен: 11.09.2008, 15:00