Ошибка недостаточно фактических параметров 1с

Содержание:

1.       Фактические параметры методов и функций

2.       Исправление ошибки в 1С 

1.      Фактические параметры методов и функций

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

Чтобы исправить ошибку «Недостаточно фактических параметров» 1С, нужно прежде всего понять для себя, что является фактическим параметром методов. Это те реквизиты, которые передаются функции или методу в 1С 8.3. Выглядит это примерно так:

ЗаполнитьДокумент(Ссылка, ДанныеЗаполнения, Источник) {

}  

2.      Исправление ошибки в 1С

Ссылка, ДанныеЗаполнения, Источник – это и есть фактические параметры. Соответственно, когда вызываем эту функцию в 1С 8.3, мы должны передавать эти параметры, иначе получим ошибку.

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

Выбираем вызов функции 1С, которая возвращает ошибку, и нажимаем на F12. Так мы найдем ее объявление. Прямо перед функцией сможете увидеть комментарий разработчиков, где будут перечислены необходимые параметры и их тип. Если все равно не очень понятно, каким именно параметром нужно заполнить, то есть вариант использовать отладку. Просто ставим точку остановки, и можно будет попасть сюда типовым образом. Например, если стоит вопрос о заполнении документа, то достаточно будет использовать «Заполнить на основании» в Обработчике событий формы.

Обработчик событий формы

Обработчик событий формы

Как только 1С покажет, что вы находитесь в отладке, то выделите реквизит, параметр которого вам необходим и нажмите Shift+F9. Вы увидите, как именно выглядит реквизит, которого вам не хватает. Остается только заполнить его в вызове функций в вашем коде.

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

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

Специалист компании «Кодерлайн»

Роман Барабанов

Ошибка Недостаточно фактических параметров в 1С 8.3 показывает, что в исполняемую функцию передано меньше параметров, чем необходимо для выполнения операции. Для анализа ошибки Бухэксперт8 подготовил специальный пример.

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

Причины ошибки

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

Бухэксперт8 рекомендует начать работу над ошибкой по схеме, предложенной нашими экспертами в статье Слишком много фактических параметров.

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

Ошибка программного кода

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

При нажатии на кнопку Подбор появляется ошибка:

Информация, отображаемая в карточке ошибки, указывает, что ошибка регистрируется в строке 143 общего модуля ПоступлениеТоваровУслугФормыКлиент.

Для исправления ошибки:

  1. Откройте 1С в режиме Конфигуратор и перейдите в указанный общий модуль.
  2. На строке 143 найдите функцию ПолучитьПараметрыПодбора.
  3. Определите число фактических параметров функции, указанных в скобках.
  4. Встаньте на функцию ПолучитьПараметрыПодбора мышкой и перейдите в описание функции, нажав кнопку F12.
    Программа автоматически переместит вас в место описания вызываемой функции.
  5. Проанализируйте число параметров функции исполнения, указанных в скобках.

    При ошибке 1С Недостаточно фактических параметров число фактических параметров, определяемое в п. 3, меньше числа описываемых параметров, определяемых в п. 5:
    — фактические параметры — 1;
    — описанные параметры — 2.

  6. Приведите в соответствие фактические и описанные параметры функции. Для этого измените фактические параметры в процедуре ПодборНоменклатуры.

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

См. также:

  • Слишком много фактических параметров
  • У пользователя недостаточно прав на исполнение операции
  • Конфигурация узла распределенной ИБ не соответствует ожидаемой
  • 1C Отчетность: не удалось расшифровать файл
  • Этот хост неизвестен 1С: как исправить
  • Ошибка при выполнении операции с информационной базой 1С 8.3

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

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

Рассмотрим примеры на доработанной конфигурации 1С Бухгалтерия 8.3.

Содержание

  • 1 Параметры процедур и функций
  • 2 Исправление ошибки
    • 2.1 Недостаточно параметров в типовой процедуре/функции/методе
    • 2.2 Вам будет интересно

Параметры процедур и функций

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

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

image002

Если ничего не указано, значит, дополнительных параметров для выполнения не требуется.

image004

В программном коде 1С программисты используют как стандартные процедуры/функции/методы (далее — «процедура»), так и создают свои.

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

image006

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

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

image008

На рисунке у встроенной функции ПоказатьВопрос три обязательных параметра.

Но типовые процедуры-обработчики событий — такие, как НачалоВыбора, ПриКопировании не имеют обязательных параметров, их наборы программисты могут расширить при необходимости.

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

image010

Исправление ошибки

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

