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

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 Ответить
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)