Имя: Пароль:
1C
1С v8
Как отобрать только работающих сотрудников?
, ,
0 LivingStar
 
04.10.11
13:25
конфигурация упп 1.3

имеется запрос, который отбирает всех физических лиц, как отбирать только работающих сотрудников?

   Запрос.Текст = "ВЫБРАТЬ
                  |    ВоинскийУчет.Период,
                  |    ВоинскийУчет.Физлицо КАК Физлицо,
                  |    ВоинскийУчет.ОтношениеКВоинскойОбязанности,
                  |    ВоинскийУчет.ОтношениеКВоинскомуУчету,
                  |    ВоинскийУчет.Звание,
                  |    ВоинскийУчет.Состав,
                  |    ВоинскийУчет.ВУС,
                  |    ВоинскийУчет.Годность,
                  |    ВоинскийУчет.Военкомат,
                  |    ВоинскийУчет.НомерКомандыПартии,
                  |    ФизическиеЛица.Ссылка,
                  |    ФизическиеЛица.ДатаРождения,
                  |    ФизическиеЛица.Образование.(
                  |        ВидОбразования,
                  |        Ссылка,
                  |        НомерСтроки,
                  |        ВидОбразования КАК ВидОбразования1,
                  |        УчебноеЗаведение,
                  |        Специальность,
                  |        Диплом,
                  |        ГодОкончания,
                  |        Квалификация
                  |    ),
                  |    ВоинскийУчет.КатегорияЗапаса,
                  |    СотрудникиОрганизаций.Должность,
                  |    СотрудникиОрганизаций.ПодразделениеОрганизации,
                  |    КонтактнаяИнформация.Представление,
                  |    СемейноеПоложениеФизЛицСрезПоследних.СемейноеПоложение
                  |ИЗ
                  |    РегистрСведений.ВоинскийУчет КАК ВоинскийУчет
                  |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
                  |        ПО ВоинскийУчет.Физлицо = ФизическиеЛица.Ссылка
                  |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
                  |        ПО ВоинскийУчет.Физлицо = СотрудникиОрганизаций.Физлицо
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                  |        ПО ВоинскийУчет.Физлицо = КонтактнаяИнформация.Объект
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СемейноеПоложениеФизЛиц.СрезПоследних КАК СемейноеПоложениеФизЛицСрезПоследних
                  |        ПО ВоинскийУчет.Физлицо = СемейноеПоложениеФизЛицСрезПоследних.ФизЛицо
                  |ГДЕ
                  |    ВоинскийУчет.Военкомат = &Военкомат
                  |    И КонтактнаяИнформация.Вид = &АдресПоПрописке";
                  Если ЗначениеЗаполнено(Состав) Тогда
                      Запрос.Текст = Запрос.Текст + "                  
                      |    И ВоинскийУчет.Состав = &Состав
                      |
                      |УПОРЯДОЧИТЬ ПО
                      |    Физлицо";    
                  Иначе
                      Запрос.Текст = Запрос.Текст + "                  
                      |
                      |УПОРЯДОЧИТЬ ПО
                      |    Физлицо";    
                  КонецЕсли;
   //Запрос.УстановитьПараметр("Период",             Период);
   Запрос.УстановитьПараметр("Военкомат",       Военкомат);
   Запрос.УстановитьПараметр("Состав",       Состав);
1 Начинающий Программер
 
04.10.11
13:29
ФизЛицо.Актуальность насколько помню.
2 Maxus43
 
04.10.11
13:30
там достаточно много условий надо анализировать, есть типовые функции в УПП и ЗУП возвращающие сотрудников организации
3 Начинающий Программер
 
04.10.11
13:31
(1) Ан нет, Сотрудник.Актуальность
4 LivingStar
 
04.10.11
13:31
(1) реквизит Актуальность есть у справочника СотрудникиОрганизаций, он не участвует в этом запросе...

добавить его и проверять на актуальность?

может нужно какой либо регистр задействовать?
РегистрСведений.РаботникиОрганизаций к примеру ?
5 LivingStar
 
04.10.11
13:32
(2) а что за функции? можно ли их использовать в запросе?
6 Maxus43
 
04.10.11
13:32
(5) функцие получи список сотрудников и в запрос как врем таблицу передай
7 Maxus43
 
04.10.11
13:34
у меня конфигуратор висит, проверка конфы идёт, так что сам полазь по общим модулям подсистемы ЗУП, в них вроде есть
8 Axel2009
 
04.10.11
13:35
РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавок > 0
9 Maxus43
 
04.10.11
13:36
(8) не всё так просто имхо, типовые запросы достаточно громоздки по получению работающих сотрудников
10 LivingStar
 
04.10.11
13:37
(9) да хотелось бы наверняка....
11 Maxus43
 
04.10.11
13:38
(10) наверняка типовые, всё уже придумано. через полчаса скажу точно если не найдёш сам
12 DrShad
 
04.10.11
13:39
(10) сам заполнение сотрудников списком в любом документе и найдешь
13 DrShad
 
04.10.11
13:40
+(12) использовал именно типовые во всяких обработках - очень удобно
14 LivingStar
 
04.10.11
13:41
(4) справочник СотрудникиОрганизации участвует в этом запросе, пардон!
добавил СотрудникиОрганизации.Актуальность = &Истина
верно, нет?

   Запрос.Текст = "ВЫБРАТЬ
                  |    ВоинскийУчет.Период,
                  |    ВоинскийУчет.Физлицо КАК Физлицо,
                  |    ВоинскийУчет.ОтношениеКВоинскойОбязанности,
                  |    ВоинскийУчет.ОтношениеКВоинскомуУчету,
                  |    ВоинскийУчет.Звание,
                  |    ВоинскийУчет.Состав,
                  |    ВоинскийУчет.ВУС,
                  |    ВоинскийУчет.Годность,
                  |    ВоинскийУчет.Военкомат,
                  |    ВоинскийУчет.НомерКомандыПартии,
                  |    ФизическиеЛица.Ссылка,
                  |    ФизическиеЛица.ДатаРождения,
                  |    ФизическиеЛица.Образование.(
                  |        ВидОбразования,
                  |        Ссылка,
                  |        НомерСтроки,
                  |        ВидОбразования КАК ВидОбразования1,
                  |        УчебноеЗаведение,
                  |        Специальность,
                  |        Диплом,
                  |        ГодОкончания,
                  |        Квалификация
                  |    ),
                  |    ВоинскийУчет.КатегорияЗапаса,
                  |    СотрудникиОрганизаций.Должность,
                  |    СотрудникиОрганизаций.ПодразделениеОрганизации,
                  |    КонтактнаяИнформация.Представление,
                  |    СемейноеПоложениеФизЛицСрезПоследних.СемейноеПоложение
                  |ИЗ
                  |    РегистрСведений.ВоинскийУчет КАК ВоинскийУчет
                  |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
                  |        ПО ВоинскийУчет.Физлицо = ФизическиеЛица.Ссылка
                  |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
                  |        ПО ВоинскийУчет.Физлицо = СотрудникиОрганизаций.Физлицо
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                  |        ПО ВоинскийУчет.Физлицо = КонтактнаяИнформация.Объект
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СемейноеПоложениеФизЛиц.СрезПоследних КАК СемейноеПоложениеФизЛицСрезПоследних
                  |        ПО ВоинскийУчет.Физлицо = СемейноеПоложениеФизЛицСрезПоследних.ФизЛицо
                  |ГДЕ
                  |    ВоинскийУчет.Военкомат = &Военкомат
                  |    И КонтактнаяИнформация.Вид = &АдресПоПрописке
                  |    И СотрудникиОрганизаций.Актуальность = &Истина";
15 Maxus43
 
04.10.11
13:42
(14) нет, не всё так просто, типовые ищи
16 LivingStar
 
04.10.11
13:46
(15) как их использовать?
17 DrShad
 
04.10.11
13:47
(16) ну тут уж тебе решать
18 Maxus43
 
04.10.11
13:48
(16) запрос дёргай типовой, в ВТ например РаботающиеЛюди пиши и к своему запросу уже соединяй
19 LivingStar
 
04.10.11
13:53
(18) та что за запрос то? от куда именно дергать?
20 asp
 
04.10.11
13:54
можно заюзать дату увольнения
21 guitar_player
 
04.10.11
13:57
(19) к РС Работники организации, нужно получить последнее изменение и оно не должно быть уволен (с учетом периода завершения)
22 LivingStar
 
04.10.11
14:00
(21) можно поподробнее, смотрю этот регистр...
23 LivingStar
 
04.10.11
14:01
в регистреСведений.РаботникиОрганизаций есть ресурс период завершения
24 Maxus43
 
04.10.11
14:01
Функция ПолучитьДанныеСотрудниковОрганизаций, в модуле ПолныеПрава, там есть запрос, он разбит на куски правда... короче из него текст запроса выдернуть, убрать лишнее и всё
25 LivingStar
 
04.10.11
14:04
(24) странно не нащел там такой функции в модуле полные права (
26 Maxus43
 
04.10.11
14:05
УПП же?
27 LivingStar
 
04.10.11
14:07
(26) да 1.3
28 Maxus43
 
04.10.11
14:07
у меня есть, в УПП 1.2, но я сравнил с 1.3 - не было изменений этого модуля почти имхо
29 Axel2009
 
04.10.11
14:09
с периодом сравнивать надо на дату либо на пустую. а с числом можно сравнивать что больше 0.
30 Maxus43
 
04.10.11
14:10
(27) да, нету в 1.3 её)
31 LivingStar
 
04.10.11
14:11
(29) а что сравнивать?
32 LivingStar
 
04.10.11
14:11
запрос в (14) не совсем отберет то что нужно?
33 Axel2009
 
04.10.11
14:13
(32) в 8 уже написал что сравнивать
34 Maxus43
 
