st_programming/st_webrashiren_zadacha_zagruzki_file.html
Web-расширение 8.0. Задача загрузки файла. | Автор статьи: <Абырвалг> Последняя редакция №1 от 09.02.07 |
Ключевые слова: Web-расширение 8.0. Задача загрузки файла.
Значит создаем проект как обычно.
Добавляем html-элемент input. Пишем код, который будет ниже. В 1С в общем модуле пишем код, который тоже будет ниже. Ставим на общем модуле галочку "Внешнее соединение".
Какие выскакивали ошибки:
1)Если в дальнейшем выскочила ошибка "Object reference not set to an instance of an object.", значит надо использовать не Input (File) из HTML-toolbox, а FileUpload из Standard-toolbox.
Error: Could not find a part of the path '...WebSites\V8WebApplication2\Data\Текстовый документ.txt'.
2) V8.Call(conn, conn.Connection, "ЗагрузитьСтрокуТекста");
Неизвестное имя. (Exception from HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME)). Галочку Внешнее соединение надо было поставить
Теперь код.
Default2.aspx.cs:
using System; using System.Data; using System.Text; using System.IO; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using _1C.V8.Data; public partial class Default2 : System.Web.UI.Page { private System.IO.FileSystemWatcher fileSystemWatcher1; private void InitializeComponent() { this.fileSystemWatcher1 = new System.IO.FileSystemWatcher(); ((System.ComponentModel.ISupportInitialize)(this.fileSystemWatcher1)).BeginInit(); // // fileSystemWatcher1 // this.fileSystemWatcher1.EnableRaisingEvents = true; ((System.ComponentModel.ISupportInitialize)(this.fileSystemWatcher1)).EndInit(); } protected void Button1_Click(object sender, EventArgs e) { string S; string SaveLocation; if ((File1.PostedFile != null) && (File1.PostedFile.ContentLength > 0)) { string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName); SaveLocation = Server.MapPath("Data") + "\\" + fn; try { File1.PostedFile.SaveAs(SaveLocation); Response.Write("The file has been uploaded."); } catch (Exception ex) { Response.Write("Error: " + ex.Message); return; } } else { Response.Write("Please select a file to upload."); return; } V8DbConnection conn = new V8DbConnection(); conn.Database = "File=\"C:\\Documents and Settings\\IIUkolov\\Рабочий стол\\ддс\";"; conn.Open(); object[] mas = new object[] { SaveLocation }; V8.Call(conn, conn.Connection, "ЗагрузитьТекст", mas); conn.Close(); } }
Ну а это в 1С 8.0:
Функция ЗагрузитьТекст(ИмяФайла) Экспорт Текст = Новый ЧтениеТекста(ИмяФайла,КодировкаТекста.ANSI); Элемент = Справочники.Tab1.НайтиПоКоду(1).ПолучитьОбъект(); Стр = Текст.ПрочитатьСтроку(); Пока Стр <> Неопределено Цикл НоваяСтрока = Элемент.ТабличнаяЧасть1.Добавить(); НоваяСтрока.Col1 = Стр; Стр = Текст.ПрочитатьСтроку(); КонецЦикла; Элемент.Записать(); Возврат ""; КонецФункции