fixin (fixin) wrote,
fixin
fixin

Забавный баг у клиента

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

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

Ботинки Красные
Ботинки Зеленые
Ботинки Синие

А клиент хотел получить на выходе одну номенклатуру Ботинки с тремя характеристиками - Красные, Зеленые и Синие.  При этом одна из позиций была главная (Ботинки Красные) и переименовывалась в Ботинки.

Так вот, когда алгоритм отрабатывал, он почему-то получал на выходе:

Ботинки, характеристика Красные
Ботинки, характеристика Красные
Ботинки, характеристика Красные

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

Ботинки Зеленые заменялись на Ботинки, характеристика Зеленые
Ботинки Синие заменялись на Ботинки, характеристика Синие

И в этот момент начала отрабатывать замена Ботинки (бывшие Ботинки Красные) на Ботинки, характеристика Красные.

Но в документах то уже номенклатура была заменена на Ботинки и когда она встречала Ботинки, думала, что это элемент, которому нужно присвоить характеристику Красные.

В итоге убивала все уже проставленные характеристики.

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

А тестировал-то я по отдельности элементы заменяемые, поэтому и не увидел.

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

Tags:
Subscribe
promo fixin december 31, 2037 16:57 1420
Buy for 30 tokens
UPD: Друзья, в августе 2019 года блог переехал на http://fixinchik.ru. Welcome! Добро пожаловать в журнал Осипова Сергея Александровича, известного также как Fixin и Гений 1С. Рекомендую ознакомиться с Часто Задаваемыми Вопросами обо мне. Что я хочу в подарок - список. Мой проект "…
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 15 comments