image012

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

  1. Отыщите строку, где возникает сбой:
    image014

    • модуль формы ФормаДокументаТовары документа РеализацияТоваровУслуг;
    • строка 616;
    • имя процедуры ПодготовитьПараметры, расположение — общей модуль РеализацияТоваровУслугФормыКлиент.
  2. Обратите внимание на количество параметров, передаваемых процедуре.image016
  3. Перейдите к описанию процедуры, для этого выделите имя, вызовите контекстное меню и выполните команду Перейти к определению.image018
  4. В программном коде будет найдена требуемая процедура. Если она расположена в другом модуле, откроется его окно. Сопоставьте количество передаваемых параметров с указанными в описании процедуры. Убедитесь, что их меньше.image020
  5. Определите данные, которые должны содержать параметры. Имена могут не совпадать, но по ним можно понять, что передается в процедуру:
    • Форма — объект типа ТипФорма;
    • СтрокаТабличнойЧасти — текущая строка таблицы формы.
      Если названия параметров не имеют смыслового значения, попробуйте установить их состав через анализ выполняемых с ними действий, например:
      image022
    • Параметр1 разыменовывают: Объект.Список, такое обращение подходит для элементов формы, следовательно Параметр1 — форма;
    • Параметр2 передают в качестве параметра встроенного метода НайтиПоИдентификатору, тип Число, которое идентифицирует элемент коллекции формы.
      Кроме этого определить содержание помогут имена модулей, процедур, анализ действий в пользовательском режиме, приводящих к ошибке.
  6. Укажите в вызове процедуры недостающие параметры, которые содержат необходимые данные.

В рассмотренном примере в процедуру должны передаваться два параметра: форма и текущая строка табличной части. При вызове процедуры второй параметр не был указан.

image024

В качестве второго параметра была указана переменная ТекущиеДанные, полученная до вызова процедуры и содержащая строку табличной части.

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

Недостаточно параметров в типовой процедуре/функции/методе

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

image026

Наименование встроенной процедуры указывается в скобках после фразы «Недостаточно фактических параметров». Для устранения ошибки:

  1. Найдите описание процедуры в Синтакс-Помощнике, выделив наименование и нажав кнопку Поиск строки в Синтакс-Помощнике. Аналогичная команда есть в контекстном меню.
    image028
  2. В описании процедуры просмотрите раздел Параметры в открывшемся окне Синтакс-Помощника. Найдите обязательные параметры и сравните их с перечисленными в коде.image030
  3. Добавьте в процедуру недостающие параметры.image032
    В примере не хватает третьего обязательного параметра с типом РежимДиалогаВопрос — это системное перечисление, которое можно сразу указать в качестве параметра. Если предварительно требуется получить данные и привести их к нужному типу, используют переменные.
    image034

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

image036

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

См. также:

  • Слишком много фактических параметров в 1С 8.3
  • Поле объекта недоступно для записи в 1С 8.3
  • Переменная не определена в 1С 8.3
  • Метод объекта не обнаружен в 1С 8.3
  • Поле объекта не обнаружено в 1С 8.3
  • Нарушение прав доступа 1С 8.3: внешняя обработка
  • Неверный формат хранилища данных 1С
  • Недостаточно памяти в 1С 8.3

Поставьте вашу оценку этой статье:

Загрузка…

Дата публикации: Фев 11, 2021

Поставьте вашу оценку этой статье:

Загрузка…

Недостаточно фактических параметров в 1С 8.3

Ошибка Недостаточно фактических параметров в 1С 8.3 показывает, что в исполняемую функцию передано меньше параметров, чем необходимо для выполнения операции. Для анализа ошибки Бухэксперт8 подготовил специальный пример.

Причины ошибки

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

Ошибка программного кода

Информация, отображаемая в карточке ошибки, указывает, что ошибка регистрируется в строке 143 общего модуля ПоступлениеТоваровУслугФормыКлиент.

Для исправления ошибки:

  1. Откройте 1С в режиме Конфигуратор и перейдите в указанный общий модуль.
  2. На строке 143 найдите функцию ПолучитьПараметрыПодбора.
  3. Определите число фактических параметров функции, указанных в скобках.
  4. Встаньте на функцию ПолучитьПараметрыПодбора мышкой и перейдите в описание функции, нажав кнопку F12.
    Программа автоматически переместит вас в место описания вызываемой функции.
  5. Проанализируйте число параметров функции исполнения, указанных в скобках.
  6. Приведите в соответствие фактические и описанные параметры функции. Для этого измените фактические параметры в процедуре ПодборНоменклатуры.

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

Обслуживание

Заказать консультацию

По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.

0

Черника

14.06.22

14:28

Окажите содействие юной программистке :)

Пытаюсь создать обработку (по расписанию) для выгрузки в xml информации из справочника «Дополнительные отчеты и обработки»

Выдает ошибку Не удалось выполнить команду по причине: недостаточно фактических параметров

Не удалось выполнить команду по причине:

Недостаточно фактических параметров.

{Справочник.ДополнительныеОтчетыИОбработки.Форма.ФормаЭлемента.Форма(1002)}:        ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(

{ОбщийМодуль.ДлительныеОперацииКлиент.Модуль(63)}:            ВыполнитьОбработкуОповещения(ОповещениеОЗавершении, Результат);

{Справочник.ДополнительныеОтчетыИОбработки.Форма.ФормаЭлемента.Форма(988)}:        ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);

{Справочник.ДополнительныеОтчетыИОбработки.Форма.ФормаЭлемента.Форма(474)}:        ВыполнитьОбработкуОповещения(Обработчик, «ПродолжитьБезЗаписи»);

