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

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

alkon

  • Новичок
  • *
  • Сообщений: 7
  • ФИО: Александр
Re: Билет 1. Спец по платформе V8
« Ответ #1005 : Июль 22, 2019, 11:44:42 am »
Добрый день. Посмотрел несколько решений и ни в одном в ПР никто не использует подразделение. В задаче условие: "Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается". Соответствено в регистрах должно появится измерение Подразделение, а через регистр сведений нужно реализовать чтобы не было совместительства.  Поделитесь опытом пожалуйста как кто трактует условие про подразделение ?

Это условие трактуется однозначно — измерения "Подразделение" в регистрах расчета быть НЕ ДОЛЖНО! Далее смотрим, если в отчете есть колонка "Подразделение", то добавляем реквизит "Подразделение" в регистры расчета.

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

Михаил Проходцев

  • Проверенный
  • ***
  • Сообщений: 219
Re: Билет 1. Спец по платформе V8
« Ответ #1006 : Июль 22, 2019, 12:23:11 pm »
Добрый день. Посмотрел несколько решений и ни в одном в ПР никто не использует подразделение. В задаче условие: "Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается". Соответствено в регистрах должно появится измерение Подразделение, а через регистр сведений нужно реализовать чтобы не было совместительства.  Поделитесь опытом пожалуйста как кто трактует условие про подразделение ?

Это условие трактуется однозначно — измерения "Подразделение" в регистрах расчета быть НЕ ДОЛЖНО! Далее смотрим, если в отчете есть колонка "Подразделение", то добавляем реквизит "Подразделение" в регистры расчета.

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

    На самом деле letyurij  прав.
    Условие о возможности одновременной работы в разных подразделениях, либо на запрет такой работы не предполагает никакого контроля.
    В расчетной задаче от Вас хотят видеть именно понимание и умение использовать расчетные механизмы. Одновременная работа в разных подразделениях подразумевает разрез учета по Сотруднику и Подразделению, соответственно и получение базы и вытеснение - всё будет вестись в разрезе этих аналитик, поэтому Подразделение и помещается в измерение. В противном же случае, если Подразделение задействовано где-то еще, то необходимо его добавить в реквизит регистр расчета, если не используется вовсе, то и никакого смысла хранить его значение в базе данных нет.


letyurij

  • Пользователь
  • **
  • Сообщений: 87
Re: Билет 1. Спец по платформе V8
« Ответ #1007 : Июль 22, 2019, 07:38:18 pm »
Цитировать
Преподаватель вас попросит продемонстрировать механизм не возможности работать в двух подразделениях как вы это сделаете ?
1. Платформа контролировать сей механизм не умеет.
2. Требования программно сие сделать в условии задачи — НЕТ.
3. Значит — контролирует ПОЛЬЗОВАТЕЛЬ.

Создание лишнего измерения, ненужного для решения конкретной задачи — получаете минус,  т.к. продемонстрировали НЕЗНАНИЕ платформы.

ps. Про может (не может) одновременно работать в разных подразделениях — это должно быть, как отче наш, ну, или 2х2=4 ))

Aziraalx

  • Новичок
  • *
  • Сообщений: 2
  • ФИО: Евгений
Re: Билет 1. Спец по платформе V8
« Ответ #1008 : Июль 30, 2019, 03:38:12 pm »
Добрый день. Подскажите пожалуйста, 2 вопроса:
1. Имеет ли смысл в задаче по БУ, устанавливать источник данных для блокировки по субконто (номенклатуре) из табличной части или временной таблицы ? или достаточно будет заблокировать счет Товары ?
2. Почему для списания себестоимости большинство людей даже здесь в теме пишут Что Себестоимость = ?(Списать = Выборка.КолОст, Выборка.СуммаОст, Списать/Выборка.КолОст*Выборка.СуммаОст), т.е. вычисляют цифру уже в цикле по срокам годности ? По условию задачи необходимо получить себестоимость по всем срокам годности. т.е. когда в группировках где мы получаем СУММА(КолОст) и СУММА(СуммаОст) - результат их деления и будет СреднейСебестоимостью, которая впоследствии умножится на количество к списанию ?
« Последнее редактирование: Июль 30, 2019, 04:31:42 pm от Aziraalx »

Aziraalx

  • Новичок
  • *
  • Сообщений: 2
  • ФИО: Евгений
