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

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

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Билет 8. Спец по платформе V8
« : Август 28, 2015, 05:29:39 pm »
1)   8 билет начал решать с задачи по ПР (3.46) Учет зарплаты в ДвухВалютах. Оклад в Часах, а Компенсация в Днях
Две валюты реализованы на двух ресурсах РР: РезультатРуб и РезультатВал
В регистре Графики два ресурса ЗначениеЧасы (для расчета Оклада) и ЗначениеДни (для расчета Компенсации за телефон)
Основная сложность задачи, на мой взгляд, состоит в том, чтобы уметь правильно получать Ставку из регистра Шкала в зависимости от ФактЧасов (от отработанного времени). Остальное довольно просто, хотя и трудоемко по времени.

2)   Задача по БУ (2.15) Редкие товары + усложнена наличием в ней характеристик, полагаю, это ключевой момент, на который экзаменатор обязательно обратит внимание: образование Сотрудника должно храниться с помощью плана видов характеристик.

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

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

3)   ОУ 1.20 Контроль бюджетов, План, Факт. Подписка на событие
Уважаемый artfa демонстрирует элегантное решение этой задачи через подписку на событие.

Здесь рассуждают по поводу «произвольного периода», думаю это на экзамене непозволительная роскошь. Принял для себя, что имеется ввиду, что пользователь может выбрать произвольный месяц планирования, но каждый план, как и факт относится к конкретном у месяца. Тем более, это хорошо видно в отчете: группировка  колонок период – «Месяц».

4)   УФ
С функциональными опицями разбирался, но сейчас уже забыл. На отличную сдачу не претендую, поэтому не сделал.

Коллеги, как обычно, буду благодарен, если проверите важнейшие моменты, как то параметры вирт.таблиц, блокировки, структуру решения и т.д.

« Последнее редактирование: Август 28, 2015, 05:33:58 pm от Jones »

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Билет 8. Спец по платформе V8
« Ответ #1 : Август 30, 2015, 09:57:04 pm »
Народ, кто что думает насчет формулировки в БУ задаче:
При списании себестоимости следует учесть, что она может быть скорректирована пользователем документом «Операция» и не совпадать с закупочной ценой.

Что надо делать в связи с этой фразой? Списывая себестоимость, получаю запросом остатки на счТовары в разрезе Ном и ИнвНомеров. Достаточно ли этого или надо еще что-то мутить?


alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 8. Спец по платформе V8
« Ответ #2 : Август 30, 2015, 11:52:05 pm »
Что надо делать в связи с этой фразой? Списывая себестоимость, получаю запросом остатки на счТовары в разрезе Ном и ИнвНомеров. Достаточно ли этого или надо еще что-то мутить?
Слышал, что нельзя отказаться от количественного учета (а некоторые так делают, там же типа всё равно везде единички), потому что сумму можно откорректировать до нуля при фактическом наличии товара.

ДимаШ

  • Пользователь
  • **
  • Сообщений: 13
Re: Билет 8. Спец по платформе V8
« Ответ #3 : Август 31, 2015, 06:48:22 am »
Посмотрел ОУ по бюджету. Вообще задача довольно легкая. Я решил ее на экзамене чуть по другому: в регистре Бюджеты сделал три измерения (Подразделение, Статья затрат и Сценарий и два ресурса: Сумма и Превышение) как в типовой УПП.
В зарплате ошибки:
1. Отсутствуют маркеры записи и очистки регистра (Движения.ОсновныеНачисления.Записывать = Истина, Движения.ОсновныеНачисления.Очистить())
2. Вместо Движения.ОснНачисления.Записать() правильнее записывать Движения.Записать().
3. Расчет зарплаты не выведен в отдельный общий модуль. На эказмене преподаватель это проверял и у меня в том числе.

В БУ, в модуле Расходной накладной имеется следующий код:

      Если КоличСписать = Выборка.КолОст Тогда
         СуммаСписать = Выборка.СумОст;
      Иначе
         СуммаСписать = КоличСписать/Выборка.КолОст * Выборка.СумОст;
      КонецЕсли;

Две ошибки - отсутствует проверка на ноль и проверка копеек
« Последнее редактирование: Август 31, 2015, 06:58:57 am от ДимаШ »