04.10.11
14:15
ТекстЗапросаПоСпискуРаботников =
           "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
           |    РаботникиОрганизации.Сотрудник КАК Сотрудник,
           |    РаботникиОрганизации.Сотрудник.Физлицо КАК Физлицо
           |ПОМЕСТИТЬ ВТСписокРаботников
           |ИЗ
           |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(
           |            &парамНачало,
           |            Организация = &парамГоловнаяОрганизация
           |                И (&ПоВсемФизЛицам
           |                    ИЛИ Сотрудник.ФизЛицо В (&ФизЛица))) КАК РаботникиОрганизации
           |ГДЕ
           |    ВЫБОР
           |            КОГДА РаботникиОрганизации.ПериодЗавершения <= &парамНачало
           |                    И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
           |                ТОГДА РаботникиОрганизации.ПричинаИзмененияСостоянияЗавершения
           |            ИНАЧЕ РаботникиОрганизации.ПричинаИзмененияСостояния
           |        КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
           |    И ВЫБОР
           |            КОГДА РаботникиОрганизации.ПериодЗавершения <= &парамНачало
           |                    И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
           |                ТОГДА РаботникиОрганизации.ОбособленноеПодразделениеЗавершения
           |            ИНАЧЕ РаботникиОрганизации.ОбособленноеПодразделение
           |        КОНЕЦ = &парамОрганизация
           |    И ВЫБОР
           |            КОГДА &ПоВсемПодразделениям
           |                ТОГДА ИСТИНА
           |            КОГДА РаботникиОрганизации.ПериодЗавершения <= &парамНачало
           |                    И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
           |                ТОГДА РаботникиОрганизации.ПодразделениеОрганизацииЗавершения В
           |                        (ВЫБРАТЬ
           |                            Подразделения.Подразделение
           |                        ИЗ
           |                            ВТПодразделенияОтбора КАК Подразделения)
           |            ИНАЧЕ РаботникиОрганизации.ПодразделениеОрганизации В
           |                    (ВЫБРАТЬ
           |                        Подразделения.Подразделение
           |                    ИЗ
           |                        ВТПодразделенияОтбора КАК Подразделения)
           |        КОНЕЦ
           |
           |ОБЪЕДИНИТЬ
           |
           |ВЫБРАТЬ РАЗЛИЧНЫЕ
           |    РаботникиОрганизации.Сотрудник,
           |    РаботникиОрганизации.Сотрудник.Физлицо
           |ИЗ
           |    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизации
           |ГДЕ
           |    РаботникиОрганизации.Период > &парамНачало
           |    И РаботникиОрганизации.Период <= &парамКонец
           |    И РаботникиОрганизации.Организация = &парамГоловнаяОрганизация
           |    И (&ПоВсемФизЛицам
           |            ИЛИ РаботникиОрганизации.Сотрудник.Физлицо В (&ФизЛица))
           |    И РаботникиОрганизации.ОбособленноеПодразделение = &парамОрганизация
           |    И (&ПоВсемПодразделениям
           |            ИЛИ РаботникиОрганизации.ПодразделениеОрганизации В
           |                (ВЫБРАТЬ
           |                    Подразделения.Подразделение
           |                ИЗ
           |                    ВТПодразделенияОтбора КАК Подразделения))
           |
           |ОБЪЕДИНИТЬ
           |
           |ВЫБРАТЬ РАЗЛИЧНЫЕ
           |    Работники.Сотрудник,
           |    Работники.Сотрудник.Физлицо
           |ИЗ
           |    РегистрСведений.РаботникиОрганизаций КАК Работники
           |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК ПериодыПерекрытия
           |        ПО Работники.Сотрудник = ПериодыПерекрытия.Сотрудник
           |            И (ПериодыПерекрытия.Период <= Работники.ПериодЗавершения)
           |            И (ПериодыПерекрытия.Период > Работники.Период)
           |            И (ПериодыПерекрытия.Организация = &парамГоловнаяОрганизация)
           |ГДЕ
           |    Работники.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
           |    И Работники.ПериодЗавершения > &парамНачало
           |    И Работники.ПериодЗавершения <= &парамКонец
           |    И Работники.Организация = &парамГоловнаяОрганизация
           |    И Работники.ОбособленноеПодразделениеЗавершения = &парамОрганизация
           |    И (&ПоВсемФизЛицам
           |            ИЛИ Работники.Сотрудник.Физлицо В (&ФизЛица))
           |    И (&ПоВсемПодразделениям
           |            ИЛИ Работники.ПодразделениеОрганизацииЗавершения В
           |                (ВЫБРАТЬ
           |                    Подразделения.Подразделение
           |                ИЗ
           |                    ВТПодразделенияОтбора КАК Подразделения))
           |    И ПериодыПерекрытия.Период ЕСТЬ NULL
           |
           |ОБЪЕДИНИТЬ
           |
           |ВЫБРАТЬ РАЗЛИЧНЫЕ
           |    ДоговорНаВыполнениеРаботСФизЛицом.Сотрудник,
           |    ДоговорНаВыполнениеРаботСФизЛицом.Сотрудник.Физлицо
           |ИЗ
           |    Документ.ДоговорНаВыполнениеРаботСФизЛицом КАК ДоговорНаВыполнениеРаботСФизЛицом
           |ГДЕ
           |    ДоговорНаВыполнениеРаботСФизЛицом.ДатаНачала <= &парамКонец
           |    И ДоговорНаВыполнениеРаботСФизЛицом.ДатаОкончания >= &парамНачало
           |    И ДоговорНаВыполнениеРаботСФизЛицом.Проведен
           |    И ДоговорНаВыполнениеРаботСФизЛицом.Организация = &парамОрганизация
           |    И (&ПоВсемФизЛицам
           |            ИЛИ ДоговорНаВыполнениеРаботСФизЛицом.ФизЛицо В (&ФизЛица))
           |    И (&ПоВсемПодразделениям
           |            ИЛИ ДоговорНаВыполнениеРаботСФизЛицом.ПодразделениеОрганизации В
           |                (ВЫБРАТЬ
           |                    Подразделения.Подразделение
           |                ИЗ
           |                    ВТПодразделенияОтбора КАК Подразделения))
           |
           |ИНДЕКСИРОВАТЬ ПО
           |    Сотрудник";
35 Maxus43
 
04.10.11
14:15
+ выкидывай лишнее
36 Maxus43
 
04.10.11
14:17
понадобится только первая часть поидее, остальные через Объеденить - это чтоб наверняка, ещё со сторонними ФЛ
37 Axel2009
 
04.10.11
14:18
(34) ну если посмотреть что тут указывается ОБЪЕДИНИТЬ и РАЗЛИЧНЫЕ, то явно писал тот, кто не особо умеет запросы рисовать
38 Maxus43
 
04.10.11
14:19
(37) отгадай кто
39 Axel2009
 
04.10.11
14:19
(36) это если не было приемов на работу в течение месяца, то пойдет
40 БалбесВ1с
 
04.10.11
14:19
(0)А что это за запрос?
Принятые уволенные призывники?
41 LivingStar
 
04.10.11
14:20
(40) запрос для печатной формы список граждан пребывающих в запасе
42 Maxus43
 
04.10.11
14:22
(39) 1с не согласится, сам не ковырял но теоретически этот запрос должен предусмотреть ВСЁ, ибо из типового дока начисление зарплаты в регл учете)
43 LivingStar
 
04.10.11
14:22
(35) да что то нет уверенности что правильно его отредактирую
44 LivingStar
 
04.10.11
14:25
(39) так а ваше решение что в (8) правильное?
45 Maxus43
 
04.10.11
14:25
есть ещё в типовом:

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

только у меня сомнения насчет адекватности данных, но сойдёт в вашем случае наверно) слишком просто что-то правда
46 Axel2009
 
04.10.11
14:26
(42) весь должен. а не первая часть.
1ая часть сотрудник не уволен к началу месяца
2ая часть сотрудник уволен текущим месяцем
3ья часть сотрудник принят и уволен текущим месяцем
47 БалбесВ1с
 
04.10.11
14:26
(0)Отчет ЧисленностьРаботающихИЗабронированныхГражданЗапаса в УПП
там есть участок в коде то что надо тебе
48 Axel2009
 
04.10.11
14:26
(44) будет, только срез последних взять на начало месяца и на конец месяца с данным отбором и будет работать
49 LivingStar
 
04.10.11
14:29
что то у меня башка совсем не соображает (
50 LivingStar
 
04.10.11
14:30
(34) а как этот запрос встроить в запрос (14)
51 Maxus43
 
04.10.11
14:35
(50) к этому запросу внутренее соединение сделать с запросом (14) по физлицу. для простоты то можеш конечно и (8) прикрутить, хз насколько точна инфа будет
52 LivingStar
 
04.10.11
14:41
(51) теряюсь какие параметры к нему нужны!!!
период это понятно, но Организация, ГоловнаяОрганизация....?
53 LivingStar
 
04.10.11
14:43
(51) можете подсказать по соединению? как это будет?
54 Maxus43
 
04.10.11
14:43
обычную свою организацию ставь, обособленное подразделение видимо не нужно вобще в твоём случае
55 LivingStar
 
04.10.11
14:43
как я понял (34) самое верное решение...
56 LivingStar
 
04.10.11
14:44
торможу, не догоняю как соединить, наверное ничего сложного в этом уже, имея (34), но подскажите все равно?!
57 БалбесВ1с
 
04.10.11
14:45
(55)А чем типовой ЧисленностьРаботающихИЗабронированныхГражданЗапаса не подходит?Там это тоже есть.
58 Maxus43
 
04.10.11
14:45
(55) оно типовое и потому верное, но так как типовое - ещё и тормознутое)
запрос (34) во врем таблице, к своему эту врем таблицу с внутренним соединением по физ лицу
59 Maxus43
 
04.10.11
14:45
и вобще, может ЧисленностьРаботающихИЗабронированныхГражданЗапаса вернее будет. (34) это на все случаи жизни запрос по работающим
60 LivingStar
 
04.10.11
14:46
(57) а это что функция?
61 LivingStar
 
04.10.11
14:47
(58) торможу, как мне в (14) временную таблицу запроса (34) пределать и связать?
62 LivingStar
 
04.10.11
14:47
(58) куда код (34) затолкать?
63 Maxus43
 
04.10.11
14:48
(62) в этот же запрос (14) и затолкай, там в (34) она временной как раз делается
64 БалбесВ1с
 
