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

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

CeHbKA

  • Пользователь
  • **
  • Сообщений: 88
Re: Билет 13. Спец по платформе V8
« Ответ #60 : Февраль 17, 2017, 03:19:09 pm »
Решил задачу по СПР. Вдруг кому интересно

dimon1210

  • Новичок
  • *
  • Сообщений: 5
Re: Билет 13. Спец по платформе V8
« Ответ #61 : Март 10, 2017, 12:42:53 pm »
Кому то попадалась задача ОУ с этого билета? Решать нужно на двух или на трех регистрах? И Если на двух, как разделять введенное и не введенное в эксплуатацию оборудование?


MariaVG

  • Проверенный
  • ***
  • Сообщений: 113
Re: Билет 13. Спец по платформе V8
« Ответ #62 : Май 09, 2017, 09:59:46 pm »
СПР. Все-таки остается вопрос по поводу того, делать ли Бригаду измерением в РР "Доп.Начисления". Да, все работает и при том, что Бригада реквизит. Но в списке частых ошибок на экзамене есть следующая "В задаче получения расчетной базы не оптимизирована скорость отбора по измерениям регистра расчета". В одном из сообщений выше упоминалось, что измерением Подразделение/Бригаду нужно делать в двух случаях: 1) есть совместительство или 2) нужно получение базы по данному полю. Хотелось бы понять, действительно ли пункт 2 верен. Может быть, у кого-нибудь есть ссылка на теорию, где что-нибудь говорится насчет этого пункта? Если руководствоваться общими соображениями: когда не делаем Бригаду измерением, виртуальная таблица базы будет возвращать для каждой бригады исходной строки регистра все возможные значения бригад-разрезов. А нужна только указанная в строке бригада.

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 13. Спец по платформе V8
« Ответ #63 : Май 09, 2017, 10:42:34 pm »
2) нужно получение базы по данному полю. Хотелось бы понять, действительно ли пункт 2 верен.
Должно быть так.
Профразработка - Глава 13 - Измерения регистров расчета.

MariaVG

  • Проверенный
  • ***
  • Сообщений: 113
Re: Билет 13. Спец по платформе V8
« Ответ #64 : Май 10, 2017, 12:00:27 am »
СПР. По расчетной задаче еще остается вопрос, что означает "В одном документе могут быть данные за разные расчетные периоды" с точки зрения ввода информации по надбавкам и премиям. Добавлять Период регистрации в ТЧ с доп.начислениями? Ведь у них нет периода действия, есть только период регистрации. Или, может быть, здесь имеется в виду, что период регистрации все-таки в шапке и нужно ввести надбавку или премию "задним числом" за какой-то более ранний месяц? Ситуация в принципе реальная, только вот как ее реализовывать не понятно. Мне сначала понравилась идея с добавлением реквизита "МесяцНачисления" в ТЧ, чтобы от него отсчитывать базовый период. Для Надбавки тогда все нормально получается. Но возникает проблема с Премией от этой надбавки. Зависимость для Премии будет, по-любому, по периоду регистрации. Даже если мы будем из него выбирать данные только по разрезу, равному определенному МесяцуНачисления, мы можем делать это только в рамках конкретного Периода регистрации. Но где гарантия что каким-то другим документом не введут на тот же МесяцНачисления данные с другим Периодом регистрации. Здесь вообще получается путаница. В отчете, приведенном в билете, мы увидим противоречевые данные. Если отчет строить по Периоду регистрации, то в нем может оказаться сотрудник с надбавкой большей, чем та, с которой реально посчитали премию, если премия отбиралась с доп. условием по МесяцуНачисления. А если строить отчет по МесяцуНачисления - можем увидеть в нем данные из других Периодов регистрации. Т.е. начисленная премия ни в том, ни в другом случае не будет соответствовать данным отчета.

В общем, не понятно, то ли "за разные расчетные периоды" применять только к окладу, т.к. у него есть период действия, то ли добавлять Период регистрации в ТЧ с доп.начислениями.

PS. На консультации Павел Белоусов сказал, что теперь в билетах такой формулировки, что в одном документе данные за разные расчетные периоды, НЕТ.
« Последнее редактирование: Май 10, 2017, 07:44:33 pm от MariaVG »

MariaVG

  • Проверенный
  • ***
  • Сообщений: 113
Re: Билет 13. Спец по платформе V8
« Ответ #65 : Май 10, 2017, 12:13:32 am »
2) нужно получение базы по данному полю. Хотелось бы понять, действительно ли пункт 2 верен.
Должно быть так.
Профразработка - Глава 13 - Измерения регистров расчета.
Нашла, спасибо.

TUBORG14

  • Пользователь
  • **
  • Сообщений: 23
  • ФИО: КДБ
Re: Билет 13. Спец по платформе V8
« Ответ #66 : Июнь 10, 2017, 06:40:26 pm »
Сдал спеца 09.06.17. Хочу поделиться своими решениями билетов. Спасибо всем участникам за обсуждение и выкладываемые решения. Это серьезная помощь в подготовке к экзамену.

I-am-a-programmer

  • Новичок
  • *
  • Сообщений: 4
  • Я программист.ру
  • ФИО: Николай Захаренков
Re: Билет 13. Спец по платформе V8
« Ответ #67 : Июль 21, 2017, 10:39:38 am »
Кому то попадалась задача ОУ с этого билета? Решать нужно на двух или на трех регистрах? И Если на двух, как разделять введенное и не введенное в эксплуатацию оборудование?
Я сделал через перечисление РасположениеОборудования, т.к. проверять расположение оборудования по пустой или заполненной дате мне режет глаз.

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

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

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

Блокировка.Заблокировать();

К блокировкам особое отношение на экзамене, поэтому я бы не стал этим пренебрегать.

TUBORG14

  • Пользователь
  • **
  • Сообщений: 23
  • ФИО: КДБ
Re: Билет 13. Спец по платформе V8
« Ответ #68 : Август 01, 2017, 08:52:17 pm »
Кому то попадалась задача ОУ с этого билета? Решать нужно на двух или на трех регистрах? И Если на двух, как разделять введенное и не введенное в эксплуатацию оборудование?
Я сделал через перечисление РасположениеОборудования, т.к. проверять расположение оборудования по пустой или заполненной дате мне режет глаз.

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

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

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

Блокировка.Заблокировать();

К блокировкам особое отношение на экзамене, поэтому я бы не стал этим пренебрегать.

I-am-a-programmer ЖЖЁТ, предложенный код даже комментировать не хочу  ;D

I-am-a-programmer

  • Новичок
  • *
  • Сообщений: 4
  • Я программист.ру
  • ФИО: Николай Захаренков
Re: Билет 13. Спец по платформе V8
« Ответ #69 : Сентябрь 09, 2017, 12:30:15 am »
I-am-a-programmer ЖЖЁТ, предложенный код даже комментировать не хочу  ;D
Хорошо, тогда мой комментарий: накладывать X блокировку на весь регистр (по которому вводятся «Приходная накладная» и «Ввод в эксплуатацию») на время выполнения регламентной операции считаю неверным решением с точки зрения оптимизации. Эксклюзивная блокировка будет наложена до конца транзакции, а значит ни один из указанных документов не сможет быть введен в это время, они встанут в очередь на ожидание завершения транзакции. Если обработка будет работать больше 20 секунд, то документы начнут вылетать по таймауту.
Указывая диапазоны:
ЭлементБлокировки.УстановитьЗначение("СрокГодностиДо", Новый Диапазон(Неопределено, Дата));
ЭлементБлокировки.УстановитьЗначение("СрокЭксплуатацииДо", Новый Диапазон(Дата('00010102'), Дата));
мы даем возможность параллельно с работающей обработкой вводить "Приходную накладную", поскольку записываемый реквизит СрокЭксплуатацииДо будет пустой, точнее с датой Дата('00010101') и СрокГодностиДо будет больше даты регламентной операции, т.е. эти даты будут вне заблокированного диапазона. А это значит, что Приходная не будет блокироваться и будет проводиться во время выполнения регламентной операции.
Документ "Ввод в эксплуатацию" так же сможет быть введен, в случае, если будет записывать СрокЭксплуатацииДо с датой > даты выполняемого регламентного документа.

Я бы обосновал это так. Может на специалисте этого и не надо, но в жизни...

LoktarOgar

  • Пользователь
  • **
  • Сообщений: 13
Re: Билет 13. Спец по платформе V8
« Ответ #70 : Январь 15, 2018, 09:58:52 am »
Почему в задаче по оперативному учету в документе Выбытие оборудования в некоторых решениях Регистры Эксплуатация и Остатки блокируются дважды ? То есть, в самом начале обработки проведения через блокироватьДляИзменения, затем идет запрос и по результату этого запроса еще раз блокируются измерения ?

Мои мысли такие - БлокироватьДляИзменения - блокирует в таблице регистра записи сделанные именно этим документом.
А элемент БлокировкаДанных блокирует нужную нам комбинацию измерений вообще по регистру.

Вопрос - а зачем так делать ?

Адам

  • Пользователь
  • **
  • Сообщений: 10
Re: Билет 13. Спец по платформе V8
« Ответ #71 : Март 07, 2018, 04:06:39 pm »
Мое решение 13 билета  , просьба посмотреть  :)

NICzzzZ

  • Пользователь
  • **
  • Сообщений: 22
Re: Билет 13. Спец по платформе V8
« Ответ #72 : Январь 13, 2019, 05:28:19 pm »
Коллеги, доброго! Решенный билет ++. Буду рад обратной связи.

серж

  • Пользователь
  • **
  • Сообщений: 93
  • Билеты: https://expert.chistov.pro/public/1127069/
Re: Билет 13. Спец по платформе V8
« Ответ #73 : Июнь 15, 2019, 03:11:55 pm »

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

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

epcs33

  • Новичок
  • *
  • Сообщений: 2
Re: Билет 13. Спец по платформе V8
« Ответ #74 : Август 21, 2019, 12:06:38 am »
Здравствуйте. Решил 13 билет. Просьба посмотреть задачу по расчетам там где расчитывается премия бригадиру это 3-й ВР. Смотрел решения других все используют Базу ДН через разрез. Максимальную премию по сотрудникам получил во 2-м ВР через переменную. В итоге ее и использовал. Все остальные данные взял из РР ДН. Стоит ли так делать?