Форум Чистова. Подготовка к экзаменам 1С

Аттестация "1С:Специалист" => Аттестация "1С:Специалист по платформе 1С:Предприятие 8.3 и 8.2" => Тема начата: vvvlad85 от Август 19, 2011, 04:18:26 pm

Название: Задача 3.41
Отправлено: vvvlad85 от Август 19, 2011, 04:18:26 pm
Подскажите кто сдавал или кто готовится. Вот такая задачке не пойму. Документ "Табель" делает записи в регисры расчета с этим ясно, но должел ли он делать записи в регистр сведений "Графики работ"? Т.е. количество часов отработанных (как для оклада и для коммандировки) определять в регистрах расчета по значению ресурса РезультатДни или через РезультатБаза для Коммандировки или как факт для оклада???
Название: Задача 3.41
Отправлено: DoctorRoza от Декабрь 14, 2011, 09:35:01 pm
Выложу свое решение задачи. Задача, в принципе, простая, главное уяснить основной механизм решения. Правда, есть долька изврата в виде 62 колонок документа "Табель". Увы, иного не нашел варианта для решения! :-(
Вложения:
DoctorRoza_3_41.dt
Название: Задача 3.41
Отправлено: sv_mikh от Февраль 04, 2012, 01:21:37 am
Мое решение. Собственно в соответствии с идеями отсюда http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=553719#553719

 1. Начисление всех ВР документом Табель: колонки: Дата, Сотрудник; ЧасыРабочие, ЧасыКомандировка. Подразделение в шапке.
 2. Не используются дополнительные регистры накопления.
 3. Отработанное время пишется прямо в РР (не в РС).
 4. Осн: Оклад, командировка. ДОп: премия.
Вложения:
sv_mikh_03_41.dt
Название: Задача 3.41
Отправлено: Хрущёв от Январь 19, 2013, 07:50:58 pm
Вчера решал эту задачку на экзамене. В документе Табель делал 31 колонку (если на основном месте работы, то заполняется число, если в командировке, то ставится число + буква "к"). Табель делает движения по РН. В РР делает движения документ Начисление зарплаты. На экзамене только два вида расчета: оклад и командировка. Они в ПВР ОсновныеНачисления. В РР включаем период действия и расчет по базе. 
 По методологии у препода замечаний не было, придрался только к соединению таблиц в одном запросе.
Название: Задача 3.41
Отправлено: RoMeL от Январь 21, 2013, 03:45:22 am
Хрущёв, можеш выложить свое решение? или посмотри мое...
Название: Задача 3.41
Отправлено: Karpikova от Январь 30, 2013, 06:06:00 am
Коллеги, смотрела решения. Никто не использует напрямую механизм вытеснения. Имеются ли у кого-то соображения, правильно ли это? И, если всё же вытеснение платфомы нужно использовать - то как?

Добавлено (30.01.2013, 06:06)
---------------------------------------------
А ещё  я бы хотела присоединиться к вопросу vvvlad85. Кто-нибудь знает, зачем нужен график, если есть табель?

Название: Задача 3.41
Отправлено: Andy63 от Январь 30, 2013, 09:06:42 am
Цитата (vvvlad85)
Подскажите кто сдавал или кто готовится. Вот такая задачке не пойму. Документ "Табель" делает записи в регисры расчета с этим ясно, но должел ли он делать записи в регистр сведений "Графики работ"? Т.е. количество часов отработанных (как для оклада и для коммандировки) определять в регистрах расчета по значению ресурса РезультатДни или через РезультатБаза для Коммандировки или как факт для оклада??

 Делать записи в регистр сведений "Графики работ"?
  Нет не должен . Зачем?

 А по отработанным часам все верно:
 Вообщем  берем дни(часы) из табеля за период (с учетом перидиности регистра расчета ) и просто записываем их в ресурс ДнейОтработано.

 Вот вообще как то рассууждали на эту тему раньше:
 Gyd: Табель - это последняя инстанция. За ним уже документов быть не может, потому что Табель - это факт. А если вдруг возможна ситуация что взамен фактических данных ввели какие-то приблизительные, например взамен Больничного ввели Невыход потому что неясно было болеет сотрудник или гуляет, то это уже надо обыгрывать перезаполнением документа, либо какой-то корректировкой.

 
Цитата (Karpikova)
А ещё  я бы хотела присоединиться к вопросу vvvlad85. Кто-нибудь знает, зачем нужен график, если есть табель?

 Для расчета нормы, это я не про конкретную задачу а вообщем говорю
Название: Задача 3.41
Отправлено: Karpikova от Январь 30, 2013, 05:23:00 pm
Мой вариант. Подглядывала в базы sv_mikh и DoctorRoza.

 Если кто посмотрит на наличие косяков - буду благодарна.

 Табель у меня регистр оборотный, так как с помощью вычитания "вытесняла" оклад

Добавлено (30.01.2013, 17:23)
---------------------------------------------
Andy63, спасибо! Про график я конечно протупила - сама же его для этого и использовала


Вложения:
3-41.dt
Название: Задача 3.41
Отправлено: SerF от Март 03, 2013, 09:37:07 pm
Выкладываю свой вариант. Почитал эту ветку и соседние, сделал табель, который двигает РН ОтработанныеЧасы, два ресурса: часы на основном месте работы и часы в командировке. В табеле если ОМР - часы вводятся числом, если командировка, то вводим строкой, например, "К8" или "8К". При расчете беру часы факт из виртуальной таблицы оборотов РН.
 Также сделал задачу с видом расчета "Премия", хотя, говорят, на экзамене в билете с этой задачей только командировка и оклад.
 Буду рад всем замечаниям.
Вложения:
SerF_3.41.dt
Название: Задача 3.41
Отправлено: Karpikova от Март 13, 2013, 06:53:40 am
SerF

 1. Обработка проведения Табеля. Не удаляете предыдущие движения. А ведь пользователь может заходить и править документ.

 Движения.ОтработанныеЧасы.Записать();

 2. Советую предварительно приводить периодрегистрации к началу месяца (для документа "Начисление зарплаты"):

 Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
     периодрегистрации=началомесяца(периодрегистрации);
 КонецПроцедуры

 Кто-то считает, что это необязательно, мол, платформа сама пересчитает дату на начало месяца. Но вот у меня однажды не пересчитала (хотя, возможно, конечно, косяк мой был. Но почему-то все остальные же тоже делают так!)

 3. Галка "Базоваое" у измерений РР. Посмотрите, мне тут Oliver объяснял:
 http://forum.chistov.pro/index.php?topic=2261.msg17#msg17
Название: Задача 3.41
Отправлено: RuslanAbiev от Апрель 04, 2013, 11:48:44 pm
Доброго времени суток. Вот мое решение
Вложения:
RuslanAbiev3.41.dt
Название: Задача 3.41
Отправлено: alexB от Апрель 22, 2013, 01:12:20 pm
Добрый день!

 Прошу прокомментировать решение задачи.

 Основные моменты :
 1.Регистр расчета "ОсновныеНачисления" связан с графиками по измерению Сотрудник и реквизиту ВидыУчетаРабочегоВремени(Перечисление); Соответственно РС.ГрафикиРаботы содержит измерения: ГрафикРаботы(Спр.ФизЛица и Спр.ГрафикиРаботы), ВидыУчетаРабочегоВремени; ресурсы: Часы, ЧасыФакт.
 2.Документ Табель: Добавлено заполнение по подразделению с учетом предопределенного графика работы Пятидневка, после корректировки табличной части, при проведении документа, выполняется запись в РС.ГрафикиРаботы для каждого сотрудника и ВидаУчетаРабочегоВремени, заполняются ресурсы РС: Часы  - норма согласно графика, ЧасыФакт - факт из табличной части документа
 3. Документ Начисление З/П: тут классический подход, документ выполняет движения по Регистрам Расчета : Основные начисления и Дополнительные начисления.

 Буду признательна, за комментарии данного решения.
 Всем огромное спасибо!
Вложения:
_3_41.dt
Название: Задача 3.41
Отправлено: nskripka от Июль 26, 2013, 12:00:33 pm
Решение. Табель делает движения в оборотный регистр накопления. Начисление зарплаты на основании этого регистра уже делает записи в регистр расчета.
Вложения:
3_41_nskripka.dt
Название: Задача 3.41
Отправлено: apercot от Август 21, 2013, 08:53:25 pm
nskripka, Посмотрел Ваше решение.  По идее запрос к реальной таблице не должен фигурировать. Т.е. надо обращаться за данными к виртуальной таблице с параметрами , а не с условием где. Эту задачу не решал, но судя по всему все данные по окладу есть в таблице ДанныеГрафика или я чего-то не уловил. 
 Ну и   "Запись = НаборОсновныеНачисления[Выборка.НомерСтроки-1];"  не совсем правильно, хотя раньше так-же находил нужную запись.
Название: Задача 3.41
Отправлено: nskripka от Август 21, 2013, 09:00:31 pm
Да. Ваши замечания правильные. Это еще было, когда я начинал решать расчетные задачи. (а задачу 3.44 я вообще решил неправильно, нужно тоже переделать. Я табель делал без оборотного регистра, а писал интервалы в регистр расчета)
 Переделаю решение.
Вложения:
1480110.dt
Название: Задача 3.41
Отправлено: w1nd_n от Сентябрь 23, 2013, 12:32:15 pm
День добрый. В данной задачи нужно ли чтобы при проведении запись с командировкой и окладом создавались с периодом действия соответствующим фактическому(по дням из табеля), или будет достаточно при расчете взять факт. часов из оборотного регистра для табеля?
Название: Задача 3.41
Отправлено: artfa от Октябрь 01, 2013, 05:13:50 pm
решение
Вложения:
3.41.dt
Название: Задача 3.41
Отправлено: Goxanov от Октябрь 01, 2013, 11:54:16 pm
sv_mikh 
 Нашел ошибку в составление графика, после установки отбора по РС ГрафикиРаботы не поставил прочитал набор записей. 
 
Код
Набор = РегистрыСведений.ГрафикиРаботы.СоздатьНаборЗаписей();
    Набор.Отбор.График.Установить(График);
     
  ЧислоСекундВСутках = 86400;

 При вводе новых данных, старые затираются.
Название: Задача 3.41
Отправлено: Legat от Октябрь 07, 2013, 09:14:27 am
При проведении расчетов данные графика берутся за расчетный период по всем графикам. Никак не могу понять почему...
Вложения:
legat_3.41.dt
Название: Задача 3.41
Отправлено: mikas-2008 от Февраль 02, 2014, 01:54:25 pm
artfa, у меня к вашему решению куча вопросов:

 1. Почему не очищаются регистры расчета при перепроведении документа начисление зарплаты? Удаляю записи сотрудников, а регистры не очищаются.

 2. Огромнейшие запросы с кучей виртуальных таблиц. На сколько я знаю, за лишнее использование ВТ на экзамене снижают баллы. Не проще ли разделять расчеты на два этапа для каждого плана расчетов: на первом этапе мы считаем исходные данные, на втором этапе делаем расчет.
 -----------------------------------------------------------------------------------------------------------------------------------
 Пара мыслей по поводу этой задаче. Пишу как программист со стажем по реальным расчетным задачам. Правда код пишу на Delphi, но скоро хочу переписывать наш проект на 1С. Так вот:

 1) Оприори не правильно использовать табель, как документ делающий проводки по РР. Да это грубая ошибка. В задании билета начисления должны вводиться одним документом - РАСЧЕТ ЗАРПЛАТЫ. В реальных условиях табель - это лишь вспомогательный документ, который для каждого сотрудника формирует график работы в текущем месяце.

 2) Необходимо определиться использовать ли механизмы вытеснения или нет? Они в первую очередь необходимы для определения кол-ва отработанных часов например для оклада в текущем месяце.

 2.1) Если ДА, тогда из табеля нужно будет получить периоды по командировке и использовать их в документе НАЧИСЛЕНИЕ ЗАРПЛАТЫ.
 2.2) Если НЕТ то тогда не указывать вытеснения в планах видов расчета и брать данные например из оборотных регистров накопления.
Название: Задача 3.41
Отправлено: mikas-2008 от Февраль 03, 2014, 12:55:37 am
Решил данную задачу. Мельком подсмотрел решения форумчан и не увидел правильного для себя решения и сделал все по своему:

 1) Для табеля использовал РН (обороты) в разрезах сотрудника и подразделения. Так кстати делают и в 1С в типовой конфигурации.
 2) В РР Осн. нач. добавил ресурс часы. В этот ресурс записываются либо командировочные, или рабочие часы. В зависимости от вида расчета. Основываясь на этих данных я смогу получить базу в часах, т.е. кол-во отработанных часов за предыдущие месяцы, а по скольку командировки и оклады не пересекаются, то и количество базовых часов будет верным.
 3) Все расчеты делю на два этапа. На первом ввожу исходные данные, на втором делаю расчеты. Смотреть на решения форумчан иногда не возможно. Все лепят в одну кучу. Как потом отлаживать такой код? Не понятно.
 4) Форму Табеля использовал из реального билета на 1С: специалист.

 Надеюсь мое решение кому-то да пригодится. :-) Будут вопросы, буду рад на них ответить, но похоже эта ветка умерла совсем. :-)))
Вложения:
3.41_mikas.dt
Название: Задача 3.41
Отправлено: non1ka от Март 15, 2014, 11:14:32 pm
Не перестаю возмущаться, почему Вы все постоянно используете РН для получения данных при расчете.

 Данная задача прекрасно решается, при использовании только регистров расчетов.

 Опишу способ решения.
 ПВР ОсновныеНачисления (Оклад и Командировка)

 Оклад База для Расчета Оклад.
 Вы спросите зачем для Оклада База. Я отвечу, очень просто получить
 количество фактически отработанных дней по базе от оклада, если документ
 "Табель" будет делать движения в РР "Основные начисления" и
 регистрировать только Фактически отработанные часы.
 Затем при расчете заработной платы, мы не обращаемся ни к каким регистрам накопления, не
 обращаемся к регистрам сведения и графику напрямую.

 В данной задаче даже есть специальное условие, которое позволяет так решить
 задачу, в условии первого абзаца сказано, что количество часов в
 командировке должно отражаться документом "Табель", а затем в абзаце про
 расчет командировке ни чего не сказано, про расчет командировки с
 учетом количества часов нахождения в командировке. Точнее сказано
 обратное, что количество часов в командировке должно определяться по
 пятидневному графику.

 В общем, решение элементарное,
Вложения:
3.41_non.dt
Название: Задача 3.41
Отправлено: Rizjiy от Март 27, 2014, 11:55:28 am
mikas-2008, Решение очень понравилось. Все четко и прозрачно!
 Пару критик smile :
 1)Процедура проведения Начисления зарплаты:
 
Код
 Процедура ОбработкаПроведения(Отказ, Режим)
     Движения.ОсновныеНачисления.Записать();
Очищать движения не нужно, т.к. мы их не читаем ))
 А потом в конце еще раз. Т.е. запись 2 раза.
 Я обычно делаю так:
 
Код
Движения.ОсновныеНачисления.Записывать=Истина;
 Движения.ОсновныеНачисления.Очистить(); //на случай, если они не пустые
 ...
 Движения.Записать();
В таком случае Флаг "записывать" снимается и движения пишутся один раз.

 2) Ну и отбор на ДанныеГрафика в процедуре расчета стоит не в Параметрах виртуальной таблицы.

 non1ka, )) У тебя всегда нетривиальные решения )) Но я бы не стал на экзамене ставить базу окладу от оклада Оо.
Название: Задача 3.41
Отправлено: Leo705 от Май 29, 2014, 03:32:46 pm
Моё решение smile
Вложения:
Leo705_3.41.dt
Название: Задача 3.41
Отправлено: dron9205 от Сентябрь 10, 2014, 11:40:43 am
Всем добрый день, возник вопрос по задаче
 Все решения что я здесь увидел с помощью документа "Табель" пишут в РН одну запись в месяц. На начало или на конец месяца не суть.
 А что если нужно будет рассчитать ЗП за, например, половину месяца? В РН одна запись за весь месяц мы физически не сможем узнать сколько сотрудник отработал за половину месяца.
Название: Re: Задача 3.41
Отправлено: rusmosav от Май 26, 2015, 10:26:52 am
Прощу оценить.
Название: Re: Задача 3.41
Отправлено: Sanek421 от Июнь 01, 2015, 04:53:27 pm
Прощу оценить.

Вы не ту задачу выложили в данном разделе. Как я понял вы выложили 1.41!
Название: Re: Задача 3.41
Отправлено: Solitar от Июнь 05, 2015, 03:36:44 pm
Посмотрел почти все решения и нигде не увидел выполнение этого условия (мб в старых задачниках было по другому):

Часовая ставка для расчета командировки определяется как сумма всех
начислений за два предыдущих месяца, деленная на количество рабочих часов в
двух предыдущих месяцах.


Именно рабочих, а не отработанных.
Название: Re: Задача 3.41
Отправлено: rusmosav от Июнь 06, 2015, 12:06:29 pm
Прощу прощения за ошибку.
Прощу оценить.
Название: Re: Задача 3.41
Отправлено: Jones от Август 25, 2015, 03:13:20 pm
Коллеги! У меня возник вот какой вопрос.
Правильно ли я понимаю, что в задачах с Табелем вытеснение видов расчета не имеет смысла?
Ведь Факт мы все равно берем не из ДанныеГрафика, а как обороты из оборотного регистра Табель.

Получается, что указывать Командировку, как вытесняющую для Оклада - не нужно?
Название: Re: Задача 3.41
Отправлено: axel_work от Февраль 23, 2016, 05:26:12 pm
День добрый! Критика плиз.

Опять задача, в которой есть факт в табеле (командировка), но что с ним делать - непонятно, т.к. брать надо из графика по условию. 

И снова база по начислениям с другим графиком. Как обычно, если взять просто базовый период - то будет количество рабочих часов по графику командировки, т.е. по пятидневке. А оклад например мог быть по 6-дневке (хотя это не по условию, но все же).

Поэтому я беру данные графика за предыдущие 2 месяца по окладу - и из них получаю кол-во рабочих часов. Считаю что рабочие часы - это только оклад. В базе для проверки сделал у одного сотрудника - пятидневку, у второго - шестидневку, все ровно считает.  Хотя тоже вариант так себе, так как если не было начислений, то и рабочие часы не будут получены.

Можно и базовый период брать, тогда только не по графику будет, а так нормально.


Название: Re: Задача 3.41
Отправлено: Шахназар от Март 10, 2016, 05:06:15 pm
Не перестаю возмущаться, почему Вы все постоянно используете РН для получения данных при расчете.

 Данная задача прекрасно решается, при использовании только регистров расчетов.

 Опишу способ решения.
 ПВР ОсновныеНачисления (Оклад и Командировка)

 Оклад База для Расчета <u>Оклад</u>.
 Вы спросите зачем для Оклада База. Я отвечу, очень просто получить
 количество фактически отработанных дней по базе от оклада, если документ
 "Табель" будет делать движения в РР "Основные начисления" и
 регистрировать только Фактически отработанные часы.
 Затем при расчете заработной платы, мы не обращаемся ни к каким регистрам накопления, не
 обращаемся к регистрам сведения и графику напрямую.

 В данной задаче даже есть специальное условие, которое позволяет так решить
 задачу, в условии первого абзаца сказано, что количество часов в
 командировке должно отражаться документом "Табель", а затем в абзаце про
 расчет командировке ни чего не сказано, про расчет командировки с
 учетом количества часов нахождения в командировке. Точнее сказано
 обратное, что количество часов в командировке должно определяться по
 пятидневному графику.

 В общем, решение элементарное,<hr>Вложения:
<a href="./ucoz_attachments/16/3.41_non.dt">3.41_non.dt</a>

