Курс подготовки к Аттестации по 1С 8.2, группа № 1:
Тренинг по подготовке к аттестации.- новые 4 разобранные задачи.

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

2. Выкладываем разбор новых 4 задач -> Материалы 8 стартовых задач курса

Комментарии / обсуждение (33):

  1. BelyaninSN

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

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

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

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

    • BelyaninSN

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

      • BelyaninSN

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

  2. Den

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

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

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

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

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

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

    • GROOVY

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

      • Den

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

        • GROOVY

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

      • kirillova_nn

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

        • GROOVY

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

  3. Den

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

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

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

    • GROOVY

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

  4. Den

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

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

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

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

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

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

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

    • GROOVY

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

      • kirillova_nn

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

        • GROOVY

          Ну не совсем…

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

  5. Верховцев Николай

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

    • GROOVY

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

  6. Верховцев Николай

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

    • GROOVY

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

      • kirillova_nn

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

        • GROOVY

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

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

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

          • kirillova_nn

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

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

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

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

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

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

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

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

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

            • kirillova_nn

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

            • GROOVY

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

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

  7. Borisuch

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

    • GROOVY

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

  8. Верховцев Николай

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

    • GROOVY

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

  9. Верховцев Николай

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

    • GROOVY

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

  10. Верховцев Николай

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

    • GROOVY

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

Комментарии закрыты

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

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

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.