Имя: Пароль:
1C
1C 7.7
v7: ЗиК. Получить сумму по ВР за период
0 2S
 
15.09.17
14:29
Забывается...
напомните, какой функцией получить сумму по периоду неполного месяца
Например, ВР "оплата по табелю",получить сумму за период с 15.07.17 по 29.07.17.
1 NikVars
 
15.09.17
15:10
ВыбратьЗаписи(<?>,)
Синтаксис:
ВыбратьЗаписи(<Начало>,<Окончание>)
Назначение:
Выбрать записи, действующие в определенном временном интервале.
Параметры:
<Начало> - дата начала периода.
<Окончание> - дата окончания периода.
Возвращаемое значение:
1 - если операция успешно выполнена и выборка не пуста, т.е. содержит хоть одну запись, и 0 - в противном случае
Замечание:
Метод работает только для переменных, созданных функцией СоздатьОбъект.
Подробнее см. в документации, глава ''Работа с
2 Gucci76
 
15.09.17
15:21
(1) думаю не о том вопрос
3 Gucci76
 
15.09.17
15:28
Вроде в глобальнике был механизм (через процедуры и функции) , который мог сумму записи за весь месяц разделить на интервалы и получить соответствующую сумму
4 2S
 
15.09.17
15:29
(1) конечно не о том

Мне кажется была описана такая функция, может я и ошибаюсь.
Пока вижу решение описать служебный ВР с расчетом по базе. В базу закинуть нужные мне ВР (оплата по табелю)
и описать расчет через
глПолучитьБазуВР(Сотрудник, ВР, ТаблицаРеквизитов.Дата, СледующаяДата)

Это все через Ж...
5 2S
 
15.09.17
15:31
т.е. получаю базу из нужных мне ВР за период для некого служебного ВР
6 Gucci76
 
15.09.17
15:38
Наверно в стаже есть подобный расчет
Ведь дата стажа может измениться в середине месяца - приходится выделять из оклада сумма за "полмесяца"
7 Gucci76
 
15.09.17
15:38
Но я уже тоже не помню как назвыается
8 Gucci76
 
15.09.17
15:38
Знаю первые две буквы.... ))))
9 2S
 
15.09.17
15:43
угу, вспоминаю понемногу )

        ТаблицаРеквизитов = глПолучитьТаблицуИсторииРеквизитов(Сотрудник,ДатаНачала,ДатаОкончания,"СостояниеФизлица,Подразделение");
        КоличествоСтрок = ТаблицаРеквизитов.КоличествоСтрок();
        Для Номер = 1 по КоличествоСтрок Цикл
            ТаблицаРеквизитов.ПолучитьСтрокуПоНомеру(Номер);
            СледующаяДата = ?(Номер<КоличествоСтрок,ТаблицаРеквизитов.ПолучитьЗначение(Номер+1,"Дата")-1,ДатаОкончания);
            
            // т.к. значений может быть несколько, берем последнее значение на дату
            Если (Номер < КоличествоСтрок) и (ТаблицаРеквизитов.Дата >= ?(Номер<КоличествоСтрок,ТаблицаРеквизитов.ПолучитьЗначение(Номер + 1, "Дата"), ДатаОкончания)) Тогда
                Продолжить
            КонецЕсли;  
                          
            Если ПустоеЗначение(ТаблицаРеквизитов.СостояниеФизлица) = 1 Тогда
                Продолжить;    
            КонецЕсли;
            
            Если ТаблицаРеквизитов.Подразделение = Подразделение Тогда
                ТЗСотрудников.НоваяСтрока();    
                ТЗСотрудников.Номер = НомПП;
                ТЗСотрудников.Сотрудник = Сотрудник;
                ТЗСотрудников.ПериодРаботыС = ТаблицаРеквизитов.Дата;
                ТЗСотрудников.ПериодРаботыПо = СледующаяДата;    
                      
                БазаОтрезка = глПолучитьБазуВР(Сотрудник, ВидРасчета.ПроизвольнаяДоплата77, ТаблицаРеквизитов.Дата, СледующаяДата);
                ТЗСотрудников.СуммаПоТабелю = БазаОтрезка;
                
                НомПП = НомПП + 1;
            КонецЕсли;    
            
        КонецЦикла;
10 Gucci76
 
15.09.17
15:45
Еще есть кто с 7.7 работает?
11 2S
 
15.09.17
15:46
мля, работает код )))
да, оказывается есть, обратились динозавры, обработка понадобилась.
12 Gucci76
 
15.09.17
15:49
Объем большой? Сколько сотрудников считают?
13 2S
 
15.09.17
15:50
(12) "таки почему Ви спрашиваете?"
переходят на 3-ку, временно нужны обработки
14 Gucci76
 
15.09.17
15:53
Догадку проверить.
С большим количеством сотрудников уже давно ушли с 7.7
Осталиьс только небольшшие контрки