Имя: Пароль:
1C
 
сумма плановых начислений УПП
0 Loss_I
 
30.08.19
23:43
Напишу сразу, это мне прислали тестовое задание такое. Копирую как есть.

Используя конфигурацию 1C:УПП 8.3.12.1529, напишите запрос, выдающийРаботающих сотрудников, общая сумма чьих плановых начислений хотя бы раз удвоилась за год за все время их работы.

Как вы поняли это задание? Получить начисленную сумму плановых начислений на начало года приема, потом на конец этого года, сравнить эти суммы, потом так же за каждый следующий календарный год?
Но может же же в течение года изменяться сумма?
1 Amra
 
30.08.19
23:52
Я бы ответил что такой конфигурации УПП не существует в природе
2 Loss_I
 
30.08.19
23:54
так понятно, что это платформу имели в виду. Тоже хотела так ответить.
3 RomanYS
 
31.08.19
00:36
(0) Почему на начало/конец года? Любые два среза между которыми меньше года и двукратная разница.
Тут самое интересное - получить эти срезы, с учетом структуры регистров особенно (ПериодЗавершения, ....)
4 Loss_I
 
31.08.19
04:12
А как понять за год, но в то же время за все время работы? Если работает 1.5 года, но увеличилось через 1 год и 3 месяца от начала работы?
5 Loss_I
 
31.08.19
04:17
т.е. увеличилось только на 2-м году работы?
6 RomanYS
 
31.08.19
15:15
(4)>> А как понять за год, но в то же время за все время работы?
Значит за всё время работы есть две даты, разность между которыми меньше года, а сумма отличается в два раза.

Если разовое двукратное увеличение, то вообще не важно когда оно произошло. Подходит "по определению".
7 Фрэнки
 
31.08.19
15:36
А если запрашивать только из еще работающих на дату окончания периода, то может быть достаточно отсчитать только последний год, а не вообще скользящим периодом по 12 месяцев?
8 RomanYS
 
31.08.19
15:39
(7) и где в такой интерпретации "за все время их работы"?
9 Фрэнки
 
31.08.19
15:42
Это надо еще на структуру метаданных смотреть. Насколько помню, там должен быть регистр сведений в которые плановые начисления регаются. Можно выбирать действующие на каждую дату сколько угодно раз в ВТ и получающиеся ВТ соединять и сравнивать.

Т.е. написать можно. Но конкретно что не предложить, а надо в привязке к данным.

(8) Но ведь удвоилась за год - нужно тогда быть уверенным за какую дату нужно брать точку отсчета года. Можно от начала вперед, а можно от текущей взад
10 NorthWind
 
31.08.19
16:25
Хм... Если стоит задача показать вакансию, но при этом никого не взять - просто идеальное тестовое задание: практической пользы ноль и нихрена непонятно как делать.
11 RomanYS
 
31.08.19
16:30
(10) Да, ладно. Мне наоборот понравилось:
сформулировано предельно просто,
требуется
знание и понимание структуры регистров конкретной типовой,
офигенные навыки работы с запросами (с учетом той самой структуры регистров УПП/ЗУП2.5).

Задачка ни разу не простая - т.е. не для собеседования. А как тестовая даже очень показательная.
12 ILM
 
гуру
31.08.19
17:07
Что-то мешает добавить к каждой дате планового начисления период и посмотреть будут ли плановые значения этой эаписи больше равны чем в 2 раза. Даже в одном соединении можно будет это сделать
13 ILM
 
гуру
31.08.19
17:10
(9) Может разность дат годовых меньше 1.
14 RomanYS
 
31.08.19
17:24
(12)
1. "сумма начислений" говорит о том, что видов начислений больше одного. И изменяться они могут в разные даты.
2. В ЗУП2.5(УПП) есть временные плановые начисления и соответственно в регистре ПериодЗавершения, Показатель1Завершения....

С учетом этих двух пунктов собрать интервальную таблицу с суммой всех начислений задача посильная очень не многим. А дальше да - одно соединение до результата, соединение кстати тоже весьма не банальное.
15 NorthWind
 
31.08.19
17:42
(9) по идее, раз не сказано иного, то год календарный - с 1 января по 31 декабря. Стандартный период, тот, который принято использовать в группировках.
16 ILM
 
гуру
31.08.19
18:05
Ну нафига такой запрос в реальной жизни нужен? ))) Где-то валялся отчет на сколько % повысили начисления сотрудникам между любыми периодами. Директор по персоналу поигрался и бросил.
17 RomanYS
 
31.08.19
18:14
(16) В реальной жизни такой запрос нужен для проверки знаний и навыков кандидата. Потому что если у одинесника этих знаний не будет, директор возможно будет играться с х.ней и возможно примет х.вые решения.
18 Amra
 
31.08.19
19:17
(11) Задачка элементарная. Возьму на вооружение на прогов на ЗУП
19 RomanYS
 
31.08.19
19:29
(18) В ЗУП3 с интервальными регистрами может элементарная. В УПП вполне себе приличная задачка.
В любом случае для тестирования ЗУПеров очень в тему.
20 ILM
 
гуру
31.08.19
19:29
(18) А ну-ка напиши))))
21 Фрэнки
 
31.08.19
19:49
(18) тока не сбивай тестируемых совсем с толку - определяй им сразу откуда интервалы брать - или от начала, или от текущего дня
22 Dmitry77
 
31.08.19
23:11
Задача сверх мутная.

В плановых начислений может не быть суммы.
только процент.

нада
1. отобрать запросом всех работающих.
2. найти начало их работы.
3. определить периоды в год. (они будут свои для каждого работающего).
определить сумму плановых начислений на начало и на конец.
4. понять как быть с начислением которое ввели на месяц в середине периода.
5. сравнить плановые начисления.
6. отобрать тех кто больше 2 и вывести.

в общем ну ее эту задачу
23 Dmitry77
 
31.08.19
23:13
(22) учитывать еще что спутали релиз плапформы и конфигурации...
24 Dmitry77
 
31.08.19
23:13
в (1) ответ правильный дан.
25 JeHer
 
31.08.19
23:16
(22) ты заказчик задания с (0)?
26 Dmitry77
 
31.08.19
23:18
(25) нет
27 Loss_I
 
31.08.19
23:27
(22) да, у меня тоже вопрос как считать, если плановое начисление процентом, а надо сумму начислений? 30% и дальше что? Надо еще и сумму пересчитывать от этого процента?
28 Loss_I
 
31.08.19
23:28
Или брать из регистра расчета, т.е. сколько начислено было, но только по плановым видам расчета?
29 Loss_I
 
31.08.19
23:29
но тогда надо учитывать, что сотрудник мог не полный месяц отработать
30 RomanYS
 
31.08.19
23:36
(27) Если учитывать ещё и такие вещи и произвольные формулы, то задача решается запросом только в теории. Поэтому логично указать на это в комментарии и решать только с суммами.

(28) бредовая идея, условию никак не соответствует
31 RomanYS
 
31.08.19
23:46
(22) по условию "напишите запрос". Твои 6 пунктов это план написания запроса?
32 Loss_I
 
01.09.19
02:11
(31) а это не похоже на план написания запроса?
33 Loss_I
 
01.09.19
03:36
все-таки написано "удвоилась ЗА год",  а не в течение года, поэтому надо брать наверное на дату приема, +12 месяцев от даты приема и разницу между этими датами, потом следующий год работы так же, если сотрудник еще работает на тот момент
34 Loss_I
 
01.09.19
03:37
а не на каждое изменение смотреть, даже если в течение года было увеличение, но на конец года нет увеличения в 2 раза
35 NorthWind
 
01.09.19
09:06
(17) а причем тут УПП? Обычная задача на запросы. Интервальными вычислениями на таблице вида Дата - Количество(Сумма) ломали мозг еще SQLщикам в бытность мою программистом на Оракле 20 лет назад. А если еще нарастающий итог присобачить - так вообще.
36 NorthWind
 
01.09.19
09:11
другой вопрос, что смысла в подобном задании мало. Как было верно замечено - напишут немногие, в результате вакуха будет висеть месяцами и работать некому. Тогда как "от жизни" это довольно далеко.
37 RomanYS
 
01.09.19
11:02
(32) не очень
Мой план
1. Собрать таблицу всех изменений (дополнить таблицу регистра сработавшими возвратами из временных изменений)
2. Получить интервальную таблицу по видам расчетов
3. Получить полную таблицу интервалов по сотруднику (пересечения периодов из 2)
4. Получить интервальную таблицу суммы начислений по сотрудникам (свернуть 2 с учетом 3)
5. Соединить 4 саму с собой с наложением нужных условий
38 RomanYS
 
01.09.19
11:08
(33)(34) Наверное, можно уточнить это у задающего. Но в (37) это повлияет только на 5-й пункт. Причем вариант (33) даже посложнее будет чем любые скользящие 12 месяцев.
39 RomanYS
 
01.09.19
11:18
(35) причем тут УПП?
Например, в ЗУП3 есть служебные интервальные регистры что несколько упрощает подобные задачи.

Задачи типа получить нарастающий итог в запросе, получить срезы/остатки на все даты и получить таблицу интервалов имхо должен уметь решать любой неновичёк. Другой вопрос, что применять подобные конструкции в продакшене может быть неоправдано и рисковано.

(36) Ну такое задание, наверное, дают не в описании вакансии. Ну а решение даже частичное и неправильное может адекватно показать уровень кандидата.