1C и Excel
22.04.2005
15:46
#1
Привет всем. Подскажите, где можно взять подробное описание как написать обработку, которая будет загружать данные из Excel в 1с.
22.04.2005
16:28
#2
"В любой книжке по Excel, где в оглавлении есть слова OLE или COM. А так же раздел документации 1С, посвящённый работе с OLE. Кажется, "Описание встроенного языка", второй том. Ниже пример кода, который из счет-фактуры Excel загружает данные в 1С.
//**************
Попытка
// запускаем Excel-Server
ВходExcel = СоздатьОбъект("Excel.Application");
ЗапущенExcel = 1;
Исключение
ЗапущенExcel = 0;
Предупреждение("MS Excel не загружен!");
Возврат;
КонецПопытки;
Если ЗапущенExcel=1 Тогда
Попытка
// открываем файл
ВходExcel.Application.Workbooks.Open(ИмяФайла);
Исключение
ВходExcel.Quit();
Предупреждение("Не удается открыть Файл!");
Возврат;
КонецПопытки;
КонецЕсли;
НомСтр = 18; //данные начинаются в 18 строке
Пока 1 = 1 Цикл
Артикул = ВходExcel.ActiveSheet.Cells(НомСтр,1).Value;
Наименование = ВходExcel.ActiveSheet.Cells(НомСтр,2).Value;
Если ПустоеЗначение(Артикул) * ПустоеЗначение(Наименование) = 1 Тогда //пустая строка?
Прервать;
КонецЕсли;
НомСтр = НомСтр + 1;
КонецЦикла;
ВсегоСтрок = НомСтр - 1; //последняя непустая строка
Для НомСтр = 18 По ВсегоСтрок Цикл
Артикул = СокрЛП(ВходExcel.ActiveSheet.Cells(НомСтр,1).Value);
Наименование = СокрЛП(ВходExcel.ActiveSheet.Cells(НомСтр,2).Value);
Количество = Число(ВходExcel.ActiveSheet.Cells(НомСтр,4).Value);
Сумма = Число(ВходExcel.ActiveSheet.Cells(НомСтр,7).Value);
Сообщить("Товар: "+Наименование+". Код: "+Артикул+". Кол: "+Количество+". Сумма: "+Сумма, "!");
КонецЦикла;
ВходExcel.ActiveWindow.Close();
"
//**************
Попытка
// запускаем Excel-Server
ВходExcel = СоздатьОбъект("Excel.Application");
ЗапущенExcel = 1;
Исключение
ЗапущенExcel = 0;
Предупреждение("MS Excel не загружен!");
Возврат;
КонецПопытки;
Если ЗапущенExcel=1 Тогда
Попытка
// открываем файл
ВходExcel.Application.Workbooks.Open(ИмяФайла);
Исключение
ВходExcel.Quit();
Предупреждение("Не удается открыть Файл!");
Возврат;
КонецПопытки;
КонецЕсли;
НомСтр = 18; //данные начинаются в 18 строке
Пока 1 = 1 Цикл
Артикул = ВходExcel.ActiveSheet.Cells(НомСтр,1).Value;
Наименование = ВходExcel.ActiveSheet.Cells(НомСтр,2).Value;
Если ПустоеЗначение(Артикул) * ПустоеЗначение(Наименование) = 1 Тогда //пустая строка?
Прервать;
КонецЕсли;
НомСтр = НомСтр + 1;
КонецЦикла;
ВсегоСтрок = НомСтр - 1; //последняя непустая строка
Для НомСтр = 18 По ВсегоСтрок Цикл
Артикул = СокрЛП(ВходExcel.ActiveSheet.Cells(НомСтр,1).Value);
Наименование = СокрЛП(ВходExcel.ActiveSheet.Cells(НомСтр,2).Value);
Количество = Число(ВходExcel.ActiveSheet.Cells(НомСтр,4).Value);
Сумма = Число(ВходExcel.ActiveSheet.Cells(НомСтр,7).Value);
Сообщить("Товар: "+Наименование+". Код: "+Артикул+". Кол: "+Количество+". Сумма: "+Сумма, "!");
КонецЦикла;
ВходExcel.ActiveWindow.Close();
"
28.04.2005
14:25
#5
Сайт
Конвертация MXL в XLS
Главная : 1С:Предприятие 7.7
Автор: Natalia
Принял: Natalia
Описание:
Попытка сохранять в Excel красиво - с нормальной трактовкой дат, разделителей разрядов, с сохранением ячеек с длиной строки больше 255 символов, с ярлычками листов, с соответствующими оригиналу объединениями ячеек ... Подробнее об обработке и о возможности ее практического применения , а также иллюстрации замеченных мной недостатков стандартной конвертации, которые полностью устраняются обработкой - на таблице при открытии обработки.
konv_xls.zip
Конвертация MXL в XLS
Главная : 1С:Предприятие 7.7
Автор: Natalia
Принял: Natalia
Описание:
Попытка сохранять в Excel красиво - с нормальной трактовкой дат, разделителей разрядов, с сохранением ячеек с длиной строки больше 255 символов, с ярлычками листов, с соответствующими оригиналу объединениями ячеек ... Подробнее об обработке и о возможности ее практического применения , а также иллюстрации замеченных мной недостатков стандартной конвертации, которые полностью устраняются обработкой - на таблице при открытии обработки.
konv_xls.zip
1С Предприятие 8.0: Управление Торговлей ред 10.2Срочно!!!! Прооблема с выгрузкой данных из ЗиК в Бух
Читают тему
(гостей: 1)