gifts2017

Готовимся к экзамену 1С: Специалист по платформе 8.х. Решаем расчётные задачи.

Опубликовал Олег Смирнов (mrdug) в раздел Программирование - Сертификация

Цель данной публикации - познакомить начинающих программистов с тем что происходит "внутри программы" при решении расчётных задач. И так как подобных публикаций я нигде не встречал - я решил восполнить этот пробел. На примере решения одной задачи, похожей на экзаменационную задачу, вы сможете быстро окунуться в атмосферу сложных периодических расчётов и понять, что не такие они уж и сложные :)
И самое ГЛАВНОЕ: вы поймёте как нужно думать и в каком направлении, какие могут возникнуть сложности, на что надо обратить внимание и как "разложить задачу по полочкам".

Сразу хочу предупредить: эта публикация не сможет дать вам в полном объеме необходимый багаж знаний! Автор не ставит перед собой такую цель, да и это просто физически невозможно. Для более глубого изучения платформы хочу порекомендовать вам посетить курсы (очные или дистанционные) фирмы 1С или фирм-партнёров:

Учебный центр №1

http://www.1c.ru/rus/partners/training/uc1/courses.jsp?type=44

Учебный центр №3

http://www.1c-uc3.ru/dist.html

И прочитать следующие книги:

Радченко М. "Практическое пособие разработчика"

Хрусталева Е.Ю., Кухлевский Д.С., Козырев Д.В., Габец А.П. «Реализация прикладных задач в системе 1С Предприятие 8.2».


Начнём:

1. Условия задачи на рис.1.

2. Сначала определим сколько видов расчета (ВР) нам надо задействовать.

- фиксированная сумма

- надбавка

- компенсация

- пособие (больничный)

3. Теперь разберёмся где они будут храниться, в каких планах видов расчёта (ПВР).

- фиксированная сумма: это просто сумма денег, она неизменна, значит ей не нужен период действия. Для таких ВР обычно используется ПВР Дополнительные начисления. У этого ПВР должен быть снят флажок – Использует период действия.

- надбавка: тут уже надо учитывать фактически отработанные часы, а они могут меняться, ведь сотрудник может болеть например. Значит этот ВР должен обладать периодом действия, помещаем его в ПВР Основные начисления (не забудьте проверить флаг - Использует период действия).

- компенсация: этот ВР зависит не от того сколько отработал сотрудник, а от того сколько проехал его автомобиль. Поэтому компенсацию помещаем в ПВР Дополнительные начисления.

- пособие (больничный): с пособием всё просто, нам нужно знать сколько дней болел сотрудник, и значит будет период действия (ПВР Основные начисления).

4. Какие нужны регистры. Итак мы определили что нужно два ПВР. Создаем два регистра расчетов с аналогичными названиями. Привязываем к регистрам соответствующие ПВР, настраиваем периоды действия и график (ПВР Основные начисления).

5. Какие нужны графики. С видами расчетов в целом разобрались, с ПВР тоже. Теперь займемся теми ВР которые с периодом действия. Нам нужно определить какой график (или графики) для них использовать.

- надбавка: сказано что каждый сотрудник будет работать по своему графику, значит можно связать измерение регистра расчета с измерением регистра сведений (РС) Графики работы («Связь с графиком» в свойствах измерения).

- пособие (больничный): тут просто, чётко сказано что по пятидневке.

А вот теперь у нас получилась проблема: график будет всегда браться «по сотруднику» (мы ведь его связали с регистром графиков), но а нам же еще нужно для пособия использовать график – Пятидневка. Решим эту проблему за счёт второго ресурса в РС Графики работы. (Прим. автора: про другие способы связи с графиками можно узнать здесь, либо более подробно - на курсах 1С). 

6. В чем учет времени. Какие будут графики – мы определили, а теперь нужно посмотреть, а в чём учет рабочего времени будет: в часах, в днях, или может в минутах? Что хранить в графиках?

Сказано что надбавка будет по фактически отработанным часам считаться. Значит нужны часы. А вот пособие (больничный) считается по дням (график - пятидневка). Значит еще нужно дни по пятидневке учитывать. И также сказано что для пособия нужны рабочие дни в прошлом месяце,  и эти дни уже не по пятидневке, а по графику сотрудника. Значит еще нужны дни по графику сотрудника. Итого получилось три ресурса: Часы, Дни по пятидневке и Дни по графику сотрудника. Создадим соответствующие ресурсы в РС Графики работы. Доработаем обработку ЗаполнениеГрафика (см. Модуль объекта).

7. База. Теперь разберёмся, а базу для расчетов нам нужно получать или нет. Сказано что для пособия (больничный) нужна сумма за прошлый месяц. Это значит что нужно получать базу. А по какому регистру расчетов? Сказано что базой для пособия будет гарантированный оклад (фиксированная сумма), который у нас хранится в ПВР Дополнительные начисления (регистр расчета ДополнительныеНачисления), значит нужно указать в настройках ПВР Основные начисления (где пособие), что база будет браться из ПВР Дополнительные начисления (переключатель - Зависимость от базы и флаг - Базовые планы видов расчета). Переключатель поставим в положение - Зависит по периоду регистрации. Почему так? Система будет смотреть попадает ли период регистрации фиксированной суммы в указанный вами у пособия базовый период. А так как фиксированная сумма не обладает периодом действия, а только периодом регистрации, то вполне логично его и "ловить" (более подробно можно узнать из книг, либо на курсах 1С).

8. Теперь посмотрим еще нужно для задачи:

- Фиксированная сумма. Поместим в константы («Размер суммы одинаков для всех сотрудников и не меняется в течение расчетного периода»);

- Часовая ставка для надбавки. Она может меняться каждый день, поэтому будем хранить её в регистре сведений, периодичность – В пределах дня («Она может изменяться не чаще, чем один раз в день, но берется на начало расчетного периода»);

- Величина пробега для автомобиля. Напомню что сотрудники могут ездить на разных автомобилях («В зависимости от величины пробега автомобиля»). Величину пробега будем накапливать документами «Пробег» и хранить в регистре накопления;

- Пособие (больничный) может быть введено задним числом, то есть в другом периоде («данные о болезни могут вводиться в систему задним числом»). Сделаем в модуле документа сторно-записи;

- Разбивать ВР на периоды не требуется («все данные вводятся только в пределах одного месяца»);

- Нужно предусмотреть ввод суммы в документ Начисление зарплаты («некоторой суммы, указанной в документе «Начисление зарплаты» и выплачиваемой за каждые 100 километров пробега»). У нас есть в документе реквизит табличной части на этот случай;

- Пользователь будет сам создавать виды расчетов («предоставить пользователю возможность самостоятельно создавать новые виды расчетов»). Создадим реквизиты «Способ» в ПВР, тип – перечисление СпособРасчета.

9. Разбор кода. А теперь посмотрим на код. У нас два модуля – модуль документа Начисление зарплаты и общий модуль – Расчет. В модуле документа мы делаем предварительные записи по регистрам (получение данных, формирование периодов действия и т.д.), в общем – уже непосредственно расчёты (более подробно вы можете узнать из книг, либо на курсах 1С). Посмотрим на код модуля документа.

10. Модуль документа. Для удобства восприятия и отладки, автор создал несколько табличных частей в документе, отдельно для каждого ПВР. Сначала идёт запрос по табличной части Основные начисления, параметром передаем ссылку на документ. По результатам запроса делаем записи в регистр, записываем период действия (напомню, у этого регистра есть период действия), далее проверяем Способ расчета (способ расчета пользователь будет указывать для вида расчета в режиме 1С: Предприятие), если способ расчета Надбавка – записываем в Параметр (это реквизит регистра расчета)  часовую ставку. Если способ расчета Больничный – указываем базовый период (прошлый месяц). Напомню, базовый период указывается для того чтобы получить базу (сумму для расчетов) за какой-то период.

После этого формируем сторно-записи, если они есть (более подробно о назначении сторно-записей можно прочитать в «Реализации прикладных задач…»).

