После загрузки из Экселя в табличную часть добавляется не больше 22-х строк

1. user1069796 07.02.19 10:42 Сейчас в теме
Здравствуйте. Подскажите пожалуйста, в чём может быть причина?

 
&НаКлиенте
Процедура ПолеДляВыбораФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	Диалог.Заголовок = "Выберите excel - файл";
	Диалог.ПолноеИмяФайла = "c:\";
	Диалог.Фильтр = "Таблицы (*.xls,*.xlsx)|*.xls;*.xlsx;|Microsoft Excel 97/2000/XP/2003 (*.xls)|*.xls|Microsoft Excel 2007/2010 (*.xlsx)|*.xlsx";
	
	Если Диалог.Выбрать() Тогда
		ПолеДляВыбораФайла = Диалог.ПолноеИмяФайла;
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Функция ЗагрузитьФайл(ПолеДляВыбораФайла) Экспорт // Загружаем из Экселя тренировки и передаём их в Таблицу Значений "ТЗ"
	
	КнигаExcel = ПолучитьCOMОбъект(ПолеДляВыбораФайла);  //Получить книгу из файла EXCEL
	ExcelЛист = КнигаExcel.Sheets(1);	
	
	xlCellTypeLastCell = 11;	
	ExcelПоследняяСтрока = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Row;
	ExcelПоследняяКолонка = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Column;
	
	ТЗ = Новый ТаблицаЗначений;

	ТЗ.Колонки.Добавить("Упражнение");
	ТЗ.Колонки.Добавить("Подход");
	ТЗ.Колонки.Добавить("Повторений");
	ТЗ.Колонки.Добавить("Кг");
	ТЗ.Колонки.Добавить("Комментарий");	
	
	ТЗ.Очистить();
	
	Для НомСтроки = 2 По ExcelПоследняяСтрока  Цикл     // НомСтроки = 2 - номер колонки
		
		НоваяСтр = ТЗ.Добавить();
		
		НоваяСтр.Упражнение = СокрЛп(ExcelЛист.Cells(НомСтроки,2).Value);
		НоваяСтр.Подход = ExcelЛист.Cells(НомСтроки,3).Value;
		НоваяСтр.Повторений = ExcelЛист.Cells(НомСтроки,4).Value;
		НоваяСтр.Кг = ExcelЛист.Cells(НомСтроки,5).Value;
		НоваяСтр.Комментарий = СокрЛп(ExcelЛист.Cells(НомСтроки,6).Value);
		
	КонецЦикла;	
	
	КнигаExcel=КнигаExcel.Application.Quit();
	
	Сообщить("Загрузка завершена!");
	
	Возврат ТЗ;
	
КонецФункции

&НаСервере
Функция ПолучениессылкиДляУпражнения(Наименование) Экспорт  // Обработка поля для получения ссылки, для документа Тренировки
	
	слк = Справочники.Упражнения.НайтиПоНаименованию(Наименование);
	
	Если слк = Справочники.Упражнения.ПустаяСсылка() Тогда
		
		Возврат Неопределено 
		
	Иначе
		
		Возврат слк;
	КонецЕсли;		
		
КонецФункции

&НаКлиенте
Процедура ЗаполнитьТабличнуюЧасть(Команда,  ТЗ) // Кнопка переименована в Загрузить на форме
	
	ТЗ = ЗагрузитьФайл(ПолеДляВыбораФайла);
		
	Для Каждого Строка Из ТЗ Цикл
		
		ТЧ = Объект.Упражнения.Добавить();
		
		ТЧ.Подход = Строка.Подход;
		
		слкУпражнения = ПолучениессылкиДляУпражнения(Строка.Упражнение);
		
		Если слкУпражнения = Неопределено Тогда 
			
			Возврат;
			
		Иначе
			
			ТЧ.Упражнение = слкУпражнения;
			
		КонецЕсли;
		
		ТЧ.КолвоПовторов = Строка.Повторений;
		ТЧ.Кг = Строка.Кг;
		ТЧ.Комментарий = Строка.Комментарий;
		
	КонецЦикла;
	
КонецПроцедуры
Показать
Найденные решения
2. kumi2012 103 07.02.19 10:46 Сейчас в теме
Два варианта:
1. ExcelПоследняяСтрока - проверить какое значение
2. Прерывает на условии:

слкУпражнения = ПолучениессылкиДляУпражнения(Строка.Упражнение);

Если слкУпражнения = Неопределено Тогда

Возврат;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. kumi2012 103 07.02.19 10:46 Сейчас в теме
Два варианта:
1. ExcelПоследняяСтрока - проверить какое значение
2. Прерывает на условии:

слкУпражнения = ПолучениессылкиДляУпражнения(Строка.Упражнение);

Если слкУпражнения = Неопределено Тогда

Возврат;
3. user1069796 07.02.19 10:51 Сейчас в теме
У меня все наименования сходятся.

Это условие не отработается в любом случае... Хотя... Щас проверю...
4. killitch 30 07.02.19 10:51 Сейчас в теме
В 23 строке у вас наименование, которого нет в справочнике, и, как писал предыдущий оратор, возвратом вы прерываете заполнение ТЧ, напишите Продолжить.
5. user1069796 07.02.19 10:53 Сейчас в теме
(4) Да Точно, вот молодо=зелено, допустил промашку
Оставьте свое сообщение

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