необходимо зарегистрироваться для просмотра ссылки
Процедура Загрузить(ПутьКФайлу, КоличСтрок, ЭлементыФормы) Экспорт
Для каждого строка Из Соответствия Цикл
строка.ТипРеквизитаТЧДока = ТипыРеквизитов.Получить(строка.РеквизитТЧДока);
КонецЦикла;
СтрокаДляВыполнения = "ВспомогательныйРеквизит = Документы." + Документ.<a class="glossary-term" href="http://forum-1c.ru/index.php?topic=26437.0" title="Метаданными в 1С:Предприятии называют данные, которые описывают то, как должны быть представлены данные. То есть, это структура объектов их представления (формы), реквизиты, различные модули, ...">Метаданные</a>().Имя + ".ПолучитьФормуНовогоДокумента();";
Выполнить(СтрокаДляВыполнения);
ВспомогательныйРеквизит.Открыть();
ДокЭксель = ПолучитьCOMОбъект(ПутьКФайлу);
счСтрок = 2;
Пока счСтрок <= КоличСтрок Цикл
Выполнить("ЗагружаемаяТЧ = ВспомогательныйРеквизит.ДокументОбъект." + ЭлементыФормы.ТабличныеЧастиДока.ТекущиеДанные.НаименованиеТЧ + ";");
СтрокаТЧ = ЗагружаемаяТЧ.Добавить();
счКолонок = 1;
Для каждого строка Из Соответствия Цикл
Если строка.РеквизитТЧДока <> "" Тогда
Если строка.ТипРеквизитаТЧДока <> "" Тогда
//Выполнить("СтрокаТЧ." + строка.РеквизитТЧДока + " = " + строка.ТипРеквизитаТЧДока + ".НайтиПоКоду(""" + ДокЭксель.Sheets(1).Cells(счСтрок, счКолонок).Value + """);");
КодМой = СокрЛП(ДокЭксель.Sheets(1).Cells(счСтрок, счКолонок).Value);
КодКарты = СокрЛП(ДокЭксель.Sheets(1).Cells(счСтрок,5).Value);
//КодМой = "" + Лев(КодМой,2) + Прав(КодМой,3);
//Сообщить("длина " + СтрДлина(КодМой));
Если СтрДлина(КодМой) = 1 Тогда
КодМой = "0000"+КодМой;
ИначеЕсли СтрДлина(КодМой) = 2 Тогда
КодМой = "000"+КодМой;
ИначеЕсли СтрДлина(КодМой) = 3 Тогда
КодМой = "00"+КодМой;
ИначеЕсли СтрДлина(КодМой) = 4 Тогда
КодМой = "0"+КодМой;
КонецЕсли;
//Кодмой = СтрЗаменить(Кодмой," ", "");
//Кодмой = Строка(Кодмой);
//сообщить("код " + кодмой);
СтрокаТЧ.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(КодМой);
СтрокаТЧ.ЕдиницаИзмерения = СтрокаТЧ.Номенклатура.БазоваяЕдиницаИзмерения;
СтрокаТЧ.ДисконтнаяКарта = Справочники.ИнформационныеКарты.НайтиПоРеквизиту("КодКарты",КодКарты);// это то что мне удалось сделать
//ПриИзмененииНоменклатурыТабЧасти(СтрокаТЧ, ЭтотОбъект);
//ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТЧ, ДокументОбъект, "грн");
СтрокаТЧ.ЕдиницаИзмерения = СтрокаТЧ.Номенклатура.ЕдиницаХраненияОстатков;
СтрокаТЧ.Коэффициент = СтрокаТЧ.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент;
СтрокаТЧ.СтавкаНДС = СтрокаТЧ.Номенклатура.СтавкаНДС; // ЮМ 478
Режим = РежимДиалогаВопрос.ДаНет;
//Выполнить("Если " + строка.ТипРеквизитаТЧДока + ".НайтиПоКоду(""" + КодМой + """) = " + строка.ТипРеквизитаТЧДока + ".ПустаяСсылка() тогда "
//+ "Сообщить(""Элемент справочника " + Прав(строка.ТипРеквизитаТЧДока, СтрДлина(строка.ТипРеквизитаТЧДока) - Найти(строка.ТипРеквизитаТЧДока, ".")) + " с наименованием " + ДокЭксель.Sheets(1).Cells(счСтрок, счКолонок).Value + " не найден! Добавить элемент??"""");" + "Если Ответ = КодВозвратаДиалога.Да Тогда ФормаЭлемента = " + строка.ТипРеквизитаТЧДока + ".СоздатьЭлемент().ПолучитьФорму(); ФормаЭлемента.Элементыформы.Наименование.Значение = """ + ДокЭксель.Sheets(1).Cells(счСтрок, счКолонок).Value + """; ФормаЭлемента.ОткрытьМодально(); СтрокаТЧ." + строка.РеквизитТЧДока + " = " + строка.ТипРеквизитаТЧДока + ".НайтиПоКоду(""" + ДокЭксель.Sheets(1).Cells(счСтрок, счКолонок).Value + """); КонецЕсли; КонецЕсли;");
////Если Справочники.Номенклатура.НайтиПоКоду(ДокЭксель.Sheets(1).Cells(счСтрок, счКолонок).Value) = Справочники.Номенклатура.ПустаяСсылка() Тогда
//// Сообщить("Элемент справочника не найден " + Прав(строка.ТипРеквизитаТЧДока, СтрДлина(строка.ТипРеквизитаТЧДока) - Найти(строка.ТипРеквизитаТЧДока);
Иначе
Выполнить("СтрокаТЧ." + строка.РеквизитТЧДока + " = ДокЭксель.Sheets(1).Cells(счСтрок,счКолонок).Value;");
КонецЕсли;
КонецЕсли;
счКолонок = счКолонок + 1;
КонецЦикла;
счСтрок = счСтрок + 1;
КонецЦикла;
ДокЭксель.Application.Quit();
КонецПроцедуры