8.х Запрос на выбор сотрудников

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Neon_tmn, 8 ноя 2010.

  1. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте, запрос на выборку сотрудников в соответствии с датой и подразделением выглядит так:
    Код:
    |ВЫБРАТЬ
    |    РаботникиОрганизацийСрезПоследних.Сотрудник,
    |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
    |    РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния,
    |    РаботникиОрганизацийСрезПоследних.Период КАК Период,
    |ИЗ
    |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(КОНЕЦПЕРИОДА(&КонДата, МЕСЯЦ)) КАК РаботникиОрганизацийСрезПоследних
    |ГДЕ
    |	 РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &Увольнение
    |	 И
    |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации В ИЕРАРХИИ(&Родитель)
    |АВТОУПОРЯДОЧИВАНИЕ
    
    Проблема в периоде. Например человек принят на работу 05.05.2009 а уволен 05.06.2009.
    Если я в &КонДата заношу 31.05.2009, тогда этот человек у меня попадает в выборку по запросу.
    Если я в &КонДата заношу 30.06.2009, тогда этот человек у меня НЕ попадает в выборку по запросу.
    Делаю это для загрузки табеля учета рабочего времени и конечно у меня этот человек должен попасть в выборку, так как за 5 отработанных дней июня у него должны стоять часы в табеле.
    Посоветуйте, как сделать запрос, чтобы уволенный в данном периоде человек тоже попадал в результат выборки?
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    Нужно использовать КонецДня(КонДата);
  3. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Конфа самописная? или какая? почему при стандартном заполнении он у Вас в табель не попадает? что за конфа?
  4. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Вообще во всех конфах форма Заполнения списком сотрудников работает на Ура. там даже есть галоска включать уволенных по состоянию на..... Если уж очень надо - возьмите код оттуда
  5. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Конфа ЗиУП. Пишу обработку по выгрузке сотрудников и загрузке в табель учета рабочего времени.
    Собственно для загрузки мне нужно сделать выгрузку сотрудников по подразделениям. Например ОТиЗ выгружает по нужным подразделениям (базам) сотрудников, они выгружаются в специальный файл имеющий вид табеля учета рабочего времени, эти файлы передаются начальникам баз, где они сами заполняют все и передают обратно в ОТиЗ, где ОТиЗ делает уже загрузку табелей по подразделениям.
    Так что стандартным подбором или заполнением табеля учета рабочего времени я не пользуюсь.
  6. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Что мешает запрос оттуда взять? вы же когда формируте докумет, выбираете там подразделени и нажимаете заполнить по всем сотрудника, заполняет всех, в том числе и уволенных... Возьмите оттуда запрос. просто конфигуратора под рукой нет, чуть позже будет
  7. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Да, я уже понял что это как раз то что нужно. попробую вытащить сам запрос. Как получится или не получится, отпишусь обязательно. Спасибо.
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Проще это вам выдрать из модуля обработки ФормированиСпискаСотрудников там в модуле есть процедура Заполнить начальные настройки и там запрос
  9. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    В общем модуле есть модуль "ФормированиеСпискаРаботниковПереопределяемый".
    Там есть Функция ПолучитьТекстЗапросаНачальныеНастройкиДругиеРегистры(ОбработкаОбъект, СтруктураПредставлениеПолей, СтруктураФорматаПолей, СоответствиеНазначений, СтруктураДляОтбораПоКатегориям, ТаблицаПолей, СтрокаТаблицаПолей) Экспорт.
    не знаю, об этом вы или нет? как попасть в ФормированиеСпискаСотрудников?
  10. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Извиняюсь, не то смотрел. нашел данную обработку и данный код. буду пробовать запрос.
  11. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    нет. В ветке обработки есть обработка с наименованием ФОрмированиеСпискаСотрудников. Вот в модуляе этого объекта смотрите
  12. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Код:
     			ТекстЗапроса =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    |	РаботникиОрганизации.Сотрудник.Физлицо КАК Физлицо,
    |	РаботникиОрганизации.Сотрудник.Физлицо.Наименование КАК ФИО
    |ПОМЕСТИТЬ ВТСписокРаботников
    |ИЗ
    |	РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаАктуальности, Организация = &ГоловнаяОрганизация) КАК РаботникиОрганизации
    |		//ДАННЫЕ О ФИЗЛИЦЕ: СОЕДИНЕНИЯ
    |		//СОЕДИНЕНИЯ СВОЙСТВ И КАТЕГОРИЙ
    |//УСЛОВИЕ
    |{ГДЕ
    |	РаботникиОрганизации.Сотрудник КАК Работник,
    |	РаботникиОрганизации.Сотрудник.Родитель КАК Группа,
    |	(ВЫБОР
    |		КОГДА РаботникиОрганизации.ПериодЗавершения <= &ДатаАктуальности
    |				И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    |		ТОГДА РаботникиОрганизации.ДолжностьЗавершения
    |		ИНАЧЕ РаботникиОрганизации.Должность 
    |	КОНЕЦ).* КАК Должность,
    |	(ВЫБОР
    |		КОГДА РаботникиОрганизации.ПериодЗавершения <= &ДатаАктуальности
    |				И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    |		ТОГДА РаботникиОрганизации.ГрафикРаботыЗавершения
    |		ИНАЧЕ РаботникиОрганизации.ГрафикРаботы 
    |	КОНЕЦ).* КАК ГрафикРаботы,
    |	РаботникиОрганизации.Сотрудник.Код КАК ТабельныйНомер,
    |	ВЫБОР
    |		КОГДА РаботникиОрганизации.ПериодЗавершения <= &ДатаАктуальности
    |				И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    |		ТОГДА РаботникиОрганизации.ЗанимаемыхСтавокЗавершения
    |		ИНАЧЕ РаботникиОрганизации.ЗанимаемыхСтавок 
    |	КОНЕЦ КАК ЗанимаемыхСтавок,
    |	РаботникиОрганизации.Сотрудник.ДатаПриемаНаРаботу КАК ДатаПриема,
    |	РаботникиОрганизации.Сотрудник.ВидЗанятости КАК ВидЗанятости,
    |	РаботникиОрганизации.Сотрудник.ВидДоговора КАК ВидДоговора,
    |	(ВЫБОР
    |		КОГДА РаботникиОрганизации.ПериодЗавершения <= &ДатаАктуальности
    |				И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    |		ТОГДА РаботникиОрганизации.ПодразделениеОрганизацииЗавершения
    |		ИНАЧЕ РаботникиОрганизации.ПодразделениеОрганизации 
    |	КОНЕЦ).* КАК Подразделение,
    |	(ВЫБОР
    |		КОГДА РаботникиОрганизации.ПериодЗавершения <= &ДатаАктуальности
    |				И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    |		ТОГДА РаботникиОрганизации.ОбособленноеПодразделениеЗавершения
    |		ИНАЧЕ РаботникиОрганизации.ОбособленноеПодразделение 
    |	КОНЕЦ).* КАК ОбособленноеПодразделение
    |	//ДАННЫЕ О ФИЗЛИЦЕ: ПОЛЯ
    |	//СВОЙСТВА
    |	//КАТЕГОРИИ
    |}
    |
    |";
    
    
    Запрос = Новый Запрос(ТекстЗапроса);
    
    Запрос.УстановитьПараметр("Родитель", Подразделение);
    Запрос.УстановитьПараметр("ДатаАктуальности", ДатаРегистрации);
    Результат = Запрос.Выполнить().Выбрать(); 
    
    
    на строке "Результат = Запрос.Выполнить().Выбрать(); " выдает:
    "Ошибка при вызове метода контекста (Выполнить): Не установлен менеджер временных таблиц
    Результат = Запрос.Выполнить().Выбрать();
    по причине:
    Не установлен менеджер временных таблиц".
    Чувствую себя беспомощным, потому что не могу понять
  13. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    "|ПОМЕСТИТЬ ВТСписокРаботников" из запроса уберите.
  14. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    В общем вот такой запрос составить:
    Код:
    ТекстЗапроса ="
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    РаботникиОрганизации.Сотрудник.Физлицо КАК Физлицо,
    |    РаботникиОрганизации.Сотрудник.Физлицо.Наименование КАК ФИО,
    |    РаботникиОрганизации.Сотрудник.ПодразделениеОрганизации КАК Подразделение
    |ИЗ
    |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаАктуальности) КАК РаботникиОрганизации
    |ГДЕ
    |     РаботникиОрганизации.ПодразделениеОрганизации.Ссылка В ИЕРАРХИИ(&Родитель)
    |     И
    |    (
    |     (РаботникиОрганизации.Сотрудник.ДатаУвольнения = ДАТАВРЕМЯ(1,1,1,0,0,0) И НАЧАЛОПЕРИОДА(РаботникиОрганизации.Сотрудник.ДатаПриемаНаРаботу, Месяц) <= &ДатаАктуальности)
    |ИЛИ
    |     (НАЧАЛОПЕРИОДА(РаботникиОрганизации.Сотрудник.ДатаПриемаНаРаботу, Месяц) = &ДатаАктуальности)
    |     )
    |";
    
    
    
    Вроде работает.
  15. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Осталось убрать только слово "ВРОДЕ"
  16. TopicStarter Overlay
    Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    :) Работает. Спасибо за советы

Поделиться этой страницей