Один нюанс. Табелем создаются огромное количество записей регистра расчета. А это хорошо?
Название: Re: Задача 3.41
Отправлено: alfalume от Июль 13, 2016, 09:24:56 am
мое решение, покритикуйте пожалуйста
Название: Re: Задача 3.41
Отправлено: DenDSMG от Сентябрь 22, 2016, 12:06:36 pm
У меня свое видение условия задачи: для командировки график "5 дневка" означает, что если в табеле стоит буковка К, то её меняем на 8 часов в командировке. И больше ничего. Реквизит регистра График при этом заполняется графиком сотрудника, а вовсе не "5 дневкой"- так мы сможем получить значение правильного графика по базе.
Часы для оклада и командировки я решил хранить в отдельных ресурсах РН.
Название: Re: Задача 3.41
Отправлено: kuzyara от Ноябрь 28, 2016, 05:13:49 am
Буду рад если меня поправят, но всё же выскажусь.
У меня свое видение
...
Реквизит регистра График при этом заполняется графиком сотрудника, а вовсе не "5 дневкой"- так мы сможем получить значение правильного графика по базе.
Чего гадать-то как правильно, на экзамене наше видение никому не нужно. Изучаем предметку и методические статьи по ЗУПу и ЗиКу, читаем:
Цитировать
Документ Ввод табелей учета рабочего времени предназначен для того, чтобы перед расчетом зарплаты ввести или откорректировать данные об отклонениях, введенные в течение расчетного периода.
...
Обязательно нужно иметь в виду, что, несмотря на возможность редактирования отработанного времени и неявок с помощью табеля, расчет сумм оплаты неявок и размеров дополнительных начислений ведется специальными первичными документами системы. Например, ввод в табеле информации о двухдневной командировке работника не обеспечит автоматического расчета суммы оплаты по среднему заработку.

Подробнее: http://buh.ru/articles/documents/14364/
Цитировать
Метод сплошной регистрации  —  наряду с регистрацией документов-отклонений ведется регистрация фактически использованного времени путем ввода таких первичных документов, как Табель учета рабочего времени

Подробнее: http://v8.1c.ru/budghrm/test/wt.htm

В задании же четко сказано, что ВСЕ сотрудники работают по пятидневке. Так что ПланЧасов берем из ГрафикаРаботы, а ФактЧасов из табеля. А если периоды действия РасчетаЗарплаты вдруг не совпадают с Табелем - количество выплачиваемых денег определяется всё-таки первым документом, а не вторым!
И ещё раз - документ Табель не делает НИКАКИХ движений по регистру ОсновныеНачисления.
Название: Re: Задача 3.41
Отправлено: Altavista- от Октябрь 13, 2018, 02:15:22 pm
Просмотрел это всё и вспоминается старый анекдот про "оооо... месье знает толк в извращениях".
1. Запись табелем РР!? Брееед, полночный бред терзает что-то там. Делаете в табеле проведение ТОЛЬКО по РН.

в "начислении зарплаты"
1. Запросом к РН определяете периоды: соединяете таблицу РН саму с собой и определяете начала и окончания периодов по вижду времени командировка (соединение таблиц а -ля добавитькдате(табель.дата, день, - 1) = табель1.дата, условие где табель1.дата есть Null
Там же выбираете всех сотрудников, кто работал в периоде: им период с видом расчета оклад с начала по конец месяца;
2.  Записываете движения с полученными периодами
3. настраиваете вытеснение оклада командировкой в ПВР
4. получаете данные графика: норма из ДГ, факт из РН, вязь по периоду, который уже определён.
Всё
Название: Re: Задача 3.41
Отправлено: eiffil от Октябрь 14, 2018, 10:44:49 am
Просмотрел это всё и вспоминается старый анекдот про "оооо... месье знает толк в извращениях".
1. Запись табелем РР!? Брееед, полночный бред терзает что-то там. Делаете в табеле проведение ТОЛЬКО по РН.

в "начислении зарплаты"
1. Запросом к РН определяете периоды: соединяете таблицу РН саму с собой и определяете начала и окончания периодов по вижду времени командировка (соединение таблиц а -ля добавитькдате(табель.дата, день, - 1) = табель1.дата, условие где табель1.дата есть Null
Там же выбираете всех сотрудников, кто работал в периоде: им период с видом расчета оклад с начала по конец месяца;
2.  Записываете движения с полученными периодами
3. настраиваете вытеснение оклада командировкой в ПВР
4. получаете данные графика: норма из ДГ, факт из РН, вязь по периоду, который уже определён.
Всё

1. Периоды действия не нужно определять из табеля. Все периоды действия вы указываете в документе. Например, оклад с 01.01 по 31.01, командировка - с 01.01 по 16.01
2. Вытеснение в задачах с табелем настраивать не надо, т.к. вы не будете получать фактический период действия исходя из данных графика. Соответственно на экзамене это может быть воспринято как ошибка.
Название: Re: Задача 3.41
Отправлено: А_Б_В от Август 13, 2020, 11:05:01 am
Решение