Тренинг по подготовке к аттестации.
– новые 4 разобранные задачи

 
1. Решение задач “про и-магазин” и “про пени” планируем выложить в пятницу. Решено их переписать с учетом поступивших вопросов.

2. Выкладываем разбор новых 4 задач и базы к ним…

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь.

Если не активировали токен — посмотрите видео-инструкцию (видео N5)

Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.

комментария 33 на “Тренинг по подготовке к аттестации.
– новые 4 разобранные задачи”

  1. BelyaninSN 06.07.2012 в 15:25

    Из синтаксис-помошника о третьем параметре метода Записать() Набора записей регистров расчета:

    <ЗаписьФактическогоПериодаДействия> (необязательный)

    Тип: Булево.
    Если запись набора записей выполняется со значением параметра <ТолькоЗапись> равным Ложь и при этом данный параметр равен Ложь, то при записи набора записей фактический период действия не рассчитывается.

    Верно ли я понимаю, что чтобы не записывался период действия, как у Вас описано в 5-6 задачах следует использовать код:
    НаборЗаписейОсновные.Записать(,,Ложь);
     или я не верно понимаю описание параметра?

    • BelyaninSN 06.07.2012 в 15:28

      Я имел в виду
      .
      НаборЗаписейОсновные.Записать(,Истина,Ложь);
      .
      вместо
      .
      НаборЗаписейОсновные.Записать(,,Ложь);
       
      .
      как у Вас в примере?
       

      • BelyaninSN 06.07.2012 в 15:33

        Понял ответ на свой вопрос. Можете не отвечать. Не верно
         прочитал <ТолькоЗапись> равным Ложь – а мне показалость ” равным Истина”.

    • Верно.

  2. Павел, спасибо за, ранее данные, ответы.
    Позволю себе задать еще два вопроса.

    1. Как правильно ответить на следующий вопрос экзаменатора:
    “Для чего предназначено свойство вида расчета “Период действия является базовым периодом”?

    2. Установка свойства набора записей регистров накопления и бухгалтерии “БлокироватьДляИзменения”, устанавливает исключительную блокировку? Т.е., после записи набора записей, не возможно “грязное чтение”? Синтакс – помощник об этом умалчивает.

    3. Не вопрос, но рассуждение на тему хранения курсов валют и коэффициентов единиц измерения непосредственно
    в самом документе (если не хранить в документе, дадут штрафные баллы).

    Почти дословно из урока:
    “С утра какой-нибудь пользователь изменит коэффициент в регистре сведений и после перепроведения документа, данные изменятся. Это плохо. Информация, которая необходима для проведения документа должна хранится в документе. Это также касается и курсов валют”.

    Развитие темы:
    “С утра какой-нибудь пользователь изменит приходную накладную (в реальной жизни такое “сплошь и рядом”)… Тогда, для обеспечения устойчивости, необходимо хранить в документе “Расходная накладная” еще и количества, и суммы, которые были списаны при первоначальном проведении “Расходной накладной”. Это скорее риторика, но сможете прокомментировать?

    • 1. При установке этого флага у вида расчете, в записи регистра расчета при неуказанном базовом периоде под базовым периодом будет подразумеваться период действия.
      2. Да.
      3. Про “Количество” не понял, у нас же в документе оно и так указано, а про “Суммы” – это рассчитываемый показатель, зачем нам его в документе хранить?

      • Про сумму, я имел ввиду, конечно, списанную себестоимость,
        а не сумму продаж. Про количество, погорячился, написал глупость. 
         

        • Я и ответил про себестоимость. Рассчитываемый показатель. В самом документе его хранить не имеет смысла так как он то и должен быть перерасчитан при перепроведении.

      • kirillova_nn 16.06.2012 в 18:38

        Вопрос по ответу к вопросу 1:
        А если все-таки указан базовый период и установлен флаг, то под базовым периодом не будет подразумеваться период действия ?

        • Тогда система будет брать в качестве базового периода то что указано в записи.

  3. Павел.
    1. Почему у регистров расчета отсутствует свойство БлокироватьДляИзменения? 

    2. Классически решая расчетные задачи, мы всегда сначала делаем записи в регистры расчета, затем, в общем модуле получаем набор записей, делаем расчет и записываем набор записей. Эта классическая схема применяется во всех расчетных задачах на экзамене, или бывают исключения?

    3. Объект Блокировка данных, никогда не используется при решении расчетных задач?  

    • 1. Охтыж… Я если честно не проверял это свойство у РР. Нету :) И не предполагается.
      2. Всегда так.
      3. На сертификации нет таких задач. У нас даже если при записи данных произойдет “граязное чтение” и параллельно что-либо рассчитается не так, будет зарегистрирована запись в перерасчетах.

  4. Павел. Проконсультируйте пожалуйста по задаче 6. Решаю самостоятельно.

    В модуле проведения документа “Начисление ЗП” записываю исходные данные для расчета в регистр. 

    Движения.ОсновныеНачисления.Записывать = Истина;
    Движения.ОсновныеНачисления.Очистить();
    Для Каждого стр Из ОсновныеНачисления Цикл
    Запись = Движения.ОсновныеНачисления.Добавить();
    ЗаполнитьЗначенияСвойств(Запись, стр);
    Запись.ПериодРегистрации = Дата;
    КонецЦикла;

    Далее, если пишу Движения.Записать();… и расчитываю записи в общем модуле, то все рассчитывается. 

    А если пишу движения.Основныеначисления.Записать();…

    то в общем модуле, записи в набор записей попадают, но при записи набора, в базе не появляются рассчитанные “результат” и “количество часов”.

    Подскажите пожалуйста в чем разница между Движения.Записать() и Движения.Основныеначисления.записать() в модуле проведения
    документа. 
     

    • Когда Вы пишите Движения.Записать() система записывает данные в базу и сбрасывает признак необходимости записи (Движения.ИмяРегистра.Записывать = Истина), таким образом при окончании транзакции запись по этому регистру не производится (флаг сброшен).
      Когда Вы пишете Движения.ИмяРегистра.Записать() то производится безусловная запись в регистр, но флаг записи не меняется, в том случае если он возведен, при окончании транзакции проведения документа система запишет набор записей, поверх того что там рассчитывалось в общем модуле.

      • kirillova_nn 12.06.2012 в 20:11

        т.е.
        Движение.ИмяРегистра.Записывать = Истина;
        Движение.ИмяРегистра.Записать();
        Движение.ИмяРегистра.Записывать = Ложь;
        соответсвует
        Движения.Записать();
        ?

        • Ну не совсем…

          Движения.Записать() записывают все наборы записей с флагом Записывать=Истина, причем в порядке следования регистров в метаданных, что резко снижает возможные взаимные блокировки. Так что я крайне рекомендую записывать движения документа именно так.

  5. Верховцев Николай 14.05.2012 в 21:38

    Павел,
    правильно ли я понимаю, что если в зарплатной задаче есть фраза “вид расчета может вводиться задним числом” то нужно:
    1) настроить правильные зависимости ведущих видов расчетов
    2) после записи данных в документ и перед расчетом итоговой суммы начисления получить дополнение и отсторнировать полученные данные?

    • Как правило это обозначает необходимость предусмотреть сторно. Про перерасчеты как правило явно пишут нужны или нет.

  6. Верховцев Николай 14.05.2012 в 20:12

    Павел, а по каким признакам в зарплатной задаче можно определить что нужно делать отдельный график шестидневку или второй ресурс в регистре производственного календаря?

    • Чаще всего указывается явно “необходимо предусмотреть возможность использовать и другие графики”.
      А вот если в задаче надо получать для одного расчета данные графика и по одному и по другому графику то это несколько ресурсов в регистре сведений.

      • kirillova_nn 20.05.2012 в 16:25

        Павел, можно все-таки еще  немного уточнить:
        1) “Чаще всего указывается явно «необходимо предусмотреть возможность использовать и другие графики»”.  Для реализации этого требовния достаточно только разреза “График” в производственном календаре?
        2) “…если в задаче надо получать для одного расчета данные графика и по одному и по другому графику то это несколько ресурсов в регистре сведений.”, т.е.  в ресурсах указываем, например:
        – количество часов в день, которое должен  отработать сотрудник по графику указанному  в пользовательском режиме;
        – количество часов по графику, который требуется для расчетов, например “пятидневка”? 
        На сколько я поняла из задачи, разбираемой в первом видео по периодическим расчетам, там именно это требовалось при расчете больничного?

        • 1. Да.
          2. Нет. Я поясню…

          Для расчета больничного нужно получить количество часов которые он болеет по шестидневке – это данные графика, но при расчете используется данные базы такие как количество отработанных часов в базовом периоде (а оклад был по пятидневке).

          Но вот если в задаче есть условие: “Рассчитать оклад как количество отработанных дней/часов по пятидневке и “поделить” их на количество отработанных/рабочих часов/дней по шестидневке”, тогда в графике нужен еще один ресурс, то бишь в регистре сведений должны быть и дни/часы по пятидневке и по шестидневке как значения ресурсов.

          • kirillova_nn 21.05.2012 в 23:45

            Павел, спасибо за ответ.

            Только все-таки момент :).

            В тексте задачи указано, то что ”

            В случае болезни сотрудник получает пособие, размер которого определяется как количество часов болезни умноженное на среднюю часовую ставку. Часы болезни рассчитываются по пятидневному графику.”

            Т.е., если сотрудник работал по любому графику, часы должны быть рассчитаны только по пятидневке. А у нас в решении получается корректным решение, только, если для него указан график пятидневка, т.к. в коде четко прописано:

            <code>
            Сумма = Выборка.СуммаБаза / Выборка.ОтработаноДнейБаза * Выборка.ФактДней
            </code>

            , где Выборка.ФактДней, фактически отработанное время по указанному графику.

            При этом и количество отработанных дней также должно быть расчитано по пятидневке.

            Может я не с той интонацией задачу читаю? :( Или предполагается, что при вводе тестовых данных нужно обратить на это внимание и не указывать шестидневку для больничного?

            • kirillova_nn 21.05.2012 в 23:47

              Поправлю сама себя, “Т.е., если сотрудник работал по любому графику, часы должны быть рассчитаны только по пятидневке.” Имела ввиду при указании больничного мы тоже указываем график, и если он отличен от пятидневке, то расчет на мой взгляд не тот, что требуется.

            • Тестовые данные Вы вправе вводить любые.

              Если есть необходимость сохранять базовые данные (в том числе в разрезе графиков) то нужно создавать ресурс в регистре расчета.

  7. Добрый день! По моему не работает обсуждение первых четырех задач.  У меня вопрос по 4-ой задаче. В условиях сказано про расходную накладную. В уроке мы (вы) не делали её, а сразу пекрешли к корректировке долга.  А почему мы не касались этой накладной? Или руки не дошли?

    • Уже работает. Можете мне на email писать, если есть подозрение, что я проморгал комментарий: pavel@spec8.ru

  8. Верховцев Николай 03.05.2012 в 21:59

    Павел, скажите, а в задаче 3.28 тоже можно не автоматизировать заполнение ставки в набор записей (там тариф указывается каждый день) ? не слишком, но трудоёмко получается…

    • В задаче про “автоматизировать” ничего не сказано…

  9. Верховцев Николай 27.04.2012 в 19:37

    создал роль в полными права, создал объект задача. к таблице “задача” обращаюсь нормально, к таблице “Задача.ЗадачиПоИсполнителю” – нарушение прав доступа. платформа 8.2.15.301

    • Видимо прав все же не хватает. Проверьте доступ к параметру сеанса, к регистру сведений и к задаче.

  10. Верховцев Николай 27.04.2012 в 18:14

    я так понимаю это последние занятия или еще будут?

    • Еженедельно по 1й задаче. Сегодня выкладываем “и-магазин” и “пени”.