Автор Тема: Задача 3.32  (Прочитано 33029 раз)

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

grayshadow

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Anastasiia
Задача 3.32
« Ответ #105 : Август 07, 2013, 11:18:38 am »
Всем привет:) я маленько поздно, но все же. Посмотрела несколько решений и не поняла, почему все сочли, что надо охранять только по рабочим дням. Вы берете 5-дневку и дробите ее по сменам... где в условии задачи это требуется?
 имхо, с тем же успехом можно взять график 24х7, поделить его по сменам:
 01.01 - смена 1 - 24ч
 02.01 - смена 2 - 24ч
 03.01 - смена 3 - 24ч
 ...
 реальная охрана так и работает. А нам упрощается заполнение графиков...
 З.Ы. условие задачи стрёмное, соглашусь:)

artfa

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Артур
Задача 3.32
« Ответ #106 : Сентябрь 27, 2013, 02:34:45 am »
периодичность РР сделал год, т.к. в условии задачи нет ограничения на ввод данных с переходом из месяца в месяц, а условие "Считать, что все данные вводятся в пределах одного месяца" только облегчает условие и нужно для того чтобы в перерасчетах появился отпуск.
Вложения:
2208949.dt


non1ka

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Тюрин Илья Александрович
Задача 3.32
« Ответ #107 : Март 10, 2014, 04:41:25 pm »
Выкладываю свой вариант решения
 Один РР "Основные начисления" Периодичность месяц.
 Реализовал разбивку периода по неделям.
 В остальном не нашел сложностей. Не понял почему в топике 11 страниц.

non1ka

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Тюрин Илья Александрович
Задача 3.32
« Ответ #108 : Март 10, 2014, 04:41:43 pm »
Забыл файл
Вложения:
3.32_non.dt

Leo705

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 3.32
« Ответ #109 : Май 25, 2014, 10:00:58 am »
Мое решение smile

 Решил поэкспериментировать....

 1. Добавил справочник "Смены";
 2. В РС "Графики работы" - измерение "График работы" имеет составной тип. 2 ресурса: ЗначениеЧасов, ЗначениеДней;
 3. Периодичность РР месяц;
 4. Записи разбиваю по неделям;
 5. Компенсация в ДН;
 6. Рабочие дни собираю по базе от оплаты по часовому тарифу, для получения нормы за неделю использую данные ВТ данные графика "...БазовыйПериод", и указываю базовый период тарифа как неделя;
 7. Минус это то, что в любом случае должна быть запись с тарифом, даже если весь месяц сотрудник был в отпуске;
 8. Размер тарифа указывается в документе.
Вложения:
Leo705_3.32.dt
« Последнее редактирование: Май 25, 2014, 10:05:02 am от Андрей »

Nathalie

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Nathalie
Задача 3.32
« Ответ #110 : Июль 16, 2014, 03:39:30 pm »
после выполнения перерасчетов не очищается таблица перерасчетов, что нужно сделать чтобы она очистилась?

Leo705

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 3.32
« Ответ #111 : Июль 17, 2014, 08:42:13 am »
Цитата Nathalie ()
после выполнения перерасчетов не очищается таблица перерасчетов, что нужно сделать чтобы она очистилась?

 Очистить smile

 Таблица перерасчетов очищается при "перепроведении" документов, или если Вы пишите(разрабатываете) механизм перерасчетов (где не производиться "перепроведение" документов), то таблицу необходимо чистить программно, на этапе написания этого механизма.
« Последнее редактирование: Июль 17, 2014, 08:47:17 am от Андрей »

Dimarik_1

  • Пользователь
  • **
  • Сообщений: 68
  • ФИО: Дмитрий
Задача 3.32
« Ответ #112 : Август 24, 2014, 11:12:41 am »
Как мне правильно получить число дней, зная ДанныеГрафик.ЗначениеФактическийПериодДействия в часах? Можно, конечно,
 делить на 8, но вдруг не 8 часов работал человек?

 я таким образом выъодил из ситуации, не знаю, насколько это правильно:
 
Код
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();     
     СтруктураПоиска = Новый Структура("НомерСтроки");    Для Каждого Строка Из НаборЗаписей Цикл        СтруктураПоиска.НомерСтроки = Строка.НомерСтроки;         
         ВыборкаДетальныеЗаписи.Сбросить();
         Если ВыборкаДетальныеЗаписи.НайтиСледующий(СтруктураПоиска) Тогда            Если Строка.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад тогда                Строка.Результат = Строка.Ставка * ВыборкаДетальныеЗаписи.ЗначениеФактическийПериодДействия;                Строка.РезультатДни = ВыборкаДетальныеЗаписи.ЗначениеФактическийПериодДействия / 8;//СКОЛЬКО ОТРАБОТАНО ДНЕЙ - НЕ НРАВИТСЯ                Строка.РезультатЧасы = ВыборкаДетальныеЗаписи.ЗначениеФактическийПериодДействия;            Иначе                 
                 Если ВыборкаДетальныеЗаписи.РезультатДниБаза <> 0 Тогда                    Строка.Результат = Строка.РезультатБаза / ВыборкаДетальныеЗаписи.РезультатДниБаза * ВыборкаДетальныеЗаписи.ЗначениеФактическийПериодДействия / 8;                КонецЕсли;            КонецЕсли;        КонецЕсли;         
          
     КонецЦикла;
Просто в зависимых видах расчета иногда расчет результата идет исходя из отработанных часов, а иногда из отработанных дней

 И еще такой вопрос. Как бы мне правильно настроить перерасчеты?
 Я создал обработку "Перерасчет зарплаты" и в динамическом списке вывел все документы, которые необходимо перерассчитать и потом просто их
 перепровел. Вот мне интересно, насколько я правильно это сделал.

 Вот код процедуры перерасчета
 
Код
&НаСервереБезКонтекстаПроцедура ПерерасчитатьНаСервере(СсылкаНаОбъект)    // Вставить содержимое обработчика.    СсылкаНаОбъект.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение);
      
      
      
 КонецПроцедуры&НаКлиенте
 Процедура Перерасчитать(Команда)    Пока Элементы.ТаблицаПерерасчета.ТекущаяСтрока <> Неопределено Цикл         
         Строка = Элементы.ТаблицаПерерасчета.ТекущиеДанные;         
         ОбъектПерерасчета = Строка.ОбъектПерерасчета;        ПерерасчитатьНаСервере(ОбъектПерерасчета);

          
          
         Элементы.ТаблицаПерерасчета.ТекущаяСтрока = Элементы.ТаблицаПерерасчета.ТекущаяСтрока + 1;    КонецЦикла;     
 КонецПроцедуры

Добавлено (24.08.2014, 11:12)
---------------------------------------------
вы можете глянуть на мое решение задачи и указать на ошибки? Решение  я постом выше выложил. Спасибо


Вложения:
8551584.dt

Leo705

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 3.32
« Ответ #113 : Август 25, 2014, 06:53:19 am »
Цитата Dimarik_1 ()
Как мне правильно получить число дней, зная ДанныеГрафик.ЗначениеФактическийПериодДействия в часах? Можно, конечно, делить на 8, но вдруг не 8 часов работал человек?

 В данном случае у Вас 3 варианта:
 1. Вариант с делением на 8, который использовали Вы. Но лично моё мнение, что это некорректно;
 2. Использовать дополнительный разрез в РС и при определении связи с графиком в РР, например перечисление "ВидУчетаВремени";
 3. Использовать доп. ресурс в РС "ГрафикиРаботы", т.о. у Вас будет 2 ресурса, например "Часов" и "Дней".

 
Цитата Dimarik_1 ()
И еще такой вопрос. Как бы мне правильно настроить перерасчеты? Я создал обработку "Перерасчет зарплаты" и в динамическом списке вывел все документы, которые необходимо перерассчитать и потом просто их
 перепровел. Вот мне интересно, насколько я правильно это сделал.

 Посмотрите решения на этом форуме, как реализован механизм в типовых и какое условие задачи, сравните со своим и примите решение как Вы будете это реализовывать.

Dimarik_1

  • Пользователь
  • **
  • Сообщений: 68
  • ФИО: Дмитрий
Задача 3.32
« Ответ #114 : Август 25, 2014, 02:36:45 pm »
Цитата Leo705 ()
3. Использовать доп. ресурс в РС "ГрафикиРаботы", т.о. у Вас будет 2 ресурса, например "Часов" и "Дней".
Это отличный выход из ситуации. Я посмотрел внимательно на ваше решение задания. Для того чтобы работать с таблицей ДанныеГрафика, необходимо предварительно связать значение ресурса регистра сведений ГрафикиРаботы с РР. У вас в РР расчета ОсновныеНачисления значение графика указано как ЗначениеЧасов. Таким образом, можно сделать вывод, что из таблицы ОсновныеНачисленияДанныеГрафика можно будет получать только ЗначениеЧасовФактический (Плановый) ПериодДействия. Однако вы еще получаете в запросе ЗначениеДнейФактическийПериодДействия.
 Получается, что платформа автоматически понимает что необходимо по всем ресурсам РС считать Плановый и Фактический периоды действия?
 Если да, то тогда какой смысл указания Значения графика при настройке РР? И была бы разница, если бы вы указали в значение графика не ЗначениеЧасов, а ЗначениеДней, например?

Leo705

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 3.32
« Ответ #115 : Август 27, 2014, 06:57:56 am »
Цитата Dimarik_1 ()
Получается, что платформа автоматически понимает что необходимо по всем ресурсам РС считать Плановый и Фактический периоды действия?

 Да.

 
Цитата Dimarik_1 ()
Если да, то тогда какой смысл указания Значения графика при настройке РР?

 Ну как минимум по этому значению рассчитывается пропорциональность базы и это же значение используется при получении данных графика средствами встроенного языка, например с помощью метода "ПолучитьДанныеГрафика()" объекта "РегистрРасчетаЗапись". Думаю можно назвать и еще причины, но что-то с утра голова не особо варит. smile

 
Цитата Dimarik_1 ()
И была бы разница, если бы вы указали в значение графика не ЗначениеЧасов, а ЗначениеДней, например?

 Конкретно в данном решении нет.

 P.S. Более подробно обо всех этих механизмах написано в большом талмуде от 1С "Профессиональная разработка в системе 1СПредприятие 8".

Dimarik_1

  • Пользователь
  • **
  • Сообщений: 68
  • ФИО: Дмитрий
Задача 3.32
« Ответ #116 : Август 27, 2014, 02:29:47 pm »
Я прочитал в этой книге про ДанныеГрафика и про таблицу РС ГрафикиРаботы. Исходя из написанного, для каждого ресурса Рс будет получены ФактическийПериодДействия, ПериодДействия, БазовыйПериод и ПериодРегистрации. С этим все понятно.
 Непонятно только зачем в РР указывать значение ресурса. Из вышесказанного получается, что это лишнее действие. Но сомневаюсь чтобы 1С добавило лишнее никому не нужное действие. Да и к тому же, сделало заполнение значения графика обязательным в РР

Leo705

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 3.32
« Ответ #117 : Август 27, 2014, 03:19:47 pm »
Цитата Dimarik_1 ()
Непонятно только зачем в РР указывать значение ресурса. Из вышесказанного получается, что это лишнее действие.

 Где это я написал, что это лишнее действие? smile

rusmosav

  • Проверенный
  • ***
  • Сообщений: 137
Re: Задача 3.32
« Ответ #118 : Июнь 12, 2015, 03:55:07 pm »
Прощу оценить.
« Последнее редактирование: Июнь 13, 2015, 06:44:16 am от rusmosav »