Сдавал 24.09.18 дистанционно. Попался билет №3 с известными дополнениями.
Добрый день !
Результат экзамена:
24 сентября 2018 г.
Оценка: 3
Экзамен считается сданным при оценке больше или равной 3.
Комментарий:
Установка учетной политики при переходу на значение "По средней" должна была очищать партии в регистре.
С уважением,
Отдел организации обучения фирмы "1С"
В ОУ движения при списании "По средней" делал с Пустой ссылкой Приходная накладная.
В СПР вечерние часы делал как доп ресурс "ВечерниеЧасы"
Расчет оклада:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОсновныеНачисленияДанныеГрафика.НомерСтроки,
| ОсновныеНачисленияДанныеГрафика.Сотрудник,
| ОсновныеНачисленияДанныеГрафика.Подразделение,
| ОсновныеНачисленияДанныеГрафика.Параметр,
| ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия, 0) КАК Факт,
| ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ВечерниеЧасыФактическийПериодДействия, 0) КАК ФактВЧ,
| ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЗначениеПериодДействия, 0) КАК Норма
|ИЗ
| РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(
| Регистратор = &Ссылка
| И ПериодРегистрации = &Дата
| И ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисления.Оклад)) КАК ОсновныеНачисленияДанныеГрафика";
Запрос.УстановитьПараметр("Дата", Дата);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаОклад = РезультатЗапроса.Выбрать();
Пока ВыборкаОклад.Следующий() Цикл
СтрокаЗаписи = нз[ВыборкаОклад.НомерСтроки - 1];
Если ВыборкаОклад.Норма <> 0 Тогда
СтрокаЗаписи.Результат = ?(СтрокаЗаписи.Сторно, -1,1) * (ВыборкаОклад.Оклад / ВыборкаОклад.Норма * ВыборкаОклад.Факт) + (ВыборкаОклад.Оклад / ВыборкаОклад.Норма * 1.5 * ВыборкаОклад.ФактВЧ);
СтрокаЗаписи.ОтработаноЧасов = ?(СтрокаЗаписи.Сторно, -1,1) * (ВыборкаОклад.Факт + ВыборкаОклад.ФактВЧ);
КонецЕсли;
КонецЦикла;
Расчет командировки:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОсновныеНачисленияБазаОсновныеНачисления.НомерСтроки,
| ЕСТЬNULL(ОсновныеНачисленияБазаОсновныеНачисления.ОтработанныеЧасыБаза, 0) КАК ОтработанныеЧасыБаза,
| ЕСТЬNULL(ОсновныеНачисленияБазаОсновныеНачисления.РезультатБаза, 0) КАК РезультатБаза,
| ОсновныеНачисленияБазаОсновныеНачисления.Сотрудник,
| ОсновныеНачисленияБазаОсновныеНачисления.Подразделение,
| ОсновныеНачисленияБазаОсновныеНачисления.Результат,
| ОсновныеНачисленияБазаОсновныеНачисления.ОтработанныеЧасы,
| ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия, 0) КАК Факт,
| ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ВечерниеЧасыФактическийПериодДействия, 0) КАК ФактВЧ
|ИЗ
| РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(
| Регистратор = &Ссылка
| И ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисления.Командировка)) КАК ОсновныеНачисленияДанныеГрафика
| ПОЛНОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисления.БазаОсновныеНачисления(
| &Измерения,
| &Измерения,
| ,
| Регистратор = &Ссылка
| И ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисления.Командировка)) КАК ОсновныеНачисленияБазаОсновныеНачисления
| ПО ОсновныеНачисленияДанныеГрафика.НомерСтроки = ОсновныеНачисленияБазаОсновныеНачисления.НомерСтроки";
Измерения=Новый Массив(2);
Измерения[0]="Сотрудник";
Измерения[1]="Подразделение";
Запрос.УстановитьПараметр("Дата", Дата);
Запрос.УстановитьПараметр("Измерения", Измерения);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаКомандировка = РезультатЗапроса.Выбрать();
Пока ВыборкаКомандировка.Следующий() Цикл
СтрокаЗаписи = нз[ВыборкаКомандировка.НомерСтроки-1];
Если ВыборкаКомандировка.ОтработаноЧасовБаза <> 0 Тогда
СтрокаЗаписи.Результат = (ВыборкаКомандировка.РезультатБаза / ВыборкаКомандировка.ОтработаноЧасовБаза * ВыборкаКомандировка.Факт)
+ (ВыборкаКомандировка.РезультатБаза / ВыборкаКомандировка.ОтработаноЧасовБаза * ВыборкаКомандировка.ФактВЧ * 1.5);
КонецЕсли;
СтрокаЗаписи.ОтработаноЧасов = ВыборкаКомандировка.Факт + ВыборкаКомандировка.ФактВЧ;
КонецЦикла;