И наконец делаем запрос по табличной части Дополнительные начисления. Если способ расчета Фиксированная сумма – сразу записываем результат из константы, он у нас меняться не будет. А если способ Компенсация, тогда извлечем, соединением по сотруднику, из регистра накопления автомобили на которых ездил сотрудник в течении месяца (1), пробег этих автомобилей (2), и размер компенсации для каждых 100 км пробега, который у нас заполняется пользователем в документе Начисление зарплаты (3).

После записей по регистрам вызовем процедуры расчета из общего модуля Расчет.

11. Общий модуль Расчет. Теперь когда у нас сделаны предварительные записи - сформированы периоды действия (надбавка может быть вытеснена больничным), сторно-записи (если больничный в другом периоде), собраны нужные для расчетов данные (записаны в реквизиты Параметр, Параметр1) – приступим к расчетам (напомню, нам нужно 4-е вида расчетов произвести, см. п. 2):

- Результаты по фиксированным суммам уже записан.

- Рассчитываем результат по Компенсациям: пробег каждого в отдельности автомобиля (Параметр) делим на 100 км, получаем целое число (кол-во «кусков» по 100 км) и умножаем на сумму из документа (Параметр1).

- Рассчитываем результат по Надбавкам: обращаемся к таблице ДанныеГрафика (нельзя брать данные графика из регистра сведений), извлекаем из нее количество фактически отработанных часов (ЗначениеФактическийПериодДействия КАК ФактЧасы). Разберём что есть «ЗначениеФактическийПериодДействия». Первая часть «Значение» это ни что иное как название ресурса из регистра сведений Графики работы, ресурса в котором хранятся часы, а вторая часть – «ФактическийПериодДействия» - значит что мы получим значение часов после всех вытеснений (в нашем случае вытеснение делает только больничный, но может быть например, и невыход, прогул, и прочее).  Умножим ФактЧасы на значение реквизита Параметр (напомню, туда мы записали часовую ставку одинаковую для всех сотрудников), и получим результат.

- Рассчитаем последний ВР – Пособие (больничный): для этого нам нужно половину оклада (50%) за прошлый месяц разделить на количество рабочих дней в прошлом месяце (получим среднюю дневную ставку) и умножить на количество дней болезни. Количество дней болезни мы получим вот так: ЗначениеДниПятидневкаФактическийПериодДействия КАК ДниПятидневка. Второй ресурс регистра сведений Графики работы (ЗначениеДниПятидневка) хранит рабочие дни по пятидневке, и значит мы получим фактически проведённые на больничном дни. Далее, сумму оклада прошлого месяца (ЕСТЬNULL(ОсновныеНачисленияБазаДополнительныеНачисления.РезультатБаза, 0) КАК База) нам надо получить из другой таблицы -  ОсновныеНачисленияБазаДополнительныеНачисления. Название говорит само за себя – для видов расчета из ОсновныеНачисления (для больничного) будет взята база из регистра ДополнительныеНачисления (фиксированная сумма). Не забывайте про проверку на NULL, ведь базы может и не быть. И наконец, рабочие дни прошлого месяца. Получим их вот так: ОсновныеНачисленияДанныеГрафика.ЗначениеДниБазовыйПериод КАК РабДни. Третий ресурс регистра сведений График работы «ЗначениеДни» хранит рабочие дни по графику сотрудника, «БазовыйПериод» - указывает что дни будут взяты за указанный базовый период - за прошлый месяц (период между БазовыйПериодНачало и БазовыйПериодКонец). Вот мы и получили результаты по Пособиям. Соответственно по сторно-записям делаем результаты со знаком «минус». 

12. Дополнительно: запросы в общем модуле нужно делать по каждому виду расчета (способу) отдельно, в этом решении не реализовано. Также не учтены приоритеты, из моего опыта, на экзаменационных задачах это не требуется если вы правильно записываете виды расчетов. Но что такое «приоритеты» вы должны знать, это важно. И еще обратите внимание как делается соединение таблиц в запросе по номеру строки.

13. Самая интересная часть – тестирование:

- нужно заполнить графики;

- нужно заполнить виды расчетов (указать вытесняющие, базовые и ведущие, если требуется);

- нужно ввести фиксированную сумму за март месяц, чтобы она попала в базу пособия  и надбавку (тоже за март), чтобы посмотреть вытеснение ее пособием и создание сторно-записей (документ № 3);

- нужно ввести пособие за апрель, посмотреть вытесняет ли оно надбавку, создает ли сторно-записи (документ № 4);

- нужно ввести документы Пробег за март. Запишем в регистр накопления пробеги автомобилей за период;

- нужно ввести компенсации за март (документ № 1);

14. Типичные ошибки при тестировании:

- нет данных графика (создать, заполнить, сделать связь измерения/реквизита с графиком);

- нет базы (сделать настройку ПВР-ов, указать базовые виды расчетов, указать базовый период, указать нужную таблицу в запросе и проверить что берётся в запросе из этой таблицы).

15. Посмотрите как создаются отчеты. ПробегКомпенсации и НачисленияСотрудникам.

16. Подводим итоги:

- в первую очередь нужно определить какие виды расчетов будут, где они будут храниться и как будут взаимодействовать между собой

- потом графики и база

- потом дополнительные данные (регистры сведений, регистры накопления, константы и т.д.)

- дальше написание кода и тестирование


Желаю удачи!

 

Общий перечень требований к экзамену 1С: Специалист и рассмотрение типичных ошибок.

Бизнес-процессы для экзамена 1С: Специалист.


Новое (12.05.2012). Добавлены дополнительные материалы в rar-архиве: несколько решенных задач и краткое описание того что в них. Например, вы можете посмотреть: в какой задаче есть перерасчеты, где есть диаграмма Ганта, а где разбитие на периоды. Прошу понять, эти задачи автор решал в процессе подготовки к экзамену и их решения не идеальны. Но не переживайте на этот счёт, после того как вы прорешаете штук 20 задач, у вас сформируется правильное представление о многих вещах.





Скачать файлы

Наименование Файл Версия Размер
База с примером 426
.dt 175,38Kb
08.05.12
426
.dt 175,38Kb Скачать
Дополнительные материалы 176
.rar 3,22Mb
11.05.12
176
.rar 3,22Mb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Виктор Баран (vbaran) 10.05.12 22:41
Рис.1, к сожалению не отображается :cry:
2. Олег Смирнов (mrdug) 10.05.12 23:30
(1) vbaran, эта задача похожа на 3.36 из сборника. С небольшими изменениями... Как вариант, попробуйте в другом браузере открыть.
3. Николай Больсунов (boln) 20.05.12 15:53
Неплохо. Толково изложено. А то часто встречаешь тут такие "советы по решению расчетных задач", что впору подойти к аффтару и сопли вытереть :)
4. Степан Иванов (STEPPRK) 24.05.12 11:00
5. Оля Белозерова (XelOla) 24.05.12 13:54
6. dgamelya (revril) 28.05.12 11:05
Познавательно!Спасибо за статью!
7. Елена (elena_77) 30.05.12 16:01
Статью прочла. Спасибо. Познавательно.
8. Надежда М (jiggli) 01.06.12 10:48
9. Nick Bylichev (colco) 05.06.12 11:43
Может я соберусь уже экзамен сдать наконец, а то все некогда))
10. f f (fnv) 16.10.12 08:16
11. Андрей Андреевич (nalivai-chai) 20.10.12 14:10
1. Размер фиксированной суммы денег "не меняется в течении расчетного периода". Расчетный период - месяц. Следовательно, размер фиксированной суммы, по хорошему, хранить бы в регистре сведений с периодичностью месяц. А не в константе - это плохой вариант.

2. Структуру регистра сведений графика можно было бы оставить стандартной. Сделать два измерения "График", "Сотрудник" и один ресурс "Значение". Для связи с графиком в регистре расчета можно было бы использовать реквизиты "График" и, например, "СотрудникГрафик". Это позволило бы сделать решение задачи проще и яснее. Когда нужно по пятидневке получить гарфик - для связи с графиком заполняем, реквизит график и оставляем пустым реквизит "СотрудникГрфик", а когда нужно по сотруднику - то заполняем только реквизит "СотрудникГрафик".

