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

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

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Билет 14. Спец по платформе V8
« : Сентябрь 26, 2015, 01:52:30 am »
Осилил Билет 14. Предлагаю обсудить.
« Последнее редактирование: Ноябрь 29, 2019, 04:50:45 pm от GROOVY »

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Билет 14. Спец по платформе V8
« Ответ #1 : Сентябрь 26, 2015, 01:54:36 am »
Мои заметки к 14 билету:

ОУ
Задача 1.27. Взаиморасчеты в Валютах, Авансы в рублях
Составители задач, как обычно, постарались максимально запутать разработчика.
В задаче ничего не сказано, на какую валюту кидать Аванс, после того, как ПриходДенег погасил долги по всем накладным. Поэтому, хочу внести важное дополнение: Аванс всегда в Рублях!

Данные хранятся в одном регистре с тремя измерениями. Для Аванса поле Накладная всегда пустое, а в поле Валюта всегда Рубль.

Блокировку в РН сделал по Контрагенту, пустой накладной и Валюте Рубль, т.к. Аванс характерен именно валютой Рубль и пустой накладной, а РН получает остатки именно по Авансу. Все логично?


БУ
2.28 Сборка комплектов Стандарт/Нестандарт


Изучая условие вспомнил билет 13. Надо было там Комплекты сделать отдельным справочником, ведь там нет такой фразы как здесь: Сами комплекты определяются в справочнике «Номенклатура» наравне с обычными товарами, услугами

Для отчета ввел Оборотное третье субконто на счТовары – перечисление ТипКомплекта (Стандарт/Нестандарт)


ПР

В начале задания упоминается, что документом Табель в систему вводятся часы. На самом деле часы в задаче вообще не нужны. В Окладе искользуются дни, для Премии время значения не имеет, а в документе Табель для каждого рабочего дня ставится просто флаг.
В общем убрал Часы оставил только Значение (Дни).

Для получения базы Надбавки устанавливаю измерения осн и базового регистра только «Подразделение». Разрезы не заполняю, ведь базу надо получить целиком по всему «Подразделению».



alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 14. Спец по платформе V8
« Ответ #2 : Сентябрь 26, 2015, 09:10:16 am »
... Данные хранятся в одном регистре с тремя измерениями. Для Аванса поле Накладная всегда пустое, а в поле Валюта всегда Рубль...
Я делал 2 измерения. Валюта подтягивается из Накладной.
При авансе просто заполнял соответствующую колонку рублем. По поводу формулировки - так логично же, что аванс в рублях (раз поступает в рублях, а пересчет происходит при продаже, значит, до продажи должен быть рубль), другое дело, что в приведенной форме отчета, возможно, умышленно, он в евро.

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Билет 14. Спец по платформе V8
« Ответ #3 : Сентябрь 26, 2015, 10:38:33 am »
Я делал 2 измерения. Валюта подтягивается из Накладной.

И правда, валюта лишнее измерение. Как я не додумался ))

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Билет 14. Спец по платформе V8
« Ответ #4 : Сентябрь 28, 2015, 04:27:32 pm »
Прогнал еще раз. В регистре Взаиморасчеты (ОУ) на этот раз только два измерения: Контрагент и Накладная (а валюта есть в накладной, спасибо alex1248))
Пока делал, возникло еще пара вопросов:

ОУ
У меня док Сборка приходует Комплект всегда в количестве 1 штуки. Как считаете, это нормально?

ПР
Когда делал запрос по расчету Окладов, вдруг понял, что в Табеле нет измерения Подразделение. А ведь оно должно там быть, раз уж сказано: сотрудник может работать одновременно в нескольких подразделениях компании.
Хотел было его туда добавить, но не стал этого делать. Не понятно, как тогда записывать туда данные, ведь в задании сказано, что документ Табель заполняется на весь список сотрудников компании. Там даже есть картинка, как должен выглядеть документ, и подразделение там нигде не упоминается.
В общем, по логике подразделение надо добавить, но лучшее враг хорошего, поэтому оставил все как есть.



alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 14. Спец по платформе V8
« Ответ #5 : Сентябрь 28, 2015, 06:21:30 pm »
ОУ
У меня док Сборка приходует Комплект всегда в количестве 1 штуки. Как считаете, это нормально?
Я думаю, что это допустимый вариант?
Jones, ты вообще сдавать собираешься очно или дистанционно?
По данному вопросу, если очно, то как обычно - быть готовым к тому, чтобы добавить в шапке количество (хотя я считаю, это не совсем логичным - при штучной сборке нестандарт всё же лучше учитывать покомплектно, а не партиями), в зависимости от мнения экзаменатора.
Если дистанционно, принять для себя решение, а также - что напишешь в пояснительной, и обязательно не забыть написать, раз считаешь момент неоднозначным.
ПР
Когда делал запрос по расчету Окладов, вдруг понял, что в Табеле нет измерения Подразделение. А ведь оно должно там быть, раз уж сказано: сотрудник может работать одновременно в нескольких подразделениях компании.
Хотел было его туда добавить, но не стал этого делать. Не понятно, как тогда записывать туда данные, ведь в задании сказано, что документ Табель заполняется на весь список сотрудников компании. Там даже есть картинка, как должен выглядеть документ, и подразделение там нигде не упоминается.
В общем, по логике подразделение надо добавить, но лучшее враг хорошего, поэтому оставил все как есть.
Думаю, что добавить измерение всё же надо. Добавить либо в шапку табеля (например, если на продажи выписывается расходная накладная, это не значит, что накладная будет одна на все продажи  :D ), либо в ТЧ (и сослаться на несоответствие формы условию задачи)
При очной сдаче - как всегда.  :)

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Билет 14. Спец по платформе V8
« Ответ #6 : Сентябрь 28, 2015, 10:14:17 pm »
Конечно, желательно сдавать очно, но жаба не дремлет, поэтому хочу поробовать сдать дистанционно.
Если же дистанционка не прокатит, значит точно поеду в столицу, так сказать на личную встречу с гуру ))

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Билет 14. Спец по платформе V8
« Ответ #7 : Октябрь 28, 2015, 12:01:24 pm »
Задачу по ПР снова изучил и нашел весьма неоднозначной.

Т.к. ЧасыФакт определяются в задаче по Табелю, то хотел было отключить ПД в РР ОН, но оставил его, чтобы получать ЧасыНорма из таб ДанныеГрафика. На экзамене надо не забыть это обосновать в пояснительной записке.

Подразделение – измерение РР, т.к. возможно совместительство. Кроме того добавил Подразделение в рег остатков Табель и, для его заполнения, в ТЧ документа Табель.
С Днями решил, по возможности, больше никогда не заморачиваться, сделал везде Часы: и в рег свед Графики, и в рег ост Табель. При расчете Оклада (который надо бы считать по Дням) тупо получаю отношение ЧасыФакт/ЧасыНорма. Вроде за это санкций не предусмотрено?

При расчете Премии данные получаю прямо из таб ДНБазаОН.
На сколько я помню, Павел Чистов в своем вебинаре по ПР (кажется в последнем пятом уроке на 32 минуте) рекомендовал таблицу База присоединять справа к таблице ДанныеГрафика или к физической таблице, потому что в таблице База записей может и не быть.
Но, я смотрю, многие берут прямо из таблицы ДНБазаОН, да и все равно затем выполняется поиск в Выборке по НомеруСтроки записи, так что, думаю, это грехом не считается.

В отчете по Начислениям, если вывести группировку строк по детальным записям, то для каждого месяца выводится отдельная строка. Чтобы этого не было, группировку строк делаю по: «Подразделение, Сотрудник, ВидРасчета»

HRom

  • Пользователь
  • **
  • Сообщений: 94
  • ФИО: HRom
Re: Билет 14. Спец по платформе V8
« Ответ #8 : Октябрь 29, 2015, 12:25:02 pm »
БУ
Для отчета ввел Оборотное третье субконто на счТовары – перечисление ТипКомплекта (Стандарт/Нестандарт)

А почему бы весь счет "Товары" не сделать оборотным?
Ведь остатки мы смотрим только по счету "Материалы"!

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Билет 14. Спец по платформе V8
« Ответ #9 : Ноябрь 06, 2015, 11:20:11 am »
БУ
Для отчета ввел Оборотное третье субконто на счТовары – перечисление ТипКомплекта (Стандарт/Нестандарт)

А почему бы весь счет "Товары" не сделать оборотным?
Ведь остатки мы смотрим только по счету "Материалы"!

Смелая идея ))
Это означает, что мы Комплекты чисто собираем и все. Сколько их у нас на остатке мы знать не будем ))
Так вот даже не придумаю зачем это может быть нужно, но если сможете доказать экзаментору, что это здравая мысль (ведь по заданию это и не требуется), то можно считать, что экзамен сдан.

mrWinders

  • Пользователь
  • **
  • Сообщений: 10
Re: Билет 14. Спец по платформе V8
« Ответ #10 : Ноябрь 10, 2015, 03:50:16 pm »
Может кто объяснит как в отчете ОУ накл №3 и по евро и по доллару??? если из задания "каждая накладная может быть выставлена в своей валюте. "
Разобрался - посмотрел в задачнике там вместо Евро - Рубль. это немного меняет дело, но все равно не могу понять как накладная может к 2-ум валютам цепляться? - если не ответить на этот вопрос, тогда я еще не видел правильного построения отчета, либо вообще вся логика в решении на одном регистре - неправильная.

ну и колонки оборотов при авансе меняем местами

