|
Каким образом можно загрузить накладную из екселя в 1с 8? | ☑ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0
Сергей-88
22.10.11
✎
12:59
|
Привет друзья :-)
Есть задача- Загрузить товары которые приходят в накладной в файле ексель или опен офисса сразу в документ- поступление товаров и услуг. Вот каким методом это лучше сделать? |
||||||||||
1
shuhard
22.10.11
✎
13:01
|
(0) ADODB
все прочие от лукавого другим методом, свои вариант |
||||||||||
2
Сергей-88
22.10.11
✎
13:03
|
А каким образом это можно реализовать? Где можно про это почитать
|
||||||||||
3
Сергей-88
22.10.11
✎
13:15
|
А что это за механизм такой Adodb?
Почему он работает быстрее чем оле и чем отличается? |
||||||||||
4
zak555
22.10.11
✎
13:16
|
сохранить в cvs ?
|
||||||||||
5
aleks-id
22.10.11
✎
13:18
|
строга 2-3 раза в неделю возникают такие темы. неужели поиском никто не умеет пользоваться?
|
||||||||||
6
Сергей-88
22.10.11
✎
13:20
|
А cvs это что такое?
|
||||||||||
7
wade25
22.10.11
✎
13:21
|
Две недели назад делал тож самое =)
Эксель = СоздатьОбъект("Excel.Application"); Исключение Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!"); Возврат; КонецПопытки; позволит нам получить доступ через переменную "Эксель" к запущенному приложению Excel. А далее уже можно получить доступ к книге (файлу), листу и ячейке с данными. Далее примеры кода. Открываешь файл Книга = Эксель.WorkBooks.Open(ПутьКФайлу); Страницу номер или имя пишешь Лист = Книга.WorkSheets(НомерЛиста); или Лист = Книга.WorkSheets(ИмяЛиста); Загоняешь в цикл вот это Значение = Лист.Cells(НомерСтроки, НомерКолонки).Value; Это просто и удобно. Иди вот так, http://1cprofi.com/content/view/19/46/ А вообще я нуб и сам не знаю как лучше =) |
||||||||||
8
Сергей-88
22.10.11
✎
13:39
|
Спасибо за код, но это по Ole соединение, я его делал, но вот сегодня прочитал что через ADODB БУДЕТ ГРУЗИТСЯ быстрее чуть ли не в 10 раз. То что грузится по оле за час с помощью адоб загрузится за 20 секунд. Вот и ищу как бы понять это адоб
|
||||||||||
9
aleks-id
22.10.11
✎
14:03
|
1. скачать и установить на комп http://www.microsoft.com/download/en/details.aspx?id=23734
2. код для работы СтрокаПодключения = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = "+Путь; СтрокаПодключения = СтрокаПодключения + "; Extended Properties = "+"""Excel 12.0"+";HDR=NO;IMEX=1"";"; // Подключаемся Об_Конект = Новый COMОбъект("ADODB.Connection"); Попытка Об_Конект.Open(СтрокаПодключения); Исключение Сообщить ("Невозможно подключится к Microsoft Excel Driver!!! |Возможно файл ["+Путь+"] открыт другим пользователем."); Возврат; КонецПопытки; СтрЗапроса = " |SELECT * |FROM [A" + Формат(НачальнаяСтрока,"ЧГ=0") + ":CZ" + Формат(КонечнаяСтрока,"ЧГ=0") + "] |"; Попытка RecordSet = Об_Конект.Execute(СтрЗапроса); Исключение Сообщить("Не удалось выполнить запрос к файлу Excel |"+ ОписаниеОшибки(),СтатусСообщения.Важное); Возврат; КонецПопытки; дальше в цикле обходим рекордсет |
||||||||||
10
Сергей-88
22.10.11
✎
14:41
|
Получается мы выбираем последовательно каждую строчку, а как в этой строчке обратится к нужному столбцу?
|
||||||||||
11
Сниф
22.10.11
✎
14:49
|
(10) в 7 написано :)
Значение = Лист.Cells(НомерСтроки, НомерКолонки).Value; |
||||||||||
12
Сергей-88
22.10.11
✎
14:51
|
А разве этот код в adodb будет работать? Например вот мы получили запросом данные листа, :-)
|
||||||||||
13
Сниф
22.10.11
✎
15:00
|
(12) я запросом еще ни разу так не делал, хотя так, наверное, быстрее.
Дело не в быстроте. Вы же не сами это будете делать? Менеджер. |
||||||||||
14
Сергей-88
22.10.11
✎
15:04
|
Согласен:-)
Ну просто я как то грузил по ole прайс из екселя в 1с 8.2 УТ 11 ред. В прайсе 7 тыс строк. 2 часа грузилось. |
||||||||||
15
Фокусник
22.10.11
✎
15:10
|
(14) в эти 2 часа наверное не только загрузка данных из экселя делалась, но и создание кучи разных объектов в базе. В это и медленно скорее всего (вот что нужно оптимизировать), и тут никакие ADODB не ускорят процесс ;)
|
||||||||||
16
Сергей-88
22.10.11
✎
15:17
|
Понятно. :-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |