Форум программистов, компьютерный форум CyberForum.ru

1С: Собственные программы

Войти
Регистрация
Восстановить пароль
 
Skaylans23
0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 1
#1

1C 7.x Итоги по отработанному времени! - 1С

10.01.2017, 19:11. Просмотров 164. Ответов 0
Метки нет (Все метки)

У меня есть процедура, которая рассчитывает количество отработанного времени и мне надо: 1)итог по отработанному времени сотрудника и 2)итог по филиалу. Какой код нужно написать чтобы сформировать данные итоги. Заранее спасибо!

Вот кусочек моей программы куда я бы хотел вставить итоги:

Кликните здесь для просмотра всего текста
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
ТЧ.Сортировать("Код,ДатаСоб,Время");
    ТЧ2.НоваяКолонка("Филиал",,,,,5,,);
    ТЧ2.НоваяКолонка("Код",,,,,8,,);
    ТЧ2.НоваяКолонка("ДатаСоб",,,,,5,,);
    ТЧ2.НоваяКолонка("Приход",,,,,5,,);
    ТЧ2.НоваяКолонка("Уход",,,,,5,,);
    ТЧ2.НоваяКолонка("КолОтрМин",,,,,5,,);
     
    Час2 = 0;
    Мин2 = 0;
    СекОстМин= 0; 
    Сек2 = 0;
    
    Час3 = 0;
    Мин3 = 0;
    СекОстМин3 = 0; 
    Сек2 = 0;
    
    Час4 = 0;
    Мин4 = 0;
    СекОстМин4 = 0; 
    Сек4 = 0;
    
    ТекКод = "";
    ТекДата = "";
    ТекВремя = "";
    ТекТип = "";
    
 
    ТЧ.ВыбратьСтроки();
    
    Пока ТЧ.ПолучитьСтроку() = 1 Цикл
        
        Если ТекКод = "" Тогда
            
            ТекКод = ТЧ.Код;
            ТекДата = ТЧ.ДатаСоб;
            ТекТип = ТЧ.Тип;
            
            Если ТекТип = "Приход" Тогда
                
                ТекВремя = ТЧ.Время;
                
            Иначе
                
                ТЧ2.НоваяСтрока();
                ТЧ2.Филиал = ТЧ.Филиал;
                ТЧ2.Код = ТЧ.Код;
                ТЧ2.ДатаСоб = ТЧ.ДатаСоб;
                ТЧ2.Приход = "0";
                ТЧ2.Уход = ТЧ.Время;
                ТЧ2.КолОтрМин = "0";
                
            КонецЕсли;
            
        Иначе
            
            Если (ТекКод = ТЧ.Код) и (ТекДата = ТЧ.ДатаСоб) Тогда
                
                Если (ТЧ.Тип = "Уход") и (ТекТип = "Приход") Тогда
                    
                    ТЧ2.НоваяСтрока();
                    ТЧ2.Филиал = ТЧ.Филиал;
                    ТЧ2.Код = ТЧ.Код;
                    ТЧ2.ДатаСоб = ТЧ.ДатаСоб;
                    ТЧ2.Приход = ТекВремя;
                    ТЧ2.Уход = ТЧ.Время;
                    ТЧ2.КолОтрМин = ТЧ2.Уход - ТЧ2.Приход;
                    
                    Час4 = Цел(Число(ТЧ2.Приход)/3600);
                    СекОстМин4 = Число(ТЧ2.Приход)%3600; 
                    Мин4 = Цел((Число(ТЧ2.Приход) - Час4*3600)/60);
                    Сек4 = СекОстМин4%60;
                    
                    ТЧ2.Приход = ?(СтрДлина(Строка(Час4))=2,Строка(Час4),"0" + Строка(Час4)) + ":" + ?(Строка(Мин4)=2,Строка(Мин4),"0" + Строка(Мин4)) + ":" + ?(Строка(Сек4)=2,Строка(Сек4),"0" + Строка(Сек4));
                    
                    Час3 = Цел(Число(ТЧ2.Уход)/3600);
                    СекОстМин3 = Число(ТЧ2.Уход)%3600; 
                    Мин3 = Цел((Число(ТЧ2.Уход) - Час3*3600)/60);
                    Сек3 = СекОстМин3%60;
                    
                    ТЧ2.Уход = ?(СтрДлина(Строка(Час3))=2,Строка(Час3),"0" + Строка(Час3)) + ":" + ?(Строка(Мин3)=2,Строка(Мин3),"0" + Строка(Мин3)) + ":" + ?(Строка(Сек3)=2,Строка(Сек3),"0" + Строка(Сек3));
                    
                    Час2 = Цел(Число(ТЧ2.КолОтрМин)/3600);
                    СекОстМин2 = Число(ТЧ2.КолОтрМин)%3600; 
                    Мин2 = Цел((Число(ТЧ2.КолОтрМин) - Час2*3600)/60);
                    Сек2 = СекОстМин%60;
                    
                    ТЧ2.КолОтрМин = ?(СтрДлина(Строка(Час2))=2,Строка(Час2),"0" + Строка(Час2)) + ":" + ?(Строка(Мин2)=2,Строка(Мин2),"0" + Строка(Мин2)) + ":" + ?(Строка(Сек2)=2,Строка(Сек2),"0" + Строка(Сек2));
                    
                    ТекКод = ТЧ.Код;
                    ТекДата = ТЧ.ДатаСоб;
                    ТекТип = ТЧ.Тип;
                    
                ИначеЕсли ТЧ.Тип = "Приход" Тогда
                    
                    ТекКод = ТЧ.Код;
                    ТекДата = ТЧ.ДатаСоб;
                    ТекТип = ТЧ.Тип;
                    ТекВремя = ТЧ.Время;
                    
                КонецЕсли;
                
            Иначе
                
                Если ТекТип = "Приход" Тогда
                    
                    ТЧ2.НоваяСтрока();
                    ТЧ2.Филиал = ТЧ.Филиал;
                    ТЧ2.Код = ТекКод;
                    ТЧ2.ДатаСоб = ТекДата;
                    ТЧ2.Приход = ТекВремя;
                    ТЧ2.Уход = "0";
                    ТЧ2.КолОтрМин = "0";
                    
                    Час4 = Цел(Число(ТЧ2.Приход)/3600);
                    СекОстМин4 = Число(ТЧ2.Приход)%3600; 
                    Мин4 = Цел((Число(ТЧ2.Приход) - Час4*3600)/60);
                    Сек4 = СекОстМин4%60;
                    
                    ТЧ2.Приход = ?(СтрДлина(Строка(Час4))=2,Строка(Час4),"0" + Строка(Час4)) + ":" + ?(Строка(Мин4)=2,Строка(Мин4),"0" + Строка(Мин4)) + ":" + ?(Строка(Сек4)=2,Строка(Сек4),"0" + Строка(Сек4));
                    
                КонецЕсли;
                
                ТекКод = ТЧ.Код;
                ТекДата = ТЧ.ДатаСоб;
                ТекТип = ТЧ.Тип;
                
                Если ТЧ.Тип = "Приход" Тогда
                    
                    ТекВремя = ТЧ.Время;
                    
                Иначе
                    
                    ТЧ2.НоваяСтрока();
                    ТЧ2.Филиал = ТЧ.Филиал;
                    ТЧ2.Код = ТекКод;
                    ТЧ2.ДатаСоб = ТекДата;
                    ТЧ2.Приход = "0";
                    ТЧ2.Уход = ТЧ.Время;
                    ТЧ2.КолОтрМин = "0";
                    
                    Час3 = Цел(Число(ТЧ2.Уход)/3600);
                    СекОстМин3 = Число(ТЧ2.Уход)%3600; 
                    Мин3 = Цел((Число(ТЧ2.Уход) - Час3*3600)/60);
                    Сек3 = СекОстМин3%60;
                    
                    ТЧ2.Уход = ?(СтрДлина(Строка(Час3))=2,Строка(Час3),"0" + Строка(Час3)) + ":" + ?(Строка(Мин3)=2,Строка(Мин3),"0" + Строка(Мин3)) + ":" + ?(Строка(Сек3)=2,Строка(Сек3),"0" + Строка(Сек3));
                    
                КонецЕсли;
                
            КонецЕсли;
            
        КонецЕсли;  
        
    КонецЦикла;
    
    ТЧ2.Сортировать("Филиал,Код,ДатаСоб");
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2017, 19:11     1C 7.x Итоги по отработанному времени!
Посмотрите здесь:

Сохранить итоги отчета 1С
Бухгалтерские итоги 1С 1C 7.x
1С Цена по времени
1С 1C 8.x Макеты в СКД - Нужно вывести итоги по некоторым полям
1С 1C 8.x (тонкий) Группировка и Итоги на СКД
Итоги в СКД (разъехалось расположение итогов) 1С 1C 8.x (тонкий)
1С 1C 8.x Как убрать итоги в СКД
1С Шкала времени планировщика
1С 1C 8.x Получить итоги из отчета СКД
СКД итоги по группировке вида "Поле.поле2" 1С
Момент времени между моментами времени 1С
1С Как посчитать итоги по каждой накладной

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 20:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru