Автор Тема: Задача 3.32  (Прочитано 32290 раз)

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

Gyd

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 3.32
« Ответ #30 : Октябрь 18, 2011, 05:46:50 pm »
Quote (cheetah)
подскажите процедура перерасчета сводится к перепроведению документов?

 Вообще-то не должна. Документ делает например несколько тысяч записей, а нужно перерассчитать две всего. Нелогично из-за двух записей перепроводить весь документ.

cheetah

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Петр
Задача 3.32
« Ответ #31 : Октябрь 19, 2011, 11:42:17 am »
Gyd,
 длинная получается задачка,
 не знаете она на экзамене не упрощена?


mkanaev

  • Пользователь
  • **
  • Сообщений: 27
  • ФИО: Канаев Михаил Сергеевич
Задача 3.32
« Ответ #32 : Октябрь 19, 2011, 11:50:23 am »
у меня обычно одна процедура расчета, которая принемает ссылку на регистратор и видРасчета, и расчитывает для документа все записи с определённым видом, я не делаю разделение этой процедуры на "расчет" и "перерасчет", а при перерасчете если нужно расчитать оклад то закидываю в процедуру ссылка, и видРасчета оклад, если делать разделение это долго, на экзамене столько времени нет, вообще думаю сделать так, но если останется время то переделать...

Gyd

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 3.32
« Ответ #33 : Октябрь 21, 2011, 10:19:53 am »
Quote (cheetah)
не знаете она на экзамене не упрощена?
 

 Честно сказать не знаю, но думаю будет упрощена.

cheetah

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Петр
Задача 3.32
« Ответ #34 : Октябрь 24, 2011, 12:35:30 pm »
mkanaev,
 подскажи, вид расчета передаёшь в набор?:
 набор = РегистрыРасчета.ОсновныеНачисления.СоздатьНаборЗаписей();
 или только в запрос?
 если в набор передаёшь, напиши код плиз

mkanaev

  • Пользователь
  • **
  • Сообщений: 27
  • ФИО: Канаев Михаил Сергеевич
Задача 3.32
« Ответ #35 : Октябрь 24, 2011, 01:21:32 pm »
cheetah, непонял вопроса... вот код который обычно пишу:
 
Quote
запрос = новый запрос;
 запрос.УстановитьПараметр("ссылка", ссылка);
 массив = новый массив;
 массив.Добавить("Сотрудник");
 массив.Добавить("Подразделение");
 запрос.УстановитьПараметр("ВидРасчета", видРасчета);
 запрос.УстановитьПараметр("Массив", массив);
 запрос.Текст = "ВЫБРАТЬ
 |   ОсновнойДанныеГрафика.НомерСтроки,
 |   ОсновнойДанныеГрафика.ВидРасчета,
 |   ОсновнойДанныеГрафика.Сторно,
 |   ОсновнойДанныеГрафика.Сотрудник,
 |   ОсновнойДанныеГрафика.Подразделение,
 |   ОсновнойДанныеГрафика.Параметр,
 |   ЕСТЬNULL(ОсновнойДанныеГрафика.ЗначениеПериодДействия, 0) КАК ЗПД,
 |   ЕСТЬNULL(ОсновнойДанныеГрафика.ЗначениеФактическийПериодДействия, 0) КАК ЗФПД,
 |   ЕСТЬNULL(ОсновнойДанныеГрафика.ЗначениеБазовыйПериод, 0) КАК ЗБП,
 |   ЕСТЬNULL(ОсновнойБазаОсновной.СуммаБаза, 0) КАК СуммаБаза,
 |   ЕСТЬNULL(ОсновнойБазаОсновной.ЧасовПоНормеБаза, 0) КАК ЧасовПоНорме,
 |   ЕСТЬNULL(ШкалаОкладов.Оклад, 0) КАК Оклад
 |ИЗ
 |   РегистрРасчета.Основной.ДанныеГрафика(
 |         регистратор = &ссылка
 |            И видРАсчета = &видРасчета) КАК ОсновнойДанныеГрафика
 |      ПОЛНОЕ СОЕДИНЕНИЕ РегистрРасчета.Основной.БазаОсновной(
 |            &массив,
 |            &массив,
 |            ,
 |            регистратор = &ссылка
 |               И видРАсчета = &видРасчета) КАК ОсновнойБазаОсновной
 |      ПО ОсновнойДанныеГрафика.НомерСтроки = ОсновнойБазаОсновной.НомерСтроки
 |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШкалаОкладов КАК ШкалаОкладов
 |      ПО ОсновнойДанныеГрафика.Подразделение = ШкалаОкладов.Подразделение
 |         И ОсновнойДанныеГрафика.ЗначениеФактическийПериодДействия >= ШкалаОкладов.От
 |         И (ОсновнойДанныеГрафика.ЗначениеФактическийПериодДействия < ШкалаОкладов.До
 |            ИЛИ ШкалаОкладов.До = 0)";
    Выборка = запрос.Выполнить().Выбрать();
    нз = регистрыРасчета.Основной.СоздатьНаборЗаписей();
    НЗ.Отбор.регистратор.установить(ссылка);
    НЗ.Прочитать();
    пока выборка.Следующий() цикл
       стр = НЗ.Получить(Выборка.НомерСтроки-1);
       если стр.ВидРасчета = планыВидовРасчета.Основные.Оклад и выборка.ЗПД<> 0 тогда
          стр.Сумма = выборка.зфпд *(выборка.оклад/выборка.ЗПД);   
          стр.ЧасовПоНорме = выборка.зпд;
       ИначеЕсли Стр.ВидРасчета = планыВидовРасчета.Основные.Командировка и Выборка.ЧасовПоНорме<>0 тогда
          Стр.Сумма = выборка.ЗФПД * (выборка.суммаБаза/Выборка.ЧасовПоНорме);
       ИначеЕсли стр.ВидРасчета = планыВидовРасчета.Основные.Премия и выборка.ЗПД<> 0 тогда
          стр.Сумма = выборка.ЗФПД * (выборка.суммаБаза/выборка.ЗПД)*Выборка.параметр/100;
       КонецЕсли;
       Если выборка.сторно тогда
          стр.Сумма = стр.Сумма*-1;
          стр.ЧасовПоНорме = стр.ЧасовПоНорме*-1;
       КонецЕсли;      
    КонецЦикла;
    НЗ.Записать();
 

 Это из 11-го билета