Uncle

  • Пользователь
  • **
  • Сообщений: 49
  • ФИО: Max
Re: Билет 8. Спец по платформе V8
« Ответ #4 : Август 31, 2015, 04:43:42 pm »
А зачем проверка на ноль, строками выше у него условие
Если Выборка.КолОст < Выборка.КолДок Тогда
..
соответственно 0 быть не может
разве нет?

по поводу контроля бюджетов. я насмотрелся решений, и по сути их = 2 либо с 1 регистром либо с 2
причем непонятно как формулируется билет. если там написать произвольный период, то будьте добры иначе сочтут за упрощение и минус слупят...
в общем я делал на произвольный так: на каждый день писал частичку из общей суммы ну и при проведении всех документов писал в БюджетФакт сумму и после проверял обороты за период ПланФакт.

Что-то мне не понравился вариант на 1 регистре:)

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Билет 8. Спец по платформе V8
« Ответ #5 : Сентябрь 04, 2015, 01:21:19 pm »
ДимаШ, очень благодарю за конструктивную критику! Респект!
Однако не со всеми Вашими доводами я согасен:

в регистре Бюджеты сделал три измерения (Подразделение, Статья затрат и Сценарий и два ресурса: Сумма и Превышение) как в типовой УПП.

Имеется ввиду СценарийПланирования? Зачем он здесь? И не совсем понятно, как Вы храните Факт, откуда его получаете, чтобы сравнить с Планом и Превышением.

В зарплате ошибки:
1. Отсутствуют маркеры записи и очистки регистра (Движения.ОсновныеНачисления.Записывать = Истина, Движения.ОсновныеНачисления.Очистить())
"Записывать=Истина" здесь ставить не надо, ведь ниже идет принудительная запись данного набора движений:
Движения.ОснНачисления.Записать();

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

2. Вместо Движения.ОснНачисления.Записать() правильнее записывать Движения.Записать().
Все не так однозначно. На самом деле
b]Движения.ОснНачисления.Записать()[/b] - записывает движения по конкретному регистру. Принудительно. Вручную.
Движения.Записать() - выполняет запись движений по всем регистрам, для которых включено "Записывать". При записи этот флаг сбрасывается.

3. Расчет зарплаты не выведен в отдельный общий модуль
Пожалуй, надо учесть. Хоть это и бессмысленно, но лучше подстраховаться и снизить негативные эмоции у эзаменатора ))

Две ошибки - отсутствует проверка на ноль и проверка копеек
Это условие и нужно, чтобы решать проблему копеек.
Если списываем часть Количества, то списываем часть Суммы, а вот если Количество списывается целиком, то и Сумму списываем ровно ту, что на остатке.
Как заметил Uncle, нуля там быть не может, хотя  я постараюсь учесть Ваше замечание, ДимаШ, ведь экзаментор тоже может этого не заметить. Лучше подстраховаться и убрать все эти острые углы ))

Еще раз спасибо за серьезный комментарий к моему решению!

HRom

  • Пользователь
  • **
  • Сообщений: 94
  • ФИО: HRom
Re: Билет 8. Спец по платформе V8
« Ответ #6 : Октябрь 05, 2015, 04:30:00 pm »

Если КоличСписать = Выборка.КолОст Тогда
         СуммаСписать = Выборка.СумОст;
      Иначе
         СуммаСписать = КоличСписать/Выборка.КолОст * Выборка.СумОст;
      КонецЕсли;


В случае "КоличСписать = Выборка.КолОст" отношение "КоличСписать/Выборка.КолОст" равно единице и СуммаСписать будет = Выборка.СумОст без всяких "Если Тогда", это же элементарная математика и за такое минус балл можно словить при плохом настрое экзаменатора, мне кажется.

Quantum81

  • Проверенный
  • ***
  • Сообщений: 117
Re: Билет 8. Спец по платформе V8
« Ответ #7 : Октябрь 05, 2015, 10:10:38 pm »
в Языках Программирования операция деления это какая-то мутная функция, очень часто  имеющая к математике косвенное отношение.
Вопрос упирается в приведение типов.
Ну например, как будет происходить сравнение (или деление следующего)

