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

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

freemaestro

  • Пользователь
  • **
  • Сообщений: 79
  • ФИО: Сергей А.
Re: Билет 6. Спец по платформе V8
« Ответ #450 : Март 30, 2018, 01:51:25 pm »
Здравствуйте!

Интересует вопрос по получению количества
отработанных дней за предыдущие 3 месяца.
Здесь предлагалось ввести в РР ресурс "ОтработанныеДни"
и туда их записывать, потом брать базу.
Я тоже другого варианта не вижу.

Не выходим ли мы тут на ошибку:
"Решение задач накопления на регистре расчета" -2 балла ?
Т.к. мы фактически накапливаем рабочее время ?

srub

  • Новичок
  • *
  • Сообщений: 9
Re: Билет 6. Спец по платформе V8
« Ответ #451 : Апрель 02, 2018, 04:13:37 pm »
Помогите пожалуйста с третьей задачей Расчеты. Не могу понять, почему не работает конструкция программной обработки результатов запроса по Окладу. Запрос к  РегистрРасчета.ОН.ДанныеГрафика выдает верный результат, далее идет обычный программный код,

Цитировать
Запрос = Новый Запрос;
      Запрос.Текст =
      "ВЫБРАТЬ
      |   ОНДанныеГрафика.НомерСтроки,
      |   ЕСТЬNULL(ОНДанныеГрафика.ЗначениеПериодДействия, 0) КАК План,
      |   ЕСТЬNULL(ОНДанныеГрафика.ЗначениеФактическийПериодДействия, 0) КАК Факт
      |ИЗ
      |   РегистрРасчета.ОН.ДанныеГрафика(
      |         Регистратор = &Ссылка
      |            И ВидРасчета = &ВидРасчета) КАК ОНДанныеГрафика";
      
      Запрос.УстановитьПараметр("Ссылка", Ссылка);
      Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисления.Оклад);
      
      РезультатЗапроса = Запрос.Выполнить();
      
      СтруктураПоиска = Новый Структура("НомерСтроки");
      
      ВДЗ = РезультатЗапроса .Выбрать();
      
      Для Каждого Запись Из Движения.ОН Цикл
         
         Если Запись.ВидРасчета <> ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда
            Продолжить;
         КонецЕсли;
         
         СтруктураПоиска.НомерСтроки = Запись.НомерСтроки;
         
         ВДЗ.Сбросить();
         
         Если ВДЗ.НайтиСледующий(СтруктураПоиска) Тогда
         Запись.ОтработаноДней = ВДЗ.План;
         Запись.Параметр = ВДЗ.Факт;
         КонецЕсли;
      КонецЦикла;
      
      Движения.ОН.Записать(, Истина);



но почему то,  ВДЗ.НайтиСледующий(СтруктураПоиска) дает ЛОЖЬ и выскакивает ошибка

Цитировать
"{ОбщийМодуль.Расчеты.Модуль(45)}: Ошибка при вызове метода контекста (Записать)
      Движения.ОН.Записать(, Истина);
по причине:
Недопустимое значение параметра (параметр номер '2') (Необходим пересчет фактического периода действия)
Недопустимое значение параметра (параметр номер '2') (Необходим пересчет фактического периода действия)"
ДТшник во вложении


srub

  • Новичок
  • *
  • Сообщений: 9
Re: Билет 6. Спец по платформе V8
« Ответ #452 : Апрель 02, 2018, 09:37:35 pm »
Понял в чем ошибка, у меня почему то в регистрах расчета ОН и ДН не записывается номер строки, вместо номера строки там  значение "0". Кто нибудь знает, как подключить в регистре расчета автоматическую нумерацию строк?

andrig

  • Пользователь
  • **
  • Сообщений: 42
Re: Билет 6. Спец по платформе V8
« Ответ #453 : Апрель 03, 2018, 06:47:18 am »
Понял в чем ошибка, у меня почему то в регистрах расчета ОН и ДН не записывается номер строки, вместо номера строки там  значение "0". Кто нибудь знает, как подключить в регистре расчета автоматическую нумерацию строк?

зачем вам и график работы и график автомобиля?
Оклад рассчитывается НЕЗАВИСИМО ОТ ОТРАБОТАННОГО ВРЕМЕНИ.  можно привязать к константе.

srub

  • Новичок
  • *
  • Сообщений: 9
Re: Билет 6. Спец по платформе V8
« Ответ #454 : Апрель 03, 2018, 10:05:18 am »
Можно конечно обойтись просто одним регистром ГрафикиРаботы, тем более что на фиксированный оклад, он никак не влияет, а нужен только для расчета базы для отпуска. Тут как бы получилось масло масляное, но я это сделал что бы отработать условие задачи

Цитировать
Все сотрудники работают по графику работы, установленному для каждого автомобиля отдельно.

Хотя это можно и не делать по идее. Но у меня вылезла уже не в первой задаче ерунда с тем, что не проставляются номера строк в движениях и я не пойму в чем тут фишка, вчера читал литературу, там сказано что номера строк проставляются автоматически и ничего специально настраивать для этого не нужно, но у меня  они не проставляются. Пробовал сделать это программно, но поле Движение.НомерСтроки недоступно для записи
« Последнее редактирование: Апрель 03, 2018, 10:10:47 am от srub »

AlinaYa

  • Новичок
  • *
  • Сообщений: 3
Re: Билет 6. Спец по платформе V8
« Ответ #455 : Апрель 11, 2018, 08:57:27 am »
Добрый день! И все таки куда правильнее относить фикс. сумму? к Доп начислениям или к Основным?

freemaestro

  • Пользователь
  • **
  • Сообщений: 79
  • ФИО: Сергей А.
Re: Билет 6. Спец по платформе V8
« Ответ #456 : Апрель 19, 2018, 03:40:22 pm »
Добрый день!
Кто-нибудь может пояснить:
"Средняя дневная ставка определяется как сумма всех начислений за три предыдущих месяца /на кол-во отработанных дней за пред. 3 месяца."

Про отработанные дни.
Можно ли считать отработанными днями фактическое значение периода действия таблицы ДанныеГрафика с видом расчета Оклад ?

Или есть какая-то другая методика ?

ComradeKite

  • Проверенный
  • ***
  • Сообщений: 137
Re: Билет 6. Спец по платформе V8
« Ответ #457 : Апрель 19, 2018, 09:20:08 pm »
Добрый день! И все таки куда правильнее относить фикс. сумму? к Доп начислениям или к Основным?
Все зависит не от основные - дополнительные, а от использует период действия или нет.
Фиксированную сумму раз в месяц платить надо? Если да, период действия не нужен. Если будете за каждый рабочий день платить фисированную сумму, то период действия нужен.

ComradeKite

  • Проверенный
  • ***
  • Сообщений: 137
Re: Билет 6. Спец по платформе V8
« Ответ #458 : Апрель 19, 2018, 09:27:12 pm »
Добрый день!
Кто-нибудь может пояснить:
"Средняя дневная ставка определяется как сумма всех начислений за три предыдущих месяца /на кол-во отработанных дней за пред. 3 месяца."

Про отработанные дни.
Можно ли считать отработанными днями фактическое значение периода действия таблицы ДанныеГрафика с видом расчета Оклад ?

Или есть какая-то другая методика ?
Обычно такие задачи решаются добавлением ресурса "ОтработаноДней". При записи пишется не только "Результат" но еще "ОтработаноДней". Потом уже через механизм получения базовых значений получаете БазаОтработаноДней.

freemaestro

  • Пользователь
  • **
  • Сообщений: 79
  • ФИО: Сергей А.
Re: Билет 6. Спец по платформе V8
« Ответ #459 : Апрель 20, 2018, 02:31:34 pm »
Добрый день!
Кто-нибудь может пояснить:
"Средняя дневная ставка определяется как сумма всех начислений за три предыдущих месяца /на кол-во отработанных дней за пред. 3 месяца."

Про отработанные дни.
Можно ли считать отработанными днями фактическое значение периода действия таблицы ДанныеГрафика с видом расчета Оклад ?

Или есть какая-то другая методика ?
Обычно такие задачи решаются добавлением ресурса "ОтработаноДней". При записи пишется не только "Результат" но еще "ОтработаноДней". Потом уже через механизм получения базовых значений получаете БазаОтработаноДней.

