Слишком много фактических параметров в 1С 8.3

Для процедур и функций в 1С могут задаваться параметры, которые будут использоваться при их выполнении. Поэтому при обращении к процедуре с неверно заданными параметрами появится ошибка: как в случае, если какой-то параметр не передан, так и если передается параметр, который в ней не описан.

Причины

Окно сообщения Слишком много фактических параметров в 1С говорит о том, что в процедуру (функцию) передан параметр, который в ней не указан. Произойти это может по нескольким причинам:

  • Основная: излишне переданный параметр для выполнения вызываемой функции при разработке кода.
  • Дополнительные:
    • несоответствие платформы и релиза,
    • кэш информационной базы.

Неверно переданный параметр для выполнения вызываемой функции при разработке кода

Чаще всего ошибка проявляется после обновления конфигурации. Рассмотрим на примере, почему это происходит и как устранить проблему.

При попытке заполнить документ выдана ошибка Слишком много фактических параметров.

image002

Перейдя по кнопке Подробно, можно увидеть описание, в какой именно процедуре было расхождение в передаваемой и получаемой структуре, с указанием процедуры (функции) и номера строки.

На картинке ниже видно, что ошибка выдается при попытке выполнения процедуры ЗаполнитьТабличнуюЧастьФизическимиЛицамиНеИмеющихЛицевыхСчетов, для выполнения которой передаются два параметра: дата документа и табличная часть документа.

image004

При этом перейдя по кнопке F12 в тело процедуры, видим, что для выполнения необходим только параметр даты, на которую необходимо получить данные, и передача массива сотрудников для ее выполнения является избыточной.

image006

Как исправить данную ошибку

Если ошибка появилась после обновления релиза конфигурации 1С, то, скорее всего, это связано именно с доработками релиза.

Можно проверить знают ли разработчики о проявлении ошибки, поскольку возможно, она уже исправлена. Для этого необходимо зайти на сайт https://bugboard.v8.1c.ru (каталог Публикация ошибок) и задав в окне поиска Слишком много фактических параметров, просмотреть публикации на эту тему.

К каждой ошибке указаны статус (принята к исправлению, исправлена и другое) и дата регистрации. Возможно, ваша ошибка уже исправлена, и будет достаточно обновить конфигурацию до релиза, указанного в описании. В случае, когда ошибка только планируется к исправлению либо не зарегистрирована, при этом ваша конфигурация полностью типовая, нужно связаться с горячей линией 1С.

Ошибку можно устранить самостоятельно, если ваша конфигурация не является типовой. Для этого в режиме конфигуратора перейдите в строку, где вызывается процедура и уберите избыточные параметры.

В нашем примере это будет выглядеть следующим образом: вместо двух параметров будем передавать только один, который требуется в вызываемой процедуре.

image008

image010

После обновления измененного модуля ошибка проявляться не будет.

Версия платформы и релиз

Так же ошибка может возникнуть, если нарушены правила обновления релиза. К каждому выпущенному релизу фирма 1С готовит описание и инструкцию по обновлению, в которой может быть указано, что данный релиз подходит для определенных версий платформы. Если не обновить платформу до требуемой версии, это может привести к ошибкам в работе системы.

Делаются такие уточнения неспроста: изменения в функциях/процедурах в релизе могут быть обусловлены изменениями в правилах их вызова в обновлениях технологической платформы, которые разработчики конфигурации не могут не учитывать при своих доработках.

Кэш информационной базы

Может возникнуть ситуация, когда по кнопке Подробно расхождений в передаваемых параметрах и фактических параметрах самой функции нет (три параметра нужно для выполнения и три параметра передаются). Тогда, возможно, причина появления ошибки — кэш базы.

Дело может быть в динамическом обновлении конфигурации. Достаточно часто используемый вариант обновления, когда код доработан несущественно без добавления в конфигурацию новых объектов, но у такого способа есть неприятный побочный эффект. При таком способе обновления данные параметров процедур и функций часто кэшируются. В дальнейшем из-за расхождения процедур в базе и кэше может возникать ошибка в работе.

Для устранения ошибки попробуйте почистить кэш вашей информационной базы.


Поставьте вашу оценку этой статье:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Добавить комментарий или вопрос: