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






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

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

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

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

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

Ну что же, ближе к делу…

Содержание

  1. Термины, используемые в статье для сокращения
  2. Кейс по исправлению отрицательных остатков по организациям
  1. Описание механизма формирования резервов
  1. Исправления и доработка типовых механизмов

 

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

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

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

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

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

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

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

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

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

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

 

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

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

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

 

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

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

 

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

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

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

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

 

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

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

Ошибка наличия лишнего сторно

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

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

Варианты исправления отрицательных остатков

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

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

 

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

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

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

Документ = Выборка.Ссылка.ПолучитьОбъект();
Документ.ДополнительныеСвойства.Вставить("ПерезаполнитьВидыЗапасов", Истина);
Документ.ДополнительныеСвойства.Вставить("ОкончаниеПериодаПомощникаИсправленияОстатков", Период.ДатаОкончания);
Документ.Записать(РежимЗаписиДокумента.Проведение);

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

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

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

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

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

Помощник создания передач товаров, первая закладка

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

Помощник создания передач, по указанным приоритетам

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Передачи товаров к оформлению

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

Помощиник передач товаров, по настройкам передач

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

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

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

 

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

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

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

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

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

Виды документов

Операция

Первый этап

Второй этап

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

Проведение

 

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. Внести изменения в процедуру «ЗапасыСервер >> ЗапросРаспределенияСУчетомПриоритетовТаблицыТоваровНаТаблицуОстатков» — в запрос получения ВТ «ВтОстатки» добавить вывод порядка, указанного для организации при расчете поля «Приоритет». Запрос с изменениями смотрите ниже:
 

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

 

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

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

 

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

 

Смотрите другие мои статьи из серии «Механизмы учета в типовых конфигурациях УТ 11, КА 2, ЕРП 2»

  1. Подсистема Интеркампани, особенности учета
  2. Новая концепция учета по видам запасов
  3. Партионный учет товаров
  4. Учет товаров по сериям
  5. Контроль отрицательных остатков
  6. Сложные схемы поступления ТМЦ

 

25 Comments

  1. Vladimir Litvinenko

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

    Reply
  2. ids79

    (1)Спасибо, Владимир.

    Reply
  3. artfa

    старый механизм был проще, в новом огород нагородили

    Reply
  4. ids79

    (3)Тут, как посмотреть.

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

    Есть конечно свои нюансы и сложности.

    Reply
  5. artfa

    (4) чем? тем что распроведенные передачи оставляют движения по регистру, или выше описанными танцами?

    старый был куда проще, регистр остатки, никаких сторно, а в новом нагородили мама не горюй,

    посмотрите в модуль менеджера регистра РезервыТоваровОрганизаций,

    в пользовательском режиме, изменений почти нет..

    Reply
  6. user1161633

    Дмитрий, нас как раз интересует интеркампани на УТ 11.4. Хотелось бы с Вами пообщаться. Писали Вам в личку, но сообщения, по всей видимости, не дошли. Напишите, пожалуйста, нам в личку!

    Reply
  7. ids79

    (6)Добрый день.

    Если не получается в личку, пишите на почту: ids79@yandex.ru

    Reply
  8. user1090556

    Отличная статья характеризующая разрыв типового решения с реалиями. У меня задача перенести год учета из ТиС 7.7 в КА 2.4.6. Как раз есть перекрестные передачи. Документы перенес, провел, думал с наскока увижу себестоимость, но понял что поторопился. Жаль что концепция интеркампани не соответствует полностью её программной реализации в типовых решениях. Спасибо что раскрыли тему.

    Reply
  9. ids79

    (8)Пожалуйста

    Reply
  10. twiny

    Стоит ли оставлять изменения «Исправление даты анализа и контроля остатков для формирования резервов и передач товаров» в конфигурации на постоянной основе?

    К чему это может привести?

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

    Reply
  11. Xershi

    Статью не читал. Но по описанию понял, что и не нужно!

    Благодаря помощнику проблем с закрытием не возникает. Типовой алгоритм решает вопросы передач на 99%, остальное пока добивали ручками. Но когда сформировано все, то и переделка задним числом проблем не даст, т.к. развернутого сальдо не будет.

    Reply
  12. ids79

    (10)На постоянной основе я бы точно не советовал применять. Так как может получится ситуация, что из-за подобных действий в прошлом периоде появятся минусы в более поздних, уже закрытых. Имеет смысл применять, если последующие периоды еще не закрыты, чтобы исключить их влияние.

    Reply
  13. twiny

    (13) мысли в подобном ключе были, но ведь если лезть в прошлые периоды, то все-равно закрытие последующих придется переделывать и значит будет выполнен «контроль» при закрытии или не будет?

    Reply
  14. ids79

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

    Reply
  15. twiny

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

    Reply
  16. Xershi

    (16) согласен!

    Reply
  17. artfa

    затерли коммент

    Reply
  18. dkonakov

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

    Эта организация берет товар на комиссию у поставщика на главный склад через поступление.

    Далее перемещение товара с главного склада в розничный магазин.

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

    Никто не сталкивался? Баг или Фича?)

    Reply
  19. ids79

    (19)Не должно быть такого. Возможно Вы оприходовали этот товар.

    Reply
  20. dkonakov

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

    То есть допустим комитент на ОСНО, а комиссионер на УСН и продаёт без НДС. Вот такая ситуация получается.

    Reply
  21. ids79

    Что-то я Вас не пойму. Вы вроде писали, что у Вас одна организация, которая берет товар на комиссию…

    Или Вы передачи используете по комиссионной схеме?

    Reply
  22. user963995

    Добрый день Дмитрий! Мы торговая компания, работаем в программе Управление торговлей 11.4 и у нас сложная система интеркампани, схожа с той что описывается в вашей статье. Сделали отмену проведения всех передач товаров затем включили контроль остатков, но не дает проводить документы с начала деятельности с включенным учетом контроля остатков, пишет что недостаточно товаров. Мы можем с вами связаться? Напишите свой номер, наш номер 89370055776, помогите нам пож-та разобраться, можете по удаленке посмотреть, мы тестируем на копии базы, в рабочей контроль остатков отключен но интеркампани не работает так как мы ставим настройки передач, она делает все как сама хочет

    Reply
  23. ivanov660

    На мой взгляд очень стремно выглядит ситуация с отменой проведения и проведением документов, а именно переформированием видов запасов для РТУ, особенно если ведется учет ГТД. Кроме того что это без внешних обработок в множество потоков неимоверно долго (а работать сотрудникам когда?), но и на мой взгляд утопично уже для десятков тысяч документов.

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

    Думаю в этом случае правильнее сделать инвентаризацию/»пересортицу» коммерческих остатков с помощью документов «оприходование излишков» и «списание недостач» на некоторую дату учета.

    Reply
  24. ids79

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

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

    Reply
  25. ivanov660

    (25)Учет без контроля остатков — это справочный учет «вроде он есть, а на самом деле нет».

    Пересорты так в принципе и делаются — по гтд и по видам.

    Врамках интеркомпании с комиссионной схемой разброс получается еще больше, а если кто-то включил опции учитывать виды запасов в разрезе назначений, себестоимости и т.п. можно «вешаться». Особенно если глянуть на архитектуру этой кухни из нутри. Сталкивался с ситуацией когда количество видов было более 40 тысяч и в результате запрос по остаткам 100 товаров в передачи выходил на миллион строк во вложенных 10 таблицах(

    Reply

Leave a Comment

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