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 992 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С
Самара
зарплата от 50 000 руб. до 100 000 руб.
По совместительству


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

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

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