Автор Тема: Билет 3. Спец по платформе V8  (Прочитано 140470 раз)

0 Пользователей и 1 Гость просматривают эту тему.

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 3. Спец по платформе V8
« Ответ #45 : Ноябрь 01, 2015, 12:58:35 pm »
Алекс не скинете еще раз ссылочки на эти комментарии ?=) Please...
Что сохранил и помню.
Вот ооооочень полезная ссылка, почти любой может надежно закрыть часть своих непоняток по разным вопросов из всех разделов информацией почти из первоисточника.
http://forum.chistov.pro/index.php?topic=2005.msg22307#msg22307
Тоже полезно, но только по задачам с Табелем.
http://forum.chistov.pro/index.php?topic=2194.msg1#msg1
2 ссылки по конкретным задачам, кто не в курсе. По ОУ по аналогичным задачам я всё делал полностью идентично решению по первой ссылке:
http://1c.chistov.pro/2013/07/blog-post_25.html
http://1c.chistov.pro/2013/07/blog-post.html
2 ссылки из "Результатов сдачи ...":
http://forum.chistov.pro/index.php?topic=993.msg10949#msg10949
Здесь можно и обсуждение далее почитать, много поучительного.
http://forum.chistov.pro/index.php?topic=993.msg31513#msg31513
Тоже у меня в закладках было, хотя прокомментировать сейчас не могу. А вообще, в "Результатах сдачи ..." полезного много, особенно в самом начале, и в середине, примерно за 2012-2013 гг., сразу узнается по большим сообщениям, в частности, если чел посещал курсы Белоусова.

AlexGroovy

  • Пользователь
  • **
  • Сообщений: 69
  • ФИО: ЫЫЫ
Re: Билет 3. Спец по платформе V8
« Ответ #46 : Ноябрь 03, 2015, 10:08:15 am »
Алекс не скинете еще раз ссылочки на эти комментарии ?=) Please...
Что сохранил и помню.
Вот ооооочень полезная ссылка, почти любой может надежно закрыть часть своих непоняток по разным вопросов из всех разделов информацией почти из первоисточника.
http://forum.chistov.pro/index.php?topic=2005.msg22307#msg22307
Тоже полезно, но только по задачам с Табелем.
http://forum.chistov.pro/index.php?topic=2194.msg1#msg1
2 ссылки по конкретным задачам, кто не в курсе. По ОУ по аналогичным задачам я всё делал полностью идентично решению по первой ссылке:
http://1c.chistov.pro/2013/07/blog-post_25.html
http://1c.chistov.pro/2013/07/blog-post.html
2 ссылки из "Результатов сдачи ...":
http://forum.chistov.pro/index.php?topic=993.msg10949#msg10949
Здесь можно и обсуждение далее почитать, много поучительного.
http://forum.chistov.pro/index.php?topic=993.msg31513#msg31513
Тоже у меня в закладках было, хотя прокомментировать сейчас не могу. А вообще, в "Результатах сдачи ..." полезного много, особенно в самом начале, и в середине, примерно за 2012-2013 гг., сразу узнается по большим сообщениям, в частности, если чел посещал курсы Белоусова.

Спасибо большое Алекс)))


venvlad

  • Пользователь
  • **
  • Сообщений: 83
Re: Билет 3. Спец по платформе V8
« Ответ #47 : Ноябрь 05, 2015, 10:31:03 am »
Решил так.

korolar

  • Пользователь
  • **
  • Сообщений: 18
  • ФИО: Королев Артем
Re: Билет 3. Спец по платформе V8
« Ответ #48 : Ноябрь 05, 2015, 09:57:21 pm »
Коллеги, помогите выработать решение. Исходя из
В билете есть такое условие "В одном документе могу быть данные за разные расчетные периоды". У вас в решении я не обнаружил его выполнение.

А как именно Вы его себе представляете? К сожалению, единого мнения о том, как оно должно выглядеть, не существует.
Но вот несколько ссылок Вам в помощь:

это значит, что в строке табличной части период действия может быть не за весь месяц, а к примеру с 01.10 по 15.10.
http://forum.chistov.pro/index.php?topic=993.msg31513#msg31513
значит, что оклад может быть за июнь, за январь и командировка за декабрь
http://forum.chistov.pro/index.php?topic=993.msg32335#msg32335
http://forum.chistov.pro/index.php?topic=993.msg40137#msg40137

Да и вот еще ))
На фразу в билете "В одном документе могу быть данные за разные расчетныепериоды" покосился и забыл
http://forum.chistov.pro/index.php?topic=993.msg30563#msg30563

Надо уточнять условие у экзаменатора и, если
а) Период регистрации указывается в ТЧ, то
Для каждого периода регистрации отдельно проводим весь расчет, оклад берется на начало каждого периода регистрации
б) В 1 документе могут быть указаны данные разного периода действия, тогда для каждого периода действия берем оклад на начало периода действия и рассчитываем?

Правильна ли логика?

zorky

  • Проверенный
  • ***
  • Сообщений: 222
  • ФИО: ЗЖВ
Re: Билет 3. Спец по платформе V8
« Ответ #49 : Ноябрь 06, 2015, 12:54:36 pm »
Надо уточнять условие у экзаменатора и, если
а) Период регистрации указывается в ТЧ, то
Для каждого периода регистрации отдельно проводим весь расчет, оклад берется на начало каждого периода регистрации
б) В 1 документе могут быть указаны данные разного периода действия, тогда для каждого периода действия берем оклад на начало периода действия и рассчитываем?

Правильна ли логика?

Да -да, тут всё как-то непонятно, даже Гуру молчат )))  Вообщем тоже интересно, поделитесь мыслями: Сказано - оклад брать на начало Ресчётного Периода. Расчётный период - это период с Начала Месяца в котором расчёт, ? или если с 5 числа - то на 5 е число этого месяца брать Оклад???      (период регистрации - это когда запись зарегистрировали, например в след. месяце, ...мне кажется Оклад нужно брать от периода действия!!!)

А теперь главное - про запрос в цикле.  да, тут видимо без него никак.   Хотя некоторые пишут что не учитывали этот момент на экзамене, и на знаменитую фразу вообще не обращали внимания. Им повезло, чтоли ?)))
(я пока не реализовал полностью  - тут на другом споткнулся:

 - объясните мне, не могу донгать никак - у меня в базе(приложил) - в последней командировке(за Декабрь) базовый период Октябрь - Ноябрь, Оклада за эти периоды вообще НЕ БЫЛО!!! Были позже - командировки, но они не попадают в базу по причине которая выше описана. И к тому же Период Регистрации так же не пересекается с этим базовым периодом. Но он упорно берёт за БАЗУ - сумму этого ОКЛАДА!!!! ????? И расчтывает командировку. чё за хрень, объясните мне плиииз кто разобрался. По идее не должно же быть базы??? Пересечений вообще нет нигде!  Зависимость по Периоду Действия, конечно же.    ...блин

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 3. Спец по платформе V8
« Ответ #50 : Ноябрь 06, 2015, 01:42:49 pm »
... Сказано - оклад брать на начало Ресчётного Периода. Расчётный период - это период с Начала Месяца в котором расчёт, ?
Я считаю именно так - начало месяца периода действия.
... А теперь главное - про запрос в цикле.  да, тут видимо без него никак.   
Ни в коем случае - сразу -2 балла без всяких исключений. Лучше упростить задачу, и то, думаю, мало шансов, что столько снимут.
Когда у нас принимал Гончаров, единственный момент, на который он обратил внимание сдающих по всем экзаменам (т.е. и типовым тоже) - запрос в цикле делать нельзя.
Теперь по поводу выхода из данной ситуации: я ее обрабатывал в 2 обращения к процедуре общего модуля - в первый раз обрабатывал только записи с периодом действия ранее текущего (т.е. начало месяца ПД менее ПР), запись, во втором обращении - обработка записей с текущим ПД (начало месяца ПД = ПР). Чтобы не писать разные процедуры при вызове процедуры общего модуля передавал параметр типа Булево, по которому в запросе определял, выбирать старые записи или текущие.
Т.о., у пользователя есть возможность корректно обработать данные за разные периоды, хотя количество этих периодов по каждому отдельно взятому сотруднику всё равно ограничено (но про неограниченность в условии не говорится).
« Последнее редактирование: Ноябрь 06, 2015, 01:47:30 pm от alex1248 »

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 3. Спец по платформе V8
« Ответ #51 : Ноябрь 06, 2015, 02:23:23 pm »
- объясните мне, не могу донгать никак - у меня в базе(приложил) - в последней командировке(за Декабрь) базовый период Октябрь - Ноябрь, Оклада за эти периоды вообще НЕ БЫЛО!!! Были позже - командировки, но они не попадают в базу по причине которая выше описана. И к тому же Период Регистрации так же не пересекается с этим базовым периодом. Но он упорно берёт за БАЗУ - сумму этого ОКЛАДА!!!! ????? И расчтывает командировку. чё за хрень, объясните мне плиииз кто разобрался. По идее не должно же быть базы??? Пересечений вообще нет нигде!  Зависимость по Периоду Действия, конечно же.    ...блин
В запросе получения базы добавь связь между ВТ по номеру строки.
А вообще, в платформе существует отладчик.  ;)