04.10.11
14:48
(60)Это отчет.Там в модуле формы есть запрос.
65 LivingStar
 
04.10.11
14:50
(63) перед

 |ГДЕ
                  |    ВоинскийУчет.Военкомат = &Военкомат
                  |    И КонтактнаяИнформация.Вид = &АдресПоПрописке
                  |    И СотрудникиОрганизаций.Актуальность = &Истина";

затолкать?
66 Maxus43
 
04.10.11
14:50
перед "ВЫБРАТЬ
                  |    ВоинскийУчет.Период,
67 Maxus43
 
04.10.11
14:51
(65) посмотри (64)
68 LivingStar
 
04.10.11
14:52
не нащел отчет
ЧисленностьРаботающихИЗабронированныхГражданЗапаса
в конфигурации (
69 LivingStar
 
04.10.11
14:54
(+68) нащел!
70 LivingStar
 
04.10.11
14:56
(64) только запрос в нем не найду (
71 LivingStar
 
04.10.11
14:57
(64) в модуле формы вообще нет запроса (
72 БалбесВ1с
 
04.10.11
15:00
(71)Сорри, в ОсновнаяСхемаКомпоновкиДанных.
73 LivingStar
 
04.10.11
15:02
(72) что то там у него вообще параметров дофига...
74 LivingStar
 
04.10.11
15:04
(72) так в этом же отчете подсчет ведется, статистика.
а запрос перебирает физ лица?
не пойму как его увязать с (14)
75 БалбесВ1с
 
04.10.11
15:13
(74)Я в 1с не силен) Просто имхо там и отбираются пребывающие в запасе с учетом того что они не уволены.А как их вывести я не знаю.
76 LivingStar
 
04.10.11
15:17
(75) мне предоставили свой бланк, я для него делаю запрос...
(64) в запросе много параметров надо задавать
а при формировании отчета только период и организацию
пока с ним не разобрался

попробую (14) + (34) ...
77 LivingStar
 
04.10.11
17:47
подскажите пожалуйста по параметрам

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



ВЫДАВАЕМАЯ ОШИБКА;
Форма.ФормаОтчета.Форма(187)}: Ошибка при вызове метода контекста (Выполнить): {(14, 51)}: Не задано значение параметра "парамНачало"
КОГДА РаботникиОрганизации.ПериодЗавершения <= <<?>>&парамНачало
   Результат                   = Запрос.Выполнить().Выбрать();
по причине:
{(14, 51)}: Не задано значение параметра "парамНачало"
КОГДА РаботникиОрганизации.ПериодЗавершения <= <<?>>&парамНачало
78 BiTree
 
04.10.11
17:54
Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    РаботникиОрганизаций.Сотрудник,
       |    РаботникиОрганизаций.Регистратор,
       |    ВложенныйЗапрос.Регистратор КАК Регистратор1
       |ИЗ
       |    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
       |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
       |            РаботникиОрганизаций.Сотрудник КАК Сотрудник,
       |            РаботникиОрганизаций.Регистратор КАК Регистратор,
       |            РаботникиОрганизаций.Период КАК Период
       |        ИЗ
       |            РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
       |        ГДЕ
       |            РаботникиОрганизаций.Регистратор ССЫЛКА Документ.УвольнениеИзОрганизаций
       |            И ДОБАВИТЬКДАТЕ(РаботникиОрганизаций.Период, ДЕНЬ, -1) <= &КонПериода) КАК ВложенныйЗапрос
       |        ПО РаботникиОрганизаций.Сотрудник = ВложенныйЗапрос.Сотрудник
       |ГДЕ
       |    РаботникиОрганизаций.Регистратор ССЫЛКА Документ.ПриемНаРаботуВОрганизацию
       |    " + ОтборПоОрганизации + "
       |    И ВложенныйЗапрос.Регистратор ЕСТЬ NULL
       |    И ДОБАВИТЬКДАТЕ(РаботникиОрганизаций.Период, ДЕНЬ, -1) <= &КонПериода
       |
       |УПОРЯДОЧИТЬ ПО
       |    РаботникиОрганизаций.Сотрудник.Наименование,
       |    РаботникиОрганизаций.Регистратор.Дата";

   Запрос.УстановитьПараметр("НачПериода", НачалоПериода);
   Запрос.УстановитьПараметр("КонПериода", КонецПериода);
   Запрос.УстановитьПараметр("Организация", Организация);

   Результат = Запрос.Выполнить();
