
В модуле stock_barcode_receipt уже была функция «скан открывает нужный документ» — отсканировал штрихкод накладной, и Odoo сразу переходит к ней, не выбирая вручную из списка. Сегодня довели её до рабочего состояния во всех сценариях, где она раньше молчала.
Из любой формы, а не только из списка
Раньше переход по скану работал только с экрана списка накладных. Внутри уже открытой формы — особенно на внутреннем перемещении, где сканирование товаров и так ограничено приходом/расходом — скан чужого документа просто ничего не делал. Теперь проверка на «это штрихкод другой накладной» происходит до всех ограничений по типу и статусу текущего документа.
Без конфликта с черновиком
Сканирование другой накладной помечало текущую форму как изменённую через onchange. При переходе Odoo пытался сначала сохранить эти изменения — и падал с ошибкой «документ нельзя редактировать», если исходная накладная уже была проведена. Теперь форма сбрасывается (аналог «Отменить») перед переключением на отсканированный документ.
На уже проведённом документе
Корень проблемы нашёлся в самом базовом модуле штрихкодов: обработчик сканирования выходит с ошибкой «Document not editable», если форма в режиме просмотра — а форма переключается в этот режим сразу после сохранения, то есть ровно в момент подтверждения накладной. Переход по штрихкоду документа теперь проверяется раньше этого ограничения, поэтому работает независимо от режима формы.
Итог
Три правки за одно утро — и сканер теперь безотказно открывает нужную накладную из любого места интерфейса, независимо от того, что сейчас открыто на экране и в каком она статусе.