Имя: Пароль:
1C
1С v8
Доверенность по образцу
0 CorePride
 
18.07.13
10:31
Здравствуйте.
Необходимо создать доверенность по образцу (документ MS Word, который в результате является ее печатной формой). Так вот объясните что нужно для этого сделать.
Ps. Если можно, то указать ссылку, где подобное задание рассмотрено, или разъяснить пошагово на примере, или т.п.
1 Godofsin
 
18.07.13
10:32
activeX
2 Cube
 
18.07.13
10:33
3 Maxus43
 
18.07.13
10:36
Договор = ПолучитьМакет("Договор");

// Получить объект из макета.
MSWord = Договор.Получить();
   
НаименованиеКонтрагента = "ООО Торгуем всем";

Попытка
   Документ = MSWord.Application.Documents(1);
   Документ.Activate();

   // Получить объект, который будем использовать для поиска и замены.
   Замена = Документ.Content.Find;

   // Заменить заранее определенные ключевые конструкции на требуемый текст.
   Замена.Execute("<НазваниеКомпании>",
       Ложь, Истина, Ложь, , , Истина, , Ложь,    НаименованиеКонтрагента);

   // Далее аналогично для остальных ключевых конструкций.
   //    ...

   // Делаем видимым приложение и активизируем его.
   MSWord.Application.Visible = Истина;
   MSWord.Activate();

Исключение

   // Если произойдет ошибка выводятся данные об ошибке и объект закрывается.
   Сообщить(ОписаниеОшибки());
   MSWord.Application.Quit();
   
КонецПопытки;
4 mzelensky
 
18.07.13
10:37
(2) не "лентяй", а "ЛЕНТЯЙКА" без фотки !
5 Cube
 
18.07.13
10:38
(4) О, точняк... Без фотки))
6 mzelensky
 
18.07.13
10:39
(3) ток есть очень неприятный минус этого метода. Вот эта штука:

// Получить объект, который будем использовать для поиска и замены.

   Замена = Документ.Content.Find;

   // Заменить заранее определенные ключевые конструкции на требуемый текст.

   Замена.Execute("<НазваниеКомпании>",
       Ложь, Истина, Ложь, , , Истина, , Ложь,    НаименованиеКонтрагента);



Отработает только в случае, если "НаименованиеКонтрагента" менее 128 символов.
7 Maxus43
 
18.07.13
10:44
(6) специально погуглил даже, не нашёл таких длинных названий)
8 mzelensky
 
18.07.13
10:48
(7) С названиями все понятно. Мне, напрмиер, нужно было подставлять в ВОРД определенную текстовку, которая "набиралась" в 1С-ке (типа документ, сумма, долг + еще доп инфа).

Так вот эта текставка очень легко переваливала за 128 символов.
9 Cube
 
18.07.13
10:49
(7) Может нужно вставить произвольный текст?
10 MiniMuk
 
18.07.13
10:49
(7) Можте она в переменной НаименованиеКонтрагента хранить текст дополнительного соглашения к примеру. Не?
А вообще да, без фотки.
11 Maxus43
 
18.07.13
10:53
ну будет знать значит, что много нельзя
12 Serg_1960
 
18.07.13
10:54
// с 21.05.2008
       Контекст = "";
       Если ВидЗанятости = Перечисления.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы Тогда
           Контекст = "Для выполнения Работником своих обязанностей ему устанавливается 40 часовая " +
           "рабочая неделя с выходными днями - суббота и воскресенье. Работнику устанавливается рабочий " +
           "день с __________ часов до __________ часов с перерывом с __________ часов до __________ часов";
       Иначе
           Контекст = "Работнику устанавливается пятидневная рабочая неделя с двумя выходными днями - " +
           "суббота и воскресенье. Время начала работы и окончания работы определяется Работником самостоятельно " +
           "с учетом режима работы организации Работодателя, исходя из того, что продолжительность рабочего времени " +
           "в день не должна превышать четырех часов";
           Если Текущий.ДатаДок < Дата("20060630") Тогда
               Контекст = Контекст + " и не более 16 часов в неделю";
           КонецЕсли;
           Контекст = Контекст + ". В дни, когда по основному месту работы работник свободен от " +
           "исполнения трудовых обязанностей, он может работать по совместительству полный рабочий день";
           Если Текущий.ДатаДок >= Дата("20060630") Тогда
               Контекст = Контекст + ". В течение одного месяца продолжительность рабочего времени при работе по совместительству не должна " +
               "превышать половины месячной нормы рабочего времени, установленной для соответствующей категории работников";
           КонецЕсли;
       КонецЕсли;
       
       Если ЗначениеЗаполнено(Контекст) Тогда
           ПоЧастям = Цел(СтрДлина(Контекст)/5);
           ЗаменитьТекст("(ЧастьТекста1)", Лев(Контекст,ПоЧастям));
           ЗаменитьТекст("(ЧастьТекста2)", Сред(Контекст, ПоЧастям+1, ПоЧастям));
           ЗаменитьТекст("(ЧастьТекста3)", Сред(Контекст, ПоЧастям*2+1, ПоЧастям));
           ЗаменитьТекст("(ЧастьТекста4)", Сред(Контекст, ПоЧастям*3+1, ПоЧастям));
           ЗаменитьТекст("(ЧастьТекста5)", Сред(Контекст, ПоЧастям*4+1));
       КонецЕсли;
13 Serg_1960
 
18.07.13
10:58
(12) + сорри за много буковок, написано было давно, не мною, но оставил - работает да и ладно :)