Перепроведение по сериям УТ 10

Ситуаций, когда требуется перераспределить отгрузки по сериям достаточно много, например, если вы решили вести учёт по сериям не сразу а, допустим, через полгода после рождения базы, или создали новую роль для продавцов и поздно заметили, что она позволяет списывать партии в «минус».

Обработка выбирает и сортирует в хронологическом порядке документы РеализацияТоваровУслуг, ПеремещениеТоваров, СписаниеТоваров за период, но только те в которых хотя бы 1 товар имеет серии (сделано это потому, что у нас не каждый товар имеет серии, и проводить все документы не имеет смысла), далее выбранный документ распределяется по сериям (по стандартному алгоритму), после чего, выбираются и распределяются по сериям ордера подчинённые выбранному документу (в случае реализации это расходные ордера, в случае перемещения, приходные и расходные).
При распределении ордеров используется таблица остатков на момент родительского документа (чтобы обеспечить одинаковое размещение)

Сразу скажу что не обрабатываются «НакладныеТребования», если кому понадобится, можете добавить… (мне это было не надо).
Обработка писалась и тестировалась для ордерной схемы, но должна работать и для простой.
Обработка выполняется достаточно долго, поэтому если хотите проверить то запускайте за маленький период (в тестовой базе конечно)
Очень рекомендую сделать бэкап базы.
Перепроводить лучше когда в базе никого нет(т.к. иначе постоянно будет выскакивать конфликт блокировок и прерываться обработка) , однако я перепроводил и во время работы юзеров т.к не хватило ночи. Специально для этого в обработке предусмотрен выбор периода с точностью до секунд (чтобы продолжать обработку с места остановки)
В окно сообщений выводится информация о проведении документа. Внимание!!! Если продолжаете перепроводку после остановки, то необходимо начинать с последнего проведённого родительского документа (т.е с РТУ,Перемещения и т.д. а не с ордеров) т.к. именно они проводятся в хронологическом порядке.

P.S. Обработка написана в 2007 году, не помню для кокого релиза УТ, но работала в промышленных масштабах.

17.08.2012 Товарищем smilejka Протестирована и исправлена для УТ 10.3.18.3, за что ему спасибо!

Соответствующий файл добавлен!

 

Не стоит ожидать от обработки универсальности, красоты кода и оптимальности алгоритмов )

Всем Удачи!!!

6 Comments

  1. Ibrogim

    Ситуаций, когда требуется перераспределить отгрузки по сериям достаточно много, например, если вы решили вести учёт по сериям не сразу а, допустим, через полгода после рождения базы, или создали новую роль для продавцов и поздно заметили, что она позволяет списывать партии в «минус».

    Перейти к публикации

    Reply
  2. smilejka

    Проверил на типовой УТ 10.3.18.3. В коде есть мелкие ошибки, а именно:

    1) Нужно в вызовы процедур РассчитатьСуммуТабЧасти добавить имя общего модуля ОбработкаТабличныхЧастей.

    2) Процедуру ЗначениеНеЗаполнено исправить на НЕ ЗначениеЗаполнено.

    3) В табличной части документов перемещение больше нету реквизита СпособСписанияОстаткаТоваров — я закомментировал строку.

    В остальном обработка идеально перепровела все документы с начала года. Автору большое спасибо — спас от написания подобной обработки самостоятельно.

    Есть еще небольшое пожелание добавить при записи реализации автоматического перезаполнения реквизитов счет-фактуры — ну это уж как-нить сам сделаю :).

    Reply
  3. Ibrogim

    (1) smilejka, Рад что обработка пригодилась, ошибки связаны с тем что когда была написана обработка была ещё 8.0 (это по поводу ЗначениеНеЗаполнено) и древняя конфигурация УТ (по поводу общего моделя и СпособСписанияОстаткаТоваров)

    Нет под рукой конфигурации УТ, если не сложно, перешлите поправленную обработку, я добавлю её к публикации!

    Reply
  4. smilejka

    (2) Напишите в личку e-mail — отправлю обработку.

    Reply
  5. Ламия

    здравствуйте, кто- нибудь на текущих конфигурациях тестировал данную прелесть? спасибо.

    Reply
  6. Ibrogim

    (4) Ламия, На УТ 10.3.18.3 работает. А на сколько я знаю 10 не развивается.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *