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

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

Maks-r2d2

  • Пользователь
  • **
  • Сообщений: 29
  • ФИО: Макс
Re: Билет 6. Спец по платформе V8
« Ответ #210 : Октябрь 03, 2016, 02:10:05 pm »
Таблица перерасчетов содержит данные о тех записях, которые возможно требуется пересчитать. Давай разбираться дальше.
Перерасчеты должны быть, если меняется сумма база в регистре расчета.
Так работают автоматически помещаемые системой в таблицу перерасчетов записи. То есть когда мы указываемые зависимые виды расчета, система видит что изменился ведущий вид расчета, зависимый необходимо пересчитать, система САМА добавляет эти записи в таблицу перерасчетов.
Для надбавки, сумма базы, - берется из регистра бухгалтерии. Уже противоречие.
В этом случае система по понятным причинам ничего САМА не запишет в таблицу перерасчетов. В этом случае необходимо осуществлять ПРОГРАММНУЮ запись в таблицу перерасчетов. В модуле набора записей регистра бухгалтерии анализировать текущие проводки и при необходимости программно писать данные в таблицу перерасчетов.
Здесь можно посмотреть рабочий код от Гакусея, там же мы с ним обсуждали эту задачку:
http://forum.chistov.pro/index.php?topic=993.msg47196#msg47196

В этой ветки, есть запрос, не уверен что он правильно. Есть ли ветка, где разбирали примеры в самой конфигурации, а не в виде текста. Хочется посмотреть на реальные примеры. А так пока не понятно.

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

al7

  • Пользователь
  • **
  • Сообщений: 46
Re: Билет 6. Спец по платформе V8
« Ответ #211 : Октябрь 03, 2016, 11:52:38 pm »
Пользуясь случаем задам методический вопрос Павлу Чистову.
 
После прорешивания расчетных задач один момент для меня остался непонятным, в выложенных решениях тоже кто как это реализует.
Это определение средней дневной (или часовой) ставки при расчете среднего заработка, когда в задаче сказано, что ставка определяется исходя из "рабочих дней". Рабочие дни как известно это плановые дни по графику, а какой график тут грамотно применить - тот по которому работник работал в тот период или график отпуска/командировки?
Логично применить тот график, по которому работник работал тот период, но тут во-первых проблема определить рабочие (не отработанные) дни, если график менялся в течении месяца базового периода, а во-вторых если работник работал допустим сутки через трое, а в командировке на пятидневке, корректно ли ему платить среднедневную исходя из того графика?
С другой стороны по пятидневке определять рабочие дни в прошлом периоде тоже не корректно, ведь он работал по другому графику (и возможно что еще график менялся в течение базового периода).
Также встречается условие (задача 9), что период больничного по календарным дням, а среднедневное по рабочим дням, что в принципе не корректно.
Сам вопрос возник от того, что условие задачи расчета среднего(это 6, 7, 9) отличается от реального расчета среднего на предприятиях, как посоветуете методически грамотно поступить в данном случае?



Вася

  • Пользователь
  • **
  • Сообщений: 36
Re: Билет 6. Спец по платформе V8
« Ответ #212 : Октябрь 12, 2016, 04:59:12 pm »
Добрый день.
Хотелось бы узнать, кто как реализовал условие "Сотрудники работают на автомобилях предприятия, поэтому возможен обмен автомобилями между водителями". Вопрос: делать автомобиль реквизитом или измерением? Мне кажется что измерением, потому что возможна разная комбинация сотрудник-автомобиль. Но в некоторых решениях скачанных с форума, решено иначе.
Вообще меня этот билет в ступор загнал если честно:"Обратите внимание, в отчете также должна отражаться информация о необходимости перерасчета надбавки при исправлении суммы оплат пассажиров". И следом: "Саму процедуру перерасчета записей в рамках данной задачи реализовывать не требуется". 
« Последнее редактирование: Октябрь 12, 2016, 05:03:02 pm от Вася »

GH0STexe

  • Пользователь
  • **
  • Сообщений: 29
  • ФИО: Иван
Re: Билет 6. Спец по платформе V8
« Ответ #213 : Октябрь 13, 2016, 05:54:34 am »
Вообще меня этот билет в ступор загнал если честно:"Обратите внимание, в отчете также должна отражаться информация о необходимости перерасчета надбавки при исправлении суммы оплат пассажиров". И следом: "Саму процедуру перерасчета записей в рамках данной задачи реализовывать не требуется".
Это значит, что в отчете нужно вывести те документы, которые необходимо перерасчитать. Но сам механизм перерасчетов реализовывать не нужно

Вася

  • Пользователь
  • **
  • Сообщений: 36
Re: Билет 6. Спец по платформе V8
« Ответ #214 : Октябрь 13, 2016, 09:13:01 am »
Вообще меня этот билет в ступор загнал если честно:"Обратите внимание, в отчете также должна отражаться информация о необходимости перерасчета надбавки при исправлении суммы оплат пассажиров". И следом: "Саму процедуру перерасчета записей в рамках данной задачи реализовывать не требуется".
Это значит, что в отчете нужно вывести те документы, которые необходимо перерасчитать. Но сам механизм перерасчетов реализовывать не нужно

Спасибо за ответ. Хотелось бы еще узнать мнение участников форума по поводу измерения/реквизита автомобиль РР.

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 6. Спец по платформе V8
« Ответ #215 : Октябрь 13, 2016, 09:26:39 am »
Хотелось бы еще узнать мнение участников форума по поводу измерения/реквизита автомобиль РР.
Вот здесь
http://forum.chistov.pro/index.php?topic=993.msg41978#msg41978
И это не мнение, а верный ответ.

Вася

  • Пользователь
  • **
  • Сообщений: 36
Re: Билет 6. Спец по платформе V8
« Ответ #216 : Октябрь 13, 2016, 10:36:32 am »
Хотелось бы еще узнать мнение участников форума по поводу измерения/реквизита автомобиль РР.
Вот здесь
http://forum.chistov.pro/index.php?topic=993.msg41978#msg41978
И это не мнение, а верный ответ.
Спасибо.

dertru

  • Пользователь
  • **
  • Сообщений: 14
Re: Билет 6. Спец по платформе V8
« Ответ #217 : Октябрь 14, 2016, 05:11:59 pm »
Добрый день!
Готовлюсь к сдаче на специалиста.
В решении билета в части БУ для списания копеек получилось очень много условий.
Можно ли как-то их уменьшить? Уже голову сломал.
Спасибо!

erdem.badluev

  • Проверенный
  • ***
  • Сообщений: 139
Re: Билет 6. Спец по платформе V8
« Ответ #218 : Октябрь 18, 2016, 04:43:29 am »
Добрый день!
Готовлюсь к сдаче на специалиста.
В решении билета в части БУ для списания копеек получилось очень много условий.
Можно ли как-то их уменьшить? Уже голову сломал.
Спасибо!

По-моему, просто при вычислении себестоимости нужно сначала умножать, а затем делить, и всё!
Например:
Себестоимость=КоличествоСписываем*СуммаОстаток/КоличествоОстаток;Так при списывании оставшихся 3 шт на сумму 33,34 руб, спишется все 3 шт на ВСЕ 33,34 руб. (а не 33,33), т.е. Себестоимость=33,34 руб.

А если сначала делить затем умножать:
Цена=СуммаОстаток/КоличествоОстаток;  (=11,11 руб.)
Себестоимость=Цена*КоличествоСписываем; (=33,33 руб.)
Преславутая копейка останется не списанной.

Мне не понятно почему вы в запросе в модуле объекта документа "Расходная накладная" выбираете по сути одни и те же данные 3 раза? (во вложениях изображения)
неужели не получилось двумя запросами(выбрать даные документа и к нему уже остатки партий по складу)?
ведь в условии сказано:"Себестоимость товара рассчитывается в разрезе партий поступления этого товара" - то есть себестоимость рассчитывать для каждой партии отдельно, а не по складу в целом(если вы так думали).

Также не уверен, что правильно в цикле перебирая всю номенклатуру документа устанавливать блокировки:
Блокировка = Новый БлокировкаДанных;
Пока Выборка.Следующий() Цикл
ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Управленческий");
ЭлементБлокировки.УстановитьЗначение("Период", Новый Диапазон(, Дата));
ЭлементБлокировки.УстановитьЗначение("Счет", ПланыСчетов.Управленческий.Товары);
ЭлементБлокировки.УстановитьЗначение(ПланыВидовХарактеристик.ВидыСубконто.Склад, Склад);
ЭлементБлокировки.УстановитьЗначение(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура, Выборка.Номенклатура);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
КонецЦикла;


можно было как делают многие:
        Блок=Новый БлокировкаДанных;
лЭлБлок=Блок.Добавить("РегистрБухгалтерии.Управленческий");
лЭлБлок.ИсточникДанных=СписокНоменклатуры;
лЭлБлок.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура,"Номенклатура");
лЭлБлок.УстановитьЗначение(ПланыВидовХарактеристик.ВидыСубконто.Склад,Склад);
лЭлБлок.УстановитьЗначение("Счет",ПланыСчетов.Управленческий.Товары);
лЭлБлок.Режим=РежимБлокировкиДанных.Исключительный;
Блок.Заблокировать();

А сам цикл списания партий не стал разбирать :(

erdem.badluev

  • Проверенный
  • ***
  • Сообщений: 139
Re: Билет 6. Спец по платформе V8
« Ответ #219 : Октябрь 18, 2016, 06:06:32 am »
моё решение.
Жду критики.
 :)

GROOVY

  • Администратор
  • Старожил
  • *****
  • Сообщений: 284
  • ФИО: Павел Чистов
Re: Билет 6. Спец по платформе V8
« Ответ #220 : Октябрь 18, 2016, 02:44:28 pm »
Цитировать
По-моему, просто при вычислении себестоимости нужно сначала умножать, а затем делить, и всё!

За это снимут балл. Не спрашивайте почему, сам не могу понять уже много лет. Просто предупредил.

Анатолий

  • Проверенный
  • ***
  • Сообщений: 134
Re: Билет 6. Спец по платформе V8
« Ответ #221 : Октябрь 18, 2016, 04:18:03 pm »
может снимают у тех кто неправильно формулу написал, т.е. например в задачах, где 2 субконто Номенклатура и Партия, а с/сть считается только по Номенклатуре. Можно ДвижениеКоличество*СуммаИтог/КолОстИтог (тогда не закроются копейки), а можно ДвижениеКоличество*ОстатокСуммаИтог/ОстатокКолОстИтог (внизу уменьшать ОстатокСуммаИтог и ОстатокКолОстИтог)(Тогда закроются).
Цитировать
По-моему, просто при вычислении себестоимости нужно сначала умножать, а затем делить, и всё!

За это снимут балл. Не спрашивайте почему, сам не могу понять уже много лет. Просто предупредил.

dertru

  • Пользователь
  • **
  • Сообщений: 14
Re: Билет 6. Спец по платформе V8
« Ответ #222 : Октябрь 18, 2016, 07:36:22 pm »
Мне не понятно почему вы в запросе в модуле объекта документа "Расходная накладная" выбираете по сути одни и те же данные 3 раза? (во вложениях изображения)
неужели не получилось двумя запросами(выбрать даные документа и к нему уже остатки партий по складу)?
ведь в условии сказано:"Себестоимость товара рассчитывается в разрезе партий поступления этого товара" - то есть себестоимость рассчитывать для каждой партии отдельно, а не по складу в целом(если вы так думали).
Я опирался на условие что если номенклатура по одной приходной поступит на разные склады по разной стоимости. Например 10 шт по 10 руб на Склад1 и 10 шт по 12 руб на Склад2. В вашем варианте решения Вы с первого склада будете списывать по 10 рублей, в то время как себестоимость партии 11 рублей.

По расчету себестоимости брал формулу из методички.
Блокировку делал тоже как в методичке.

По вашему решению билет БУ6:
Блокировку накладываете по данным табличной части полученным в объектной модели доступа. Говорят что нужно эти данные получать запросом из базы данных. Тем более, что далее вы их получаете запросом.

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 6. Спец по платформе V8
« Ответ #223 : Октябрь 18, 2016, 10:07:14 pm »

Блокировку накладываете по данным табличной части полученным в объектной модели доступа. Говорят что нужно эти данные получать запросом из базы данных. Тем более, что далее вы их получаете запросом.
На экзамене не бывает проблем из-за получения данных для блокировки из ТЧ документа.

dertru

  • Пользователь
  • **
  • Сообщений: 14
Re: Билет 6. Спец по платформе V8
« Ответ #224 : Октябрь 20, 2016, 12:42:11 am »
моё решение.
Жду критики.
 :)

В части БУ вы списываете не по стоимости партии. У вас на складе стоимость поступающего товара из табличной части, а она может быть не равна себестоимости партии(как я думаю и писал об этом выше).
По СПР. У вас оклад в основных начислениях. Так как по условию это фиксированная сумма в месяц, то он мог бы вполне относится к дополнительным, как не имеющий период действия.
Надбавку же наоборот я бы отнес к основным начислениям. Для примера работник Иванов отъездил на машине №45 в период с 1 по 12 октября и сдал выручку в размере 10000 рублей, за этот период ему полагается надбавка в виде процента от сданной выручки.
Измерением графика можно было бы сделать автомобиль для расчета количества отработанных дней для расчета отпуска.
Возможно я где-то не прав, сам только учусь.