- •Оглавление
- •3.2 Регламент процесса. 15
- •1Восстановление последовательности.
- •1.1Назначение и общее описание механизма восстановления последовательности.
- •1.2Регламент процесса.
- •1.2.1Штатная обработка платформы, используемая при восстановлении последовательности.
- •1.2.2Вспомогательная обработка восстановления последовательности.
- •1.2.3Настройка автоматического восстановления последовательности.
- •2Особенности учета партий товаров в торговой сети.
- •3Допроведение по партиям.
- •3.1Назначение и общее описание механизма допроведения.
- •3.2Регламент процесса.
- •3.2.1Допроведение в ручном режиме.
- •3.2.2Настройка допроведения по окончании сеанса обмена.
1.2.3Настройка автоматического восстановления последовательности.
Для автоматического восстановления последовательности необходимо прописать вызов функции встроенного языка «Последовательности.Партии.Восстановить()» в планировщик задач пользователя.
Для этого необходимо открыть справочник «Пользователи». Меню «Справочники -> структура компании -> Пользователи».
В открывшейся форме выбрать нужный элемент и открыть его форму
В открывшейся форме перейти на закладку «Планировщик задач» и добавить новую задачу
Вид задачи должен быть «Запуск процедуры встроенного языка», действие при ошибке «Завершить работу задачи».
В качестве самой процедуры указать «Последовательности.Партии.Восстановить()».
Периодичность «Ежедневно», например, в 04 00:00 утра.
По завершении редактирования задачу необходимо сохранить (кнопка «ОК»).
Также последовательность можно восстанавливать по указанную дату. Для этого параметры задачи будут несколько более сложными:
Пример текста процедуры:
////////////////////////////////////////////////////////////////////////////////////////////////////////
//Последовательность на 3 дня назад
ГП=Последовательности.Партии.ПолучитьГраницу();
Дата3=КонецДня(ТекущаяДата()-86400*4);
Если ГП.Дата<Дата3 Тогда
Сообщить(""+ТекущаяДата()+" Начало восстановления последовательности");
Момент = Новый МоментВремени(Дата3);
Последовательности.Партии.Восстановить(Момент);
Сообщить(""+ТекущаяДата()+" Окончание восстановления последовательности");
Иначе
Сообщить(""+ТекущаяДата()+" Восстановление последовательности по дату "+Дата3+" не требовалось");
КонецЕсли;
////////////////////////////////////////////////////////////////////////////////////////////////////////
Важно учитывать, что процедура проведения, выполняемая при восстановлении последовательности абсолютно аналогична обычной процедуре проведения документа. Поэтому, если пользователь, восстанавливающий последовательность, обладает обычными правами, то он неизбежно столкнется с функциями проверки корректности и прочими ограничениями, которые не только не позволят своевременно восстановить последовательность, но также значительно снизят быстродействие данного процесса. Поэтому для восстановления последовательности целесообразнее создавать служебного пользователя, которому отключить следующие ограничения:
Отключить право «Проверка прав доступа к справочникам и документам» и право «Проверка заполнения справочников и документов». В таком случае система не будет выполнять проверки доступа к объектам и процедуры проверки корректности заполнения документов.
Установить право «Автоматическое оприходование излишков» равным «Разрешены по остаткам».
2Особенности учета партий товаров в торговой сети.
Основная проблема учета партий товаров в торговой сети связана с перемещениями между торговыми подразделениями. И заключается она в том, что в момент непосредственной отгрузки товаров с РЦ система:
Не может передать ссылки на списанные партии (т.к. для этого придется передавать всю накладную поступления, не принадлежащую подразделению получателю).
Как правило, после пересчета итогов дня/недели/месяца состав отгружаемых партий очень значительно меняется.
Для решения данных двух проблем в нашей системе используется механизм «Допроведения по партиям». Он заключается в том, что расчет списанных партий производится не в магазине, а в центральной базе, в которой содержится информация о всех партиях и система определяет, какая партия магазина 1 была перемещена в магазин 2 и там была продана. Связь между документами отгрузки и поступления осуществляется средствами сохранения идентификатора документа отгрузки (расхода в филиал) в транзитной спецификации и заполнения его в документ поступления (приход из филиала).
Главным недостатком данного метода считается отсутствие данных регистра партии в торговых подразделениях, что на первоначальных этапах внедрения представляет некоторое неудобство.
А также такая методика делает невозможным восстановление последовательности документов в информационной базе торгового подразделения – только в центральной базе (там же, где выполняется допроведение).
При этом нужно понимать, что в других известных всем схемах, перемещения также представляют достаточно серьезную проблему. Особенно это проявляется в таком распространенном примере, как отгрузка товара с РЦ в магазин и последующий возврат данного товара на РЦ.
Предположим, что в момент отгрузки с РЦ одной единицы товара «Товар1» была списана партия «Поступление1» стоимостью 10 руб. за единицу. В базе магазина данная себестоимость была зафиксирована. По истечении некоторого периода времени товар был возвращен на РЦ и партия «Поступление1» по 10 руб. за единицу вернулась обратно. Это зафиксировалось в базе РЦ.
После чего в базе РЦ было проведено восстановление последовательности, в результате чего произошел пересчет партий и списана оказалась партия «Поступление4» стоимостью 11 руб. за единицу. Предположим, что система позволяет передать данной изменение в базу магазина, где в результате такой операции произойдет нарушение последовательности. Но последовательность в РЦ продолжает восстанавливаться и доходит до возврата из магазина партии, разумеется, «Поступление1», т.к. без пересчета последовательности в магазине система не сможет определить, какая партия «вернулась» на РЦ. В результате последовательность восстанавливается полностью. Такие ситуации, как показали исследования, случаются примерно в 90% случаев.
Но теперь аналогичная операция начинается в магазине, и, когда система доходит до документа возврата, меняя отгружаемую партию с «Поступления1» на «Поступление4», данное изменение передается в базу РЦ, нарушая там только что восстановленную последовательность. При среднем ассортименте РЦ 2-3 тысячи позиций приблизительно одна четвертая часть постоянно возвращается, в результате получаем около 500-700 таких «недоразумений», которые будут фактически ежедневно нарушать работу механизма восстановления последовательности.
Если от данного механизма отказаться, то это становится равносильно полному НЕ восстановлению последовательности.
Поэтому механизм восстановления последовательности в центре, который, на первый взгляд, более ресурсоемкий и сложный в выполнении и администрировании, имеет ряд преимуществ перед «распределенным восстановлением».
Тем более что в данном документе не упоминаются взаиморасчеты, которые также входят в последовательность требуют ее восстановления и, как правило, ведутся централизованно. Поэтому можно сделать вывод, что единственный корректный вариант восстановления последовательности – восстановление в центре (или промежуточных, например, региональных центрах в случае, когда существует несколько центров ведения взаиморасчетов). А восстановление последовательности в торговых подразделениях в большинстве случаев бессмысленно, т.к. корректность пересчета данных после выполнения данной процедуры остается под сомнением.
