Продвинутый курс. Решение ДЗ№13

Эта запись посвящена второму потоку продвинутого курса.
Представляем решение третьего задания 2-го блока.

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

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

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

комментариев 10 на “Продвинутый курс. Решение ДЗ№13”

  1. Задание выполнил. Все, практически, как в уроках по среднескользящей оценке себестоимости. За одним исключением: условие на получения списка документов ставил на строгое неравенство   (ведь в противном случае, когда  >=, даже в восстановленной последовательности, если последный документ “Реализация”, в запросе будет как минимум один документ). Просто при обработки сдвига границы последовательности НАЗАД  документом “РеализацияТоваровУслуг” проходиться ставить границу не на МоментВремени документа,  а, как вариант, на момент времени начало секунды документа (правда и здесь, между началом секунды и моментомВремени документа легко может оказаться даже не один документ, который попадет под восстановление последовательности, но зато у пользователя не будет вопросов).

    • Извиняюсь, текст отчета выложил в решении, а не в задании.

  2. Указание в качестве источника данных для управляемой блокировки табличной части документа не совсем оптимально, поскольку в этом случае будут считаны другие, не нужные для блокировки данные. Оптимальнее было бы в качестве источника данных указать результат запроса, содержащий поле Номенклатура, так как вы это делали во все 8 главе.  Я прав или это не принципиально?

    • Лишние поля, это, например, количество, цена, сумма?
      На самом деле эти поля уже считаны из базы в контексте модуля объекта.
      Другое дело, если бы в табличной части могли указываться услуги.

      • Правильно ли я понял, что для данного частного случая когда из ссылочных типов данных в табличной части присутствует только Номенклатура это не принципиально, но если там были другие данные, например, такие как Характеристика, Серия, ГТД и подобные, то лучше указывать результат запроса?
        Или все зависит от места наложения блокировки, если из модуля объекта, то можно указывать табличную часть документа, поскольку ее данные уже все равно прочитаны,  а если, например,  из обработки, то результат запроса, содержащий только номенклатуру?

        • Да, истина где-то рядом :)

          Я бы сказал так: в простых случаях можно использовать табличную часть (если в ТЧ только номенклатура, если проведение выполняется в модуле объекта).
          Но при разработке универсальных алгоритмов (в общих модулях) уже необходимо будет выполнять блокировку по данным запроса, поскольку мы выходим за рамки контекста модуля объекта.

  3. Есть 2 вопроса:
    1.движений по регистру “Взаиморасчёты” нет потому-что это частный момент не представляющий сложности или я что-то не понял?
    2.Навскидку есть 3 варианта организации хранения итогов “допроведения”:
    а.создать доп. регистр в котором будут данные только по допроведению (но чрезмерно усложняется обработка повторного проведения).
    б.добавить сумму в регистр остатки товаров и перезаписывать набор записей.
    в.добавить сумму в регистр остатки товаров и перезаписывать набор записей только для тех записей у которых сумма<>0 а кол-во=0, т.е. переписывать только корректировку к самому первому преведению.
    Варианты а. и в. вообще реально имеют преймущества в каких-то задачах или только теоретически?

    • >движений по регистру «Взаиморасчёты» нет потому-что это частный момент не представляющий сложности
      Верно.

      Что касается задачи допроведения, то возможно мне не хватает контекста.
      То есть я до конца не понял Ваших вариантов.

      На мой взгляд задача должна решаться так – есть отдельно регистры оперативного контура и “отложенного” контура (названия могут применяться различные).
      По регистрам отложенного контура и выполняется допроведение.

      Если на примере, то регистр ОстаткиТоваров – оперативный контур, ПартииТоваров – отложенный.

      • Понял по контурам, поправил в решении.