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

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

Zeskord

  • Пользователь
  • **
  • Сообщений: 77
  • ФИО: Андрей Назаров
Re: Билет 10. Спец по платформе V8
« Ответ #15 : Ноябрь 15, 2015, 07:41:01 pm »
Вопрос по оперативному учету.
Во всех выложенных здесь решениях модуль объекта документа Комплектация пустой. Здесь писали, что в реальной задаче на экзамене есть оговорка, что пользователь сам контролирует правильность заполнения движений регистра накопления. Но как пользователь может проконтролировать, что до записи его набора записей кто-нибудь не спишет продукты документом Расходная накладная или другим документом Комплектация? И если мы отдаем на откуп пользователю проблему возникновения отрицательного остатка в регистре накопления, то зачем тогда заморачиваться с таким контролем в расходной накладной? Лично я бы на экзамене не рискнул оставлять такую дыру.
Предлагаю свой вариант процедуры ПередЗаписью() документа Комплектация:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

Движения.ОстаткиНоменклатуры.Прочитать();

Если НЕ ЭтоНовый()
И ПометкаУдаления <> Ссылка.ПометкаУдаления Тогда
Движения.ОстаткиНоменклатуры.УстановитьАктивность(Не ПометкаУдаления);
КонецЕсли;

Для каждого Запись из Движения.ОстаткиНоменклатуры Цикл
Запись.Период = Дата;
КонецЦикла;

Движения.ОстаткиНоменклатуры.Записать(Истина);

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

КонецПроцедуры

Quantum81

  • Проверенный
  • ***
  • Сообщений: 117
Re: Билет 10. Спец по платформе V8
« Ответ #16 : Ноябрь 20, 2015, 04:45:19 pm »
ОУ
Для Номенклатуры добавил два реквизита:
    1. ВидНоменклатуры (Набор,Блюдо, Продукт). Везде настроил соответствующие параметры выбора.
   2. ИспользуетсяВБлюде (Булево). Можно поставить ручками, но и в документе комплектация это делается автоматически.

Набор в РС. Чтобы удалить продукт набора с даты,  нужно добавить с количеством ноль на эту дату. (это чтобы срезпоследних корректно работал).
БУ Опять задачка на отчет. Хотя я каким то чудом его с первого раза накидал.
Скорее всего здесь засада в том, что потери введенные пользователем ручной операцией в отчет не попадут.
Поэтому  Беру остатки по ТоварыВПути объединяю с оборотами от регистрации потерь, и дальше уже подтягиваю отправку и прием.  Но если получателей больше одного, отчет не совсем корректный. Да и вообще тогда не понятно как его сделать корректным в этом случае.
СПР Задача по учебнику.
Но возникли вопросы:
   Компенсация получается 5% от оклада. Т.к. мы делим на кол-во рабочих дней, а потом умножаем или я что-то не понял...?
  Теоретический - мы сторнируем оклад. А как тогда пересчитывать компенсацию? база то изменится. Период прошлый закрыт. Что делать-то?
  Или базу по периоду регистрации надо делать?
БП


alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 10. Спец по платформе V8
« Ответ #17 : Ноябрь 20, 2015, 05:36:09 pm »
Или базу по периоду регистрации надо делать?
Да, т.к. "рассчитывается как 5% от суммы начисления по тарифу в текущем расчетном периоде".
Если было бы "за текущий расчетный период", база была бы по периоду действия.

Quantum81

  • Проверенный
  • ***
  • Сообщений: 117
Re: Билет 10. Спец по платформе V8
« Ответ #18 : Ноябрь 20, 2015, 05:51:38 pm »
Или базу по периоду регистрации надо делать?
Да, т.к. "рассчитывается как 5% от суммы начисления по тарифу в текущем расчетном периоде".
Если было бы "за текущий расчетный период", база была бы по периоду действия.
Ну вот он и подводный камушек. А то больно просто всё выходит.  Поменял на Базу по Периоду регистрации - все нормально считает.

Zeskord

  • Пользователь
  • **
  • Сообщений: 77
  • ФИО: Андрей Назаров
Re: Билет 10. Спец по платформе V8
« Ответ #19 : Ноябрь 20, 2015, 05:51:55 pm »
   Компенсация получается 5% от оклада. Т.к. мы делим на кол-во рабочих дней, а потом умножаем или я что-то не понял...?
Я бы еще вот о чем задумался. Допускается совместительство. То есть Иванов работает и в Бухгалтерии, и в Отделе продаж. Но желудок у Иванова один, поэтому компенсация за обед ему положена одна. И не сразу понятно, какое из многих возможных решений будет считаться наиболее правильным.

Quantum81

  • Проверенный
  • ***
  • Сообщений: 117
Re: Билет 10. Спец по платформе V8
« Ответ #20 : Ноябрь 20, 2015, 07:18:23 pm »
   Компенсация получается 5% от оклада. Т.к. мы делим на кол-во рабочих дней, а потом умножаем или я что-то не понял...?
Я бы еще вот о чем задумался. Допускается совместительство. То есть Иванов работает и в Бухгалтерии, и в Отделе продаж. Но желудок у Иванова один, поэтому компенсация за обед ему положена одна. И не сразу понятно, какое из многих возможных решений будет считаться наиболее правильным.
В этом билете всё логично. Т.к. в отчете есть подразделение, то делаем измерение подразделение. Компенсацию начисляем за каждое подразделение. А может в каком-то подразделении не кормят...

Zeskord

  • Пользователь
  • **
  • Сообщений: 77
  • ФИО: Андрей Назаров
Re: Билет 10. Спец по платформе V8
« Ответ #21 : Ноябрь 21, 2015, 03:26:15 pm »
   Компенсация получается 5% от оклада. Т.к. мы делим на кол-во рабочих дней, а потом умножаем или я что-то не понял...?
Я бы еще вот о чем задумался. Допускается совместительство. То есть Иванов работает и в Бухгалтерии, и в Отделе продаж. Но желудок у Иванова один, поэтому компенсация за обед ему положена одна. И не сразу понятно, какое из многих возможных решений будет считаться наиболее правильным.
В этом билете всё логично. Т.к. в отчете есть подразделение, то делаем измерение подразделение. Компенсацию начисляем за каждое подразделение. А может в каком-то подразделении не кормят...
Понятно, спасибо.
Получается, что невыход сотрудника, который работает в двух подразделениях нужно проводить двумя строками. А того, который работает в трех подразделениях - тремя строками. Чтобы вытеснение сработало по каждому подразделению, где ему начислялась оплата по тарифу.

Zeskord

  • Пользователь
  • **
  • Сообщений: 77
  • ФИО: Андрей Назаров
Re: Билет 10. Спец по платформе V8
« Ответ #22 : Ноябрь 21, 2015, 05:46:30 pm »
СПР Разобрался. В моем варианте решения измерение в регистрах расчета одно - Сотрудник. Подразделение - реквизит. Невыход проводится по любому из подразделений (а можно для невыхода вообще подразделение не заполнять) и вытесняет оплату по тарифу во всех подразделениях сотрудника. А когда рассчитываем компенсацию за обеды, берем базу результат по измерению Сотрудник, а базу "отработано дней" по одной из записей в разрезе подразделений. Считаем, что в случае использования различных графиков работы пользователь не вводит разные графики одному сотруднику на разных рабочих местах.

ArtemiFD

  • Новичок
  • *
  • Сообщений: 3
Re: Билет 10. Спец по платформе V8
« Ответ #23 : Декабрь 09, 2015, 01:05:06 pm »
Посмотрите пожалуйста моё решение по ОУ, хочется узнать про ошибки.

Zeskord

  • Пользователь
  • **
  • Сообщений: 77
  • ФИО: Андрей Назаров
Re: Билет 10. Спец по платформе V8
« Ответ #24 : Декабрь 09, 2015, 05:33:00 pm »
Посмотрите пожалуйста моё решение по ОУ, хочется узнать про ошибки.
А как пользователю исключить продукт из набора? Если в регистре сведений установить исключаемому продукту количество 0, то при проведении расходная накладная будет "ругаться".

ArtemiFD

  • Новичок
  • *
  • Сообщений: 3
Re: Билет 10. Спец по платформе V8
« Ответ #25 : Декабрь 09, 2015, 05:38:55 pm »
Посмотрите пожалуйста моё решение по ОУ, хочется узнать про ошибки.
А как пользователю исключить продукт из набора? Если в регистре сведений установить исключаемому продукту количество 0, то при проведении расходная накладная будет "ругаться".

Я подразумевал, что набор нужно создать заново, без нулевых позиций.

Zeskord

  • Пользователь
  • **
  • Сообщений: 77
  • ФИО: Андрей Назаров
Re: Билет 10. Спец по платформе V8
« Ответ #26 : Декабрь 09, 2015, 05:41:10 pm »
Посмотрите пожалуйста моё решение по ОУ, хочется узнать про ошибки.
А как пользователю исключить продукт из набора? Если в регистре сведений установить исключаемому продукту количество 0, то при проведении расходная накладная будет "ругаться".

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

ArtemiFD

  • Новичок
  • *
  • Сообщений: 3
Re: Билет 10. Спец по платформе V8
« Ответ #27 : Декабрь 09, 2015, 06:09:04 pm »
Нулевые позиции могут быть только если пользователь сам их указал, что не верно. Набор у меня собирается заново и определяется на конкретную дату.

zorky

  • Проверенный
  • ***
  • Сообщений: 222
  • ФИО: ЗЖВ
Re: Билет 10. Спец по платформе V8
« Ответ #28 : Декабрь 13, 2015, 08:52:37 pm »
Вообще задача по ОУ интересная, как вам вот такой вариант, вроде всё логично:
Виды товаров: Продукт, Набор и Блюдо. (потом прикинул что вроде 2-х хватит,Блюдо и Набор)
-Док приход номенлатуры: - обычный приход ТОЛЬКО продуктов.(ингридиентов)
-Док комплектация: двигает РН и РС "СоставНабораИлиБлюда", если Блюдо-указывается кол-во порций, и все необходимые ингридиенты для этого. В  РН - расходуем ингридиенты, приходуем готовое блюдо.  Для вида Набор не трогает РН, просто комплектует набор в РС, чтобы списывать набором можно было.
-Док Расходная:  - Продажа Блюд, Наборов и Продуктов.  Ингридиенты по отдельности нельзя. Прежде чем продать Набор-его необходимо Скомплектовать(и Блюда, конечно же - приготовить))).В Набор не могут входить Блюда и Наборы, такие записи игнорируются.  Бизнес-процесс простой: приходуем продукты, готовим блюда из них, составляем наборы и продаём всё это добро))) Суммового учёта нету по условию. Новая методика проведения. 

Добавляю полный 10- билет, чё то все куда-то испарились! )))  Все уже сдали, неужели никто не готовится? Блин,хотелось бы суровой критики Спеца...

Или базу по периоду регистрации надо делать?
Да, т.к. "рассчитывается как 5% от суммы начисления по тарифу в текущем расчетном периоде".
Если было бы "за текущий расчетный период", база была бы по периоду действия.

Блин, сначала сделал по Базу по ПР, но при тестировании заметил, что если Невыход сделать за рассчитанный период(сторно), а ПР поставить текущий месяц-то возникает проблема:  Здесь же делаем начисление Компенсации,и в её Базу попадёт Сторно-запись Оклада за прошлый период,но ТЕКУЩИМ ПР...что не верно. Можно конечно оговорить заранее что ПР у невыхода ставить такой же как и сторнируемой записи, но это некорректно, ведь Сторно на то и Сторно, чтобы запись с текущим ПР, но с прошлым ПД -  сторнировала прошлые записи... ))
Поэтому поменял зависимость Базы по ПД, и стало всё ровно))
« Последнее редактирование: Декабрь 15, 2015, 09:17:20 pm от zorky »

Максим Шувалов

  • Пользователь
  • **
  • Сообщений: 12
  • ФИО: Максим Шувалов
Re: Билет 10. Спец по платформе V8
« Ответ #29 : Январь 20, 2016, 12:00:37 pm »
По поводу задачи по БУ.
На экзамене что-то застопорился над ней, пришлось подумать, но сделал так:

На счете ТоварыВПути - 3 субконто - Номенклатура, Партия, СкалдПолучатель (или просто Склад).
Прибытие - сторнирует все записи по док-ту Отправка , а далее добавляет те же записи, сформированные Отправкой, но с указанным складом. При этом отбор по остатку на сч. ТоварыВПути нужно делать по "СкладПолучатель = В (&СкладыПрибытия)" , СкладыПрибытия - массив, "СкладПрибытия", "Справочник.Склад.ПустаяСсылка".

Если в остатках мы видим, что "СкладПрибытия" пустой - выполняем сторнирование, иначе - не выполняем.
Следующее "прибытие" с другим складом , если укажет ту же самую номенклатуру по той же "Отправке" - прочитает остатки с отбором, указанным выше, и получит нулевой остаток на счете (т.к мы "приписали" эту номенклатуру на "будущее прибытие" на иной склад)

Тогда и отчет получился достаточно простой.
Не знаю, на сколько это было верно сделано - но Гончаров при приемке смотрел этот код со сторнированием, ни слова не сказал.
« Последнее редактирование: Январь 20, 2016, 12:08:21 pm от Максим Шувалов »