zorky

  • Проверенный
  • ***
  • Сообщений: 222
  • ФИО: ЗЖВ
Re: Билет 3. Спец по платформе V8
« Ответ #52 : Ноябрь 06, 2015, 02:58:26 pm »
А вообще, в платформе существует отладчик.  ;)

Ни фига се, что за зверь такой ;-) 

 Спасибо!,
а предыдущий пост,  ведь получается это тот же цикл, но с двумя итерациями  ))) Засписи ДО и текущие. ) Весело, согласен - зато явного цикла нету, и запроса в нём ))) смешные условия, конечно! Но буду делать так, "хитрить" придётся с этими условиями))) 

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

  Но следует добавить ещё одну командировку за декабрь, с ПР - декабрь,  и пойдёт неверное начисление.
Хорошо когда очный экзамен, можно будет уточнить сразу.  А нам...придётся пояснять!


alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 3. Спец по платформе V8
« Ответ #53 : Ноябрь 06, 2015, 04:56:21 pm »
...ведь получается это тот же цикл, но с двумя итерациями  ))) Засписи ДО и текущие. ) Весело, согласен - зато явного цикла нету, и запроса в нём ))) смешные условия, конечно! Но буду делать так, "хитрить" придётся с этими условиями))) 
По аналогии и обработку по очереди данных с разными видами расчета можно признать циклом.  :)
  Но следует добавить ещё одну командировку за декабрь, с ПР - декабрь,  и пойдёт неверное начисление.
Хорошо когда очный экзамен, можно будет уточнить сразу.  А нам...придётся пояснять!
В задаче сказано, что могут быть данные за разные расчетные периоды, мы вводим данные за текущий месяц и за любой месяц ранее, причем последний может быть разным для каждого сотрудника  - расчет работает корректно.
В задаче не сказано, что количество месяцев для каждого сотрудника может быть произвольным. Ну, и в общем-то, ситуация, когда одновременно производится расчет за неограниченное количество месяцев не является нормальной, поэтому, думаю, 2 месяца в данном случае являются вполне показательными. Хотя, да, наверное, есть смысл пояснить.

zorky

  • Проверенный
  • ***
  • Сообщений: 222
  • ФИО: ЗЖВ
Re: Билет 3. Спец по платформе V8
« Ответ #54 : Ноябрь 06, 2015, 06:05:31 pm »
...ведь получается это тот же цикл, но с двумя итерациями  ))) Засписи ДО и текущие. ) Весело, согласен - зато явного цикла нету, и запроса в нём ))) смешные условия, конечно! Но буду делать так, "хитрить" придётся с этими условиями))) 
По аналогии и обработку по очереди данных с разными видами расчета можно признать циклом.  :)
  Но следует добавить ещё одну командировку за декабрь, с ПР - декабрь,  и пойдёт неверное начисление.