ComradeKite, спасибо за ответ!

Я выше задавал вопрос, который, впрочем, остался без ответа:

Здравствуйте!

Интересует вопрос по получению количества
отработанных дней за предыдущие 3 месяца.
Здесь предлагалось ввести в РР ресурс "ОтработанныеДни"
и туда их записывать, потом брать базу.
Я тоже другого варианта не вижу.

Не выходим ли мы тут на ошибку:
"Решение задач накопления на регистре расчета" -2 балла ?
Т.к. мы фактически накапливаем рабочее время ?


Что Вы об этом думаете?
Не будет ли правильнее брать ДанныеГрафика за 3 предыдущих месяца, с видом расчета "Оклад",
установив фильтр виртуальной таблицы по этому периоду ?

ComradeKite

  • Проверенный
  • ***
  • Сообщений: 137
Re: Билет 6. Спец по платформе V8
« Ответ #460 : Апрель 20, 2018, 10:48:12 pm »
Добрый день!
Кто-нибудь может пояснить:
"Средняя дневная ставка определяется как сумма всех начислений за три предыдущих месяца /на кол-во отработанных дней за пред. 3 месяца."

Про отработанные дни.
Можно ли считать отработанными днями фактическое значение периода действия таблицы ДанныеГрафика с видом расчета Оклад ?

Или есть какая-то другая методика ?
Обычно такие задачи решаются добавлением ресурса "ОтработаноДней". При записи пишется не только "Результат" но еще "ОтработаноДней". Потом уже через механизм получения базовых значений получаете БазаОтработаноДней.

ComradeKite, спасибо за ответ!

Я выше задавал вопрос, который, впрочем, остался без ответа:

Здравствуйте!

Интересует вопрос по получению количества
отработанных дней за предыдущие 3 месяца.
Здесь предлагалось ввести в РР ресурс "ОтработанныеДни"
и туда их записывать, потом брать базу.
Я тоже другого варианта не вижу.

Не выходим ли мы тут на ошибку:
"Решение задач накопления на регистре расчета" -2 балла ?
Т.к. мы фактически накапливаем рабочее время ?


Что Вы об этом думаете?
Не будет ли правильнее брать ДанныеГрафика за 3 предыдущих месяца, с видом расчета "Оклад",
установив фильтр виртуальной таблицы по этому периоду ?
1.задача накопления, это если товар приходовать, то есть реализовать опер учет на регистрах расчета.
2. Данные графика - это план или норма времени. Вам надо факт за три месяца. Но вдруг там болел или еще какие вытеснения.

freemaestro

  • Пользователь
  • **
  • Сообщений: 79
  • ФИО: Сергей А.
Re: Билет 6. Спец по платформе V8
« Ответ #461 : Апрель 23, 2018, 08:20:45 am »
Добрый день!
Кто-нибудь может пояснить:
"Средняя дневная ставка определяется как сумма всех начислений за три предыдущих месяца /на кол-во отработанных дней за пред. 3 месяца."

Про отработанные дни.
Можно ли считать отработанными днями фактическое значение периода действия таблицы ДанныеГрафика с видом расчета Оклад ?

Или есть какая-то другая методика ?
Обычно такие задачи решаются добавлением ресурса "ОтработаноДней". При записи пишется не только "Результат" но еще "ОтработаноДней". Потом уже через механизм получения базовых значений получаете БазаОтработаноДней.

ComradeKite, спасибо за ответ!

Я выше задавал вопрос, который, впрочем, остался без ответа:

Здравствуйте!

Интересует вопрос по получению количества
отработанных дней за предыдущие 3 месяца.
Здесь предлагалось ввести в РР ресурс "ОтработанныеДни"
и туда их записывать, потом брать базу.
Я тоже другого варианта не вижу.

Не выходим ли мы тут на ошибку:
"Решение задач накопления на регистре расчета" -2 балла ?
Т.к. мы фактически накапливаем рабочее время ?


Что Вы об этом думаете?
Не будет ли правильнее брать ДанныеГрафика за 3 предыдущих месяца, с видом расчета "Оклад",
установив фильтр виртуальной таблицы по этому периоду ?
1.задача накопления, это если товар приходовать, то есть реализовать опер учет на регистрах расчета.
2. Данные графика - это план или норма времени. Вам надо факт за три месяца. Но вдруг там болел или еще какие вытеснения.


ComradeKite, отвечу по пунктам.

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


alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 6. Спец по платформе V8
« Ответ #462 : Апрель 23, 2018, 08:34:06 am »
Опять же, про задачу накопления. Считать рабочее время - это тоже задача накопления. Ну здесь
    нас, видимо, никто не рассудит. Т.к. люди отписываются, что учитывали факт часов в регистре расчета
    и им не делали замечаний. И в типовых конфигурациях так делают.
    Хорошо, эту тему оставим на усмотрение каждого сдающего.
Уверен, что ComradeKite прав.
А вы ходили по ссылке, что у меня в подписи? Мне кажется, что там есть ответ на этот вопрос, и ответ этот от первоисточника.

freemaestro

  • Пользователь
  • **
  • Сообщений: 79
  • ФИО: Сергей А.
Re: Билет 6. Спец по платформе V8
« Ответ #463 : Апрель 23, 2018, 09:21:42 am »
Опять же, про задачу накопления. Считать рабочее время - это тоже задача накопления. Ну здесь
    нас, видимо, никто не рассудит. Т.к. люди отписываются, что учитывали факт часов в регистре расчета
    и им не делали замечаний. И в типовых конфигурациях так делают.
    Хорошо, эту тему оставим на усмотрение каждого сдающего.
Уверен, что ComradeKite прав.
А вы ходили по ссылке, что у меня в подписи? Мне кажется, что там есть ответ на этот вопрос, и ответ этот от первоисточника.

 alex1248, добрый день!

По тем ссылкам, которые у тебя в подписи, я ходил.
И конкретного ответа там нет (если я не заметил - прошу ткнуть).

Я хочу сказать, что задачу можно решать двумя способами:
  1. При записи  движений по окладу, мы пишем фактически отработанное время.
      Для расчета отпуска - читаем его из таблицы База.
  2. Мы не пишем эту информацию вместе с окладом.
     А для расчета отпуска получаем информацию о фактически отработанных днях из ДанныхГрафика.
    Сделав отбор по Окладу и периоду.

    И там, и там - фигурирует оклад как ключевое начисление,
    определяющее, что человек именно работал.

    В 1-м случае мы делаем лишние записи (в дополнительный ресурс РР).
    Во 2-м случае - при чтении данных, в запросе, идет лишнее левое соединение.

    Что лучше, что хуже - на вкус сдающего.
« Последнее редактирование: Апрель 23, 2018, 09:30:46 am от freemaestro »

ComradeKite

  • Проверенный
  • ***
  • Сообщений: 137
Re: Билет 6. Спец по платформе V8
« Ответ #464 : Апрель 23, 2018, 10:23:06 pm »
Опять же, про задачу накопления. Считать рабочее время - это тоже задача накопления. Ну здесь
    нас, видимо, никто не рассудит. Т.к. люди отписываются, что учитывали факт часов в регистре расчета
    и им не делали замечаний. И в типовых конфигурациях так делают.
    Хорошо, эту тему оставим на усмотрение каждого сдающего.
Уверен, что ComradeKite прав.
А вы ходили по ссылке, что у меня в подписи? Мне кажется, что там есть ответ на этот вопрос, и ответ этот от первоисточника.

 alex1248, добрый день!

По тем ссылкам, которые у тебя в подписи, я ходил.
И конкретного ответа там нет (если я не заметил - прошу ткнуть).

Я хочу сказать, что задачу можно решать двумя способами:
  1. При записи  движений по окладу, мы пишем фактически отработанное время.
      Для расчета отпуска - читаем его из таблицы База.
  2. Мы не пишем эту информацию вместе с окладом.
     А для расчета отпуска получаем информацию о фактически отработанных днях из ДанныхГрафика.
    Сделав отбор по Окладу и периоду.

    И там, и там - фигурирует оклад как ключевое начисление,
    определяющее, что человек именно работал.

    В 1-м случае мы делаем лишние записи (в дополнительный ресурс РР).
    Во 2-м случае - при чтении данных, в запросе, идет лишнее левое соединение.

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