3.00  = 3.0001   
3.0001   =  3.00 
Одинаково ли будут выполнятся эти сравнения? та же проблема при делении.
Пример для задуматься. В 1С не экспериментировал на эту тему. 
Но раньше (не помню в каком ЯП) я сталкивался что 3.00/3 = 1.000000000001 или типа того.

HRom

  • Пользователь
  • **
  • Сообщений: 94
  • ФИО: HRom
Re: Билет 8. Спец по платформе V8
« Ответ #8 : Октябрь 06, 2015, 09:22:46 am »

Ну например, как будет происходить сравнение (или деление следующего)
3.00  = 3.0001   
3.0001   =  3.00 

в этом случае не выполнится условие "КоличСписать = Выборка.КолОст" и будет выполняться формула с делением, которая расположена в ветке Иначе

artemusII

  • Пользователь
  • **
  • Сообщений: 34
  • ФИО: Артем А.
Re: Билет 8. Спец по платформе V8
« Ответ #9 : Октябрь 09, 2015, 03:20:35 pm »
Посмотрел ОУ по бюджету. Вообще задача довольно легкая. Я решил ее на экзамене чуть по другому: в регистре Бюджеты сделал три измерения (Подразделение, Статья затрат и Сценарий и два ресурса: Сумма и Превышение) как в типовой УПП.

Скажите, пожалуйста, как вы на экзамене реализовали условие "...для каждого отдела заводится бюджет за ПРОИЗВОЛЬНЫЙ период... "?

artemusII

  • Пользователь
  • **
  • Сообщений: 34
  • ФИО: Артем А.
Re: Билет 8. Спец по платформе V8
« Ответ #10 : Октябрь 09, 2015, 05:50:08 pm »
Вообщем, не дождался ответов. Походу в данный момент готовятся 4-5 человек)).  В итоге выкладываю свое решение. Считаю, что фраза "произвольный период" относится к произвольным МЕСЯЦАМ. Ведь в задаче также есть условие "...при проведении любого документа должен происходить анализ фактических затрат и выводится соответствующее предупреждение, в случае превышения над бюджетом..." А при произвольном периоде такой контроль вообще непонятно как реализовать. т.к. непонятно за какой период брать Факт.

Кому не лень гляньте, пжл. А если еще и отпишетесь с критикой, то буду благодарен.

artemusII

  • Пользователь
  • **
  • Сообщений: 34
  • ФИО: Артем А.
Re: Билет 8. Спец по платформе V8
« Ответ #11 : Октябрь 09, 2015, 10:06:55 pm »
Решил задачу по БУ. Просьба посмотреть со стороны... если тут есть кто...

artemusII

  • Пользователь
  • **
  • Сообщений: 34
  • ФИО: Артем А.
Re: Билет 8. Спец по платформе V8
« Ответ #12 : Октябрь 10, 2015, 09:51:50 am »
Полностью прорешал Билет №8. Покритикуйте, пжл.

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Билет 8. Спец по платформе V8
« Ответ #13 : Октябрь 15, 2015, 04:35:54 pm »
Полностью прорешал Билет №8. Покритикуйте, пжл.

artemusII! Несколько раз пытался загрузить твои базы, но они у тебя на 8.3.6, а у меня более старая 8.3.5.
Поставить 8.3.6 можно, но это связано с некоторыми сложностями (не стану объяснять причин).
Так что вот так )) Иногда твои базы не посмотрят потому, что они слишком модерновые ))

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Билет 8. Спец по платформе V8
« Ответ #14 : Октябрь 15, 2015, 05:14:01 pm »
В случае "КоличСписать = Выборка.КолОст" отношение "КоличСписать/Выборка.КолОст" равно единице и СуммаСписать будет = Выборка.СумОст без всяких "Если Тогда", это же элементарная математика и за такое минус балл можно словить при плохом настрое экзаменатора, мне кажется.

HRom, признаться, Вы меня сначала ввергли в пучину сомнений: неужели мое условие бессмыленно? ))
Но затем я вспомнил, откуда это взял. Так что забудьте про свой плохой настрой и читайте на здровье Пункт 7 очень полезной статьи ))

И спасибо за коммент. Теперь я хорошо запомню, как это обяъснить, если экзаментор додумается спросить, зачем такое условие.