ВЫБРАТЬ
   ВЫБОР
      КОГДА ОплатыОстаткиИОбороты.Накладная = &Пустая
         ТОГДА &Рубль
      ИНАЧЕ ОплатыОстаткиИОбороты.Накладная.Валюта
   КОНЕЦ КАК Валюта,
   ВЫБОР
      КОГДА ОплатыОстаткиИОбороты.Накладная = &Пустая
         ТОГДА """Аванс"""
      ИНАЧЕ ОплатыОстаткиИОбороты.Накладная
   КОНЕЦ КАК Накладная,
   ЕСТЬNULL(ОплатыОстаткиИОбороты.СуммаНачальныйОстаток, 0) КАК НачОст,
   ВЫБОР
      КОГДА ОплатыОстаткиИОбороты.Накладная = &Пустая
         ТОГДА ЕСТЬNULL(ОплатыОстаткиИОбороты.СуммаРасход, 0)
      ИНАЧЕ ЕСТЬNULL(ОплатыОстаткиИОбороты.СуммаПриход, 0)
   КОНЕЦ КАК Отгружено,
   ВЫБОР
      КОГДА ОплатыОстаткиИОбороты.Накладная = &Пустая
         ТОГДА ЕСТЬNULL(ОплатыОстаткиИОбороты.СуммаПриход, 0)
      ИНАЧЕ ЕСТЬNULL(ОплатыОстаткиИОбороты.СуммаРасход, 0)
   КОНЕЦ КАК Оплачено,
   ЕСТЬNULL(ОплатыОстаткиИОбороты.СуммаКонечныйОстаток, 0) КАК КонОст
ИЗ
   РегистрНакопления.Оплаты.ОстаткиИОбороты КАК ОплатыОстаткиИОбороты
« Последнее редактирование: Ноябрь 10, 2015, 05:55:53 pm от mrWinders »

venvlad

  • Пользователь
  • **
  • Сообщений: 83
Re: Билет 14. Спец по платформе V8
« Ответ #11 : Ноябрь 20, 2015, 12:31:43 pm »
Осилил Билет 14. Предлагаю обсудить.
У тебя в обработке проведения док. Табель период считаешь от даты документа
Движение = Движения.Табель.Добавить();
Движение.Период = Дата + ((Счетчик-1)*День);
Движение.Сотрудник = ТекСтрокаСотрудники.Сотрудник;
Движение.Дни = 1;

В итоге период движения регистра зависит от даты документа, а должен от даты недели.
Движение = Движения.ОтработаноДней.Добавить();
Движение.Период = НачНедели+ (86400 * (Сч-1));
Движение.Дни = 1;
Движение.Сотрудник = Стр.Сотрудник;


Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Билет 14. Спец по платформе V8
« Ответ #12 : Ноябрь 23, 2015, 10:36:43 am »
У тебя в обработке проведения док. Табель период считаешь от даты документа
Ага, спасибо, venvlad. Этот косячище уже поправил в решении, которое приведено в 7 посте данной темы))

Quantum81

  • Проверенный
  • ***
  • Сообщений: 117
Re: Билет 14. Спец по платформе V8
« Ответ #13 : Ноябрь 24, 2015, 02:18:00 pm »
Интересно ваше мнение по СПР:
  Если в оборотный регистр фактЧасы, писать единички в каждый день? Т.е.
Табель с 26 по 02 и мы делаем семь движений по каждому дню с кол-ом единичка.
Периоды записей будут
 Период=26.... Дни=1
 Период=27.... Дни=1
....
  Период=01.... Дни=1
  Период=02.... Дни=1

И факт часы брать из оборотов. Тогда не нужно будет вводить подразделение в табель и можно будет задавать разные интервалы работы в Доке Начиления ЗП.

* сам уже не успеваю прорешать, только повторяю билеты.

Quantum81

  • Проверенный
  • ***
  • Сообщений: 117
Re: Билет 14. Спец по платформе V8
« Ответ #14 : Ноябрь 30, 2015, 11:51:04 am »
ОУ Если бы не отчет, все элементарно. Один РН взаиморасчеты. Аванс хранить на партии пустой ссылке в рублях. Но отчет то огого! Сразу пришлось  добавить измерение Валюта. Далее в Расходную накладную при наличии аванса пришлось делать еще четыре движения:
// оприходовать на дату аванса в валюте
// списать датой накладной аванс в валюте
// Приход валюты по накладной датой аванса
// расход валюты датой накладной
Т.е. мы имеющий рублевый аванс должны сконвертировать в валюту и оприходовать задним числом, чтобы его тут же погасить. В этом случае можно соорудить отчет похожий на отчет в условии (но и там надо немного пошаманиить).
У меня в отчете плывут расходные накладные в рублях. Точнее погашение из аванса по рублевым накладным.
И как я понял отчет не предполагает просмотр не погашенных авансов. Отсюда делаю вывод что нужно было еще и авансы выносить в отдельный РН.
СПР Сделал как писал в верхнем посте оборотный регистр для подневного хранения факта. Когда дошел до расчета понял что без запросов в цикле в этом случае не обойтись, либо собирать по таблице движений. Убрал периоды из ТЧ, но тогда я нарушил два пункта условия про записи и совмещение.  Есть у кого идеи как это обойти?
БУ добавил видноменклатуры Комплекты. Товары и услуги не мог удалить, т.к. в условии они упоминаются.
БП