Сообщение с текстом Недостаточно фактических параметров 1С 8.3 показывает, когда в процедуру или функцию, содержащие алгоритмы обработки данных, передается не вся начальная информация. Если ошибка возникла после обновления конфигурации, рекомендуется дождаться исправленной версии. Для устранения ошибки в доработанной конфигурации потребуются навыки работы в конфигураторе.
Рассмотрим примеры на доработанной конфигурации 1С Бухгалтерия 8.3.
Содержание
Параметры процедур и функций
Прежде чем приступить к исправлению ошибки, связанной с недостаточным количеством параметров, необходимо понять ее суть. Причина — в несоответствии количества передаваемых в процедуру/функцию параметров.
После имени процедуры/функции в скобках указываются переменные, в которые передаются данные для выполнения. Число передаваемых параметров должно совпадать с перечисленными при вызове процедуры/функции. Наименования не сравниваются, важен только порядок.
Если ничего не указано, значит, дополнительных параметров для выполнения не требуется.
В программном коде 1С программисты используют как стандартные процедуры/функции/методы (далее — «процедура»), так и создают свои.
При создании собственных обработок логично предположить, что все передаваемые данные будут использоваться при выполнении процедуры. Перечисляемые в скобках параметры представляют собой переменные, в которые временно записываются значения, используемые в дальнейшем в теле процедуры.
Если значение какого-то параметра не передано, пользователю выдается ошибка Недостаточно фактических параметров. Поэтому количество указанных при вызове процедуры параметров должно совпадать с числом переменных, перечисленных в описании тела процедуры.
Исключением являются встроенные процедуры и функции, где достаточно указать только обязательные параметры. Все стандартные процедуры описаны в Синтакс-Помощнике. Список их параметров строго закреплен в программе и не может дополняться или изменяться.
На рисунке у встроенной функции ПоказатьВопрос три обязательных параметра.
Но типовые процедуры-обработчики событий — такие, как НачалоВыбора, ПриКопировании не имеют обязательных параметров, их наборы программисты могут расширить при необходимости.
Для функций значения параметров могут быть заданы в описании по умолчанию. Передача данных для таких параметров при вызове функции не нужна.
Исправление ошибки
Чтобы разобраться с ошибкой в 1С Недостаточно фактических параметров, потребуются начальные знания в программировании, чтобы разобраться в программном коде. Универсального алгоритма устранения сбоя нет, но принцип у всех общий: сравнение количества параметров.
В окне с текстом ошибки находится информация о месте ее возникновения: модуль, строка кода, имя процедуры. Для устранения перейдите в конфигуратор:
- Отыщите строку, где возникает сбой:
- модуль формы ФормаДокументаТовары документа РеализацияТоваровУслуг;
- строка 616;
- имя процедуры ПодготовитьПараметры, расположение — общей модуль РеализацияТоваровУслугФормыКлиент.
- Обратите внимание на количество параметров, передаваемых процедуре.
- Перейдите к описанию процедуры, для этого выделите имя, вызовите контекстное меню и выполните команду Перейти к определению.
- В программном коде будет найдена требуемая процедура. Если она расположена в другом модуле, откроется его окно. Сопоставьте количество передаваемых параметров с указанными в описании процедуры. Убедитесь, что их меньше.
- Определите данные, которые должны содержать параметры. Имена могут не совпадать, но по ним можно понять, что передается в процедуру:
- Форма — объект типа ТипФорма;
- СтрокаТабличнойЧасти — текущая строка таблицы формы.
Если названия параметров не имеют смыслового значения, попробуйте установить их состав через анализ выполняемых с ними действий, например:
- Параметр1 разыменовывают: Объект.Список, такое обращение подходит для элементов формы, следовательно Параметр1 — форма;
- Параметр2 передают в качестве параметра встроенного метода НайтиПоИдентификатору, тип Число, которое идентифицирует элемент коллекции формы.
Кроме этого определить содержание помогут имена модулей, процедур, анализ действий в пользовательском режиме, приводящих к ошибке.
- Укажите в вызове процедуры недостающие параметры, которые содержат необходимые данные.
В рассмотренном примере в процедуру должны передаваться два параметра: форма и текущая строка табличной части. При вызове процедуры второй параметр не был указан.
В качестве второго параметра была указана переменная ТекущиеДанные, полученная до вызова процедуры и содержащая строку табличной части.
Если перечисленные в описании параметры не участвуют в алгоритме процедуры, попробуйте удалить их для исправления ошибки. Прибегайте к такому приему, когда точно уверены, что недостающий параметр лишний.
Недостаточно параметров в типовой процедуре/функции/методе
Если выполнение команды Перейти к определению не дало результата, значит, используется встроенная процедура/функция/метод (далее — «процедура»). Алгоритмы их выполнения заложены в платформу, и вся обработка данных ведется в фоновом режиме. Поэтому применить способ с поиском тела процедуры и сравнением параметров не получится.
Наименование встроенной процедуры указывается в скобках после фразы «Недостаточно фактических параметров». Для устранения ошибки:
- Найдите описание процедуры в Синтакс-Помощнике, выделив наименование и нажав кнопку Поиск строки в Синтакс-Помощнике. Аналогичная команда есть в контекстном меню.
- В описании процедуры просмотрите раздел Параметры в открывшемся окне Синтакс-Помощника. Найдите обязательные параметры и сравните их с перечисленными в коде.
- Добавьте в процедуру недостающие параметры.
В примере не хватает третьего обязательного параметра с типом РежимДиалогаВопрос — это системное перечисление, которое можно сразу указать в качестве параметра. Если предварительно требуется получить данные и привести их к нужному типу, используют переменные.
Контроль параметров встроенных процедур осуществляется платформой, поэтому при сохранении конфигурации или при проверке кода кнопкой Проверка модуля в служебном окне отобразится ошибка «Недостаточно фактических параметров» и место ее возникновения. При ее игнорировании в рабочем режиме пользователю будет выдано аналогичное сообщение.
Помните, что необдуманное изменение конфигурации может привести к сбою всей программы и повреждению базы данных. Поэтому при любых затруднениях поручайте исправление ошибки программисту 1С.
См. также:
- Слишком много фактических параметров в 1С 8.3
- Поле объекта недоступно для записи в 1С 8.3
- Переменная не определена в 1С 8.3
- Метод объекта не обнаружен в 1С 8.3
- Поле объекта не обнаружено в 1С 8.3
- Нарушение прав доступа 1С 8.3: внешняя обработка
- Неверный формат хранилища данных 1С
- Недостаточно памяти в 1С 8.3
Поставьте вашу оценку этой статье:
Для отправки комментария вам необходимо авторизоваться.