Хорошо когда очный экзамен, можно будет уточнить сразу.  А нам...придётся пояснять!
В задаче сказано, что могут быть данные за разные расчетные периоды, мы вводим данные за текущий месяц и за любой месяц ранее, причем последний может быть разным для каждого сотрудника  - расчет работает корректно.
В задаче не сказано, что количество месяцев для каждого сотрудника может быть произвольным. Ну, и в общем-то, ситуация, когда одновременно производится расчет за неограниченное количество месяцев не является нормальной, поэтому, думаю, 2 месяца в данном случае являются вполне показательными. Хотя, да, наверное, есть смысл пояснить.

Огромное спасибо, всё прояснилось более менее!  Сделал отдельную процедуру, для получения Баз, и вызываю её если Командировок в Документе > 1 (за разные периоды действия) т.е. Старшая командировка будет зависеть по базе от предыдущей, но не обязательно.   Ну а если одна то один раз вызывается, Вы примерно так же делали??? Гляньте, если время есть)   я ещё сторно не делал, "Следует учесть, что данные о командировке могут вводиться в систему задним числом"  - тут видимо Сторно )))  и отчёт ещё не знаю как мастерить, но зато главное вроде бы готово!?


добавил сторно, правильно ли? )  и отчётик))
« Последнее редактирование: Ноябрь 06, 2015, 07:31:10 pm от zorky »

korolar

  • Пользователь
  • **
  • Сообщений: 18
  • ФИО: Королев Артем
Re: Билет 3. Спец по платформе V8
« Ответ #55 : Ноябрь 06, 2015, 09:39:12 pm »
Вопрос по командировке:
А может ли в 1 документе 1 командировка быть базой для другой?
если мы будем регистрировать все командировки с прошлых периодов в 1 месяце, то максимум, что надо предусмотреть - это сторно записи по окладу.
т.е. командировка, введенная за прошлый месяц, имеет период действия в прошлом месяце, базу берет из 2-х месяцев, предшествующих предыдущему, а период регистрации у нее текущий месяц, и, таким образом она не является базой для расчета командировки в текущем месяце, но сторнирует оклад за прошлый месяц.
И все это в разрезе подразделений, т.е. базу, вытеснение и сторно надо делать только в рамках подразделения.
А по совместительству, может он удаленно в командировке работал и должен оклад там получить...

zorky

  • Проверенный
  • ***
  • Сообщений: 222
  • ФИО: ЗЖВ
Re: Билет 3. Спец по платформе V8
« Ответ #56 : Ноябрь 07, 2015, 01:24:06 pm »
Зато для следующего месяца она будет базой, ... а период регистрации может быть любой, прошлый мес., текущий или следующий...  Кто его знает когда зарегистрировали запись.

Однако сильно не нужно заморачиватся, тут же писали что вообще всё просто сделали, без учёта что может быть 2 записи командировок за разные периоды в одном документе и больше. И сдали...
Просто в описании указать что так и так, нельзя вводить несколько командировок в одном доке, делайте другие документы, оклады вводите хоть 100 ))

отчёт такой же как в билете кто нить сделал?
« Последнее редактирование: Ноябрь 07, 2015, 01:27:38 pm от zorky »

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 3. Спец по платформе V8
« Ответ #57 : Ноябрь 07, 2015, 08:39:49 pm »
Вы примерно так же делали??? Гляньте, если время есть)   я ещё сторно не делал, "Следует учесть, что данные о командировке могут вводиться в систему задним числом"  - тут видимо Сторно )))  и отчёт ещё не знаю как мастерить, но зато главное вроде бы готово!?
добавил сторно, правильно ли? )  и отчётик))
У меня структура решения несколько иначе выглядит. Да и сложно так оценивать чужой код. В общем, лучше свой вариант всего билета выложу. Хотя в целом должно быть нормально, но недоработки, наверняка, там есть, и даже в СПР есть одна существенная - сделано не так, как сам только что писал. Но исправлять на ходу не стал, лучше просто поясню. В запросе получения базы сравнение почему-то по периоду регистрации, в параметрах обеих ВТ:
        ВЫБОР
      КОГДА &ТекПериод = ИСТИНА
         ТОГДА ПериодРегистрации = &ПериодРегистрации
      ИНАЧЕ ПериодРегистрации < &ПериодРегистрации
   КОНЕЦ
