Имя: Пароль:
1C
1С v8
ЗУП. Отчет "СредняяЧисленностьРаботниковОрганизаций". Выводить уволенных
0 мистер игрек
 
27.02.13
10:18
Есть сотрудник, который работал в друх организациях. Затем его уволили с обоих организаций.
Но отчет выводит все равно их.
Походу многие сталкивались с этой проблемой.
Кто нибуд нащел выход?
1 piter3
 
27.02.13
10:58
у меня не выводит ЧЯДТ
2 мистер игрек
 
27.02.13
11:24
(1) У вас сколько организаций?
3 piter3
 
27.02.13
11:27
20
4 matras
 
27.02.13
11:28
Удобный, прочный и компактный <a href="http://www.moscamp.ru/naduvnoy_basseyn.html">надувной бассейн для дачи</a> - отличный подарок для детей.
5 piter3
 
27.02.13
11:29
пост (1) к тому, что мало понятна ситуация. нужны подробности
6 мистер игрек
 
27.02.13
11:52
(5) Чтоб в этот отчет не попадали уволенные
7 мистер игрек
 
27.02.13
11:52
а они попадают
8 piter3
 
27.02.13
11:55
гм хотелось бы так: формирую за ... период, уволен тогда-то. если конфигуратор не пугает берешь запрос из макета и смотришь
9 CepeLLlka
 
27.02.13
11:59
(4) А взрослые могут плавать на нём? Какая вместительность?
10 мистер игрек
 
27.02.13
12:20
Вот кусок кода запроса отчета:


ВЫБРАТЬ
   &ДатаНач КАК Период,
   РаботникиОрганизации.Организация,
   РаботникиОрганизации.Физлицо,
   РаботникиОрганизации.Приказ,
   РаботникиОрганизации.ВидЗанятости,
   РаботникиОрганизации.ПодразделениеОрганизации,
   РаботникиОрганизации.ОбособленноеПодразделение,
   РаботникиОрганизации.Должность,
   РаботникиОрганизации.ТарифныйРазряд,
   РаботникиОрганизации.ПричинаИзмененияСостояния
ИЗ
   РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаНач, ВидЗанятости <> &ВнутреннееСовместительство) КАК РаботникиОрганизации
ГДЕ
   РаботникиОрганизации.ПричинаИзмененияСостояния <> &Уволен

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   РаботникиОрганизации.Период,
   РаботникиОрганизации.Организация,
   РаботникиОрганизации.Физлицо,
   РаботникиОрганизации.Приказ,
   РаботникиОрганизации.ВидЗанятости,
   РаботникиОрганизации.ПодразделениеОрганизации,
   РаботникиОрганизации.ОбособленноеПодразделение,
   РаботникиОрганизации.Должность,
   РаботникиОрганизации.ТарифныйРазряд,
   РаботникиОрганизации.ПричинаИзмененияСостояния
ИЗ
   РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизации
ГДЕ
   РаботникиОрганизации.Период > &ДатаНач
   И РаботникиОрганизации.Период <= &ДатаКон
   И РаботникиОрганизации.ВидЗанятости <> &ВнутреннееСовместительство


Тут видно в перовй части объединения, что алгоритм хочет чтоб уволенные на попадали. Вот и нихрена.
Походу "срез последних" получает последнюю активную запись. Так как запись уволнения не активный, запрос тупо не видит его и хот человек уволен, он попадает.


Как решить такую проблему?
11 piter3
 
27.02.13
12:23
посмотреть типовой запрос
12 мистер игрек
 
27.02.13
12:26
(11) Это и есть типовой отчет
13 piter3
 
27.02.13
12:28
ВЫБРАТЬ
   ДатаНачала.Физлицо КАК Физлицо,
   ДатаНачала.Организация КАК Организация,
   ДатаНачала.Период КАК ДатаНачала,
   МИНИМУМ(ЕСТЬNULL(ДатыОкончания.Период, &КонецПериода)) КАК ДатаОкончания,
   ДатаНачала.ВидЗанятости КАК ВидЗанятости,
   ДатаНачала.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
   ДатаНачала.Должность КАК Должность,
   ДатаНачала.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок,
   ДатаНачала.ВидДоговора КАК ВидДоговора
ИЗ
   (ВЫБРАТЬ
       РаботникиОрганизаций.Сотрудник.Физлицо КАК Физлицо,
       РаботникиОрганизаций.ОбособленноеПодразделение КАК Организация,
       РаботникиОрганизаций.Период КАК Период,
       РаботникиОрганизаций.Сотрудник.ВидЗанятости КАК ВидЗанятости,
       РаботникиОрганизаций.Организация КАК ГоловнаяОрганизация,
       РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
       РаботникиОрганизаций.Должность КАК Должность,
       РаботникиОрганизаций.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок,
       РаботникиОрганизаций.Сотрудник.ВидДоговора КАК ВидДоговора
   ИЗ
       РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
   ГДЕ
       РаботникиОрганизаций.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
       И РаботникиОрганизаций.Период МЕЖДУ &НачалоПериода И &КонецПериода
       И РаботникиОрганизаций.Сотрудник.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство)
       И ИСТИНА
   {ГДЕ
       РаботникиОрганизаций.Организация.* КАК ГоловнаяОрганизация}
   
   ОБЪЕДИНИТЬ ВСЕ
   
   ВЫБРАТЬ
       РаботникиОрганизаций.Сотрудник.Физлицо,
       РаботникиОрганизаций.ОбособленноеПодразделениеЗавершения,
       РаботникиОрганизаций.ПериодЗавершения,
       РаботникиОрганизаций.Сотрудник.ВидЗанятости,
       РаботникиОрганизаций.Организация,
       РаботникиОрганизаций.ПодразделениеОрганизацииЗавершения,
       РаботникиОрганизаций.ДолжностьЗавершения,
       РаботникиОрганизаций.ЗанимаемыхСтавокЗавершения,
       РаботникиОрганизаций.Сотрудник.ВидДоговора
   ИЗ
       РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
           ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК ПериодаПерекрытия
           ПО РаботникиОрганизаций.Сотрудник = ПериодаПерекрытия.Сотрудник
               И РаботникиОрганизаций.Организация = ПериодаПерекрытия.Организация
               И РаботникиОрганизаций.Период < ПериодаПерекрытия.Период
               И РаботникиОрганизаций.ПериодЗавершения >= ПериодаПерекрытия.Период
   ГДЕ
       РаботникиОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
       И РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
       И РаботникиОрганизаций.ПериодЗавершения МЕЖДУ &НачалоПериода И &КонецПериода
       И РаботникиОрганизаций.Сотрудник.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство)
       И ПериодаПерекрытия.Сотрудник ЕСТЬ NULL
       И ИСТИНА
   {ГДЕ
       РаботникиОрганизаций.Организация.* КАК ГоловнаяОрганизация}
   
   ОБЪЕДИНИТЬ ВСЕ
   
   ВЫБРАТЬ
       РаботникиОрганизаций.Сотрудник.Физлицо,
       ВЫБОР
           КОГДА РаботникиОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                   И РаботникиОрганизаций.ПериодЗавершения < &НачалоПериода
               ТОГДА РаботникиОрганизаций.ОбособленноеПодразделениеЗавершения
           ИНАЧЕ РаботникиОрганизаций.ОбособленноеПодразделение
       КОНЕЦ,
       ВЫБОР
           КОГДА РаботникиОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                   И РаботникиОрганизаций.ПериодЗавершения < &НачалоПериода
               ТОГДА ДОБАВИТЬКДАТЕ(РаботникиОрганизаций.ПериодЗавершения, ДЕНЬ, -1)
           ИНАЧЕ РаботникиОрганизаций.Период
       КОНЕЦ,
       РаботникиОрганизаций.Сотрудник.ВидЗанятости,
       РаботникиОрганизаций.Организация,
       ВЫБОР
           КОГДА РаботникиОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                   И РаботникиОрганизаций.ПериодЗавершения < &НачалоПериода
               ТОГДА РаботникиОрганизаций.ПодразделениеОрганизацииЗавершения
           ИНАЧЕ РаботникиОрганизаций.ПодразделениеОрганизации
       КОНЕЦ,
       ВЫБОР
           КОГДА РаботникиОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                   И РаботникиОрганизаций.ПериодЗавершения < &НачалоПериода
               ТОГДА РаботникиОрганизаций.ДолжностьЗавершения
           ИНАЧЕ РаботникиОрганизаций.Должность
       КОНЕЦ,
       ВЫБОР
           КОГДА РаботникиОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                   И РаботникиОрганизаций.ПериодЗавершения < &НачалоПериода
               ТОГДА РаботникиОрганизаций.ЗанимаемыхСтавокЗавершения
           ИНАЧЕ РаботникиОрганизаций.ЗанимаемыхСтавок
       КОНЕЦ,
       РаботникиОрганизаций.Сотрудник.ВидДоговора
   ИЗ
       РегистрСведений.РаботникиОрганизаций.СрезПоследних(ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, -1) {(&НачалоПериода)}, ИСТИНА) КАК РаботникиОрганизаций
   ГДЕ
       ВЫБОР
               КОГДА РаботникиОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                       И РаботникиОрганизаций.ПериодЗавершения < &НачалоПериода
                   ТОГДА РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения
               ИНАЧЕ РаботникиОрганизаций.ПричинаИзмененияСостояния
           КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
       И РаботникиОрганизаций.Сотрудник.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство)
       И ИСТИНА
   {ГДЕ
       РаботникиОрганизаций.Организация.* КАК ГоловнаяОрганизация}) КАК ДатаНачала
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           РаботникиОрганизаций.Сотрудник.Физлицо КАК Физлицо,
           РаботникиОрганизаций.ОбособленноеПодразделение КАК ОбособленноеПодразделение,
           ВЫБОР
               КОГДА РаботникиОрганизаций.Период <> ДАТАВРЕМЯ(1, 1, 1)
                   ТОГДА ВЫБОР
                           КОГДА РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
                               ТОГДА КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(РаботникиОрганизаций.Период, ДЕНЬ, -1), ДЕНЬ)
                           ИНАЧЕ ДОБАВИТЬКДАТЕ(РаботникиОрганизаций.Период, СЕКУНДА, -1)
                       КОНЕЦ
               ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
           КОНЕЦ КАК Период,
           РаботникиОрганизаций.Организация КАК ГоловнаяОрганизация
       ИЗ
           РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
       ГДЕ
           РаботникиОрганизаций.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу)
           И РаботникиОрганизаций.Период МЕЖДУ &НачалоПериода И &КонецПериода
           И ВЫБОР
                   КОГДА РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
                       ТОГДА ДОБАВИТЬКДАТЕ(РаботникиОрганизаций.Период, ДЕНЬ, -1)
                   ИНАЧЕ РаботникиОрганизаций.Период
               КОНЕЦ <= ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, 1)
           И ИСТИНА
           И РаботникиОрганизаций.Сотрудник.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство)
       {ГДЕ
           РаботникиОрганизаций.Организация.* КАК ГоловнаяОрганизация}
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           РаботникиОрганизаций.Сотрудник.Физлицо,
           РаботникиОрганизаций.ОбособленноеПодразделениеЗавершения,
           ВЫБОР
               КОГДА РаботникиОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                   ТОГДА КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(РаботникиОрганизаций.ПериодЗавершения, ДЕНЬ, -1), ДЕНЬ)
               ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
           КОНЕЦ,
           РаботникиОрганизаций.Организация
       ИЗ
           РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
               ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК ПериодыПерекрытия
               ПО РаботникиОрганизаций.Сотрудник = ПериодыПерекрытия.Сотрудник
                   И РаботникиОрганизаций.Организация = ПериодыПерекрытия.Организация
                   И РаботникиОрганизаций.Период < ПериодыПерекрытия.Период
                   И РаботникиОрганизаций.ПериодЗавершения > ПериодыПерекрытия.Период
       ГДЕ
           РаботникиОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
           И РаботникиОрганизаций.ПериодЗавершения МЕЖДУ &НачалоПериода И &КонецПериода
           И ВЫБОР
                   КОГДА РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
                       ТОГДА ДОБАВИТЬКДАТЕ(РаботникиОрганизаций.ПериодЗавершения, ДЕНЬ, -1)
                   ИНАЧЕ РаботникиОрганизаций.ПериодЗавершения
               КОНЕЦ <= ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, 1)
           И ПериодыПерекрытия.Сотрудник ЕСТЬ NULL
           И ИСТИНА
           И РаботникиОрганизаций.Сотрудник.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство)
       {ГДЕ
           РаботникиОрганизаций.Организация.* КАК ГоловнаяОрганизация}) КАК ДатыОкончания
       ПО ДатаНачала.Физлицо = ДатыОкончания.Физлицо
           И ДатаНачала.Период < ДатыОкончания.Период
           И ДатаНачала.ГоловнаяОрганизация = ДатыОкончания.ГоловнаяОрганизация
{ГДЕ
   ДатаНачала.ПодразделениеОрганизации.*,
   ДатаНачала.Организация.* КАК Организация,
   ДатаНачала.ГоловнаяОрганизация.*,
   ДатаНачала.Должность.*,
   ДатаНачала.ВидЗанятости.*,
   ДатаНачала.Физлицо.*}

СГРУППИРОВАТЬ ПО
   ДатаНачала.Физлицо,
   ДатаНачала.Организация,
   ДатаНачала.Период,
   ДатаНачала.ВидЗанятости,
   ДатаНачала.ПодразделениеОрганизации,
   ДатаНачала.Должность,
   ДатаНачала.ЗанимаемыхСтавок,
   ДатаНачала.ВидДоговора