3. Фирма 1С дала хороший пример решения расчетной задачи, предельно лаконичный и простой. Этому примеру можно следовать во всех задачах из сборника. И тогда проще будет уложиться в ограниченное время на экзамене.

4. К своим словам прикрепляю решение задачи.
Прикрепленные файлы:
nalivai-chai.dt
12. Олег Смирнов (mrdug) 20.10.12 19:09
(11) nalivai-chai, стояла задача показать связь между регистром сведений и регистром расчета, а не сделать задачу "проще и яснее".
13. Андрей Андреевич (nalivai-chai) 20.10.12 19:39
(12) mrdug, статья хорошая и нужная. Может и решение самой задачи не так важно.
Тем не менее, учится лучше на "простом и ясном".
14. Андрей Андреевич (nalivai-chai) 20.10.12 20:32
Часто встречающаяся ошибка:

Нет связи с графиком в регистре расчета или такая связь задана неверно. Например, в измерении вместо реквизита или наоборот. (1.0).

Вы связь с графиком в регистре расчета задаете через измерение регистра расчета - это -1 балл. Когда для данной задачи правильно связь сделать через реквизиты, т.к. используется график "пятидневка", который никак не связан с сотрудниками.
Уверен в том, что правильно использовать два реквизита для связи с графиком и сотрудником.
Можно использовать составного типа реквизит в РР и измерение в РС, но мне кажется это не правильно методически. Так же как и Ваш вариант, который отрабатывает правильно, но сомневаюсь в правильности его использования.

Ваше пояснение (http://infostart.ru/public/126813/) к данному пункту "часто встречающихся ошибок" увы неправильное: "Тут довольно просто, какие измерения в регистре сведений Графики работы – такая и будет связь". Не все так просто. И такая связь не следуют автоматически из совпадения измерений. Во всем должен быть прикладной смысл.

Когда можно сделать связь между Измерением "Сотрудник" регистра сведений "Графики работы" и Измерением "Сотрудник" регистра расчета? А когда все без исключения графики ведутся в разрезе сотрудников. И как только появляется график "пятидневка" общий для всех сотрудников, такая связь Измерение-Измерение становится неверной.
15. Олег Смирнов (mrdug) 20.10.12 21:25
(14) nalivai-chai,
Вы связь с графиком в регистре расчета задаете через измерение регистра расчета - это -1 балл. Сходите на курсы к Белоусову - и поймёте правильно это или нет :)

Ваше пояснение (http://infostart.ru/public/126813/) к данному пункту "часто встречающихся ошибок" увы неправильное: "Тут довольно просто, какие измерения в регистре сведений Графики работы – такая и будет связь". Не все так просто. И такая связь не следуют автоматически из совпадения измерений. Во всем должен быть прикладной смысл. Если вас послушать - то надо связывать измерение Сотрудник с измерением Подразделение :)
16. Андрей Андреевич (nalivai-chai) 20.10.12 21:41
(15) mrdug, Вы наверно также Белоуслова слушали, как и читали комментарий, если из него для Вас следует, что "надо связывать измерение Сотрудник с измерением Подразделение :)"
17. Олег Смирнов (mrdug) 20.10.12 22:51
(16) nalivai-chai, поясню что я имел ввиду:

какие измерения в регистре сведений Графики работы – такая и будет связь".

Если в РС измерение Сотрудник, значит, если будет делаться связь (и если эта связь нужна!) - то она будет с измерением Сотрудник в РР. Если в РС измерение Подразделение - то очевидно что связь будет с Подразделением в РР.

Читайте пожалуйста внимательно.
18. Андрей Андреевич (nalivai-chai) 20.10.12 23:11
(17) mrdug, Хорошо.

Если в РС есть измерение "Сотрудник" и РР измерение "Сотрудник", и действительно должна быть связь РР с графиком по "Сотруднику", но вместе с тем в РС нужно хранить график по "пятидневке", "шестидневке" и по сколько угодно многим другим графикам. Чаще всего именно так стоит вопрос.

Судя по тому как Вы пишете, нужно непременно устанавливать связь Измерение-Измерение по сотруднику.

Но если мы хотим чтобы какой-нибудь сотрудник или группа сотрудников заработали по "Пятидневке".
Это что же, нужно для каждого сотрудника заводить записи с одинаковым графиком?
Ведь в РР измерение "Сотрудник" всегда заполнена и всегда будет связь с РС по этому измерению.

Как же поступать?
19. Олег Смирнов (mrdug) 20.10.12 23:39
(18) nalivai-chai, ключевой момент здесь - это объяснение связи измерений. Вы же рассматриваете сейчас правильность применения связи. Это несколько другое...

И моё решение, и ваше - имеют право на существование. И если вы правильно поняли суть подготовки к экзамену - вы знаете, что разницы между "более правильное или менее правильное" нет никакой.
20. Андрей Андреевич (nalivai-chai) 21.10.12 00:19
(19) mrdug, на экзамене "более правильное или менее правильное" пофиг. Цель - сдать экзамен любыми средствами.
Когда пишешь статью о том, как сдавать эказамен - это другое, нужно показывать как "ниболее правильно".
Как менее правильно сделать каждый сам догадается)... интуитивно.

