Исправление отрицательных остатков по организациям в УТ 11.4, КА 2.4, ERP 2. Интеркампани, механизм формирования резервов.

Подробно рассмотрены два способа исправления отрицательных остатков по организациям без использования подсистемы Интеркампани и с использованием. Описан механизм формирования резервов на уровне процедур общего модуля. Доработки механизма и исправление ошибок.

Новая реализация механизма Интеркампани появилась в типовых конфигурациях УТ 11.4, КА 2.4, ЕРП 2.4 в начале 2018 года. Теория и общие принципы ее реализации можно посмотреть в этой статье.

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

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

Ниже, привожу описание двух способов исправления отрицательных остатков, с использованием подсистемы Интеркампани, и без. Доработки, которые потребовалось сделать. Общее описание процесса формирования резервов на уровне процедур общего модуля «Запасы сервер», с коротким описанием. Будет полезно, для тех, кто планирует разобраться как это все работает «внутри» или найти ошибку не потратив уйму времени на разбор что и где формируется. Сразу говорю, механизм совсем не простой, как и многие другие в современных конфигурациях, к сожалению.

Термины, используемые в статье для сокращения

РТО – регистр накопления «Резервы товаров организаций», в котором содержатся записи о сформированных резервах.

ТО — регистр накопления «Товары организаций».

Отборы аналитик – отборы измерений, которые используются в запросах для расчета резервов и формирования записей по регистру «РТО»:

  • Вид запасов
  • Аналитика учета номенклатуры
  • Организация
  • Номер ГТД

Документы передачи – документы «Передача товаров между организациями».

Документы списания – документы, формирующие списание товаров: «Реализация товаров и услуг», «Отчет о розничных продажах», «Возврат товаров поставщику», «Перемещение товаров», «Сборка товаров», «Списание недостач товаров», «Порча товаров», «Внутреннее потребление товаров», «Пересортица товаров».

Документы поступления – документы, формирующие поступление товаров: «Приобретение товаров и услуг», «Возврат товаров от покупателей», «Перемещение товаров», «Сборка товаров», «Оприходование излишков товаров», «Пересортица товаров».

Сложный учет по видам запасов — ведется учет по ГТД, сложный учет НДС или используется продажа товаров, принятых на комиссию (виды запасов могут измениться при перепроведении документов списания).

Настройки передач – настройки возможных передач товаров между организациями «Финансовый результат и контроллинг >> См. также >> Настройки передачи товаров между организациями»

Кейс по исправлению отрицательных остатков по организациям

Начальные условия

Учет ведется с применением большого количества организаций. Контроль остатков по организациям отключен. Произвольные поступления и списания товаров по организациям. Может применяться сложный учет по видам запасов. Количество документов списания в месяц – более 1000. Произвольным образом заполнены настройки передач. Сформировано некоторое количество документов передачи.  Закрытие месяца не выполняется из-за ошибок, связанных с наличием отрицательных остатков по организациям.

Необходимый результат

Сформировать корректные передачи товаров между организациями. Закрыть период, и рассчитать себестоимость. Выполнить эти операции за каждый месяц, последовательно, с начала ведения учета.

Решение поставленной задачи

Первое, что необходимо сделать – это удалить все существующие настройки передач и отменить проведение всех существующих документов передачи.

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

Для решения проблемы, необходимо предварительно удалить все записей из регистра «РТО». Это можно сделать внешней обработкой, используя следующий программный код:

Удаление записей из регистра «РТО»

При удалении движений, следует обязательно установить параметр набора записей «НеПроверятьЛишнееСторно». Если параметр не будет установлен, при удалении записей будет возникать следующее сообщение «Ошибка в алгоритмах при записи … в регистр РезервыТоваровОрганизаций: образуется сторно, которое не нужно для покрытия резервов по изменениям…»:

1_2eae3cd75fff42185cedd9661b3c140d Исправление отрицательных остатков по организациям в УТ 11.4, КА 2.4, ERP 2. Интеркампани, механизм формирования резервов.

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

Далее, есть несколько способов исправления отрицательных остатков, какие в каких случаях целесообразно применять, смотрите на следующей схеме:

2_2eae3cd75fff42185cedd9661b3c140d Исправление отрицательных остатков по организациям в УТ 11.4, КА 2.4, ERP 2. Интеркампани, механизм формирования резервов.

  1. Не ведется сложный учет по видам запасов — можно выполнить исправление, без использования механизма Интеркампани.
  2. Ведется сложный учет по видам запасов, но нет перекрестных передач товаров между организациями (есть четкое разграничение между поставщики товаров и продавцами) — можно выполнить исправление, без использования механизма Интеркампани.
  3. Ведется сложный учет по видам запасов, и есть перекрестные передачи товаров между организациями (нет четко выделенных поставщиков и продавцов товаров, один и тот же товар может передаваться от одной организации другой и обратно, в рамках разных складов) – необходимо выполнять исправление остатков с применением механизма Интеркампани.
  4. Для передачи товаров между организациями используется комиссионная схема — в любом случае необходимо выполнять исправление остатков с применением механизма Интеркампани.

Собственно, в первых двух случаях можно применять как способ без использования Интеркампани, так и с использованием, а в последних двух только с использованием. Рассмотрим подробно оба способа.

Исправление отрицательных остатков без использования механизма Интеркампани

Для выполнения дальнейших действий, необходимо выключить контроль остатков товаров организаций «Финансовый результат и контроллинг >> Учет товаров >> Контролировать остатки товаров организаций». Отключение контроля на время сеанса не подойдет, так как расчет остатков будет выполняться в фоновом задании, и отключенный контроль в текущем сеансе не будет действовать.

Отменять проведенные документов для данного способа нет необходимости. Однако, желательно перепровести все документы списания за корректируемый период с принудительным перезаполнением видов запасов. Если ведется сложный учет по видам запасов – перепроведение требуется обязательно. Для принудительного перезаполнения видов запасов, необходимо устанавливать дополнительное свойство документов «ПерезаполнитьВидыЗапасов». Код внешней обработки приведен ниже:

Перепроведение необходимо выполнять в два этапа. Сначала документы, которые формируют списание и поступление. Затем документы, которые формируют только списание.

Параметр «ОкончаниеПериодаПомощникаИсправленияОстатков» ограничивает период в котором будут подбираться доступные виды запасов. Без его установки доступность товаров будет определяться на конец текущего месяца или на дату последней записи в регистре «ТО».

После перепроведения документов, для создания документов передачи нужно использовать обработку «Финансовый результат и контроллинг >> Сервис >> Помощник формирования передач и выкупов товаров».

Примечание. Если учет ведется в разрезе ГТД, требуется внесение исправлений в программный код обработки. По умолчанию, она подбирает остатки с отбором по ГТД, а нам необходимо подбирать остатки по всем ГТД, по которым есть остатки.

(Ниже можно посмотреть необходимые доработки…)

На первой закладке помощника, в табличной части система автоматически выводит организации, по которым существуют отрицательные остатки за выбранный период, и требуется сформировать документы передачи:

3_2eae3cd75fff42185cedd9661b3c140d Исправление отрицательных остатков по организациям в УТ 11.4, КА 2.4, ERP 2. Интеркампани, механизм формирования резервов.

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

4_2eae3cd75fff42185cedd9661b3c140d Исправление отрицательных остатков по организациям в УТ 11.4, КА 2.4, ERP 2. Интеркампани, механизм формирования резервов.

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

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

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

Основной минус данного подхода — это использование видов запасов или ГТД в документах списания, которые поступили позже в течение корректируемого месяца.

Исправление отрицательных остатков с использованием механизма Интеркампани

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

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

Если требуется настроить определенный порядок организаций для подбора доступных видов запасов, смотрите ниже, как это можно сделать.

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

Если не используется сложный учет по видам запасов и есть уверенность, что при перепроведении виды запасов не поменяются в документах отгрузки, можно не отменять проведение документов, а использовать выше описанную обработку для перепроведения с принудительным перезаполнением видов запасов. В данном случае, параметр «ПерезаполнитьВидыЗапасов» будет приводить к расчету резервов по документу.

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

Если перепроведение будет приводить к изменению видов запасов или ГТД, могут возникать ошибки в документах, формирующих списание и поступление. Ошибка будет возникать в том случае, если при изменении вида запасов или ГТД, по исходным значениям существует отрицательный остаток по сумме регистров «РТО» и «ТО», сформированный более поздними документами текущего месяца. Так что, для корректного формирования резервов требуется предварительная отмена проведения документов.

Перед выполнением операции необходимо отключить контроль остатков по организациям на время сеанса. Также может потребоваться временное отключение контроля остатков по регистру накопления «Обеспечение заказов». В противном случае, если присутствуют документы перемещения или сборки товаров под обособленные заказы покупателей, система не позволит отменить их проведение. Для решения проблемы, необходимо закомментировать строку «Массив.Добавить(Движения.ОбеспечениеЗаказов);» в процедуре «СформироватьСписокРегистровДляКонтроля» модулей документов: «Перемещение товаров», «Сборка товаров».

После отмены проведения документов необходимо с помощью выше описанной внешней обработки удалить все сформированные резервы и сторно резервов. Напомню, движения по регистру «РТО» формируются как при проведении, так и при отмене проведения документов.

Далее, нужно вернуть контроль остатков по организациям, который мы отключали на время сеанса.

Примечание. Вообще, необходимо иметь в виду, что для корректной работы Интеркампани НЕЛЬЗЯ отключать контроль остатков по организациям. Записи в регистре «РТО» будут создаваться в любом случае, если заполнены настройки передач. Однако, если остатков будет недостаточно, документ проведется с созданием не корректных резервов. Исправить ситуацию можно будет только принудительным удалением резервов из внешней обработки, так как любые другие действия с документом будут строиться исходя из уже существующих не корректных записей в регистре «РТО».

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

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

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

После корректного проведения всех документов, остается создать передачи товаров по данным регистра «РТО». Создавать документы передачи можно отдельно по каждому распоряжению из формы «Передачи к оформлению»:

5_2eae3cd75fff42185cedd9661b3c140d Исправление отрицательных остатков по организациям в УТ 11.4, КА 2.4, ERP 2. Интеркампани, механизм формирования резервов.

Также можно использовать обработку «Помощник формирования передач и выкупов товаров». На второй закладке помощника, в данном случае, необходимо указать способ подбора отправителей — «По настройкам передачи»:

6_2eae3cd75fff42185cedd9661b3c140d Исправление отрицательных остатков по организациям в УТ 11.4, КА 2.4, ERP 2. Интеркампани, механизм формирования резервов.

Примечание. Если документы формирующие списание и поступление проводятся отдельно, может возникнуть ситуация, когда не будут созданы документы передачи по всем существующим резервам. Это нормально, так как помощник оперирует в первую очередь наличием отрицательных остатков, а не записями в регистре «РТО». Необходимо создать недостающие передачи дополнительно.

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

После выполнения всех действий следует не забыть включить контроль остатков по складам и раскомментировать строки в модулях документов: «Перемещение товаров», «Сборка товаров».

Описание механизма формирования резервов

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

Формирование резервов происходит в два этапа:

  • Первый этап – при заполнении или перезаполнении видов запасов в документах списания (выполняется перед записью документов).
  • Второй этап – во время проведенения или отмене проведения документов, после записи новых движений в базу.

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

Виды документов Операция Первый этап Второй этап
Документы поступления Проведение V
Отмена проведения V

Документы списания

 

Проведение, перепроведение с перезаполнением видов запасов V
Отмена проведения V
Документы списания и поступления Проведение, перепроведение с перезаполнением видов запасов V V
Отмена проведения V

Формирование резервов на первом этапе

(Процедура в модуле документов) – определяется необходимость заполнения / перезаполнения или очистки видов запасов. Заполнение выполняется в следующих случаях:

  1. Проведения не проведенного документа
  2. Изменений в табличной части документа
  3. Изменение реквизитов документа: «Организация», «Дата», «НалогообложениеНДС»
  4. В случае установки параметра дополнительны свойств «ПерезаполнитьВидыЗапасов»

Дальнейшие операции происходят в общем модуле «ЗапасыСервер».

Точка входа из модулей документов.

Формируются доступные виды запасов по организации документа и по организациям, которые указаны в настройках передач в качестве поставщиков товаров, с учетом заданных отборов по видам запасов. Формируется ВТ «ДоступныеВидыЗапасов»

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

По данным документа и доступным видам запасов формируются возможные отборы остатков и сохраняются в ВТ «ВтОтборыОстатковОрганизаций«.

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

Создается пустая ВТ «ТоварыОрганизаций». Рассчитывается разница между данными ВТ «ДвиженияТоварыОрганизацийПередЗаписью» и «ТоварыОрганизаций». Результирующие данные помещаются в ВТ «ВТТоварыОрганизацийИзменения». По сути на первом этапе формирования резервов ВТ с изменениями содержим данные из ВТ «ДвиженияТоварыОрганизацийПередЗаписью» с отрицательным знаком.

Формируются записи сторно для дальнейшего формирования результирующих движений.  Анализируются данные регистра «РТО» на наличие доступных резервов для сторнирования. Данные выбираются с отбором по ВТ «ВТТоварыОрганизацийИзменения». Сформированные данные помещаются в ВТ «ВТСторноРезервов».

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

(Ниже можно посмотреть необходимые доработки...)

В зависимости от параметра заполнения остатков «ИмяТаблицыОстатков» выбирается необходимая процедура. Для нашего случая, имя таблицы остатков — «ТоварыОрганизаций»

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

Формируются запросы по остаткам на конец месяца текущего документа и на конец всех последующих месяцев до периода последней записи в регистре «ТО». Запросы по остаткам складываются из следующих данных:

  1. Данные по регистру «ТО» с текущим отбором аналитик (ВТ «ВТОтборыОстатковОрганизаций»).
  2. Данные по регистру «РТО» с текущим отбором аналитик(ВТ «ВТОтборыОстатковОрганизаций»).
  3. ВТ «ДвиженияДокумента» со знаком «-».

Каждый запрос помещается в отдельную ВТ с указанием периода в имени.

Формируются результирующие ВТ: «СгруппированныеОстатки» и «ТаблицаОстатков». При группировке выбирается минимальное значение остатка по всем месяцам контроля.

Создается ВТ «ВТНовыеРезервы» по данным документа и доступным остаткам согласно приоритетам. Новые резервы создаются в том случае, если нет доступных остатков запасов по организации документа.

Строиться ВТ «ВтОстатки», в которой остатки распределяются по приоритетам:

  1. Существующие виды запасов документа, если они есть.
  2. Виды запасов по организации документа за минусом тех, что выбраны в документе.
  3. Все доступные виды запасов других организаций.

Если необходимо реализовать собственный порядок организаций для подбора видов запасов, необходимо это делать именно здесь.

(Ниже можно посмотреть необходимые доработки...)

Данные текущего документа соединяются с ВТ «ВтОстатки». В результате получается распределение данных документа по доступным остаткам.

На основании таблицы распределения данных, формируется таблица с новыми резервами «ТаблицаНовыеРезервы».

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

Пример: новый резерв = 3

Месяцы контроля остатков Доступный остаток Превышение мин. остатка Распределенный резерв
Январь 2 1 2
Февраль 1 0 1
Март 3 2 0

На основании распределенных или не распределенных (если контроль выполняется только по корректируемому месяцу) резервов, формируется ВТ «ВТНовыеРезервы».

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

Формирование резервов на втором этапе

Выполняется прерывание процедуры, если для документа не должен выполнятся расчет резервов на втором этапе.

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

Формируется ВТ «ТоварыОрганизаций» по движениям текущего документа по регистру «ТО».

Рассчитывается разница между данными ВТ «ДвиженияТоварыОрганизацийПередЗаписью» и «ТоварыОрганизаций». Результирующие данные помещаются в ВТ «ВТТоварыОрганизацийИзменения».

Формируются доступные виды запасов по организации, в том случае, если они не были сформированы на первом этапе расчета резервов.

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

Выполняется прерывание процедуры, если для документа не должен выполнятся расчет резервов на втором этапе.

Действие выполняется в случае установленного параметра дополнительных свойств «НужноФормироватьСторноПоРезервамТоваровОрганизаций».

Выполняются действия, аналогичные расчету на первом этапе.  Анализируются данные регистра «РТО» на наличие доступных резервов для сторнирования. Данные выбираются с отбором по ВТ «ВТТоварыОрганизацийИзменения».

Отличие в том, что на втором этапе ВТ «ВТТоварыОрганизацийИзменения» содержит именно изменения по регистру «ТО» относительно первоначальных данных. Напомню, на первом этапе данная ВТ содержит данные регистра «ТО» до проведения.

Действие выполняется в случае установленного параметра дополнительных свойств «НужноКонтролироватьОстаткиТоваровОрганизаций».

По данным ВТ «ВТТоварыОрганизацийИзменения» определяется список организаций для контроля.

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

В случае, если ВТ «ВТДоступныеВидыЗапасов» была сформирована ранее по нескольким организациям, она переформировывается по каждой, и заново создается ВТ «ВтОтборыОстатковОрганизаций».

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

Формируются данные по остаткам по каждому месяцу контроля, начиная с месяца проведения документа, оканчивая месяцем последнего движения по регистру «ТО».

Формируются результирующие ВТ: «СгруппированныеОстатки» и «ТаблицаОстатков».

Формируются запросы по ВТ «ТаблицаОстатков». В первом запросе выбираются отрицательные остатки, которые необходимо покрыть резервами. В другом – доступные остатки для покрытия.

По данным полученных таблиц: «ТаблицаРаспределения» и «ОстаткиКРаспределению» формируются новые резервы. Если доступных остатков не хватает для покрытия резервов добавляется запись в таблицу ошибок.

При необходимости, резервы распределяются по периодам аналогично расчету на первом этапе.

Новые резервы добавляются к таблице значений «ТаблицаРезервыПоОрганизациямДляКонтроля».

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

По данным таблицы значений «ТаблицаРезервыПоОрганизациямДляКонтроля» формируется ВТ «ВТРезервыПоОрганизациямДляКонтроля».

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

Сформированная таблица записывается в регистр «РТО».

Исправления и доработка типовых механизмов

Исправление обработки «Помощник формирования передач и выкупов товаров»

Исправления необходимы для случая, если обработка используется для исправления остатков без применения механизмов Интеркампани, и ведется учет по ГТД. По умолчанию, обработка подбирает доступные остатки с отбором по ГТД, а необходимо, чтобы подбирались все доступные остатки, и потом сворачивались по пустому значению ГТД.

Для решения проблемы, необходимо установить флаг параметров дополнения запроса остатков «ЕстьОтборПоНомеруГТД» в значение «Ложь». Также установить значение для всех ГТД в полученных остатках – «ПустаяСсылка()», и дополнительно сгруппировать остатки. Текст запроса с изменениями смотрите ниже:

Текст исправленного запроса

Все исправления необходимо выполнять для варианта формирования документов с подбором Отправителей «По указанным приоритетам» (случай, когда не используется механизм Интеркампани).

Добавленный код в процедуре «СоздатьДокументыПоПериоду»

Найдена ошибка в работе обработки! При проведении сформированных документов передачи – теряются документы сформированные по организации с последним приоритетом. Для решения проблемы, в процедуре менеджера обработки «ЗаписатьДокументы», в случае отсутствия строк в документе, необходимо не прерывать выполнение обработки, а продолжать выполнение дальше, для следующих документов.

Исправленная функция «ЗаписатьДокументы»

Исправление даты анализа и контроля остатков для формирования резервов и передач товаров

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

Для этого необходимо внести изменения в следующие процедуры:

ЗапасыСервер >> ДополнитьЗапросКонтролемОстатковНаКаждыйМесяц – задать значение параметра «ПараметрыДополнения.ОкончаниеПериодаКонтроля» перед вызовом процедуры «ДополнитьЗапросКонтролемОстатковНаКаждыйМесяц» — установить минимальную дату остатков:

Добавление в коде процедуры «ТаблицаОстатковТоваровОрганизаций»

ЗапасыСервер >> ДобавитьКонтрольПоТоварамОрганизаций – исключить все проверки по месяцам, кроме месяца текущего документа:

Исправления в коде процедуры

МенеджерФормированиеПередачТоваровМеждуОрганизациямиИВыкупов >> СоздатьДокументыПоПериоду – задать значение для параметра запроса «КонецПериода» — установить конец периода, указанного в настройках (данный параметр влияет только на выборку данных из регистра «РТО»):

Добавление в коде процедуры «СоздатьДокументыПоПериоду»

Реализация порядка организаций для подбора доступных запасов

При подборе видов запасов для формирования резервов в типовом механизме нельзя установить порядок, в котором товары будут подбираться с разных организаций. Для решения этой проблемы необходимо:

  1. Добавить в справочник «Организации» новый реквизит «Порядок»
  2. Внести изменения в процедуру «ЗапасыСервер >> ЗапросРаспределенияСУчетомПриоритетовТаблицыТоваровНаТаблицуОстатков» — в запрос получения ВТ «ВтОстатки» добавить вывод порядка, указанного для организации при расчете поля «Приоритет». Запрос с изменениями смотрите ниже:

Текст исправленного запроса

Исправление ошибки создания лишнего сторно

В типовом механизме, при расчете резервов на первом этапе, в случае, если документ формирует списание и поступление товаров, ошибочно создаются записи сторно. Записи будут задублированы на втором этапе расчета. Соответственно, необходимо исключить документы, которые делают поступление и списание из процедуры формирования сторно на первом этапе расчета резервов. Для этого в процедуре «ЗапасыСервер >> ЗаполнитьВидыЗапасовПоТоварамОрганизаций» необходимо поставить дополнительное условие на выполнение процедуры формирования сторно «СформироватьВТСторноРезервов»:

Исправление в коде процедуры

Автор статьи: Дмитрий Иванов