Восстановление последовательности партий по движениям регистраторов

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

Обработка прошла отладку на конфигурации 1С 8.2 "Управление торговым предприятием для Украины". Думаю будет рабочей и для родственных конфигураций УТ и УПП, где регистр ПартииТоваровНаСкладах имеет такую же структуру.
Выложена версия обработки для Российской версии "Управление торговлей", редакция 10.3

В обработке предлагается решение двух основных задач при работе с партионным учетом:

1. Устранение «пересорта» по партиям.

В результате изменений пользователями товарных документов задним числом, в регистре «ПартииТоваровНаСкладах» могут появляться отрицательные остатки количества в разрезе измерения ДокументаОприходования. Обработка найдет документы-регистраторы, которые привели к отрицательному остатку по партии и откорректирует движения документа таким образом, чтобы закрыть минус по одной партии за счет другой, которая есть в остатках на этот период. При этом будет соблюдено соответствие стоимостных характеристик разных партий. Для этого режима предусмотрен выбор периода. Обработка в цикле пройдет каждый день из указанного периода и исправит остатки по партиям на конец каждого дня. Если же доступного остатка по другой партии для исправления не окажется, то программа сообщит об этом, и продолжит свое выполнение. Так же возможен запуск исправления пересорта партий на текущий день. Программа и в этом случае корректно подберет по ФИФО доступную партию для закрытия «минусов». Кроме корректировки регистра «ПартииТоваровНаСкладах» вносятся соответствующие изменения в и регистр «ПродажиСебестоимость», таким образом в отчете Валовая прибыль будет достоверная информация о наценке.

2. Устранение «зависшей» стоимости по партиям.

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

18 Comments

  1. dyak84

    Автор Ваша обработка будет работать в УТ для Украины. Для меня щас ето очень актуально

    Reply
  2. Харьковец

    Сейчас под рукой нет конфигурации УТ для Украины, чтобы проверить. Но, насколько я помню, структура регистров ПартииТоваровНаСкладе и ПродажиСебестоимость в этих конфигурациях одинаковы. Советую Вам запустить обработку на копии базы. Если структуры регистров все же отличаются, то код обработки сразу же выдаст синтаксическую ошибку при первой попытке записи движений в регистр данные при этом не будут покалечены. Если же обработка отработает без ошибок, то уверен, что результат будет положительным.

    Reply
  3. dyak84

    Спасибо за ответ

    Reply
  4. ikekoval

    Увы, 8.2 УТ 10.3 упирается в реквизит НДСОстаток… В нашей такого нет.

    Reply
  5. zaicev_o

    Такая же хрень

    Reply
  6. Харьковец

    (5) zaicev_o,

    Да, действительно в Российской версии УТ в регистре партии нет ресурса «НДС». Но я думаю для специалиста среднего уровня (к которым себя и отношу), не составит труда убрать в коде обращение к этому полю регистра.

    Reply
  7. Харьковец

    Добавлена версия обработки для конфигурации для России 1С 8.2 «Управление торговлей», редакция 10.3

    Reply
  8. Харьковец

    (4) ikekoval, Добавлена версия обработки для конфигурации для России 1С 8.2 «Управление торговлей», редакция 10.3

    Reply
  9. Харьковец

    (5) zaicev_o, Добавлена версия обработки для конфигурации для России 1С 8.2 «Управление торговлей», редакция 10.3

    Reply
  10. mrdc

    Обработка — просто жесть. Нашла 5 проблемных позиций номенклатуры в трех документах возврата, но при этом открыла штук 500, а может быть и больше таблиц. Запарился их закрывать руками, потом по кнопке «Закрыть окна», пришлось прибить 1С как процесс.

    Reply
  11. Харьковец

    (10) mrdc, Спасибо за комментарий. Да, действительно, при установленном флажке «Только показать кривые остатки» обработка выводит печатную форму на каждый день из заданного периода. Этот флаг задумывался преимущественно для отладки и проверки состояния регистров на определенный момент времени. Чтобы сама обработка не выглядела «черным ящиком».

    Хотел еще раз уточнить, что если запускать обработку за период, то алгоритм восстановления будет происходить в цикле за каждый день. На конец каждого дня будут отобраны «кривые» партии, которые программа попытается закрыть доступными партиями на конец этого дня. Если же запустить обработку на текущую дату, то сработает тот же механизм в одну итерацию: исправлены все «плохие» партии, выявленные на текущий момент, с помощью тех партий, которые доступны в остатках на текущий момент. Этот режим запуска отработает гораздо быстрее, но в этом варианте в результате исправлений возможно, что в движениях расходных документов, окажется будущая партия (относительно даты самого регистратора).

    Reply
  12. sobeyko2008

    Обработку запустил но ошибок она не нашла. Хотя их предостаточно!

    Reply
  13. Харьковец

    (12) sobeyko2008,

    Если включить флаг «Только показать кривые остатки», то будет выведена печатная форма с теми партиями, которые обработка готова исправить. Есть такие?

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

    Reply
  14. sobeyko2008
    И если в вашей базе отключено ведение партий в разрезе складов, то, к сожалению, такой вариант в обработке не предусмотрен. Придется самому допиливать код.

    Ну тогда все понятно! А вы не хотите его допилить? а То я ведь не программист!

    Reply
  15. Харьковец

    (14) sobeyko2008,

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

    Reply
  16. Orlenok

    День добрый. Подскажите пожалуйста как именно правит косяки обработка. Создает документ «корректировка записей регистра» или же другим путем? У меня просто необходимо навести порядок в партиях и сериях. Просто если править партии через Коректировку записей регистра, то порядок наводится только в партиях. А вот в Ведомости по товарам на складах с группировкой строк по сериям — минуса так и остаются. Может в вашей обработке другой метод?

    Reply
  17. Харьковец

    (16) Orlenok, Добрый день. Извините за долгое молчание, пропустил ваш вопрос, т.к. слетела подписка на ответы этой темы.

    К сожалению, для решения Вашей проблемы (пересорта в разрезе серий номенклатуры) данное решение не подойдет. Здесь речь идет только о решении проблем в регистре «ПартииТоваровНаСкладах». Изменения выполняются только на уровне записей самого регистра. Никакие документы в процессе не создаются. При этом регистр «ТоварыНаСкладах», на основе которого строится отчет Ведомость товаров на складах, не меняется

    Reply
  18. zabaluev

    Во время исправления зависшей стоимости вылетел с такой ошибкой:

    {ВнешняяОбработка.ВосстановлениеПартий.МодульОбъекта(486)}: Ошибка при вызове метода контекста (Выполнить)

    ТаблицаРегистраторов = Запрос.Выполнить().Выгрузить();

    по причине:

    {(10, 2)}: Ошибка обработки представления «РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты:Неправильно задан период: начало периода должно быть меньше или равно окончанию»

    <<?>>РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(

    Reply

Leave a Comment

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