При работе в актуальных релизах конфигурации «1С:Управление торговлей 11.4» (а также в ERP 2.4 и КА 2.4) пользователи часто сталкиваются с неприятной ошибкой при попытке распечатать Приходный кассовый ордер (ПКО). Система прерывает работу с сообщением: {ОбщийМодуль.ПриходныйКассовыйОрдерЛокализация.Модуль(346)}: Поле объекта не обнаружено (ФИОКассира). Разберем подробно причины возникновения этой ситуации и пошагово выясним, как её устранить.
Для начала проанализируем место возникновения проблемы. Ошибка происходит в общем модуле ПриходныйКассовыйОрдерЛокализация. Программа пытается передать в параметры макета печатной формы строковое представление фамилии и инициалов кассира. Код выглядит следующим образом:
// Фрагмент кода в общем модуле
ОбластьМакета.Параметры.ФИОКассира = ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(Выборка.Кассир, Выборка.ДатаДокумента);
Суть ошибки заключается в том, что в объекте Параметры текущей области макета отсутствует поле с именем ФИОКассира. Это означает, что программный код «ожидает» наличия этого параметра в печатной форме, но в самом макете (табличном документе) такого именованного поля нет.
Это самая распространенная причина. В современных версиях 1С активно используются расширения. Если в вашей базе установлено расширение, которое каким-либо образом модифицирует документ ПриходныйКассовыйОрдер или содержит его макет, возникает конфликт версий.
Рассмотрим механизм возникновения: после обновления основной конфигурации до нового релиза разработчики 1С изменили макет ПКО, добавив в него поле ФИОКассира для соответствия законодательству. Однако в расширении остался сохранен старый макет из предыдущей версии, где этого поля еще не было. При печати система берет макет из расширения, а код — из основной конфигурации.
Как исправить:
ФИОКассира в соответствующую ячейку (обычно это область подписи кассира или квитанция) или обновить макет в расширении до актуального состояния из основной конфигурации.Часто пользователи используют не стандартную форму ПКО, а внешнюю (доработанную под нужды компании). Внешняя печатная форма (ВПФ) может обращаться к экспортным методам общих модулей конфигурации.
Проанализируем ситуацию: если ваша ВПФ вызывает метод печати из ПриходныйКассовыйОрдерЛокализация, но сама содержит макет, созданный год назад, в нем гарантированно не будет параметра ФИОКассира. Система не сможет сопоставить данные, и вы увидите ошибку.
Решение: необходимо обновить внешнюю печатную форму в справочнике «Дополнительные отчеты и обработки». Программисту следует открыть макет ВПФ и переименовать или добавить параметр в ячейке, где выводится ФИО кассира.
Иногда ошибка возникает и в типовой конфигурации без расширений. Это может быть связано с некорректным обновлением или специфическим состоянием кэша на клиентских компьютерах.
Посмотрим, что можно сделать:
ПриходныйКассовыйОрдер, откроем макет ПФ_MXL_ПриходныйКассовыйОрдер. Проверим область Подписи и область Квитанция. Убедимся, что параметр ФИОКассира присутствует. Если там указан старый параметр (например, просто Кассир), а код требует ФИОКассира, необходимо вручную переименовать параметр в свойствах ячейки макета.Хотя ошибка явно указывает на отсутствие поля в макете, иногда корень проблемы кроется в данных. Если для кассира не заполнена история фамилий или само физическое лицо указано некорректно, функция ФизическиеЛицаУТ.ФамилияИнициалыФизЛица может возвращать пустой результат или вызывать сбои в структуре параметров.
Проверим следующие данные:
Если вы решили править конфигурацию вручную, обратите внимание на то, как формируется структура параметров в модуле менеджера или модуле локализации. При формировании области макета 1С использует метод ЗаполнитьЗначенияСвойств или прямое присвоение. Чтобы избежать падения системы, можно добавить проверку на наличие параметра в макете:
Если ОбластьМакета.Параметры.Найти("ФИОКассира") <> Неопределено Тогда
ОбластьМакета.Параметры.ФИОКассира = ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(Выборка.Кассир, Выборка.ДатаДокумента);
КонецЕсли;
Однако правильнее будет привести макет в соответствие с кодом, так как отсутствие ФИО кассира в печатной форме может быть нарушением правил ведения кассовых операций.