При работе в актуальных релизах «1С:Бухгалтерия предприятия 3.0» (включая версию КОРП, редакции 3.0.115.19 и выше) пользователи часто сталкиваются с невозможностью провести документ Отчет комиссионера о продажах при попытке отразить возврат товаров. Проблема проявляется по-разному: от системных сообщений об отсутствии обработчиков событий до ошибок контроля остатков. Проанализируем основные причины и разберем по шагам способы их решения.
Одной из самых неочевидных, но действенных мер является проверка режима запуска программы. Рассмотрим ситуацию: если в настройках запуска информационной базы жестко установлен «Толстый клиент», многие механизмы управляемого приложения могут работать некорректно. Это связано с тем, что современная бизнес-логика конфигурации Бухгалтерия предприятия оптимизирована для работы в «Тонком клиенте».
Проанализируем действия для решения проблемы:
1С:Предприятие.Как показывает практика, именно этот шаг зачастую полностью устраняет ошибки, связанные с невозможностью проведения возвратов в новых релизах.
Если при попытке открыть форму или провести документ возникает системная ошибка: «При подписке ПроверкаДоступностиФормыПоТарифу на событие ОбработкаПолученияФормы произошла ошибка. Обработчик события не найден», — это явный признак программной недоработки в релизах ветки 3.0.115–3.0.117. Рассмотрим подробнее техническую сторону вопроса.
Проблема кроется в том, что обработчик события проверки тарифов расположен в общем модуле ТарификацияБП, у которого в свойствах может отсутствовать флаг, разрешающий вызов с сервера или клиента в определенных контекстах. Выясним, как это исправить в конфигураторе (если у вас есть права на внесение изменений):
ТарификацияБП.Для тех, кто работает в «облаке» или не имеет возможности менять код, решением будет обновление на более свежий релиз (выше 3.0.117), где данная ошибка признана официальной и исправлена разработчиками фирмы «1С».
Посмотрим на ситуацию со стороны методологии учета. Часто ошибка «нет такой позиции в таком количестве в указанной счет-фактуре» возникает не из-за программного сбоя, а из-за несоответствия данных в цепочке документов. Проанализируем типичный сценарий: реализация была оформлена по одному договору (или соглашению), а в документе Отчет комиссионера с видом «Возврат» указан другой договор.
Выполним следующие шаги по проверке:
СправочникСсылка.ДоговорыКонтрагентов.Если организация ведет учет по номерам ГТД или партионный учет (ФИФО), программа жестко контролирует возможность возврата конкретной партии. Если в табличной части возврата указан номер ГТД, который не числится за этим контрагентом по данным регистра РаздельныйУчетПродаж или ВидыЗапасов, проведение будет заблокировано.
Рассмотрим, как проанализировать движения:
Иногда проблема вызвана тем, что установленные расширения конфигурации конфликтуют с новыми механизмами тарификации. Проанализируем список расширений:
Также не стоит забывать про очистку кэша. После обновления конфигурации старые временные файлы могут вызывать ошибку «Обработчик не найден». Самый простой способ — удалить базу из списка запуска 1С и добавить её заново. При этом папка с кэшем будет создана заново, что часто решает проблемы с доступом к модулям ТарификацияБП или ПроверкаДоступностиФормыПоТарифу.
Если вышеуказанные способы не помогли, необходимо запустить отладку процесса проведения. Обратим внимание на подписку на событие ОбработкаПолученияФормы. В коде это выглядит примерно так:
// В модуле, где определена подписка
Процедура ПроверкаДоступностиФормыПоТарифу(Источник, ФормаИмя, Параметры, ВыбраннаяФорма, СтандартнаяОбработка) Экспорт
// Если здесь происходит ошибка, проверьте доступность модуля ТарификацияБП
ТарификацияБП.ПроверитьВозможностьИспользования(ФормаИмя);
КонецПроцедуры
Убедитесь, что в момент вызова этой процедуры все переменные определены, а сервер имеет доступ к методам модуля. В случае работы в режиме «Толстого клиента», серверные вызовы могут отрабатывать иначе, что подтверждает эффективность первого совета о переходе на «Тонкий клиент».