При подготовке к спецу по платформе сложно найти качественный материал, где обсуждались бы нюансы, камешки подводые, остаются только учебные центры 1С или Насипов и Гилев. Но за все хорошее нужно платить деньги.

Статья-то мне Ваша понравилась, но хотелось бы обратить внимание на некоторые моменты...)
21. Олег Смирнов (mrdug) 21.10.12 10:55
При подготовке к спецу по платформе сложно найти качественный материал, где обсуждались бы нюансы, камешки подводые,

Нюансов очень много и показать их все в одной статье - не реально.

но хотелось бы обратить внимание на некоторые моменты...)

Спасибо за обсуждение.
22. overgod (Darklight) 28.10.13 14:03
Небольшое примечание. Кажется, приведённая задача очень похода на задачу 3.36 из сборника. Но только чуть сложнее- добавлено требование возможности создания пользовательских видов расчетов (и эта тема не очень хорошо прокомментирована в решении); и чуть проще (по условию но не по решению) - отсутствует потребность создавать первый отчет о начислениях сотрудников (требуется только второй - по компенсациям за пробег). И ещё, в отличии от задачи сборника здесь дано правильное требование в случае получения сотрудником пособия начисление компенсации надбавки не производится. Соответственно, рядом в сборнике есть несколько похожих задач - их можно будет порешать самостоятельно для закрепления материала.
23. Павел Одинцов (Darklight) 28.10.13 15:48
А ещё мне так и не стало до конца ясно предложение nalivai-chai о размещении ссылки на график в реквизитах РР. Если я правильно понял - структура графика в любом случае остаётся почти такой же (т.е. три ресурса значений графика (часы, дни, и дни_пятидневка), измерение Дата, а меняется лишь измерение Сотрудник на График (из соотв. нового справочника графики). А в РР связь устанавливается не через их измерение Сотрудник, а через реквизит - График. Который необходимо будет заполнять из ТЧ документа Начисление зарплаты, где его нужно будет заполнят вручную, а в идеале - автоматически при выборе сотрудника (из РС Сведения о сотрудниках, где его нужно будет разместить в новом ресурсе) - ну или как вариант, в ТЧ его можно не размещать, а сразу подхватывать из РС при заполнении первичных движений РР.
И это всё только ради упрощения управления графиками для сотрудников. Но в задаче про это ни слово не сказано - это только осложнение решения задачи. На экзамене и так времени очень мало - так что я считаю, что решение от mrdug наиболее правильное для использования на экзамене (всилу его простоты реализации и без упрощения самой задачи). А решение с графиком в реквизите - конечно более правильное для практического применения. Но практика - это совсем другое, там, скорее всего, нет смысла совмещать в одном графике два графика (произвольный и фиксированный-пятидневку) в рамках одного типа графика. Но платформа не позволяет с одной строкой расчета связать данные нескольких графиков. Поэтому на практике либо получать данные второго графика вручную из РС (пятидневку по рабочим дням - т.к. это не требует данных по периоду действия и легко и надёжно получается запросом); либо (что конечно извращение, но если нужен был период действия сразу в нескольких графиках - то я бы поступил именно так на практике) - создать отдельный вид расчета - который бы считал данные нужного графика (из своего реквизита) и помещал их в свой результата (например в типовой ЗУП подобным образом решается проблема расчета отпусков - для определения дней оставшихся отпусков) - но на экзамене, всё же лучше обойтись доп ресурсом РС, т.к. число вариантов фиксировано - а это правило экзамена - если какой-то учет фиксирован в своих вариантах в условиях задачи - значит его нужно фиксировано размещать в разных ресурсах, без какой-либо универсализации.
Но если я что-то не так понял - прошу поправить меня.
24. Павел Одинцов (Darklight) 28.10.13 16:21
И ещё один вопрос. В разборе решения задачи ничего не сказано про аналитику регистров расчета (измерения), и плохо сказано про их реквизиты.
Судя по результирующему отчету - нужен раздельный учет начислений (компенсации) по сотруднику и автомобилю.
Значит в РР дополнительные начисления нужно два измерения: Сотрудник и Автомобиль (но, учитывая, что по данные начислений в разрезе автомобилей нигде в расчетах не нужны, то сними можно поступить так же как и с подразделениями ниже, т.е. разместить не в измерениях, а в реквизитах - значит по основным начислениям, как и по дополнительным - будет только одно измерение - "Сотрудник").
А в РР основных начислениях - только Сотрудник.
Но если нужен отчет по начисления (по форме из задачи 3.36 сборника), то там разделение начислений ВР идёт как по сотрудникам, так и по подразделениям (причём про связь сотрудников с подразделениями ни слова не сказано ни здесь, ни в задаче 3.36 сборника). А раз ни слова не сказано - то проще добавить соответствующий реквизит "Подразделение" в РР Основные начисления и в РР Дополнительные начисления (т.к. отчет по начислениям строится по всем видам расчетов) - куда и поместить подразделение сотрудника из ТЧ (это упростит итоговый отчет) - проверять повтор привязки сотрудника к разным подразделениям не нужно - т.к. это не требуется по условию задачи и на результате негативно не скажется) - в отчете его можно будет выдернуть из регистра как и измерение сотрудник (в данном случае нам не нужны особенности учета подразделений в измерениях, т.к. это не влияет на рачеты).
25. Павел Одинцов (Darklight) 28.10.13 16:35
Ещё я хочу вернуться к дополнительным начислениям. И учету пробега по автомобилям. Не могу понять, зачем для этого заводить отдельный РН и документ и решать задачу накопления. В условии задачи про это ведь ни слова не сказано. Там просто указано, что компенсация начисляется за каждые 100 км пробега, но ни слова нет о необходимости вести их учет. Да, конечно, на практике это нужно. Но на экзамене, с учетом ограниченного времени, разве не достаточно ли просто ввести учет автомобилей в ТЧ "дополнительные начисления" и отдельными строками внести в реквизите Размер = пробег по строке сторонник+автомобиль. Или к необходимости формировать задачу накопления сподвигнет сочетание двух фраз В зависимости от величины пробега автомобиля в расчетном периоде + Все сотрудники работают на автомобилях предприятия, поэтому возможен обмен автомобилями между водителями а значит нужно как-то автоматически собирать реальный пробег и учитывать его в РН, т.к. требует вычисления? Но тогда, если бы сотрудники не могли меняться своими автомобилями - можно ли обойтись без учета в РН?
Вообще, конечно, данную задачу на практике лучше решать по методу расчета через "табель", но тут уже ничего не поделаешь - в условии задачи стоит метод отклонений :( что усложняет задачу.
P.S. Под задачей накопления РН я естественно понимал задачу учета оборотов (остатки здесь не требуются): в описании решения про тип регистра, кстати, ничего вообще не сказано!
26. Елена Петрова (revril) 30.10.13 14:23
спасибо за помощь!! Очень помогло при сдаче экзамена!! Особенно при решении расчетной задачи!
27. Оля Белозерова (XelOla) 04.08.14 11:21
Хочу узнать качала ли я?