Меню

Ошибка при создании xml файла

Я
   SFilchakov

10.06.16 — 22:32

Всем привет!

Хочу кое что в хмл запихнуть.

Пишу в модуле объекта обработки

Процедура СоздатьФайлДанныхВыгрузки(СтруктураВыгрузки)

    ЗаписьXML=Новый ЗаписьXML();

    ЗаписьXML.ОткрытьФайл(«d:doc.xml»);

КонецПроцедуры

\\

И сразу падает:

Ошибка при вызове метода контекста (ОткрытьФайл)

    ЗаписьXML.ОткрытьФайл(«d:doc.xml»);

по причине:

Каталог не обнаружен ‘d:doc.xml’

//////

Хотя все примеры по создания файла xml так и начинаются:

ЗаписьXML=Новый ЗаписьXML();

    ЗаписьXML.ОткрытьФайл(«d:doc.xml»);

///

Пробовал и так:

ЗаписьXML=Новый ЗаписьXML;

    ЗаписьXML.ОткрытьФайл(«d:doc.xml»);

То же самое.

Подскажите, что не так?

   Dmitry1c

1 — 10.06.16 — 22:33

наклонная черта в другую сторону..

   Dmitry1c

2 — 10.06.16 — 22:35

или контекст на сервере

   SFilchakov

3 — 10.06.16 — 22:38

Что значит контекст на сервере?

Это в модуле обработки на 8.3

Поменял наклон, тоже самое.

   Лефмихалыч

4 — 10.06.16 — 22:38

(0) это все происходит на сервере приложений, а там все не так, как у тебя на клиенте

   SFilchakov

5 — 10.06.16 — 22:40

Это надо делать на клиенте что ли?

   SFilchakov

6 — 10.06.16 — 22:42

Спасибо, теперь понял.

А как же желать загрузку выгрузку по регламентному заданию через файл xml? если регламентное задание крутится на сервере, а файл можно создать только на клиенте и перейти с сервера на клиент нельзя?

   Лефмихалыч

7 — 10.06.16 — 23:05

(6) файл можно создать и на сервере. Просто надо создавать его на дисках и в папках, которые существуют на сервере

   Лефмихалыч

8 — 10.06.16 — 23:06

+(7) даже — не просто существуют, а еще и права на запись в них должны быть у пользователя, под которым запущена служба сервера приложений (ragent)

   SFilchakov

9 — 10.06.16 — 23:15

А где этого пользователя можно посмотреть?

  

Стальная Крыса

10 — 11.06.16 — 04:18

На том компьютере, где работает сервер 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

1 / 1 / 0

Регистрация: 28.11.2014

Сообщений: 33

1

25.04.2017, 01:02. Показов 1578. Ответов 1


Добрый день, пытаюсь на основе List’а своего класса Software создать XML-файл и получаю непонятную ошибку.
Код класса:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[Serializable]
[XmlRoot("Software")]
public class Software : ICloneable, IEquatable<Software>, IComparer<Software>, IComparable<Software>
{
    [XmlAttribute("SoftwareId")]
    public int SoftwareId { get; set; }
    [XmlAttribute("SoftwareName")]
    public string SoftwareName { get; set; }
    [XmlAttribute("DeveloperName")]
    public string DeveloperName { get; set; }
 
    public Software() { }
 
    public Software(int id, string softnm, string devnm)
    {
        SoftwareId = id;
        SoftwareName = softnm;
        DeveloperName = devnm;
     }
}

Код класса, который содержит List<Software>

C#
1
2
3
4
5
public class SoftwareList
{
    [XmlArray("SoftList"), XmlArrayItem(typeof(Software), ElementName = "Software")]
    public List<Software> SoftList { get; set; }
}

Код по созданию XML-файла

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public static SoftwareList softList = new SoftwareList();
Dictionary<int, Software> softwareDictionary = new Dictionary<int, Software>();
 
public Form1()
{
    InitializeComponent();
    softList.SoftList = new List<Software>();
    softList.SoftList.Add(new ParshinLR6.Software { SoftwareId = 1, SoftwareName = "ASF", DeveloperName = "ASF" });
    softList.SoftList.Add(new ParshinLR6.Software { SoftwareId = 2, SoftwareName = "ASF2", DeveloperName = "ASF2" });
    softList.SoftList.Add(new ParshinLR6.Software { SoftwareId = 3, SoftwareName = "ASF3", DeveloperName = "ASF3" });
    softList.SoftList.Add(new ParshinLR6.Software { SoftwareId = 4, SoftwareName = "ASF4", DeveloperName = "ASF4" });
    softList.SoftList.Add(new ParshinLR6.Software { SoftwareId = 5, SoftwareName = "ASF5", DeveloperName = "ASF5" });
    saveListToFile("Software.xml");
    ListToListView();
 
    public void saveListToFile(string filename)
    {
        using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write))
        {
            XmlSerializer xs = new XmlSerializer(typeof(Software));
            xs.Serialize(fs, softList.SoftList);
        }            
    }
}

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Здравствуйте, есть веб-сервис для доступа к БД, при попытке запустить метод LogPas() выдает ошибку

System.InvalidOperationException: Ошибка при создании документа XML. —> System.InvalidOperationException: Невозможно сериализовать System.Data.Common.DataRecordInternal, т.*к. он не имеет беспараметрического конструктора.

    [WebMethod]
    public ArrayList LogPas()
    {
        ArrayList allData = new ArrayList();  
        SqlConnection con = new SqlConnection(connectionString);
        SqlCommand com = new SqlCommand("SELECT *  FROM Student", con);

            con.Open();
            SqlDataReader dr = com.ExecuteReader();
            if (dr.HasRows)
            { foreach (DbDataRecord result in dr)         
                        allData.Add(result);

            return allData;
            }
        else return null;
   }

Deleted's user avatar

Deleted

3611 золотой знак5 серебряных знаков13 бронзовых знаков

задан 20 мая 2013 в 10:08

Verling's user avatar

Вам компилятор и так всё сказал. Передать объект с типом DataRecordInternal не получится, так как для сериализации требуется конструктор без параметров, коего нет у данного типа.
Самое простое решение — использовать другой класс.

ответ дан 20 мая 2013 в 10:13

Spawn's user avatar

SpawnSpawn

2,50810 серебряных знаков19 бронзовых знаков

7

hi i have the following code to perform xml serialization:

private void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            string savepath;
            SaveFileDialog DialogSave = new SaveFileDialog();
            // Default file extension
            DialogSave.DefaultExt = "txt";
            // Available file extensions
            DialogSave.Filter = "XML file (*.xml)|*.xml|All files (*.*)|*.*";
            // Adds a extension if the user does not
            DialogSave.AddExtension = true;
            // Restores the selected directory, next time
            DialogSave.RestoreDirectory = true;
            // Dialog title
            DialogSave.Title = "Where do you want to save the file?";
            // Startup directory
            DialogSave.InitialDirectory = @"C:/";
            DialogSave.ShowDialog();
            savepath = DialogSave.FileName;
            DialogSave.Dispose();
            DialogSave = null;

            FormSaving abc = new FormSaving();
            if (MajorversionresultLabel != null && MajorversionresultLabel.Content != null && MajorversionLabel.Content.ToString() != string.Empty)
            abc.Majorversion = MajorversionresultLabel.Content.ToString();
            //abc.Minorversion = MinorversionresultLabel.Content.ToString();
            //abc.Projectnumber = ProjectnumberresultLabel.Content.ToString();
            //abc.Buildnumber = BuildnumberresultLabel.Content.ToString();
            //abc.Previousbuildversion = PreviousbuildversionresultLabel.Content.ToString();
            abc.Startzbuildfrom = StartzbuildfromcomboBox.SelectedItem;

            using (Stream savestream = new FileStream(savepath, FileMode.Create))
            {

                    XmlSerializer serializer = new XmlSerializer(typeof(FormSaving));
                    serializer.Serialize(savestream, abc);
            }



        }

the error «There was an error generating the XML document» occurs at serializer.Serialize(savestream, abc);

my form saving class:

public class FormSaving
        {

            public string Majorversion
            {
                get;

                set;

            }
            public string Minorversion
            {
                get;

                set;

            }
            public string Projectnumber
            {
                get;

                set;

            }
            public string Buildnumber
            {
                get;

                set;

            }
            public string Previousbuildversion
            {
                get;

                set;

            }
            public object Startzbuildfrom
            {
                get;

                set;
            }
    }

can anyone help me fix this?

EDIT:

i tried this but it doesnt work as well:

under «save button»

abc.Startzbuildfrom = StartzbuildfromcomboBox.SelectedItem.ToString();

under «load button»

StartzbuildfromcomboBox.SelectedItem = abc.Startzbuildfrom;

here is how i populate my combobox items:

<ComboBox Height="23" Margin="577,72,497,0" Name="StartzbuildfromcomboBox" VerticalAlignment="Top"><ComboBoxItem>library</ComboBoxItem></ComboBox>

hi i have the following code to perform xml serialization:

private void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            string savepath;
            SaveFileDialog DialogSave = new SaveFileDialog();
            // Default file extension
            DialogSave.DefaultExt = "txt";
            // Available file extensions
            DialogSave.Filter = "XML file (*.xml)|*.xml|All files (*.*)|*.*";
            // Adds a extension if the user does not
            DialogSave.AddExtension = true;
            // Restores the selected directory, next time
            DialogSave.RestoreDirectory = true;
            // Dialog title
            DialogSave.Title = "Where do you want to save the file?";
            // Startup directory
            DialogSave.InitialDirectory = @"C:/";
            DialogSave.ShowDialog();
            savepath = DialogSave.FileName;
            DialogSave.Dispose();
            DialogSave = null;

            FormSaving abc = new FormSaving();
            if (MajorversionresultLabel != null && MajorversionresultLabel.Content != null && MajorversionLabel.Content.ToString() != string.Empty)
            abc.Majorversion = MajorversionresultLabel.Content.ToString();
            //abc.Minorversion = MinorversionresultLabel.Content.ToString();
            //abc.Projectnumber = ProjectnumberresultLabel.Content.ToString();
            //abc.Buildnumber = BuildnumberresultLabel.Content.ToString();
            //abc.Previousbuildversion = PreviousbuildversionresultLabel.Content.ToString();
            abc.Startzbuildfrom = StartzbuildfromcomboBox.SelectedItem;

            using (Stream savestream = new FileStream(savepath, FileMode.Create))
            {

                    XmlSerializer serializer = new XmlSerializer(typeof(FormSaving));
                    serializer.Serialize(savestream, abc);
            }



        }

the error «There was an error generating the XML document» occurs at serializer.Serialize(savestream, abc);

my form saving class:

public class FormSaving
        {

            public string Majorversion
            {
                get;

                set;

            }
            public string Minorversion
            {
                get;

                set;

            }
            public string Projectnumber
            {
                get;

                set;

            }
            public string Buildnumber
            {
                get;

                set;

            }
            public string Previousbuildversion
            {
                get;

                set;

            }
            public object Startzbuildfrom
            {
                get;

                set;
            }
    }

can anyone help me fix this?

EDIT:

i tried this but it doesnt work as well:

under «save button»

abc.Startzbuildfrom = StartzbuildfromcomboBox.SelectedItem.ToString();

under «load button»

StartzbuildfromcomboBox.SelectedItem = abc.Startzbuildfrom;

here is how i populate my combobox items:

<ComboBox Height="23" Margin="577,72,497,0" Name="StartzbuildfromcomboBox" VerticalAlignment="Top"><ComboBoxItem>library</ComboBoxItem></ComboBox>

привет, у меня есть следующий код для сериализации xml:

private void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            string savepath;
            SaveFileDialog DialogSave = new SaveFileDialog();
            // Default file extension
            DialogSave.DefaultExt = "txt";
            // Available file extensions
            DialogSave.Filter = "XML file (*.xml)|*.xml|All files (*.*)|*.*";
            // Adds a extension if the user does not
            DialogSave.AddExtension = true;
            // Restores the selected directory, next time
            DialogSave.RestoreDirectory = true;
            // Dialog title
            DialogSave.Title = "Where do you want to save the file?";
            // Startup directory
            DialogSave.InitialDirectory = @"C:/";
            DialogSave.ShowDialog();
            savepath = DialogSave.FileName;
            DialogSave.Dispose();
            DialogSave = null;

            FormSaving abc = new FormSaving();
            if (MajorversionresultLabel != null && MajorversionresultLabel.Content != null && MajorversionLabel.Content.ToString() != string.Empty)
            abc.Majorversion = MajorversionresultLabel.Content.ToString();
            //abc.Minorversion = MinorversionresultLabel.Content.ToString();
            //abc.Projectnumber = ProjectnumberresultLabel.Content.ToString();
            //abc.Buildnumber = BuildnumberresultLabel.Content.ToString();
            //abc.Previousbuildversion = PreviousbuildversionresultLabel.Content.ToString();
            abc.Startzbuildfrom = StartzbuildfromcomboBox.SelectedItem;

            using (Stream savestream = new FileStream(savepath, FileMode.Create))
            {

                    XmlSerializer serializer = new XmlSerializer(typeof(FormSaving));
                    serializer.Serialize(savestream, abc);
            }



        }

ошибка «Произошла ошибка при создании XML-документа» возникает в serializer.Serialize(savestream, abc);

мой класс сохранения формы:

public class FormSaving
        {

            public string Majorversion
            {
                get;

                set;

            }
            public string Minorversion
            {
                get;

                set;

            }
            public string Projectnumber
            {
                get;

                set;

            }
            public string Buildnumber
            {
                get;

                set;

            }
            public string Previousbuildversion
            {
                get;

                set;

            }
            public object Startzbuildfrom
            {
                get;

                set;
            }
    }

кто-нибудь может помочь мне это исправить?

EDIT:

Я пробовал это, но это тоже не работает:

под «кнопкой сохранения»

abc.Startzbuildfrom = StartzbuildfromcomboBox.SelectedItem.ToString();

под «кнопкой загрузки»

StartzbuildfromcomboBox.SelectedItem = abc.Startzbuildfrom;

вот как я заполняю элементы поля со списком:

<ComboBox Height="23" Margin="577,72,497,0" Name="StartzbuildfromcomboBox" VerticalAlignment="Top"><ComboBoxItem>library</ComboBoxItem></ComboBox>

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка при создании контекста пользователя secret net studio
  • Ошибка при создании google аккаунта