23.05.2006, 12:45
общий
это ответ
Здравствуйте, Baim!
Это выбор файла Microsoft Access .mdb
ФС.ВыбратьФайл(0,НазваФайлу,НазваКаталогу,"Виберiть файл","Файли баз даних (*.mdb)|*.mdb");
СтрФайл=НазваКаталогу+НазваФайлу;
Если ФС.СуществуетФайл(СтрФайл)=0 Тогда
Предупреждение("Не знайдено файлу iмпорту");
Возврат;
КонецЕсли;
А вот вывод на экран
Попытка
Connection=CreateObject("ADODB.Connection");
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(СтрФайл);
Connection.Open(ConnectionString);
Cmd=CreateObject("ADODB.Command");
Cmd.ActiveConnection=Connection;
Исключение
Предупреждение("Не удалось установить соединение с БД");
Возврат;
КонецПопытки;
Cmd.CommandText="SELECT b.id_azs, b.n_report, b.id_tovar, b.Volume, Format(b.VolumeStart,‘#.###‘) as VS, Format(b.VolumeEnd,‘#.###‘) as VE, Format(b.prihod_smena,‘#.###‘) as prihod_s, Format(b.spisano,‘#.###‘) as spis
|FROM smena b";
Rs=CreateObject("ADODB.RecordSet");
Rs=Cmd.Execute;
Попытка
Rs.MoveFirst();
Пока Rs.EOF() = 0 do
Если (Rs.Fields("id_azs").Value=idAZS)И(Rs.Fields("n_report").Value=НомерОтчета)И(Сп.Принадлежит(Rs.Fields("id_tovar").Value)=0) Тогда
ТЗ.НоваяСтрока();
ТЗ.КолвоЭККАНачало=Окр(Число(СтрЗаменить(Rs.Fields("VS").Value,",",".")),3);
ТЗ.КолвоЭККАКонец=Окр(Число(СтрЗаменить(Rs.Fields("VE").Value,",",".")),3);
ТЗ.Продажа=Rs.Fields("Volume").Value;
ТЗ.Списание=Окр(Число(СтрЗаменить(Rs.Fields("spis").Value,",",".")),3);
ТЗ.Приход=Окр(Число(СтрЗаменить(Rs.Fields("prihod_s").Value,",",".")),3);
ТЗ.Артикул=Прав("00000"+СокрЛП(Rs.Fields("id_tovar").Value),5);
Спр.ВыбратьЭлементыПоРеквизиту("Артикул",Rs.Fields("id_tovar").Value,0,0);
Если Спр.ПолучитьЭлемент()=1 Тогда
ТЗ.ТМЦ=Спр.ТекущийЭлемент();
Если БИ.ПолучитьСубконто(1,,ТЗ.ТМЦ)=1 Тогда
ТЗ.Колво1СНачало=БИ.СНД(3);
ТЗ.Колво1СКонец=БИ.СКД(3);
КонецЕсли;
Иначе
ТЗ.ТМЦ=ПолучитьПустоеЗначение("Справочник.Номенклатура");
КонецЕсли;
КонецЕсли;
Rs.MoveNext();
КонецЦикла;
Исключение
Предупреждение("Ошибка чтения данных. Вероятно, данный отчет совсем пустой");
Возврат;
КонецПопытки;
ТЗ.Сортировать("Артикул");
КолвоОшибок=0;
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Если (СписокКодовКарточек.Принадлежит(Число(ТЗ.Артикул))=1)ИЛИ(СписокКодовПылесоса.Принадлежит(Число(ТЗ.Артикул))=1) Тогда
Продолжить;
КонецЕсли;
Если (ТЗ.КолвоЭККАНачало=ТЗ.Колво1СНачало)И(ТЗ.КолвоЭККАКонец=ТЗ.Колво1СКонец)И(ТЗ.КолвоЭККАНачало+ТЗ.Приход-ТЗ.Продажа-ТЗ.Списание=ТЗ.КолвоЭККАКонец) Тогда
Таб.ВывестиСекцию("Строка");
Иначе
Таб.ВывестиСекцию("СтрокаКр");
КолвоОшибок=КолвоОшибок+1;
КонецЕсли;
КонецЦикла;
А вот файл .mxl
Таб=СоздатьОбъект("Таблица");
Таб.Открыть("\\Natali\export\ТалоныАЗСПарт.mxl");
КолвоСтрок=Таб.ВысотаТаблицы();
Сообщить("Получаем данные...");
Для Сч=2 По КолвоСтрок Цикл
ТЗ.НоваяСтрока();
ВыбОбласть=Таб.Область(Сч,1);
Дата1=Дата(ВыбОбласть.Текст);
Если (Дата1<НачДата)ИЛИ(Дата1>КонДата) Тогда
Сообщить("В импорте найдена неправильная дата "+Дата1+" строка "+Сч);
Возврат;
КонецЕсли;
ТЗ.Дата=Дата1;
А вот .xls
Excel = СоздатьОбъект("Excel.Application");
Excel.Workbooks.Open(Сокрлп(НазваниеФайла));
ЧислоСтрок = Excel.Cells.CurrentRegion.Rows.Count;
ЧислоКолонок = Excel.Cells.CurrentRegion.Columns.Count;
ЗначениеЯчейки=СокрЛП(Строка(Excel.Cells(1,ТекКолонка).Value));
А вот .dbf
База=СоздатьОбъект("XBase");
База.КодоваяСтраница(0);
База.ОткрытьФайл(СтрФайл,);
Если База.Открыта()=0 Тогда
Сообщить("Файл не вiдкрито!");
СтатусВозврата(0);
Возврат;
КонецЕсли;
База.Первая();
ТЗ.УдалитьСтроки();
Пока База.ВКонце()<>1 Цикл
ТЗ.НоваяСтрока();
ТЗ.Операция = База.oper_id;
А вот .txt
СтрФайл="\\asgat\export\1.txt";
Пока ФС.СуществуетФайл(СтрФайл)=0 Цикл
НазваКаталогу="\\asgat\export";
НазваФайлу="1.txt";
Если ФС.ВыбратьФайл(0,НазваФайлу,НазваКаталогу,"Виберiть файл",‘Файли експорту Надра|*.*‘)=0 Тогда
Возврат;
КонецЕсли;
СтрФайл = НазваКаталогу+НазваФайлу;
КонецЦикла;
Баз=СоздатьОбъект("Текст");
Баз.КодоваяСтраница(1);
Баз.Открыть(СтрФайл);
Если Баз.КоличествоСтрок()=0 Тогда
Предупреждение("Файл не вiдкрито!");
Возврат;
КонецЕсли;
Для Инд=2 По Баз.КоличествоСтрок()-1 Цикл
КолвоЗаписей=КолвоЗаписей+1;
НоваяСтрока();
Стр=Баз.ПолучитьСтроку(Инд);
Я Вам набросал куски вполне рабочих отчетов. Других форматов не знаю.