Ошибка с параметрами процедуры

1. TopZlodey 13 15.02.18 15:00 Сейчас в теме
Здравствуйте, извините за глупый вопрос но не смог найти адекватного ответа в интернете. В общем ситуация в следующем (опуская лишние детали): Работаю над обработкой которую сделали до меня, и понадобилось мне добавить в процедуру параметр Лист (для записи данных в ячейку Excel), но сразу же начало выдавать ошибку "Недостаточно фактических параметров" и тут возник вопрос: от чего зависит количество параметров процедуры и где они прописываются (естественно кроме самого значения "Процедура (параметры)". Если есть ссылка для чайников то буду очень благодарен.
P.S. Платформа 8.2, обработка для выгрузки данных и ЗуП 2.5 в Excel (вдруг важно).
P.S.S. Заранее спасибо за ответы,сразу скажу программист из меня никакой.
По теме из базы знаний
Найденные решения
14. lefthander 15.02.18 15:33 Сейчас в теме
(13){Форма.Форма.Форма(127,6)}: это то место где вы вызываете процедуру и у этого вызова всего 2 параметра >ПроверкаФизЛица(ЗначениеФизЛица, ЗначениеПаспортныеДанные); а должно быть три, третий будет Лист >ПроверкаФизЛица(ЗначениеФизЛица, ЗначениеПаспортныеДанные, Лист);
TopZlodey; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. lefthander 15.02.18 15:19 Сейчас в теме
(1) Примерно так: Это описание процедуры
Процедура Моя(Пар1, Пар2)
КонецПроцедуры


Процедура ПроцедураВПрограмме()
Пар1= 10;
Пар2=2;
//Что то делаем
//Вызываем описанную выше процедуру
Моя(Пар1, Пар2);
КонецПроцедуры


Количество параметров(то что в скобках) Должно быть одинаковым в описании и вызове.
TopZlodey; +1 Ответить
2. t.v.s. 111 15.02.18 15:04 Сейчас в теме
Вы дописали параметр в определение процедуры. А теперь допишите его во все места где эта процедура вызывается.
Хорошим тоном в таких случаях считается добавление параметра со значением по-умолчанию, например
Процедура МояПроцедура(ОбязательныйПараметр, НеобязательныйПараметр = "Лист1")

Тогда вызовы, где второй параметр не указан будут проходить со значением которое вы задали
TopZlodey; +1 Ответить
3. TopZlodey 13 15.02.18 15:09 Сейчас в теме
(2)Спасибо, но не помогло, наверное я не правильно описал проблему...
Лист мне нужен для "Лист.Cells( 10 , ).Value = ПаспортныеДанные; "
А полная ошибка звучит:
{Форма.Форма.Форма(127,6)}: Недостаточно фактических параметров (ПроверкаФизЛица)
<<?>>ПроверкаФизЛица(ЗначениеФизЛица, ЗначениеПаспортныеДанные); //процедура для проверки соответствий и ошибок (Проверка: Толстый клиент (обычное приложение))
4. TopZlodey 13 15.02.18 15:10 Сейчас в теме
(2)т.е похоже что при добавлении параметра он вышибает другой параметр...
5. t.v.s. 111 15.02.18 15:15 Сейчас в теме
(4) Покажите определение процедуры
6. TopZlodey 13 15.02.18 15:17 Сейчас в теме
(5)
Процедура ПроверкаФизЛица(ФизЛицоИзЕкселя, ПаспортныеДанные, Лист)
	
			Запрос = Новый Запрос;
			Запрос.Текст = "ВЫБРАТЬ
			               |	ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо,
			               |	ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия КАК Серия,
			               |	ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер КАК Номер
			               |ИЗ
			               |	РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних(&ТекДата, ФизЛицо.Наименование = &ФизЛицо) КАК ПаспортныеДанныеФизЛицСрезПоследних";
						   	
			Запрос.УстановитьПараметр("ФизЛицо", СокрЛП(ФизЛицоИзЕкселя));
			Запрос.УстановитьПараметр("ТекДата", КонецДня(ТекущаяДата()));
			
			Результат = Запрос.Выполнить();
			ВыборкаДетальныеЗаписи = Результат.Выбрать();

			Если ВыборкаДетальныеЗаписи.Следующий() Тогда
				Сообщить("Найдено соответствие для физ. лица: " + ВыборкаДетальныеЗаписи.ФизЛицо);
				СерияНомер = Строка(ВыборкаДетальныеЗаписи.Серия) + " " + Строка(ВыборкаДетальныеЗаписи.Номер);
				
				Серия = Лев(ПаспортныеДанные, 6);
				Номер = Прав(ПаспортныеДанные, 6);
				ПаспортныеДанные = Строка(Серия) + Строка(Номер);
				 
				Если СерияНомер = ПаспортныеДанные Тогда
					Сообщить("Серия и номер паспорта в базе и в файле совпадают. " + Символы.ПС);
				Иначе
					ДнейОтпуска = 0;
					Сообщить("Серия и номер паспорта в базе и в файле не одинаковые: " + ПаспортныеДанные + " <> " + СерияНомер + Символы.ПС, СтатусСообщения.Внимание);
					ПаспортныеДанные = СерияНомер;
					Лист.Cells( 10 , ).Value = ПаспортныеДанные;
					Сообщить ("|Обратите внимание! Паспортные данные измененны на " + ПаспортныеДанные );
					
					//Лист.Cells(СтрокаФизЛиц, 10).Value = Число(Формат(Число(ТЗ.Найти(ЗначениеФизЛица).СотоваяСвязь), "ЧДЦ=1"));
				КонецЕсли;
			Иначе
				Сообщить("Не найдено соответствие для физ. лица: " + ФизЛицоИзЕкселя + Символы.ПС, СтатусСообщения.Внимание );
			КонецЕсли;
			
КонецПроцедуры
Показать
8. t.v.s. 111 15.02.18 15:20 Сейчас в теме
(6) У вас процедура хочет три параметра, а вызываете вы ее с двумя
TopZlodey; +1 Ответить
10. TopZlodey 13 15.02.18 15:23 Сейчас в теме
(8)
(7)
Это я понял, но как мне это исправить? Или может я не правильно делаю указывая "Лист" как процедуру? Я ее туда добавил только для того чтобы записать значения в Excel без открытия книги.
9. lefthander 15.02.18 15:22 Сейчас в теме
(6)
Лист.Cells( 10 , ).Value = ПаспортныеДанные;

//Лист.Cells(СтрокаФизЛиц, 10).Value


Сравните и найдите отличия
11. TopZlodey 13 15.02.18 15:25 Сейчас в теме
(9) Отличия в скобках, но там ведь должны указываться номер столбца и строки? просто у меня все это идет в цикле.
12. lefthander 15.02.18 15:28 Сейчас в теме
Напишите ваше сообщение
(11)Отличие в том что ячейка имеет два значения колонка и строка, у Вас только одно значение.
(3)
{Форма.Форма.Форма(127,6)}: Недостаточно фактических параметров (ПроверкаФизЛица)
>ПроверкаФизЛица(ЗначениеФизЛица, ЗначениеПаспортныеДанные); //процедура для проверки соответствий и ошибок (Проверка:


Вот здесь ПроверкаФизЛица(ЗначениеФизЛица, ЗначениеПаспортныеДанные, Лист) вызов процедуры в форме Форма(127,6) в строке 127
13. TopZlodey 13 15.02.18 15:30 Сейчас в теме
14. lefthander 15.02.18 15:33 Сейчас в теме
(13){Форма.Форма.Форма(127,6)}: это то место где вы вызываете процедуру и у этого вызова всего 2 параметра >ПроверкаФизЛица(ЗначениеФизЛица, ЗначениеПаспортныеДанные); а должно быть три, третий будет Лист >ПроверкаФизЛица(ЗначениеФизЛица, ЗначениеПаспортныеДанные, Лист);
TopZlodey; +1 Ответить
15. TopZlodey 13 15.02.18 15:38 Сейчас в теме
(14) Спасибо, еще одна ошибка выскочила но уже разобрался, очень помогли)
16. TopZlodey 13 15.02.18 15:43 Сейчас в теме
(14) Теперь при начале работы обработки начала вылетать программа...
17. lefthander 15.02.18 15:45 Сейчас в теме
18. TopZlodey 13 15.02.18 15:47 Сейчас в теме
(17) Просто прекращение работы программы 1Cv8
19. lefthander 15.02.18 16:00 Сейчас в теме
(18)В отладчике проверяйте все что связано с Лист. По идее это комобъект.
TopZlodey; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот