1C + Excel
10.12.2003
16:13
#1
"народ, где взять простецкие команды VBA для Эксела?
а то кроме
Эк=СоздатьОбъект("Exel.Application");
Эк.ActiveWorkBooks.Open(ИмяФайла);
и ещё пары... ничего не знаю...
а в инете только ФАКи по Экселу, а типа учебника не нахожу
подскажите ПЛЗ штучек 50 на первое время, а!"
а то кроме
Эк=СоздатьОбъект("Exel.Application");
Эк.ActiveWorkBooks.Open(ИмяФайла);
и ещё пары... ничего не знаю...
а в инете только ФАКи по Экселу, а типа учебника не нахожу
подскажите ПЛЗ штучек 50 на первое время, а!"
13.12.2003
22:27
#2
В эхеле открываешь справку по ВизулБасику - там все команды описаны.
Если пример нужен, то в типовой "Торговля и склад", есть обработка по импорту цен из Ехелевского файла, можно посмотреть
Если пример нужен, то в типовой "Торговля и склад", есть обработка по импорту цен из Ехелевского файла, можно посмотреть
15.12.2003
09:08
#3
"там не то что нужно!
там больше справка по самому вижуал бэйсику...
но, пардон, вставки на нём в 1С нельзя делать...
и толку от того, что узнаю, как описывать переменные, массивы, циклы и др. конструкции???
на сколько понял максимум, что можно это использовать пару методов объекта аппликейшн
после
эксел=СоздатьОбъект("Excel.Application");
нужно что-то типа открыть/получить файл эксел, считать выделенные столбцы в таблицу 1С, закрыть файл и ВЫГРУЗИТЬ потом сам эксел из памяти КОРРЕКТНО!
а в 1С предлагаемой для просмотра написано эксел.Quit()
а комментария нет
и что это делает? ИМХО закрывает? а из памяти пардон кто выгружать будет?"
там больше справка по самому вижуал бэйсику...
но, пардон, вставки на нём в 1С нельзя делать...
и толку от того, что узнаю, как описывать переменные, массивы, циклы и др. конструкции???
на сколько понял максимум, что можно это использовать пару методов объекта аппликейшн
после
эксел=СоздатьОбъект("Excel.Application");
нужно что-то типа открыть/получить файл эксел, считать выделенные столбцы в таблицу 1С, закрыть файл и ВЫГРУЗИТЬ потом сам эксел из памяти КОРРЕКТНО!
а в 1С предлагаемой для просмотра написано эксел.Quit()
а комментария нет
и что это делает? ИМХО закрывает? а из памяти пардон кто выгружать будет?"
28.03.2005
21:23
#4
"Если Что обращайтесь 6)
Evgeny@prikhodko.org
Procedure LoadImportFile()
//-----------------------------------------------------------------------------------------------
Var namefile, namedir,ImportFileXls, ImportFileXlsAplet;
Var Applet, SPFileDirNomenklatura,SPFileDirNomenklaturaTEMP;
Var i,j,kj, ki,jj, addcode, File, Filelist,Celling,FileDirFS;
Var CodeType,OLEMOVE,Tools,CodePlusFilesSP;
//-----------------------------------------------------------------------------------------------
// Insert Object
Tools= CreateObject("справчоник.Загружаемый");
ImportFileXls = CreateObject("FS");
SPNomenkl = CreateObject("справчоник.Номенклатура");
SPFileDirNomenklatura = CreateObject("&&&&&&&&&&.&&&&&&&&&&&&&");
SPFileDirNomenklaturaTEMP = CreateObject("&&&&&&&&&&.&&&&&&&&&&&&&");
Applet = CreateObject("Excel.Application");
//Insert Var component
//------------------------------------------------------------------------------------------
IF ImportFileXls.SelectFile(,namefile,namedir,"&&&&&&&& &&&&& ","&&&&& *.xls| *.xls", , ) = 1 Then
Tools.НайтиПокоду("1");
kj = Tools.ЧислоСтроки;
ki = Tools.ЧислоСтолбцов;
j = 1;
CodePlusFilesSP = 0;
DateFormatToDay = ТекущаяДата();
addcode = 0;
CodePlusFilesSP = CodePlusFilesSP + 1;
FileDirFS = namedir+namefile;
DoMessageBox("ЛЯЛЯ");
Message("namefile : "+namedir+namefile);
CodeType = String(namefile)+"-"+String(DateFormatToDay);
Message("CodeType ="+CodeType);
IF SPFileDirNomenklatura.НайтиПоКоду(CodeType) = 0 then
SPFileDirNomenklatura.new();
SPFileDirNomenklatura.Код = CodeType;
SPFileDirNomenklatura.Description= namefile;
SPFileDirNomenklatura.ИмяФайла = namefile;
SPFileDirNomenklatura.Write();
Message("ОК!");
Else
DoMessageBox("Программу На Мыло!"); Return;
EndIF;
Else Message("Error file"); Return;
EndIf;
File = Applet.Workbooks.Open(Trimall(FileDirFS));
Filelist = File.Sheets(1);
Message("---------------------------------");
//------------------------------ OLE XLS For EndFor-------------------------------
For i = 1 to ki DO
Celling = Filelist.Cells(j,i);
IF Filelist.Cells(j,i).text <> """" then
addcode = addcode + 1;
Message("i, j="+i+", "+j+" | "+Celling.Text+";");
Message("addcode = "+addcode);
//Saved to the base
IF addcode = 1 then //проверка строк на наличие
SPNomenkl.new();
SPNomenkl.Description = Celling.text;
SPNomenkl.ИмяФайла = CodeType;
EndIF; //
IF addcode = 2 then
SPNomenkl.ыыы= Celling.Value;
EndIF;
IF addcode = 3 then
SPNomenkl.&&&&&&&&& = Celling.text;
EndIF;
IF addcode = 4 then
SPNomenkl.&&&& = Celling.Value;
EndIF;
IF addcode > 4 then
Message("--- 4 ---");
EndIF;
EndIF;
jj = j;
IF i = (ki - 1) then j = j+1; i = 0; addcode = 0; SPNomenkl.Write(); EndIF;
IF j = kj then Message("j = "+j); i = ki; EndIF;
EndDo;
//------------------------------ OLE XLS For EndFor-------------------------------
Applet.WorkBooks.close();
Applet.Quit();
Message("I ="+i+"; J = "+j);
DoMessageBox("&&&&: "+namefile+"; &&&&&&&&, &&&&&&&&&&& = "+jj+" &&&&&!");
Message("---------------------------------");
Message("Application Close All");
Message("&&& &&&&& &&&&&&&&&&&& = "+FileDirFS);
EndProcedure"
Evgeny@prikhodko.org
Procedure LoadImportFile()
//-----------------------------------------------------------------------------------------------
Var namefile, namedir,ImportFileXls, ImportFileXlsAplet;
Var Applet, SPFileDirNomenklatura,SPFileDirNomenklaturaTEMP;
Var i,j,kj, ki,jj, addcode, File, Filelist,Celling,FileDirFS;
Var CodeType,OLEMOVE,Tools,CodePlusFilesSP;
//-----------------------------------------------------------------------------------------------
// Insert Object
Tools= CreateObject("справчоник.Загружаемый");
ImportFileXls = CreateObject("FS");
SPNomenkl = CreateObject("справчоник.Номенклатура");
SPFileDirNomenklatura = CreateObject("&&&&&&&&&&.&&&&&&&&&&&&&");
SPFileDirNomenklaturaTEMP = CreateObject("&&&&&&&&&&.&&&&&&&&&&&&&");
Applet = CreateObject("Excel.Application");
//Insert Var component
//------------------------------------------------------------------------------------------
IF ImportFileXls.SelectFile(,namefile,namedir,"&&&&&&&& &&&&& ","&&&&& *.xls| *.xls", , ) = 1 Then
Tools.НайтиПокоду("1");
kj = Tools.ЧислоСтроки;
ki = Tools.ЧислоСтолбцов;
j = 1;
CodePlusFilesSP = 0;
DateFormatToDay = ТекущаяДата();
addcode = 0;
CodePlusFilesSP = CodePlusFilesSP + 1;
FileDirFS = namedir+namefile;
DoMessageBox("ЛЯЛЯ");
Message("namefile : "+namedir+namefile);
CodeType = String(namefile)+"-"+String(DateFormatToDay);
Message("CodeType ="+CodeType);
IF SPFileDirNomenklatura.НайтиПоКоду(CodeType) = 0 then
SPFileDirNomenklatura.new();
SPFileDirNomenklatura.Код = CodeType;
SPFileDirNomenklatura.Description= namefile;
SPFileDirNomenklatura.ИмяФайла = namefile;
SPFileDirNomenklatura.Write();
Message("ОК!");
Else
DoMessageBox("Программу На Мыло!"); Return;
EndIF;
Else Message("Error file"); Return;
EndIf;
File = Applet.Workbooks.Open(Trimall(FileDirFS));
Filelist = File.Sheets(1);
Message("---------------------------------");
//------------------------------ OLE XLS For EndFor-------------------------------
For i = 1 to ki DO
Celling = Filelist.Cells(j,i);
IF Filelist.Cells(j,i).text <> """" then
addcode = addcode + 1;
Message("i, j="+i+", "+j+" | "+Celling.Text+";");
Message("addcode = "+addcode);
//Saved to the base
IF addcode = 1 then //проверка строк на наличие
SPNomenkl.new();
SPNomenkl.Description = Celling.text;
SPNomenkl.ИмяФайла = CodeType;
EndIF; //
IF addcode = 2 then
SPNomenkl.ыыы= Celling.Value;
EndIF;
IF addcode = 3 then
SPNomenkl.&&&&&&&&& = Celling.text;
EndIF;
IF addcode = 4 then
SPNomenkl.&&&& = Celling.Value;
EndIF;
IF addcode > 4 then
Message("--- 4 ---");
EndIF;
EndIF;
jj = j;
IF i = (ki - 1) then j = j+1; i = 0; addcode = 0; SPNomenkl.Write(); EndIF;
IF j = kj then Message("j = "+j); i = ki; EndIF;
EndDo;
//------------------------------ OLE XLS For EndFor-------------------------------
Applet.WorkBooks.close();
Applet.Quit();
Message("I ="+i+"; J = "+j);
DoMessageBox("&&&&: "+namefile+"; &&&&&&&&, &&&&&&&&&&& = "+jj+" &&&&&!");
Message("---------------------------------");
Message("Application Close All");
Message("&&& &&&&& &&&&&&&&&&&& = "+FileDirFS);
EndProcedure"
Читают тему
(гостей: 1)