Для процедур и функций в 1С могут задаваться параметры, которые будут использоваться при их выполнении. Поэтому при обращении к процедуре с неверно заданными параметрами появится ошибка: как в случае, если какой-то параметр не передан, так и если передается параметр, который в ней не описан.
Содержание
Причины
Окно сообщения Слишком много фактических параметров в 1С говорит о том, что в процедуру (функцию) передан параметр, который в ней не указан. Произойти это может по нескольким причинам:
- Основная: излишне переданный параметр для выполнения вызываемой функции при разработке кода.
- Дополнительные:
- несоответствие платформы и релиза,
- кэш информационной базы.
Неверно переданный параметр для выполнения вызываемой функции при разработке кода
Чаще всего ошибка проявляется после обновления конфигурации. Рассмотрим на примере, почему это происходит и как устранить проблему.
При попытке заполнить документ выдана ошибка Слишком много фактических параметров.
Перейдя по кнопке Подробно, можно увидеть описание, в какой именно процедуре было расхождение в передаваемой и получаемой структуре, с указанием процедуры (функции) и номера строки.
На картинке ниже видно, что ошибка выдается при попытке выполнения процедуры ЗаполнитьТабличнуюЧастьФизическимиЛицамиНеИмеющихЛицевыхСчетов, для выполнения которой передаются два параметра: дата документа и табличная часть документа.
При этом перейдя по кнопке F12 в тело процедуры, видим, что для выполнения необходим только параметр даты, на которую необходимо получить данные, и передача массива сотрудников для ее выполнения является избыточной.
Как исправить данную ошибку
Если ошибка появилась после обновления релиза конфигурации 1С, то, скорее всего, это связано именно с доработками релиза.
Можно проверить знают ли разработчики о проявлении ошибки, поскольку возможно, она уже исправлена. Для этого необходимо зайти на сайт https://bugboard.v8.1c.ru (каталог Публикация ошибок) и задав в окне поиска Слишком много фактических параметров, просмотреть публикации на эту тему.
К каждой ошибке указаны статус (принята к исправлению, исправлена и другое) и дата регистрации. Возможно, ваша ошибка уже исправлена, и будет достаточно обновить конфигурацию до релиза, указанного в описании. В случае, когда ошибка только планируется к исправлению либо не зарегистрирована, при этом ваша конфигурация полностью типовая, нужно связаться с горячей линией 1С.
Ошибку можно устранить самостоятельно, если ваша конфигурация не является типовой. Для этого в режиме конфигуратора перейдите в строку, где вызывается процедура и уберите избыточные параметры.
В нашем примере это будет выглядеть следующим образом: вместо двух параметров будем передавать только один, который требуется в вызываемой процедуре.
После обновления измененного модуля ошибка проявляться не будет.
Версия платформы и релиз
Так же ошибка может возникнуть, если нарушены правила обновления релиза. К каждому выпущенному релизу фирма 1С готовит описание и инструкцию по обновлению, в которой может быть указано, что данный релиз подходит для определенных версий платформы. Если не обновить платформу до требуемой версии, это может привести к ошибкам в работе системы.
Делаются такие уточнения неспроста: изменения в функциях/процедурах в релизе могут быть обусловлены изменениями в правилах их вызова в обновлениях технологической платформы, которые разработчики конфигурации не могут не учитывать при своих доработках.
Кэш информационной базы
Может возникнуть ситуация, когда по кнопке Подробно расхождений в передаваемых параметрах и фактических параметрах самой функции нет (три параметра нужно для выполнения и три параметра передаются). Тогда, возможно, причина появления ошибки — кэш базы.
Дело может быть в динамическом обновлении конфигурации. Достаточно часто используемый вариант обновления, когда код доработан несущественно без добавления в конфигурацию новых объектов, но у такого способа есть неприятный побочный эффект. При таком способе обновления данные параметров процедур и функций часто кэшируются. В дальнейшем из-за расхождения процедур в базе и кэше может возникать ошибка в работе.
Для устранения ошибки попробуйте почистить кэш вашей информационной базы.
См. также:
Поставьте вашу оценку этой статье:
Для отправки комментария вам необходимо авторизоваться.