|
v7: Посчитать количество дней | ☑ | ||
---|---|---|---|---|
0
Deenka
05.10.12
✎
13:25
|
Помогите, плиз, решить задачку. Есть табличная часть. В ней есть поля Сотрудник, Объект, ДатаНач, ДатаКон.
Сотрудник на протяжении месяца мог иметь в распоряжении несколько Объектов. К примеру: Васильев Объект1 3.09.12-7.09.12 Васильев Объект2 3.09.12-7.09.12 Васильев Объект3 5.09.12-8.09.12 Васильев Объект4 17.09.12-26.09.12 Васильев Объект5 7.09.12-10.09.12 Нужно узнать сколько дней в месяце сотрудник был занят объектами. Взять период с 3.09.12 по 26.09.12 не могу, так как есть дни, которые выпадают с этого периода |
|||
1
Voronve
05.10.12
✎
13:27
|
ДатаКон-ДатаНач+1. И свернуть таблицу по сотруднику объекту и вычисленному выражению
|
|||
2
GLazNik
05.10.12
✎
13:27
|
А если в один период сотрудник имел в распоряжении несколько Объектов, то они должны суммироваться? или нет?
|
|||
3
Deenka
05.10.12
✎
13:30
|
не должны суммироваться, это один и тот же период
|
|||
4
GLazNik
05.10.12
✎
13:31
|
(3) тогда ответ в (1)
|
|||
5
Deenka
05.10.12
✎
13:33
|
но есть периоды, которые перекрываются
к примеру : 3.09.12-7.09.12 и 5.09.12-8.09.12 |
|||
6
Voronve
05.10.12
✎
13:40
|
(5) И ? Что из тебя постановку задачи тянуть приходиться ?
|
|||
7
Эльниньо
05.10.12
✎
13:40
|
(5) Ну и что?
Сворачиваешь по ("Субъект,Объект", "СкокаДней") |
|||
8
Deenka
05.10.12
✎
13:41
|
Поэтому таким методом рассчитать не получится(
|
|||
9
Voronve
05.10.12
✎
13:41
|
млять
|
|||
10
Deenka
05.10.12
✎
13:45
|
примеру:
Васильев Объект1 3.09.12-7.09.12 Васильев Объект2 3.09.12-7.09.12 Васильев Объект3 5.09.12-8.09.12 Васильев Объект4 17.09.12-26.09.12 Васильев Объект5 7.09.12-10.09.12 Работал с 3 по 10 число на Обьектах 1,2,3,5 = 8 дней с 17 по 26 на Объекте4 = 10 дней. Сотрудник был занят объектами - 18 дней. |
|||
11
Deenka
05.10.12
✎
13:51
|
3.09.12-7.09.12 = 5 дней
5.09.12-08.09.12 = 4 дня В сууме получится 9 дней, но если взять период 3.09.12-08.09.12, то должно быть 6 дней |
|||
12
Надсмотрщик
05.10.12
✎
13:59
|
Берешь ТЗ. Каждое число - отдельная колонка. Заносишь все периоды по строкам. Колонки где Итог = 0 удаляешь. Количество оставшихся колонок - твоя премия.
|
|||
13
1Сергей
05.10.12
✎
14:21
|
я бы сделал одну ТЗ по периодам, потом пробежался бы по ТЧ и заносил бы периоды в ТЗ с проверкой пересечения периодов и корректировкой данных
|
|||
14
Надсмотрщик
05.10.12
✎
14:23
|
(13) Там и нужна 1 ТЗ
|
|||
15
1Сергей
05.10.12
✎
14:32
|
(14) а что толку? по (12) ты будешь иметь ТЗ с числами, когда сотр был занят. А ему нужны периоды
|
|||
16
Mikeware
05.10.12
✎
14:36
|
(12) а зачем - "Каждое число - отдельная колонка"? Хватит колонки "число".
Заполняешь, сворачиваешь, сортируешь - и все (15) А в чем проблема? отсортируй, и пробегай, считай периоды... один цикл, и все... скукотищща... |
|||
17
Deenka
05.10.12
✎
14:42
|
нужно количество дней, когда сотрудник был занят
|
|||
18
Mikeware
05.10.12
✎
14:43
|
(17) ну и в чем проблема?
|
|||
19
Deenka
05.10.12
✎
14:45
|
Mikeware каким образом это сделать с одной колонкой?
|
|||
20
Mikeware
05.10.12
✎
14:51
|
(19) дату, свернуть, посчитать количество строк
|
|||
21
Mikeware
05.10.12
✎
14:54
|
+(20) надо, чтоб было известно, чем занят - бери индексированнуюТаблицу, и метод Группировать(), получишь объекты, которыми он занимался в каждый день...
|
|||
22
Прохожий
05.10.12
✎
14:56
|
Там и спискаЗначений хватит.
|
|||
23
Прохожий
05.10.12
✎
14:57
|
По РазмерСписка() определишь сколько дней.
|
|||
24
Прохожий
05.10.12
✎
14:57
|
Каждый работаный день заносишь как именованый элемент.
|
|||
25
Deenka
05.10.12
✎
15:02
|
Mikeware каким образом свернуть дату? колонки ДатаНач и Датакон?
|
|||
26
sidalexsandr
05.10.12
✎
15:04
|
3.09.12-7.09.12
7.09.12-10.09.12 Сделай так ДатаНачало-ДатаКонец // Установи переменным значения из первой строки 3.09.12-7.09.12 Пока цикл Если ДатаНачало > ДатаНачалоПоТекущемуОбъекту Тогда ДатаНачало = ДатаНачалоПоТекущемуОбъекту; КонецЕсли; Если ДатаКонец> ДатаКонецПоТекущемуОбъекту Тогда ДатаКонец = ДатаКонецПоТекущемуОбъекту; КонецЕсли; КонецЦикла; КоличествоДнейИтог = ДатаКонец - ДатаНачало; |
|||
27
Deenka
05.10.12
✎
15:11
|
sidalexsandr, нужно не рабочие дни не по обьекту, а вообще дни, когда он был занят
|
|||
28
Надсмотрщик
05.10.12
✎
15:12
|
(27) Ты (12) Читал?
|
|||
29
Mikeware
05.10.12
✎
15:14
|
(25) может, вам проще программиста поискать, а?
(28) да не нужна колонка на каждую дату... нужна просто колонка "дата" |
|||
30
Надсмотрщик
05.10.12
✎
15:16
|
(29) Мой вариант быстрее работает, и меньше кода писать.
|
|||
31
Mikeware
05.10.12
✎
15:18
|
(30) Спорим? :-)
|
|||
32
Mikeware
05.10.12
✎
15:20
|
(30) у меня 17 строк получилось...
|
|||
33
Mikeware
05.10.12
✎
15:31
|
+(32) пардон, 4 строки лишних. итого 13 строк.
|
|||
34
Deenka
05.10.12
✎
16:13
|
Большое спасибо всем за помощь! сделал за методом Mikeware
|
|||
35
Mikeware
05.10.12
✎
16:21
|
(34) сколько строк?
|
|||
36
Deenka
05.10.12
✎
16:32
|
18 строк
|
|||
37
Vladal
05.10.12
✎
16:33
|
А выходные считали?
|
|||
38
Mikeware
05.10.12
✎
16:36
|
Встречаются директора советского и японского предприятий. Предприятия изготавливают совершенно одинаковую продукцию и в одинаковых количествах. Директор нашего завода спрашивает:
- Сколько людей у тебя работает? - Девять. А у тебя? У нашего вообще-то пятьсот, но он говорит: - Десять! На следующий день японец говорит: - Слушай, я всю ночь думал и никак не могу понять: что у тебя этот десятый делает? © |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |