Книга знаний

1С:Предприятие / v8 / Приемы программирования / Интернет-технологии

v8: Web-расширение 8.0. Задача загрузки файла.

Web-расширение 8.0. Задача загрузки файла.Автор статьи: Абырвалг
Последняя редакция №1 от 09.02.07
URL: http://kb.mista.ru/article.php?id=477

Ключевые слова: 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 = Стр;
        Стр = Текст.ПрочитатьСтроку();
    КонецЦикла;
    Элемент.Записать();
    Возврат "";
КонецФункции
Закладка

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2011 | Mista.ru

Яндекс.Метрика