Обработка прошла отладку на конфигурации 1С 8.2 "Управление торговым предприятием для Украины". Думаю будет рабочей и для родственных конфигураций УТ и УПП, где регистр ПартииТоваровНаСкладах имеет такую же структуру.
Выложена версия обработки для Российской версии "Управление торговлей", редакция 10.3
В обработке предлагается решение двух основных задач при работе с партионным учетом:
1. Устранение «пересорта» по партиям.
В результате изменений пользователями товарных документов задним числом, в регистре «ПартииТоваровНаСкладах» могут появляться отрицательные остатки количества в разрезе измерения ДокументаОприходования. Обработка найдет документы-регистраторы, которые привели к отрицательному остатку по партии и откорректирует движения документа таким образом, чтобы закрыть минус по одной партии за счет другой, которая есть в остатках на этот период. При этом будет соблюдено соответствие стоимостных характеристик разных партий. Для этого режима предусмотрен выбор периода. Обработка в цикле пройдет каждый день из указанного периода и исправит остатки по партиям на конец каждого дня. Если же доступного остатка по другой партии для исправления не окажется, то программа сообщит об этом, и продолжит свое выполнение. Так же возможен запуск исправления пересорта партий на текущий день. Программа и в этом случае корректно подберет по ФИФО доступную партию для закрытия «минусов». Кроме корректировки регистра «ПартииТоваровНаСкладах» вносятся соответствующие изменения в и регистр «ПродажиСебестоимость», таким образом в отчете Валовая прибыль будет достоверная информация о наценке.
2. Устранение «зависшей» стоимости по партиям.
В регистре накопления «ПартииТоваровНаСкладах» могут зависать стоимостные ресурсы, при количестве равном нулю. Обработка найдет такие партии, где зависла Стоимость или НДС и пересчитает движения всех документов-регистраторов по актуальной цене партии. Соответствующие изменения будут отражены и в регистре «ПродажиСебестоимость».
Автор Ваша обработка будет работать в УТ для Украины. Для меня щас ето очень актуально
Сейчас под рукой нет конфигурации УТ для Украины, чтобы проверить. Но, насколько я помню, структура регистров ПартииТоваровНаСкладе и ПродажиСебестоимость в этих конфигурациях одинаковы. Советую Вам запустить обработку на копии базы. Если структуры регистров все же отличаются, то код обработки сразу же выдаст синтаксическую ошибку при первой попытке записи движений в регистр данные при этом не будут покалечены. Если же обработка отработает без ошибок, то уверен, что результат будет положительным.
Спасибо за ответ
Увы, 8.2 УТ 10.3 упирается в реквизит НДСОстаток… В нашей такого нет.
Такая же хрень
(5) zaicev_o,
Да, действительно в Российской версии УТ в регистре партии нет ресурса «НДС». Но я думаю для специалиста среднего уровня (к которым себя и отношу), не составит труда убрать в коде обращение к этому полю регистра.
Добавлена версия обработки для конфигурации для России 1С 8.2 «Управление торговлей», редакция 10.3
(4) ikekoval, Добавлена версия обработки для конфигурации для России 1С 8.2 «Управление торговлей», редакция 10.3
(5) zaicev_o, Добавлена версия обработки для конфигурации для России 1С 8.2 «Управление торговлей», редакция 10.3
Обработка — просто жесть. Нашла 5 проблемных позиций номенклатуры в трех документах возврата, но при этом открыла штук 500, а может быть и больше таблиц. Запарился их закрывать руками, потом по кнопке «Закрыть окна», пришлось прибить 1С как процесс.
(10) mrdc, Спасибо за комментарий. Да, действительно, при установленном флажке «Только показать кривые остатки» обработка выводит печатную форму на каждый день из заданного периода. Этот флаг задумывался преимущественно для отладки и проверки состояния регистров на определенный момент времени. Чтобы сама обработка не выглядела «черным ящиком».
Хотел еще раз уточнить, что если запускать обработку за период, то алгоритм восстановления будет происходить в цикле за каждый день. На конец каждого дня будут отобраны «кривые» партии, которые программа попытается закрыть доступными партиями на конец этого дня. Если же запустить обработку на текущую дату, то сработает тот же механизм в одну итерацию: исправлены все «плохие» партии, выявленные на текущий момент, с помощью тех партий, которые доступны в остатках на текущий момент. Этот режим запуска отработает гораздо быстрее, но в этом варианте в результате исправлений возможно, что в движениях расходных документов, окажется будущая партия (относительно даты самого регистратора).
Обработку запустил но ошибок она не нашла. Хотя их предостаточно!
(12) sobeyko2008,
Если включить флаг «Только показать кривые остатки», то будет выведена печатная форма с теми партиями, которые обработка готова исправить. Есть такие?
Отбор по складу должен быть обязательно. И если в вашей базе отключено ведение партий в разрезе складов, то, к сожалению, такой вариант в обработке не предусмотрен. Придется самому допиливать код.
Ну тогда все понятно! А вы не хотите его допилить? а То я ведь не программист!
(14) sobeyko2008,
Можем договориться в приватной беседе о том, чтобы я оказал услугу восстановления партионного учета в вашей базе. Опыт у меня для этого достаточный. Да и «допиливать» в этом случае «вслепую» без отладки на базе с реальными проблемами практически невозможно.
День добрый. Подскажите пожалуйста как именно правит косяки обработка. Создает документ «корректировка записей регистра» или же другим путем? У меня просто необходимо навести порядок в партиях и сериях. Просто если править партии через Коректировку записей регистра, то порядок наводится только в партиях. А вот в Ведомости по товарам на складах с группировкой строк по сериям — минуса так и остаются. Может в вашей обработке другой метод?
(16) Orlenok, Добрый день. Извините за долгое молчание, пропустил ваш вопрос, т.к. слетела подписка на ответы этой темы.
К сожалению, для решения Вашей проблемы (пересорта в разрезе серий номенклатуры) данное решение не подойдет. Здесь речь идет только о решении проблем в регистре «ПартииТоваровНаСкладах». Изменения выполняются только на уровне записей самого регистра. Никакие документы в процессе не создаются. При этом регистр «ТоварыНаСкладах», на основе которого строится отчет Ведомость товаров на складах, не меняется
Во время исправления зависшей стоимости вылетел с такой ошибкой:
{ВнешняяОбработка.ВосстановлениеПартий.МодульОбъекта(486)}: Ошибка при вызове метода контекста (Выполнить)
ТаблицаРегистраторов = Запрос.Выполнить().Выгрузить();
по причине:
{(10, 2)}: Ошибка обработки представления «РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты:Неправильно задан период: начало периода должно быть меньше или равно окончанию»
<<?>>РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(