Имя: Пароль:
1C
1С v8
Фатальная ошибка при создании шаблона
0 Rodinyr
 
17.08.11
01:46
Срздал шаблон ActiveDocument, он хранит вордовский шаблон.
Пытаюсь ЗаменитьДанные в шаблоне, программа выдает фатальную ошибку при заполнении некоторыхзначений. причем эти значения строгового типа.
кусок кода:
 Док=КомОбъект.Application.Documents(1);
        Заменить=док.Content.Find;
        Заменить.Execute("Код",Ложь,Истина,ЛОжь,,,Истина,Ложь,Выборка.Код);
        Заменить.Execute("Дата",Ложь,Истина,ЛОжь,,,Истина,Ложь,Выборка.Дата);
        Заменить.Execute("ФИО",Ложь,Истина,ЛОжь,,,Истина,Ложь,Выборка.фио);
        Заменить.Execute("Сумма",Ложь,Истина,ЛОжь,,,Истина,Ложь,Выборка.Сумма);
        Заменить.Execute("СуммаПрописью",Ложь,Истина,ЛОжь,,,Истина,Ложь,ЧислоПрописью(Выборка.Сумма, "Л = ru_RU; ДП = Истина", "рубль, рубля, рублей, м,копейка, копейки, копеек, ж,2") );
        Заменить.Execute("Процент",Ложь,Истина,ЛОжь,,,Истина,Ложь,Выборка.Процент);
        Заменить.Execute("Срок",Ложь,Истина,ЛОжь,,,Истина,Ложь,Выборка.Срок);
        Заменить.Execute("ДатаВозврата",Ложь,Истина,ЛОжь,,,Истина,Ложь,Выборка.ДатаВозврата);
        Заменить.Execute("СуммаПогашения",Ложь,Истина,ЛОжь,,,Истина,Ложь,Формат(Выборка.Сумма+Выборка.Сумма*Выборка.Процент*Выборка.Срок/100,"ЧЦ=10;ЧДЦ=2;ЧРД=."));
        Заменить.Execute("Штраф",Ложь,Истина,ЛОжь,,,Истина,Ложь,Выборка.Штраф);
        Заменить.Execute("ПоднятыйПроцент",Ложь,Истина,ЛОжь,,,Истина,Ложь,Выборка.ПоднятыйПроцент);
    Заменить.Execute("Заемщик",Ложь,Истина,ЛОжь,,,Истина,Ложь,Выборка.фио+" "+Паспорт);
        док.SaveAs(ВременныйФайл);
1 Rodinyr
 
17.08.11
01:47
Помогите уже голову сломал, не могу найти причины
2 Rodinyr
 
17.08.11
02:02
Вродебы нашел ошибку
3 Rodinyr
 
17.08.11
02:09
Вывел документ но заполнил все навсего дно поле из 14 нужных. не понятно!!!
4 Rodinyr
 
17.08.11
02:13
Ребята подскажте? что не так?
5 Rodinyr
 
17.08.11
03:21
Help
??????
6 Rodinyr
 
17.08.11
04:02
Все еще спят?
7 popcorn
 
17.08.11
04:06
Почему "Фатальная"? Это как?
8 Rodinyr
 
17.08.11
04:17
Ну простонаписал фатальная ошибка и адрес памити типа 0Х00000
9 Rodinyr
 
17.08.11
04:17
Но этот вопрос я решил
Тут возник другой
10 Rodinyr
 
17.08.11
04:17
Параметры шаблона не заменяються на нужные значения.
11 Rodinyr
 
17.08.11
04:50
Мыслей никаких нет?
12 Rodinyr
 
17.08.11
05:08
Заполняет только самый первый параметр, а отальные не трогает!!! Почему так может быть?
13 Rodinyr
 
17.08.11
05:29
Люди!!!! Помогите!!! 6 час на одной ошибкой бъюсь!!! не вижу решения!!!!
14 Rodinyr
 
17.08.11
05:42
Это я еще в веб ее не тестировал, там червей еще больше наверное
15 kosts
 
17.08.11
06:10

Процедура ЗаменитьВсе(КомОбъект_Application, Параметры)
   
   Попытка
   
       wdReplaceNone = 00000000;
       wdReplaceOne  = 00000001;
       wdReplaceAll  = 00000002;
       
       Selection = КомОбъект_Application.Selection;
       
       Selection.Find.ClearFormatting();
       Selection.Find.Replacement.ClearFormatting();
       
       Selection.Find.Forward = True;
       //Selection.Find.Wrap = wdFindContinue;
       Selection.Find.Format = False;
       Selection.Find.MatchCase = False;
       Selection.Find.MatchWholeWord = False;
       Selection.Find.MatchWildcards = False;
       Selection.Find.MatchSoundsLike = False;
       Selection.Find.MatchAllWordForms = False;

       Для каждого п Из Параметры Цикл
       
           Selection.Find.Text = "{" + п.Ключ + "}";
           Selection.Find.Replacement.Text = п.Значение;
           Selection.Find.Execute(, , , , , , , , , ,wdReplaceAll);
           
       КонецЦикла;
       Selection.Find.Text = "";
       Selection.Find.Replacement.Text = "";
       
       Selection.Find.ClearFormatting();
       Selection.Find.Replacement.ClearFormatting();
   
   Исключение
       Сообщить(ОписаниеОшибки());
   КонецПопытки;
       
КонецПроцедуры
16 Rodinyr
 
17.08.11
06:19
А эта процедура должна выполняться на стороне Сервера как я понимаю!!!
17 kosts
 
17.08.11
06:21
(16) Думаю там где создан КомОбъект.Application
18 Rodinyr
 
17.08.11
08:10
Спасибо за подсказку.
У меня заработало не через Selection, а через Content!!
19 igor1980
 
13.09.11
17:30
Всем Спасибо.
Может кому понадобится тест без мелких иголочек -
   //Создаем новый объекта типа Word.Application
   WordApplication = Новый COMОбъект("WORD.Application");
   КомОбъект_Application = WordApplication.Documents.Add("C:\Documents and Settings\TEMP\Рабочий стол\9999\Word.doc");
   Параметры = новый СписокЗначений;
   Параметры.Добавить("WWW", "*****");
   Параметры.Добавить("GGG", "ГГГГГ");
   Параметры.Добавить("VVV", "ВВВВВВВВ");
   
   Попытка
   
      wdReplaceNone = 00000000;
      wdReplaceOne  = 00000001;
      wdReplaceAll  = 00000002;
     
      Selection = КомОбъект_Application.Content;
     
      Selection.Find.ClearFormatting();
      Selection.Find.Replacement.ClearFormatting();
     
      Selection.Find.Forward = True;
      //Selection.Find.Wrap = wdFindContinue;

      Selection.Find.Format = False;
      Selection.Find.MatchCase = False;
      Selection.Find.MatchWholeWord = False;
      Selection.Find.MatchWildcards = False;
      Selection.Find.MatchSoundsLike = False;
      Selection.Find.MatchAllWordForms = False;

       Для каждого п Из Параметры Цикл
     
          Selection.Find.Text = п.Значение;
          Selection.Find.Replacement.Text = п.Представление;
          Selection.Find.Execute(, , , , , , , , , ,wdReplaceAll);
         
       КонецЦикла;
      Selection.Find.Text = "";
      Selection.Find.Replacement.Text = "";
     
      Selection.Find.ClearFormatting();
      Selection.Find.Replacement.ClearFormatting();
   
   Исключение
      Сообщить(ОписаниеОшибки());
   КонецПопытки;
20 acsent
 
13.09.11
17:32
Дата - это не строговогый параметр