cheetah

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Петр
Задача 3.32
« Ответ #36 : Октябрь 24, 2011, 02:02:21 pm »
mkanaev,
 ясно, удачи тебе завтра!

raisa

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: raisa
Задача 3.32
« Ответ #37 : Декабрь 13, 2011, 03:49:55 pm »
Задачка на экзамене не упрощена, а усложнена. Еще добавлено сделать возможность изменения расчета в форме. Плюс в 6м билете еще и на управляемые формы 2 задания- вы видели. Как это можно успеть за 4 часа? Над нами издеваются. Когда 7рку сдавали, 4 часа было на оперативный учет, а теперь задание в 4 раза больше, а время- то же. Даже имея в голове алгоритм и план действий- не успеешь. А не дай бог где опечатаешься или еще как притормозишь, станешь в отладчике смотреть- все, пиши пропало. Это если знаешь, как решать. А большинство формулировок- просто ребусы какие-то. Специалист по 1с должен телепатом быть, чтобы догадаться, что имели в виду составители? Догадываться о скрытых намеках (я не говорю, де все прозрачно, например, нужен признак учета субконто, т.к. остатки анализируются по складу, а себестоимость считается по предприятию. Я говорю по всякие неоднозначные формулировки и отсутствие всякой логики, которые уже обсуждались на различных форумах и по поводу которых воют все, не получая ответов на devtrainingforum)? Это критерий того, может ли человек быть специалистом? Я понимаю, что пользователи порой тоже не могут сформулировать свои мысли четко, так что телепатические таланты в жизни не помешают. Но их можно всегда допросить с пристрастием, составить тех. задание. А тут чувствуешь себя абсолютно бессильно. А может, все проще? Просто надо обязательно пройти дорогостоящие курсы, и там все секреты раскроют. Потому что в метод. литературе сплошь банальные примеры, ни коем образом не помогающие разгадать загадки в сборнике.

SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 3.32
« Ответ #38 : Декабрь 14, 2011, 07:51:00 am »
raisa, Может нужно не ныть, а готовиться? знаю много людей которые за 1,5-2 мес. подготовились и сдали, без "дорогостоящих" курсов.

Gyd

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 3.32
« Ответ #39 : Декабрь 14, 2011, 01:37:03 pm »
Quote (raisa)
А может, все проще? Просто надо обязательно пройти дорогостоящие курсы, и там все секреты раскроют. Потому что в метод. литературе сплошь банальные примеры, ни коем образом не помогающие разгадать загадки в сборнике.

 Отчасти вы правы, иначе денег не заработаешь если всё будет прозрачно и понятно smile
 Заметьте как изменился подход 1С к обучению. Раньше были книги для обучения всех "кому не лень", сейчас - Радченко, Габец, Хрусталева и иже с ними. Раньше было 6 задач (опер.учет например) для подготовки к Спецу, и все их знали наизусть. Сейчас их целый сборник, и они объединены в целом по платформе. А экзамен по знанию конфигураций вообще стал сам по себе.
 Тут и другие деньги, тут и другой уровень подготовки специалистов.

sv_mikh

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Михайлов Сергей Валерианович
Задача 3.32
« Ответ #40 : Январь 22, 2012, 01:18:58 am »
Мое видение данной задачи...
 Тут столько всего можно надумать из условия задачи... что я не стал сильно задумываться. Буду благодарен за критику.
 Данные для времени компенсации получил опять соединением с вирт.таблицей данных графика.
Вложения:
sv_mikh_03_32_m.dt

max_osodoev

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: макс
Задача 3.32
« Ответ #41 : Январь 27, 2012, 07:35:03 pm »
мое решение, многое взял у sv_mikh
Вложения:
3.32_max.dt

rnikinko

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: nikolay
Задача 3.32
« Ответ #42 : Февраль 02, 2012, 03:46:07 pm »
Компенсацию считал как сумма за предыдущий год деленая на кол-во рабочих дней в этом году.
Вложения:
3-32nik.dt

Hawk

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: hawk
Задача 3.32
« Ответ #43 : Февраль 19, 2012, 11:21:53 pm »
круто

Hawk

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: hawk
Задача 3.32
« Ответ #44 : Февраль 20, 2012, 09:08:40 pm »
Горячая версия!!! налетай )

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

 обработку пока не делал итак полдня убил
Вложения:
2528725.dt