Имя: Пароль:
1C
1С v8
Вопрос по ЗУП-у
,
0 не_1Снег
 
09.01.13
13:40
ЗУП типовая 2.5.60.1

При нажатии на кнопку "Заполнить в документе ЗарплатаКВыплатеОрганизаций, не попадают сотрудники-внутренние совместители в данном подразделении. Если в шапке документа подразделение не указывать, то работники появляются.

В чем проблема?
1 не_1Снег
 
09.01.13
13:45
Вот запрос:


Функция ПолучитьФизлицаСотрудниковПодразделенияНаДату(Организация, ПодразделениеОрганизации = Неопределено, Дата, ФизЛица = Неопределено)

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

   Резутьтат = Запрос.Выполнить().Выгрузить();

   Возврат(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Физлицо"));    
   
КонецФункции
2 neckto
 
09.01.13
13:50
Отбор ни о чем не говорит?:
Сотрудник.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство)
3 не_1Снег
 
09.01.13
13:52
(2)Тогда зачем это сделано? Начислять зарплату в подразделении нужно всем
4 dva1c
 
09.01.13
13:59
(2) Отличный "разбор полетов"! +10
(3) Не нравится? Переделывай! )
5 не_1Снег
 
09.01.13
14:04
Исправить легко, но зачем сделано именно так? Не похоже вроде на ошибку
6 Amra
 
09.01.13
14:13
(5) Ну заполнишь ты физлицами, работающими совместителями, и что дальше? Взаиморасчеты ведутся с физлицом, а не с сотрудником. Остатков к выплате по сотруднику вроде ж не получить, только по физлицу вцелом
7 neckto
 
09.01.13
14:13
Учет взаиморасчетов ведется в разрезе физических лиц, а не сотрудников. Суммы внутреннего совместителя к выплате попадут в подразделение, в котором числится основной сотрудник.
(3) Понимаешь разницу между "начислить" зарплату и "выплатить" зарплату?
8 iceman2112
 
09.01.13
14:20
(6), (7) Автор вообще не об этом. При чем здесь это?
Какая разница работает у меня дядя Петя в подразделение 1 на основном и в подразделение 2 на внутреннем.
Документ произведет заполнение на ДВЕ записи по двум разным сотрудникам с одни физ.лицом или с двумя разными.
Он спрашивает почему одна запись? (я правильно понял?)

Проверяй все ли правильно "оформил". Ничего исправлять не нужно
(4) насоветуют
9 Amra
 
09.01.13
14:23
(8) Потому что нет данных по начислениям в разрезе сотрудников! Начисления как и выплаты по физлицу, и определить сколько нужно выплатить по одному подразделению и сколько по второму нельзя, именно про это в (6) и (7)
10 не_1Снег
 
09.01.13
14:24
Если подразделение не задавать, то сотрудник-совместитель появится и начисления тоже
11 не_1Снег
 
09.01.13
14:26
(9) а где проверить начислениям в разрезе сотрудников?
12 Amra
 
09.01.13
14:29
(11) Ведомости...
(10) Да, но начисления все, по физлицу как таковому.
13 iceman2112
 
09.01.13
14:31
(9) да причем тут отражение в регистрах или где то еще речь про документ и его заполнение. Если нанял я сотрудника, без разницы как, я что не мог сказать сколько ему будет начислено?
14 iceman2112
 
09.01.13
14:32
(0) возьми любую типовую ЗУП. Создай одно физлицо, два сотрудника, в разные подразделения. Сделай этот документ - будет 2 записи по двум разным сотрудникам.
15 iceman2112
 
09.01.13
14:32
и ищи отличия
16 Amra
 
09.01.13
14:33
(13) Сколько начислено - будет, а вот сколько осталось выплатить - только по всему физлицу.
17 iceman2112
 
09.01.13
14:34
а речь об этом?
18 не_1Снег
 
09.01.13
14:34
или запросом я не проникся, ведь с таким условием опадает сотрудник с свое родное подразделение при заполнении

Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство)
19 не_1Снег
 
09.01.13
14:35
(14) ЗУП как раз типовая
20 Amra
 
09.01.13
14:35
(18) Чегось?
21 iceman2112
 
09.01.13
14:36
(18) да это гадание, ты понимаешь? Консоль запросов, тут всего 6 параметров
22 не_1Снег
 
