0. mrdug 712 10.05.12 22:41 Сейчас в теме

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

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

Перейти к публикации

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вакансии

Работа от Инфостарт
Санкт-Петербург
Временный (на проект)

Руководитель отдела внедрения 1С
Новосибирск
зарплата от 60 000 руб. до 160 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 115 000 руб. до 160 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 80 000 руб.
Полный день