Форум: "Прочее";
Текущий архив: 2009.07.19;
Скачать: [xml.tar.bz2];
ВнизПомогите улучшить код на 1c. Быстродействие Найти похожие ветки
← →
12 © (2009-05-18 09:13) [0]Надо мне из excel загрузить в справочники инфу
1с путем не знаю, но написал следующее (че хаха, пол дня писал.. )
Вот этот код на этом файле работает 4 часа
т.е. 4 часа магазин работать не будет. В военное время - за это расстреляли бы :)
//*******************************************
Процедура ДобавитьНоменклатуру(ВхГруппа, ВхНаименование, ВхАртикул)
перем Код;
СпНомен = СоздатьОбъект("Справочник.Номенклатура");
СпНомен.ИспользоватьРодителя(ВхГруппа);
СпНомен.Новый();
СпНомен.Наименование = ВхНаименование;
СпНомен.Артикул = ВхАртикул;
СпНомен.ПолнНаименование = ВхНаименование;
Код = СпНомен.Код;
СпНомен.Записать();
СпНомен.НайтиПоКоду(Код,0);
СпЕдин = СоздатьОбъект("Справочник.Единицы");
СпЕдин.ИспользоватьВладельца(СпНомен);
СпЕдин.Новый();
СпОКЕИ = СоздатьОбъект("Справочник.ОКЕИ");
СпОКЕИ.найтипонаименованию("шт.");
СпОКЕИ = СпОКЕИ.ТекущийЭлемент();
СпЕдин.ОКЕИ= СпОКЕИ;
СпЕдин.ШтрихКод = ВхАртикул;
СпЕдин.Записать();
СпНомен.БазоваяЕдиница = спЕдин.ТекущийЭлемент();
СпНомен.Записать();
КонецПроцедуры
//================================================================================ =============
Процедура Сформировать()
СпНоменГр = СоздатьОбъект("Справочник.Номенклатура");
СпНоменГр.НоваяГруппа();
СпНоменГр.Наименование = "Май2009";
СпНоменГр.Записать();
Excel = СоздатьОбъект("Excel.Application");
Excel.Workbooks.Open(Сокрлп("D:\1c\1.xls"));
Книга = Excel.ActiveWorkbook;
Строк = Excel.Cells.CurrentRegion.Rows.Count;
//Строк = 300;
СчЦикл = 0;
ГруппаНов = "";
ГруппаСтар = "";
Сообщить(ТекущееВремя());
Для СчЦикл = 2 По Строк-1 Цикл
ГруппаНов = Excel.Cells(СчЦикл, 2).Value;
Если ГруппаНов<>ГруппаСтар Тогда
ГруппаСтар = ГруппаНов;
РабНоменГр = СоздатьОбъект("Справочник.Номенклатура");
РабНоменГр.ИспользоватьРодителя(СпНоменГр);
РабНоменГр.НоваяГруппа();
РабНоменГр.Наименование = ГруппаНов;
РабНоменГр.Записать();
КонецЕсли;
ДобавитьНоменклатуру(РабНоменГр, Excel.Cells(СчЦикл, 8).Value, Excel.Cells(СчЦикл, 1).Value);
//Состояние(СчЦикл);
КонецЦикла;
Сообщить(ТекущееВремя());
Excel.Visible = 1;
КонецПроцедуры
← →
tesseract © (2009-05-18 10:45) [1]Excel конечно протормаживает. Загружай из csv или подключайся по ODBC к книге.
← →
12 © (2009-05-18 11:00) [2]знать бы как это делается..
Может, в текстовый файл тогда записать и оттуда считывать?
← →
tesseract © (2009-05-18 11:29) [3]
> в текстовый файл тогда записать и оттуда считывать?
Csv и есть текстовый файл :-) Разделённый точкой с запятыми. А по ODBC ты просто плоскую выборку получишь. 1c OLE держит на ура-ура! Восьмёрка и Com научилась нормально держать.
← →
test © (2009-05-18 17:31) [4]tesseract © (18.05.09 11:29) [3]
Если она держит OLE то чтобы не создать экземпляр Excel и напрямую через Васик и т.д. не грузить?
← →
test © (2009-05-18 17:33) [5]tesseract © (18.05.09 11:29) [3]
ЗЫ Com то зачем удаленный Excel юзать?
← →
tesseract © (2009-05-18 17:46) [6]
> ЗЫ Com то зачем удаленный Excel юзать?
Во первых он не удалённый. Com шибко быстрее OLE, но 7.7 его не держит напрямую.
← →
12 © (2009-05-19 14:10) [7]Ничего не стал менять - некогда было и не охота, тем более время все-таки не военное :)
На работе сделалось все за час.
Сильно разочаровался в своем домашнем компе.. Вроде и брал недавно, и винт достаточно быстрый, и памяти 2 гига, и проц 2х ядерный по 2.5..
Из-за чего такая разница..
← →
tesseract © (2009-05-19 14:43) [8]
> Сильно разочаровался в своем домашнем компе..
Следовало разочароваться в своих руках. Пошто машину загадил кривым кодом ? :-)
← →
test © (2009-05-19 14:47) [9]12 © (19.05.09 14:10) [7]
Тебе бы своим кодом супер компьютеры тестить, куда там Каспарову. Вот же талант пропадает!
← →
12 © (2009-05-20 09:16) [10]Есть такое понятие - надо сделать вчера. :)
Ну, это к делу не относится,
я спрашивал, почему такая разница во времени..
Мне же сказали про руки, Каспарова ..
Родственники Копира?
← →
test © (2009-05-20 09:36) [11]12 © (20.05.09 09:16) [10]
Разница по времени потому что машины по разному настроены, алгоритм не оптимален. Выбирай что тебе больше нравиться. А машину ты свою домашнюю конечно круто положил! Это ж надо машина уровня сервака 2000 года легла от формирования Excel файла.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.07.19;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c