Re: Билет 1. Спец по платформе V8
« Ответ #1009 : Июль 30, 2019, 04:54:21 pm »
Условие задачи : "Себестоимость определяется как средняя по товару по всем срокам годности. Т.е. например если 1 пачка йогурта со сроком годности 10.01.2010 поступила по цене 90 рублей и еще 1 пачка того же йогурта, но со сроком годности 30.01.2010 поступила по цене 110 рублей, то при списании себестоимость одной пачки данного йогурта равна 100 рублей"

1. Логика условия задачи - что мы берём, к примеру 3 товара  с общим количеством = 90 и общей суммой - 2700 и получаем среднюю цену - 30 (2700/90=30); Но по такой логике у нас остатки в разрезе субконто могут улететь в минус.
2. Логика решения как у большинства людей - мы просто используем методику списания партий (где партия - это наш срок годности) ?

Как же всё таки правильно ? И главное почему ?

letyurij

  • Пользователь
  • **
  • Сообщений: 87
Re: Билет 1. Спец по платформе V8
« Ответ #1010 : Июль 30, 2019, 08:49:17 pm »
Для этого существуют признаки учета по субконто. Заводим признак "Суммовой" и ставим его по товарам, а по срокам годности — НЕТ.

серж

  • Пользователь
  • **
  • Сообщений: 93
  • Билеты: https://expert.chistov.pro/public/1127069/
Re: Билет 1. Спец по платформе V8
« Ответ #1011 : Июль 30, 2019, 10:31:34 pm »
2. Почему для списания себестоимости большинство людей даже здесь в теме пишут Что Себестоимость = ?(Списать = Выборка.КолОст, Выборка.СуммаОст, Списать/Выборка.КолОст*Выборка.СуммаОст), т.е. вычисляют цифру уже в цикле по срокам годности ? По условию задачи необходимо получить себестоимость по всем срокам годности. т.е. когда в группировках где мы получаем СУММА(КолОст) и СУММА(СуммаОст) - результат их деления и будет СреднейСебестоимостью, которая впоследствии умножится на количество к списанию ?
Все так делают, потому что Белоусов требует решать ее именно так чтобы получить зачет. Скачай его курс на торрентах (около 300р.) и посмотри.
 Если вкратце, то таким способом решается т.н. "проблема копеек": если списываем столько сколько осталось в партии, то себестоимость не рассчитываем.

Xamele0n

  • Пользователь
  • **
  • Сообщений: 11
  • ФИО: Кирилл
Re: Билет 1. Спец по платформе V8
« Ответ #1012 : Август 16, 2019, 02:44:14 pm »
Прорешал первый билет.
Прошу посмотреть правильность решения

letyurij

  • Пользователь
  • **
  • Сообщений: 87
Re: Билет 1. Спец по платформе V8
« Ответ #1013 : Август 16, 2019, 03:58:44 pm »
Прорешал первый билет.
Прошу посмотреть правильность решения

ОУ
1. Регистр "ОстаткиНоменклатуры" не установлен режим разделения итогов.
2. В приходной накладной не обработаны дубли при проведении.
3. В приходной накладной на склад приходуются услуги.
4. В отчете "Остатки товаров" ресурс "Количество" не нужен. (Группировки: Склад, Детальные записи)
5. Добавлять секунду к дате отчета — это ошибка. Движения НА дату отчета включаться НЕ должны. Представьте бухгалтер сделал баланс на 1 апреля. А у него остатки начинают изменяться. Он начнет искать кто задним числом документы перепроводит, а оказывается это программист прикололся: движения за 1 апреля в остатки на 1 апреля включил.

ПР
1. Если в задаче явно не сказано, что пользователь сам вносит значение оклада в документ Начисления з/п, то значение оклада надо получать из регистра, а не из табличной части.
2. Получение процента премии надо делать в запросе исходя из даты приема на работу.

Дальше не смотрел. Будет время, гляну.

Xamele0n

  • Пользователь
  • **
  • Сообщений: 11
  • ФИО: Кирилл
Re: Билет 1. Спец по платформе V8
« Ответ #1014 : Август 17, 2019, 04:34:35 am »
ОУ
1. Регистр "ОстаткиНоменклатуры" не установлен режим разделения итогов.
2. В приходной накладной не обработаны дубли при проведении.
3. В приходной накладной на склад приходуются услуги.
4. В отчете "Остатки товаров" ресурс "Количество" не нужен. (Группировки: Склад, Детальные записи)
5. Добавлять секунду к дате отчета — это ошибка. Движения НА дату отчета включаться НЕ должны. Представьте бухгалтер сделал баланс на 1 апреля. А у него остатки начинают изменяться. Он начнет искать кто задним числом документы перепроводит, а оказывается это программист прикололся: движения за 1 апреля в остатки на 1 апреля включил.

ПР
1. Если в задаче явно не сказано, что пользователь сам вносит значение оклада в документ Начисления з/п, то значение оклада надо получать из регистра, а не из табличной части.
2. Получение процента премии надо делать в запросе исходя из даты приема на работу.

Дальше не смотрел. Будет время, гляну.

Спасибо.

1. Даже не догадался туда посмотреть в каркасной, считал по умолчанию стоит :)
2. А надо? придется тогда не конструктором делать, а запросом группировать.
3. Параметры выбора по виду номенклатуры стоят.
4. Согласен
5. Это же особенность получения остатков на дату. Например провели реализацию с датой и временем 31.03.2019 23:59:59, а бухгалтер формирует остатки на конец марта. Если не добавлять секунду, то этот документ не попадет в отчет.

ПР
1. Запросом же беру с регистра по кнопке рассчитать, на форме просто выведен реквизит, надо убрать его?
2. Тоже запросом делаю дата регистрации - дата приема + начальный стаж сотрудника, исходя из полученного стажа беру процент

eiffil

  • Пользователь
  • **
  • Сообщений: 87
Re: Билет 1. Спец по платформе V8
« Ответ #1015 : Август 17, 2019, 10:05:27 am »
2. Почему для списания себестоимости большинство людей даже здесь в теме пишут Что Себестоимость = ?(Списать = Выборка.КолОст, Выборка.СуммаОст, Списать/Выборка.КолОст*Выборка.СуммаОст), т.е. вычисляют цифру уже в цикле по срокам годности ? По условию задачи необходимо получить себестоимость по всем срокам годности. т.е. когда в группировках где мы получаем СУММА(КолОст) и СУММА(СуммаОст) - результат их деления и будет СреднейСебестоимостью, которая впоследствии умножится на количество к списанию ?
Все так делают, потому что Белоусов требует решать ее именно так чтобы получить зачет. Скачай его курс на торрентах (около 300р.) и посмотри.
 Если вкратце, то таким способом решается т.н. "проблема копеек": если списываем столько сколько осталось в партии, то себестоимость не рассчитываем.


Проблема копеек возникает из-за того, что сначала в формуле деление, потом умножение. Достаточно переписать так, чтобы сначала шло умножение, а потом - деление:
Себестоимость = Списать*Выборка.СуммаОст/Выборка.КолОст;

GROOVY

  • Администратор
  • Старожил
  • *****
  • Сообщений: 284
  • ФИО: Павел Чистов
Re: Билет 1. Спец по платформе V8
« Ответ #1016 : Август 17, 2019, 12:08:09 pm »
2. Почему для списания себестоимости большинство людей даже здесь в теме пишут Что Себестоимость = ?(Списать = Выборка.КолОст, Выборка.СуммаОст, Списать/Выборка.КолОст*Выборка.СуммаОст), т.е. вычисляют цифру уже в цикле по срокам годности ? По условию задачи необходимо получить себестоимость по всем срокам годности. т.е. когда в группировках где мы получаем СУММА(КолОст) и СУММА(СуммаОст) - результат их деления и будет СреднейСебестоимостью, которая впоследствии умножится на количество к списанию ?
Все так делают, потому что Белоусов требует решать ее именно так чтобы получить зачет. Скачай его курс на торрентах (около 300р.) и посмотри.
 Если вкратце, то таким способом решается т.н. "проблема копеек": если списываем столько сколько осталось в партии, то себестоимость не рассчитываем.


Проблема копеек возникает из-за того, что сначала в формуле деление, потом умножение. Достаточно переписать так, чтобы сначала шло умножение, а потом - деление:
Себестоимость = Списать*Выборка.СуммаОст/Выборка.КолОст;

А я до сих пор не согласен.
К примеру продаем мы алмазов в граммах (весь остаток) 0.4874834375473642438245553331

Себестоимость списания = 0.4874834375473642438245553331 / 0.4874834375473642438245553331 * Стоимость.

Что имеем? 1 в результате деления. И умножая единицу на любую стоимость получаем полную стоимость. Без проблемы последней копейки.

eiffil

  • Пользователь
  • **
  • Сообщений: 87
Re: Билет 1. Спец по платформе V8
« Ответ #1017 : Август 17, 2019, 04:46:03 pm »
2. Почему для списания себестоимости большинство людей даже здесь в теме пишут Что Себестоимость = ?(Списать = Выборка.КолОст, Выборка.СуммаОст, Списать/Выборка.КолОст*Выборка.СуммаОст), т.е. вычисляют цифру уже в цикле по срокам годности ? По условию задачи необходимо получить себестоимость по всем срокам годности. т.е. когда в группировках где мы получаем СУММА(КолОст) и СУММА(СуммаОст) - результат их деления и будет СреднейСебестоимостью, которая впоследствии умножится на количество к списанию ?
Все так делают, потому что Белоусов требует решать ее именно так чтобы получить зачет. Скачай его курс на торрентах (около 300р.) и посмотри.
 Если вкратце, то таким способом решается т.н. "проблема копеек": если списываем столько сколько осталось в партии, то себестоимость не рассчитываем.


Проблема копеек возникает из-за того, что сначала в формуле деление, потом умножение. Достаточно переписать так, чтобы сначала шло умножение, а потом - деление:
Себестоимость = Списать*Выборка.СуммаОст/Выборка.КолОст;

А я до сих пор не согласен.
К примеру продаем мы алмазов в граммах (весь остаток) 0.4874834375473642438245553331

Себестоимость списания = 0.4874834375473642438245553331 / 0.4874834375473642438245553331 * Стоимость.

Что имеем? 1 в результате деления. И умножая единицу на любую стоимость получаем полную стоимость. Без проблемы последней копейки.

Проводил эксперименты, так и не нашел примера, когда такие копейки могут повлиять на результат (расхождения есть, но они в миллиардных долях после запятой). Возможно, есть какие-то экстренные случаи, когда используется большое количество знаков после запятой, а в целой части тоже большое значение. Тогда из-за устройства чисел с плавающей точкой будет потеря некоторого значения в дробной части. Но вряд ли такое случится на стандартных числах (15,2) и (14,3).
Но еще со школы помню, что лучше всегда сначала умножать, потом делить ))

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

letyurij

  • Пользователь
  • **
  • Сообщений: 87
Re: Билет 1. Спец по платформе V8
« Ответ #1018 : Август 19, 2019, 07:51:47 am »

ПР
1. Запросом же беру с регистра по кнопке рассчитать, на форме просто выведен реквизит, надо убрать его?
2. Тоже запросом делаю дата регистрации - дата приема + начальный стаж сотрудника, исходя из полученного стажа беру процент

Разобрался. Зачем так сложно? На экзамене время дорого. Можно сделать гораздо проще.

1. Набор записей формируем в обработчике
 &НаСервере
Процедура РассчитатьНаСервере()
….

2. Обращаемся к процедуре общего модуля Расчет
3. Загружаем движения
4. Очищаем движения

Xamele0n

  • Пользователь
  • **
  • Сообщений: 11
  • ФИО: Кирилл
Re: Билет 1. Спец по платформе V8
« Ответ #1019 : Август 19, 2019, 11:31:49 am »

Разобрался. Зачем так сложно? На экзамене время дорого. Можно сделать гораздо проще.

1. Набор записей формируем в обработчике
 &НаСервере
Процедура РассчитатьНаСервере()
….

2. Обращаемся к процедуре общего модуля Расчет
3. Загружаем движения
4. Очищаем движения

Представленное решение во вложении, это адаптация варианта выложенного на курсах Гилева (там доп. начисления не рассчитываются) и видел такое решение у некоторых участников форума.

В предложенном вами варианте, мы уменьшаем количество кода на вызов процедуры модуля объекта?

1. Набор записей также формируем запросом, как и у меня
2. Записываем этот набор записей. В вашем варианте этот пункт не написан, это не обязательное действие, чтобы обращаться к виртуальным таблицам регистра? или это входит в пункт создаем набор записей?
3. Выполняем расчет в общем модуле и заполняем табличные части документы
4. Очищаем движения
5. Возвращаем полученный результат на форму