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

Как вывести на форме кадровые документы?

Автор Yaposha, 20 июн 2012, 18:27

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

Yaposha

Добрый день!
Простите за глупый вопрос, подскажите как мне вывести на форме справочника список кадровых документов(прием, перемещение, увольнение, чтобы они с формы открывались)? Хотела посмотреть на примере, но в справочнике Сотрудники куда-то запрятана эта панель, не нашла(((( Наставьте плиз на путь истинный, к завтру надо сделать(

sergeevds

Ну сделай там табличную часть, или просто табличное поле, можно даже дерево - но это порнография, сделай там одно поле с составным типом данных на документы, которые хочешь видеть. Потом в процедуре, скажем "ПриОткрытии" добавь ссылочку на процедуру, которая запросом будет выбирать документы связанные с этим сотрудником и загрузи их в свою табличную часть.

Yaposha

Спасибо за ответ:))
Написала процедуру, но не работает( не могу понять в чем ошибка(

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

cska-fanat-kz

Обычно есть ЖУРНАЛ кадровых документов...
Вот его и надо связать с табличной частью.
Ну и отбор наложить на текущего сотрудника.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Андрей Федотов

Только зачем это делать? в форме сотрудника уже это всё есть (закладка "Кадровые данные")
С уважением,
Андрей Федотов
Future IT Solutions

Yaposha

Цитата: cska-fanat-kz от 21 июн 2012, 06:41
Обычно есть ЖУРНАЛ кадровых документов...
Вот его и надо связать с табличной частью.
Ну и отбор наложить на текущего сотрудника.

Спасибо за подсказку, сама не догадалась.. а как можно отбор наложить программно? ничего не получается(

Цитата: Андрей Федотов от 21 июн 2012, 08:22
Только зачем это делать? в форме сотрудника уже это всё есть (закладка "Кадровые данные")

Я знаю, но мне это по заданию нужно. А в справочнике Сотрудники в конфигураторе не могу найти эту закладку, она куда-то там запрятана...

cska-fanat-kz

либо открываем список элементов управления и находим какую нибудь скрытую страницу какой-нибудь панели, либо создается динамически и ищем в модуле формы...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Если НЕ ЭтоНовый() Тогда
      
      КадровыеДокументы.Отбор.ДокументыПоРаботникуОрганизации.Значение       = Ссылка;
      КадровыеДокументы.Отбор.ДокументыПоРаботникуОрганизации.ВидСравнения    = ВидСравнения.Равно;
      КадровыеДокументы.Отбор.ДокументыПоРаботникуОрганизации.Использование    = Истина;
      
   КонецЕсли;    
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Или (не испытано):

КадровыеДокументы.Отбор.ДокументыПоРаботникуОрганизации.Установить(Ссылка);
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Yaposha

пишет переменная "КадровыеДокументы" не определена.. или как мне их выбрать?

я пыталась еще вот так сделать:
Выборка = ЖурналыДокументов.УчетКадровОрганизаций.Выбрать();
Выборка.Отбор.ДокументыПоСотрудникуОрганизации.Использование = ЗначениеЗаполнено(Сотрудник)
но у выборки нет метода отбор.

наверно я запуталась в типах(((

Теги:

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

Рейтинг@Mail.ru

Поиск