Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 июн 2024, 11:10

1С Загрузка данных EXCEL УТ 10.3

Автор Ульви Мамедов, 25 янв 2019, 11:48

0 Пользователей и 1 гость просматривают эту тему.

Ульви Мамедов

Здравствуйте. Я очень мало знаю русский. Извините за этого. Я еще новичок в 1С программирование. Есть токая задания "Загрузить данные из экселя в ТЗ документа". Написал код, есть ошибка но не знаю как исправит с этим. Пример : у меня экселя есть 10 строк но программ выбирает только последний.
Эксель:
Номенклатура Количество
1 - Монитор 10
2 - Экран 23
3 - Клавиатура 23
В документа отображается только последний ("Клавиатура") (ПоступлениеТоваровУслуг.Товары)
Как исправится с этим?
Спасибо всем за ранее.
Вот полный код:
[code]Перем СЗ, ТЗ;
Процедура СозданиеТаблицыЗначений()
ТЗ = Новый ТаблицаЗначений;
//ТЗ.Колонки.Добавить("ПолноеНаименование",,,);
ТЗ.Колонки.Добавить("Номенклатура",,,);
ТЗ.Колонки.Добавить("Количество",,,);
ТЗ.Колонки.Добавить("Цена",,,);
ТЗ.Колонки.Добавить("Сумма",,,);

//ТЗ.Колонки.Добавить("ПолноеНазвание" ,Новый ОписаниеТипов("СписокЗначений"));

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

/////////////////////////////////////////////////////////////////////////////////////////////

Функция ПоискПодстроки(Подстрока, ПодстрокаРасшифровка)

ПозицияСимвола = Найти(Подстрока, ",");
ПозицияСимволаРасшифровка = Найти(ПодстрокаРасшифровка, ",");

Если ПозицияСимвола <> 0 Тогда
ПерваяНоменклатура = Лев(Подстрока, ПозицияСимвола - 1);
ПерваяНоменклатураРасшифровка = Лев(ПодстрокаРасшифровка, ПозицияСимволаРасшифровка - 1);

СЗ.Добавить(ПерваяНоменклатура, ПерваяНоменклатураРасшифровка);
Остаток = СтрДлина(Подстрока) - (СтрДлина(ПерваяНоменклатура) + 1);
ОстатокРасшифровка = СтрДлина(ПодстрокаРасшифровка) - (СтрДлина(ПерваяНоменклатураРасшифровка) + 1);

Возврат ПоискПодстроки(Прав(Подстрока, Остаток), Прав(ПодстрокаРасшифровка,ОстатокРасшифровка)); 

Иначе
СЗ.Добавить(СокрЛП(Подстрока), СокрЛП(ПодстрокаРасшифровка));
Возврат ПозицияСимвола;
КонецЕсли;
КонецФункции // ПоискПодстроки()

/////////////////////////////////////////////////////////////////////////////////////////////

Процедура ПереборСтрокВЭксель()

Путь = "C:\Users\Ulvi Mammadov\Desktop\55.xlsx";
Эксель = Новый COMОбъект("Excel.Application");
Эксель.Workbooks.Open(Путь);
Эксель.Sheets(1).Select();
СЗ = Новый СписокЗначений;

Для Стр = 1 ПО 10 Цикл
НоваяСтрока = ТЗ.Добавить();
//НоваяСтрока.ПолноеНаименование = СокрЛП(Эксель.Cells(Стр,1).Value);
НоваяСтрока.Номенклатура = СокрЛП(Эксель.Cells(Стр,1).Value);
НоваяСтрока.Количество = СокрЛП(Эксель.Cells(Стр,2).Value);
НоваяСтрока.Цена = СокрЛП(Эксель.Cells(Стр,3).Value);
НоваяСтрока.Сумма = СокрЛП(Эксель.Cells(Стр,4).Value);
//ПозицияСимвола = ПоискПодстроки(СокрЛП(Эксель.Cells(Стр,1).Value),СокрЛП(Эксель.Cells(Стр,1).Value));
//НоваяСтрока.ПолноеНазвание = СЗ;
КонецЦикла;

Эксель.ActiveWorkbook.Close();
Эксель.Application.Quit();
КонецПроцедуры

/////////////////////////////////////////////////////////////////////////////////////////////

Процедура ПереборСтрокТЗ()

Для Каждого Ст из ТЗ Цикл
    Стр = ЭлементыФормы.Товары.ТекущиеДанные;
Стр.Номенклатура = Ст.Номенклатура;
Стр.Количество = Ст.Количество;
Стр.Цена = Ст.Цена;
Стр.Сумма = Ст.Сумма;
    КонецЦикла;

/////////////////////////////////////////////////////////////////////////////////////////////

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

Процедура ОсновныеДействияФормыЗагрузитьДанные(Кнопка)
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Фильтр = "Excel файл (*.xls; *.xlsx)|*.xls;*.xlsx|";
Если Диалог.Выбрать() Тогда
Предупреждение(Диалог.ПолноеИмяФайла,10,"Файл выбран.");
Иначе
Предупреждение("Файл не выбран.");
Возврат;
КонецЕсли;                           
   
СозданиеТаблицыЗначений();

        ПереборСтрокВЭксель();

ПереборСтрокТЗ();

КонецПроцедуры
[/code]

temrmal

Для Каждого Ст из ТЗ Цикл
    Стр = ЭлементыФормы.Товары.ТекущиеДанные;
    Стр.Номенклатура = Ст.Номенклатура;
    Стр.Количество = Ст.Количество;
    Стр.Цена = Ст.Цена;
    Стр.Сумма = Ст.Сумма;
    КонецЦикла;

ерунда полная

Добавлено: 25 янв 2019, 22:15


Стр = Объект.Товары.Добавить()
Стр.Номенклатура = ст.Номенклатура
и тд

Теги:  

Похожие темы (5)

Рейтинг@Mail.ru

Поиск