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

   // Установим параметры запроса
   Запрос.УстановитьПараметр("парамСсылка" , Ссылка);
   
   Доходы = Запрос.Выполнить().Выбрать();
   
   Конт = Константы.СотрПодразделения.Получить();
   // сформируем движения ВзаиморасчетыСРаботниками
   Пока Доходы.Следующий() Цикл
       Движение = НаборЗаписей.Добавить();
       
       // свойства
       Движение.Период     = КонецМесяца(ПериодРегистрации);
       Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
       
       // измерения
       Движение.Физлицо     = Доходы.Физлицо;
       
       // ресурсы
       Движение.СуммаУпр     = Доходы.СуммаДохода;
       
   КонецЦикла;
1 SherifSP
 
24.07.12
12:42
2 SherifSP
 
24.07.12
12:46
Ап
3 SherifSP
 
24.07.12
12:50
4 SherifSP
 
24.07.12
12:56
Ну подскажите что делать
5 Kreont
 
24.07.12
12:56
"Как отразить начисления в разрезе сотрудников"  = "На данный момент начисление ведется по каждому сотруднику"

или не так?
6 SherifSP
 
24.07.12
13:01
(5)Так
7 Kreont
 
24.07.12
13:02
(6) Если равно и "так", в чем вопрос? по скрину ведь и есть в разрезе сотр.:)
8 SherifSP
 
24.07.12
13:05
(7)Нужно общую сумму начислений отразить, а не по каждому сотруднику
9 Kreont
 
24.07.12
13:08
Тоесть надо в регистре где обязательным есть измерение сотрудник, его не указать?
10 SherifSP
 
24.07.12
13:12
Да
11 SherifSP
 
24.07.12
13:13
Его надо завязать на константу, то есть чтобы вместо сотрудника было значение константы
12 Kreont
 
24.07.12
13:14
Создать сотрудника "Итого" и на него все разнести :)
Хотя что потом будет в регистре и как он будет и где использоваться хз :)
13 SherifSP
 
24.07.12
13:15
(12)Совершенно верно
14 SherifSP
 
24.07.12
13:16
Если константа с типом строка, то при движении значение Сотрудник пустое, и система ругается
15 Kreont
 
24.07.12
13:16
Переделать запрос, убрать цикл, получить итого сумму из запроса и один раз внести запись в регистр.
16 SherifSP
 
24.07.12
13:17
Сумму в итог закинуть?
17 Kreont
 
24.07.12
13:17
(14) В справочнике создай сотрудника "ФИО" = "Итого Общак Черныйдень" и на него разноси, а не на строку
18 Kreont
 
24.07.12
13:18
"Доходы.Физлицо," и
"|СГРУППИРОВАТЬ ПО
   |    Доходы.Физлицо" убрать из запроса надо
19 SherifSP
 
24.07.12
14:15
(18)Работает, надо еще сделать по второму регистру тоже самое, но здесь уже сложнее, нельзя убрать сотрудника, потому что нет движений
Запрос.Текст =
   "ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    СтрокиНачисления.ВидРасчета,
   |    СтрокиНачисления.ВидРасчета.ЗачетОтработанногоВремени КАК ЗачетОтработанногоВремени,
   |    СтрокиНачисления.ВидРасчета.СпособРасчета КАК СпособРасчета,
   |    СтрокиНачисления.ДатаНачала КАК ПериодДействияНачало,
   |    ВЫБОР
   |        КОГДА СтрокиНачисления.ДатаОкончания <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
   |            ТОГДА КОНЕЦПЕРИОДА(СтрокиНачисления.ДатаОкончания, ДЕНЬ)
   |        ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
   |    КОНЕЦ КАК ПериодДействияКонец,
   |    СтрокиНачисления.НомерСтроки КАК НомерСтроки,
   |    СтрокиНачисления.Подразделение,
   |    СтрокиНачисления.Результат,
   |    СтрокиНачисления.Сотрудник,
   |    СтрокиНачисления.Сотрудник.Физлицо КАК Физлицо,
   |    СтрокиНачисления.ОтработаноДней КАК ОтработаноДней,
   |    СтрокиНачисления.ОтработаноЧасов КАК ОтработаноЧасов,
   |    Работники.ГрафикРаботы,
   |    ЕСТЬNULL(Работники.ГрафикРаботы.СуммированныйУчетРабочегоВремени, ЛОЖЬ) КАК СуммированныйУчетРабочегоВремени,
   |    СтрокиНачисления.Показатель1,
   |    СтрокиНачисления.Показатель2,
   |    СтрокиНачисления.Показатель3,
   |    СтрокиНачисления.Показатель4,
   |    СтрокиНачисления.Показатель5,
   |    СтрокиНачисления.Показатель6,
   |    СтрокиНачисления.Авторасчет КАК Авторасчет
   |ИЗ
   |    (ВЫБРАТЬ
   |        СтрокиНачисления.ВидРасчета КАК ВидРасчета,
   |        СтрокиНачисления.ВидРасчета.ЗачетОтработанногоВремени КАК ЗачетОтработанногоВремени,
   |        СтрокиНачисления.ВидРасчета.СпособРасчета КАК СпособРасчета,
   |        СтрокиНачисления.ДатаНачала КАК ДатаНачала,
   |        СтрокиНачисления.ДатаОкончания КАК ДатаОкончания,
   |        СтрокиНачисления.НомерСтроки КАК НомерСтроки,
   |        СтрокиНачисления.Подразделение КАК Подразделение,
   |        СтрокиНачисления.Результат КАК Результат,
   |        СтрокиНачисления.Сотрудник КАК Сотрудник,
   |        СтрокиНачисления.ОтработаноДней КАК ОтработаноДней,
   |        СтрокиНачисления.ОтработаноЧасов КАК ОтработаноЧасов,
   |        ПоследниеДаты.МаксПериод КАК МаксПериод,
   |        СтрокиНачисления.Показатель1 КАК Показатель1,
   |        СтрокиНачисления.Показатель2 КАК Показатель2,
   |        СтрокиНачисления.Показатель3 КАК Показатель3,
   |        СтрокиНачисления.Показатель4 КАК Показатель4,
   |        СтрокиНачисления.Показатель5 КАК Показатель5,
   |        СтрокиНачисления.Показатель6 КАК Показатель6,
   |        СтрокиНачисления.Авторасчет КАК Авторасчет
   |    ИЗ
   |        Документ.НачислениеЗарплатыРаботникам.Начисления КАК СтрокиНачисления
   |            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
   |                МАКСИМУМ(Работники.Период) КАК МаксПериод,
   |                СтрокиНачисления.Сотрудник КАК Сотрудник
   |            ИЗ
   |                Документ.НачислениеЗарплатыРаботникам.Начисления КАК СтрокиНачисления
   |                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Работники КАК Работники
   |                    ПО Работники.Период <= СтрокиНачисления.ДатаНачала
   |                        И СтрокиНачисления.Сотрудник.Физлицо = Работники.ФизЛицо
   |            ГДЕ
   |                СтрокиНачисления.Ссылка = &ДокументСсылка
   |            
   |            СГРУППИРОВАТЬ ПО
   |                СтрокиНачисления.Сотрудник) КАК ПоследниеДаты
   |            ПО СтрокиНачисления.Сотрудник = ПоследниеДаты.Сотрудник
   |    ГДЕ
   |        СтрокиНачисления.Ссылка = &ДокументСсылка) КАК СтрокиНачисления
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Работники КАК Работники
   |        ПО Работники.Период = СтрокиНачисления.МаксПериод
   |            И СтрокиНачисления.Сотрудник.Физлицо = Работники.ФизЛицо
   |
   |УПОРЯДОЧИТЬ ПО
   |    НомерСтроки";

   Возврат Запрос.Выполнить();
20 SherifSP
 
24.07.12
14:37
21 SherifSP
 
24.07.12
14:41
Ап
22 sergeev-ag-1977
 
24.07.12
14:53
убрать в запросах "Доходы.Физлицо" и "Физлицо".
А в обработке проведения вместо " Движение.Физлицо      = Доходы.Физлицо;"
поставить прямую ссылке " Движение.Физлицо      = Константа_на_физ_лицо".
23 sergeev-ag-1977
 
24.07.12
14:56
Но мутная какая-то задача однако.
Сразу куча вопросов получается. Зачем так нужно? Тогда заведите одного работника по ФИО "Итого Итого Итогович" и считайте ему одному ЗП. Нахрена делить не несколько человек первичку, что бы в отчетах потом это схлопнуть? Если для того что бы бухгалтер или экономист не видел кому сколько так это решается другим методом. Можно услышать изначальную постановку задачи?
24 SherifSP
 
24.07.12
14:59
(23) Вы все поняли сами)
25 SherifSP
 
24.07.12
15:00
Одного не нужно, пользователь хочет видеть общую сумму по подразделению
26 SherifSP
 
24.07.12
15:05
(22)Сделал так как написал, все равно та же проблема
27 SherifSP
 
24.07.12
15:06
Функция СформироватьЗапросПоНачисления()

   Запрос = Новый Запрос;
   
   // Установим параметры запроса
   Запрос.УстановитьПараметр("ДокументСсылка", Ссылка);
   Запрос.УстановитьПараметр("ПустаяДата", Дата('00010101'));

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

   
   Возврат Запрос.Выполнить();

КонецФункции // СформироватьЗапросПоНачисления()
28 SherifSP
 
24.07.12
15:06
ВыборкаПоНачислениям = СформироватьЗапросПоНачисления().Выбрать();

           Пока ВыборкаПоНачислениям.Следующий() Цикл

               // проверим очередную строку табличной части
               ПроверитьЗаполнениеСтрокиНачисления(ВыборкаПоНачислениям, Отказ, Заголовок);
           
               Если НЕ Отказ Тогда
                   // Заполним записи в наборах записей регистров
                   ДобавитьСтрокуНачислений(ВыборкаПоНачислениям, ВыборкаПоШапкеДокумента, Движения.УправленческиеНачисления);
               КонецЕсли;
           КонецЦикла;
29 SherifSP
 
24.07.12
15:10
(
30 Kreont
 
24.07.12
15:12
(25) Сделай отчет что б показать "общую сумму по подразделению", а не править логику документов по проведению
31 SherifSP
 
24.07.12
15:13
(30)Задание править логику документов
32 SherifSP
 
24.07.12
17:56
(27)Тяну сотрудника с константы, не получается(
33 SherifSP
 
24.07.12
18:02
34 Aprobator
 
24.07.12
18:04
что за бред?
35 SherifSP
 
24.07.12
18:05
Да вот сам думаю, но задание поставили
36 Aprobator
 
24.07.12
18:06
В рамках документа Начисление заработной платы.
37 SherifSP
 
24.07.12
18:06
У меня в разрезе сотрудника сумма, надо сотрудника на константу и сумму общую
38 SherifSP
 
24.07.12
18:07
Чтобы 1 строкой было
39 Aprobator
 
24.07.12
18:07
конечная цель то какая? ИМХО, нужен отчет и все.
40 SherifSP
 
24.07.12
18:07
нет сказали править типовый
41 Aprobator
 
24.07.12
18:07
в документе начисление заработной платы?????
42 Aprobator
 
24.07.12
18:08
а серпом по одному месту?
43 SherifSP
 
24.07.12
18:08
А именно запрос нужно переделать
44 Aprobator
 
24.07.12
18:08
НДФЛ и прочие налоги как потом считать будешь?
45 SherifSP
 
24.07.12
18:08
(41) Да
46 SherifSP
 
24.07.12
18:09
(44)Это задание, его не будут в производство внедрять, только ради проверки
47 Aprobator
 
24.07.12
18:09
я уж молчу про расчет по среднему и т.п.. Я бы понял про отражение начислений в проводках. А тут, просто откровенная фигня.
48 Aprobator
 
24.07.12
18:10
(46) а млин. Так бы сразу и сказал.
49 SherifSP
 
24.07.12
18:10
По первому заданию норм, а второе запутанное
50 SherifSP
 
24.07.12
18:11
Если бы там с запроса я получал таблицу значений, то без проблем, свернул бы по сотруднику и все)
51 Aprobator
 
24.07.12
18:13
по запросу тупо:
Доходу.Физлицо в сад из ВЫБРАТЬ и Группировать. В движения регистра в сотра свою константу пихаешь и все.
52 Aprobator
 
24.07.12
18:14
вернее при заполнении дока.
53 SherifSP
 
24.07.12
18:15
(52)Нельзя
54 SherifSP
 
24.07.12
18:16
(52)Все сделать в обработке проведения
55 Aprobator
 
24.07.12
18:16
в обработке проведения, а там измерение точно тип Сотрудник, а не ФизЛицо?
56 SherifSP
 
24.07.12
18:17
(51)Это по запросу?
57 Aprobator
 
24.07.12
18:17
другой причины, что с константы тянется, но не лезет в измерение - не вижу )
58 SherifSP
 
24.07.12
18:17
(55)Не помню, вроде физ лицо
59 Aprobator
 
24.07.12
18:17
(56) ну дык.
60 SherifSP
 
24.07.12
18:18
Я сотрудника тяну с константы, потом объединяю левым соединением табличную часть документа и константу по сотруднику
61 SherifSP
 
24.07.12
18:19
(60)Но не получилось так
62 SherifSP
 
24.07.12
18:20
(51)Подробно можно?
63 Aprobator
 
24.07.12
18:26
(60) если запрос как в (0), то в (51) итак все ясно. Если как в (27)
вместо СтрокаНачисления.Сотрудник - &СотрудникПодмены.
64 SherifSP
 
24.07.12
22:35
(63)Всеравно выводит в 2 строки(
65 SherifSP
 
24.07.12
22:57
(64) Шериф вот код который тебе нужен

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

   Возврат Запрос.Выполнить();


И в  - Процедура ПроверитьЗаполнениеСтрокиНачисления(ВыборкаПоСтрокамДокумента, Отказ, Заголовок = "")
Первая строка должна выглядеть так -  СтрокаНачалаСообщенияОбОшибке = "В строке номер "" табл. части ""Начисления"": ";

Спасибо не нада)
66 Aprobator
 
25.07.12
10:16
(65) не взлетит. Подразделение, График, свернутся не дадут по одному сотруднику. Да и такой способ подстановки константы не взлетит.
67 SherifSP
 
25.07.12
12:02
(66) Взлетело)