09.01.13
15:24
В консоли запросов, после изменения условия, работник появляется

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

Но в самом документе, с таким измененным запросом, получаю ошибку:  Не обнаружены данные для записи в табличную часть документа.

Пока не ясно где собака зарыта. В докуметах начисления у данного работника подразделение присутствует.
23 не_1Снег
 
09.01.13
15:25
(Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство)) ИЛИ
               (Сотрудник.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство))

так теперь
24 Amra
 
09.01.13
15:26
(22) Теперь расчитай выплату по этому подразделению. И проделай тоже самое по второму, где работает это физлицо. Удивишься.
25 neckto
 
09.01.13
15:28
(23) Объясни, ты чего добиваешься?
26 не_1Снег
 
09.01.13
15:34
(24) Не заполняется в документе работник и расчетчица вынуждена вбивать его руками
27 не_1Снег
 
09.01.13
15:35
(24) Проделал. Удивляться нечему. А что должно было произойти?
28 Amra
 
09.01.13
15:40
(27) и что, суммы к выплате в обоих документах полностью верные? то бишь не ручками, а автоматом
29 не_1Снег
 
09.01.13
15:45
(27)щас гляну, я перепровел, но не перезаполнял
30 iceman2112
 
09.01.13
17:02
нужно просто взять посмотреть все временные таблицы запроса (С КОНЦА их тут 4-6) и выяснить почему у тебя твой сотрудник не попадает в ту или иную таблицу и должен ли попадать И ВСЁ. 10 минут.
31 iceman2112
 
09.01.13
17:05
в итоге выясниться, что "расчетница" что то не так сделала
32 не_1Снег
 
09.01.13
18:28
Непонятно, почему в запросе на заполнение стоит фильр на совместителей. В документе расчета зарплаты этого нет, и заполняются совместители автоматом и рассчитываются, а вот создать документ на выплату и заполнить - не получается. Может так и задумывалось в ЗУПе?
33 Amra
 
09.01.13
18:30
(32) потому что перечитай внимательно (6)и (7), что там непонятно написано?
34 не_1Снег
 
10.01.13
10:02
(33)Т.е. ВЫПЛАТА зарплаты должна делаться только по основному месту работы внутреннего совместителя?
35 neckto
 
10.01.13
10:05
(34) По-моему в (7) ровно это же написано.
36 не_1Снег
 
10.01.13
10:10
(35)А где то в официальных материалах от 1С это есть?
37 NDN
 
10.01.13
10:16
Тебе методички не помогут. Так как ты не сможешь понять написанные там текст, ровно как не можешь понять что тут тебе на протяжении 36-и постов расписывают.
Попробую в двух словах: деньги начисляют сотрудникам (по сути виртуальным объектам). А выплачивают - физлицу из мяса и крови
38 Serg_1960
 
10.01.13
10:29
Позабавило (36) "А где-то в официальных материалах это есть?". Хотите почитать? Читайте официальные материалы. Например - законодательство РФ :)

Начисляется - по сотрудникам, а получает деньги - физическое лицо. Это не "фишка от 1С" - это 1С реализовало в ЗУПе требования законодательства.
39 almar
 
10.01.13
10:37
(38) Самое забавное то, что в ЗУП 3 будет ровно наоборот. Все взаиморасчеты будут по сотрудникам. Вот где ломки начнутся!
40 не_1Снег
 
10.01.13
10:44
Делаю сам в тестовой базе следующее:

Начисляю работнику за этот месяц запплату по основному месту работы.

Начисляю ему по подразделению, где он внутренний совместитель.

Создаю документ к выплате по его основному месту работы, но туда попадают только сумма, начисленная по основному месту.
Начисление по внутреннему совместительству не попало, нег этой суииы и в расчетном листке.

В чем дело?
41 не_1Снег
 
10.01.13
12:34
В какую сторону копать?
42 kumena
 
10.01.13
13:33
(39) Откуда такая информация? Можно уже где-нибудь трешку взять?
43 kumena
 
10.01.13
13:34
(41) копай в сторону регистра ВзаиморасчетыСРаботникамиОрганизаций
44 не_1Снег
 
10.01.13
14:16
(43)Туда я уже глянул, там аккуратно лежат 2 записи с правильными начисленными суммами, т.е. по основному месту работника, и по месту-внутреннему совместителю.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.