Думаю, этот текст следует заменить на такой:
        ВЫБОР
      КОГДА &ТекПериод = ИСТИНА
         ТОГДА НАЧАЛОПЕРИОДА(ПериодДействияНачало, МЕСЯЦ) = &ПериодРегистрации
      ИНАЧЕ НАЧАЛОПЕРИОДА(ПериодДействияНачало, МЕСЯЦ) < &ПериодРегистрации
   КОНЕЦ
т.е. начало месяца периода действия сравниваем с периодом регистрации документа
(а возможно, вместо НАЧАЛОПЕРИОДА(ПериодДействияНачало, МЕСЯЦ) можно просто ПериодДействия указать?).
Ну и отчетик вроде бы в порядке, он в общем-то не сложный, и часто встречается в билетах.

korolar

  • Пользователь
  • **
  • Сообщений: 18
  • ФИО: Королев Артем
Re: Билет 3. Спец по платформе V8
« Ответ #58 : Ноябрь 08, 2015, 07:48:37 pm »
Зато для следующего месяца она будет базой, ... а период регистрации может быть любой, прошлый мес., текущий или следующий...  Кто его знает когда зарегистрировали запись.

Однако сильно не нужно заморачиватся, тут же писали что вообще всё просто сделали, без учёта что может быть 2 записи командировок за разные периоды в одном документе и больше. И сдали...
Просто в описании указать что так и так, нельзя вводить несколько командировок в одном доке, делайте другие документы, оклады вводите хоть 100 ))
...

Моя идея в том, чтобы все начисления за какие угодно периоды в текущем документе регистрировались датой текущего документа. А командировка зависит по периоду регистрации. Значит можно ввести сколь угодно много командировок за любое количество месяцев, но период регистрации будет дата текущего документа, а база возьмется по начислениям, зарегистрированным за предыдущие 2 месяца.

т.е. исключить ситуацию:
... а период регистрации может быть любой, прошлый мес., текущий или следующий...

будет ли это упрощением задачи?

zorky

  • Проверенный
  • ***
  • Сообщений: 222
  • ФИО: ЗЖВ
Re: Билет 3. Спец по платформе V8
« Ответ #59 : Ноябрь 08, 2015, 09:31:55 pm »
Зато для следующего месяца она будет базой, ... а период регистрации может быть любой, прошлый мес., текущий или следующий...  Кто его знает когда зарегистрировали запись.

Однако сильно не нужно заморачиватся, тут же писали что вообще всё просто сделали, без учёта что может быть 2 записи командировок за разные периоды в одном документе и больше. И сдали...
Просто в описании указать что так и так, нельзя вводить несколько командировок в одном доке, делайте другие документы, оклады вводите хоть 100 ))
...

Моя идея в том, чтобы все начисления за какие угодно периоды в текущем документе регистрировались датой текущего документа. А командировка зависит по периоду регистрации. Значит можно ввести сколь угодно много командировок за любое количество месяцев, но период регистрации будет дата текущего документа, а база возьмется по начислениям, зарегистрированным за предыдущие 2 месяца.

т.е. исключить ситуацию:
... а период регистрации может быть любой, прошлый мес., текущий или следующий...

будет ли это упрощением задачи?

 зависимость от базы по периоду регистрации?   тогда за эти два месяца так может получится много командировок)  если у них ПР один - попадающий в базу. ...  блин да у вас если в одном доке будет:  Оклад - с 01.09-31-09  и тут же Оклад  с 01.08 - 31.08 .  тут же Командировка с 01.10 - 11.10   -  ПР этого Дока будет (дата Дока) допустим 01.10 ...  и тогда Оклад не попадёт в базу для Командировки..а должны даже оба попасть.  вобщем по ПР  - неправильно, т.к. минимум в базу попадёт только один период.       Прикладываю доделаннное решение, вроде правильно, проверьте кто нить)) берусь за 4 ю задачку завтра!  ;)