79 LivingStar
 
04.10.11
18:04
(54)сейчас ругается не найдена таблица ВТПодразделенияОтбора
это то что нужно было убирать лишнее из запроса?
от куда мне знать что от туда можно убирать что нет?

(78) ваш запрос можно встроить в 14? связав по физ лицу?
80 LivingStar
 
04.10.11
18:13
все таки то что в (1) и в (14) мне кажется в корень не верно
например если на форме учитывать период, что будет выбираться по периоду в этом запросе... то есть он не периодический
81 LivingStar
 
04.10.11
18:45
запросы не связываются, (78) подскажите как связать?


   Запрос.Текст = "ВЫБРАТЬ
                  |    РаботникиОрганизаций.Сотрудник,
                  |    РаботникиОрганизаций.Регистратор,
                  |    ВложенныйЗапрос.Регистратор КАК Регистратор1
                  |ПОМЕСТИТЬ ВТРаботникиОрганизаций
                  |ИЗ
                  |    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
                  |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                  |            РаботникиОрганизаций.Сотрудник КАК Сотрудник,
                  |            РаботникиОрганизаций.Регистратор КАК Регистратор,
                  |            РаботникиОрганизаций.Период КАК Период
                  |        ИЗ
                  |            РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
                  |        ГДЕ
                  |            РаботникиОрганизаций.Регистратор ССЫЛКА Документ.УвольнениеИзОрганизаций
                  |            И ДОБАВИТЬКДАТЕ(РаботникиОрганизаций.Период, ДЕНЬ, -1) <= &КонПериода) КАК ВложенныйЗапрос
                  |        ПО РаботникиОрганизаций.Сотрудник = ВложенныйЗапрос.Сотрудник
                  |ГДЕ
                  |    РаботникиОрганизаций.Регистратор ССЫЛКА Документ.ПриемНаРаботуВОрганизацию
                  |    " + Организация + "
                  |    И ВложенныйЗапрос.Регистратор ЕСТЬ NULL
                  |    И ДОБАВИТЬКДАТЕ(РаботникиОрганизаций.Период, ДЕНЬ, -1) <= &КонПериода
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    РаботникиОрганизаций.Сотрудник.Наименование,
                  |    РаботникиОрганизаций.Регистратор.Дата;
                  |    
                  |ВЫБРАТЬ
                  |    ВоинскийУчет.Период,
                  |    ВоинскийУчет.Физлицо КАК Физлицо,
                  |    ВоинскийУчет.ОтношениеКВоинскойОбязанности,
                  |    ВоинскийУчет.ОтношениеКВоинскомуУчету,
                  |    ВоинскийУчет.ЗабронированОрганизацией,
                  |    ВоинскийУчет.Звание,
                  |    ВоинскийУчет.Состав,
                  |    ВоинскийУчет.ВУС,
                  |    ВоинскийУчет.Годность,
                  |    ВоинскийУчет.Военкомат,
                  |    ВоинскийУчет.НомерКомандыПартии,
                  |    ФизическиеЛица.Ссылка,
                  |    ФизическиеЛица.ДатаРождения,
                  |    ФизическиеЛица.Образование.(
                  |        ВидОбразования,
                  |        Ссылка,
                  |        НомерСтроки,
                  |        ВидОбразования КАК ВидОбразования1,
                  |        УчебноеЗаведение,
                  |        Специальность,
                  |        Диплом,
                  |        ГодОкончания,
                  |        Квалификация
                  |    ),
                  |    ВоинскийУчет.КатегорияЗапаса,
                  |    СотрудникиОрганизаций.Должность,
                  |    СотрудникиОрганизаций.ПодразделениеОрганизации,
                  |    КонтактнаяИнформация.Представление,
                  |    СемейноеПоложениеФизЛицСрезПоследних.СемейноеПоложение
                  |ИЗ
                  |    РегистрСведений.ВоинскийУчет КАК ВоинскийУчет
                  |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
                  |        ПО ВоинскийУчет.Физлицо = ФизическиеЛица.Ссылка
                  |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
                  |        ПО ВоинскийУчет.Физлицо = СотрудникиОрганизаций.Физлицо
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                  |        ПО ВоинскийУчет.Физлицо = КонтактнаяИнформация.Объект
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СемейноеПоложениеФизЛиц.СрезПоследних КАК СемейноеПоложениеФизЛицСрезПоследних
                  |        ПО ВоинскийУчет.Физлицо = СемейноеПоложениеФизЛицСрезПоследних.ФизЛицо
                  |ГДЕ
                  |    ВоинскийУчет.Военкомат = &Военкомат
                  |    И КонтактнаяИнформация.Вид = &АдресПоПрописке
                  |    И СотрудникиОрганизаций.Актуальность = &Истина";
                  Если ЗначениеЗаполнено(Состав) Тогда
                      Запрос.Текст = Запрос.Текст + "                  
                      |    И ВоинскийУчет.Состав = &Состав
                      |
                      |УПОРЯДОЧИТЬ ПО
                      |    Физлицо";    
                  Иначе
                      Запрос.Текст = Запрос.Текст + "                  
                      |
                      |УПОРЯДОЧИТЬ ПО
                      |    Физлицо";    
                  КонецЕсли;
   Запрос.УстановитьПараметр("НачПериода", НачПериода);
   Запрос.УстановитьПараметр("КонПериода", КонПериода);
   Запрос.УстановитьПараметр("Организация", Организация);
   
   Запрос.УстановитьПараметр("Военкомат",       Военкомат);
   Запрос.УстановитьПараметр("Состав",       Состав);
   Запрос.УстановитьПараметр("Истина",       Истина);
82 kumena
 
04.10.11
19:29
(81) это кривой запрос. смотрим сюда - отчет СпискиРаботниковОрганизаций
83 kumena
 
04.10.11
19:31
а на ваш запрос вообще страшно смотреть
84 LivingStar
 
05.10.11
05:51
(83) ну а мне то как применить это к своему запросу?
от туда ничего не вытащить, посмотрел тама нет запроса, все формируется скрытым образом...
85 LivingStar
 
05.10.11
06:15
(84+) там все формируется универсальными механизмами.
Пока я установил в своём запросе СотрудникиОрганизации.Актуальность = &Истина

и остановился на этом, более не вижу вариантов...
86 TanjaWing
 
05.10.11
06:58
а может через регистр сведений работники организаций. срез последних на дату, с условием : причина изменения состояния <> увольнение
87 0xFFFFFF
 
05.10.11
06:59
(0) отбирать куда? в рабство?
88 LivingStar
 
05.10.11
07:05
(34) в этом запросе требует таблицу ВТПодразделенияОтбора, она отсутствует в этом куске кода, а избавляться от условий на неё ссылающихся, боюсь повредить правильность выборки...
(45) Этот запрос запрашивает список физических лиц. Туда нужно передать весь справочник физические лица?
(78) Этот запрос выводит, сотрудника и его документ прием на работу, отрабатывает. Не знаю правильная ли выборка получается всех работающих?
(86) Стоит попробовать...
(87) в печатную форму списки граждан находящихся в запасе, что бы не попадали всякие не актуальные физ. лица...
89 LivingStar
 
05.10.11
07:13
(13) если вы удачно использовали типовые функции, можете подсказать какие?
90 LivingStar
 
05.10.11
07:25
(86) - в (45) (78) тоже используется этот регистр РаботникиОрганизаций ...
91 LivingStar
 
05.10.11
07:54
подскажите как связать запросы (14) и (78)
92 BiTree
 
05.10.11
10:11
(79)
я не анализировал ваш запрос.
связать можно что угодно и как угодно.

Я однажды делал обработку - универсальынй очтет для HRа. там разные показатели - среди них был и "количество работающих людей на дату"

дальше сами смотрите как вам удобнее это заюзать. )