Сам код

Функция СведенияОВнешнейОбработке() Экспорт

    
  ПараметрыРегистрации = Новый Структура;

  ПараметрыРегистрации.Вставить(«Вид», «ДополнительнаяОбработка»);

  ПараметрыРегистрации.Вставить(«Наименование», «Выгрузка информации по обработкам»); //Наименование обработки, которым будет заполнено наименование элемента справочника

  ПараметрыРегистрации.Вставить(«Версия», «1.0»);

  ПараметрыРегистрации.Вставить(«БезопасныйРежим», Ложь);

  ПараметрыРегистрации.Вставить(«Информация», «Обработка выгружает информацию по всем подключенным обработкам»); //Краткая информация по обработке, описание обработки

  ПараметрыРегистрации.Вставить(«ВерсияБСП», «1.2.1.4»);

  ТаблицаКоманд = ПолучитьТаблицуКоманд();

  ДобавитьКоманду(ТаблицаКоманд,

          «Выгрузка информации по обработкам», //представление команды в пользовательском интерфейсе

          «ВыгрузкаИнформацииПоОбработкам», //идентификатор команды; любая строка, уникальная в пределах данной обработки

          «ВызовСерверногоМетода»);

  ПараметрыРегистрации.Вставить(«Команды», ТаблицаКоманд);

  Возврат ПараметрыРегистрации;

  
КонецФункции

Функция ПолучитьТаблицуКоманд()

  Команды = Новый ТаблицаЗначений;

  Команды.Колонки.Добавить(«Представление», Новый ОписаниеТипов(«Строка»));

  Команды.Колонки.Добавить(«Идентификатор», Новый ОписаниеТипов(«Строка»));

  Команды.Колонки.Добавить(«Использование», Новый ОписаниеТипов(«Строка»));

  Команды.Колонки.Добавить(«ПоказыватьОповещение», Новый ОписаниеТипов(«Булево»));

  Команды.Колонки.Добавить(«Модификатор», Новый ОписаниеТипов(«Строка»));

  Возврат Команды;

КонецФункции  

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = «»)

  НоваяКоманда = ТаблицаКоманд.Добавить();

  НоваяКоманда.Представление = Представление;

  НоваяКоманда.Идентификатор = Идентификатор;

  НоваяКоманда.Использование = Использование;

  НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;

  НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды, АдресФайлаВоВременномХранилище) Экспорт

              // Реализация логики команды

              Если ИдентификаторКоманды = «ВыгрузкаИнформацииПоОбработкам» Тогда

                  
                Запись = Новый ЗаписьXML;

                Запись.ОткрытьФайл(«\\ivn-srv-25\d$\Buh_Base_8»);

                Запись.ЗаписатьОбъявлениеXML();

                // формируем корневой элемент

                Запись.ЗаписатьНачалоЭлемента(«Обработки»);

                Выборка = Справочники.ДополнительныеОтчетыИОбработки.Выбрать();

                Пока Выборка.Следующий() Цикл

                    // для каждого клиента формируем свой элемент

                    Запись.ЗаписатьНачалоЭлемента(«Обработка»);

                    // запишем код клиента в атрибут тега

                    Запись.ЗаписатьАтрибут(«ИмяОбъекта», Строка(Выборка.ИмяОбъекта));

                    // Наименование клиента запишем в текст элемента

                    Запись.ЗаписатьТекст(Выборка.ИмяФайла);

                    Запись.ЗаписатьТекст(Выборка.Версия);

                    // закрываем элемент клиента

                    Запись.ЗаписатьКонецЭлемента();    

                КонецЦикла;

                // закрываем корневой элемент xml-документа

                Запись.ЗаписатьКонецЭлемента();    

                // закрыть файл

         КонецЕсли;

  
КонецПроцедуры

1

Жан Пердежон

14.06.22

15:01

Оказываю содействие юной программистке советом: нужно обязательно прикрепить в профиль фотку

2

Жан Пердежон

14.06.22

15:08

а вообще сейчас в БСП в ВыполнитьКоманду() 2 параметра ожидается

3

Ryzeman

14.06.22

15:08

(0)

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды, АдресФайлаВоВременномХранилище) Экспорт

меняй на

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды = Неопределено) Экспорт

Непонятно откуда скопировала, но у тебя ни параметры не передаются ни третьего параметра нет в принципе.

4

Черника

14.06.22

16:12

При попытках забыла удалить параметр, исправила. Ошибка осталась, при нажатии «ок» файл создается.

5

rudnitskij

14.06.22

21:44

Как правило, если пишет ошибку «Недостаточно фактических параметров» — к решению проблемы приводит проверка количества параметров)

Понравилась статья? Поделить с друзьями:
  • Ошибка невозвратных затрат книга
  • Ошибка невозможно назначить букву диска руфус
  • Ошибка невнимательного 9 букв сканворд
  • Ошибка неизвестная ошибка закрыть
  • Ошибка невозможно назначить букву диска rufus