|   |   | 
| 
 | Подключение word к 1С | ☑ | ||
|---|---|---|---|---|
| 0
    
        Meloni 09.08.12✎ 08:16 | 
        Кадровики в ворде формируют "Справку с места работы". Знаю,что можно подключить эту справку к 1С при помощи выбора макета типа Active document. Справку добавляю в документ "Прием на работу" и хотелось бы, чтобы данные для справки брались от туда. В ворде в самой справке написала вот так (нашла в инете пример, как сделать ссылки,чтобы 1С вставляла новые данные при каждом вызове печати):
  Дана {DOCVARIABLE ДокументСсылка.ПриемНаРаботу.Сотрудник \*MARGEFORMAT} о том, что он(а) действительно работает в {DOCVARIABLE СправочникСсылка.Организации \*MARGEFORMAT} ОАО «» г. в качестве {DOCVARIABLE ДокументСсылка.ПриемНаРаботу.Должность \*MARGEFORMAT} заместителя директора проекта {DOCVARIABLE ДокументСсылка.ПриемНаРаботу..ДатаПриема у \*MARGEFORMAT} Вопрос: что нужно прописать в модуле,чтобы вызывалась эта справка и вставлялись данные в соответствии с документом о приеме на работу? | |||
| 1
    
        manyak 09.08.12✎ 08:22 | ||||
| 2
    
        Meloni 09.08.12✎ 08:26 | 
        спасибо, маньяк, сейчас попробую!)     | |||
| 3
    
        Meloni 09.08.12✎ 08:28 | 
        как я поняла, тут в в самом коде уже присваивается дата? А мне как раз нужно,чтобы данные брались с документа в 1С     | |||
| 4
    
        Живой Ископаемый 09.08.12✎ 08:30 | 
        КомОбъект.Variables.Item("ДатаПриказа").Value=ЭтотОбъект.Дата;
  до субатомов разжевать? | |||
| 5
    
        Meloni 09.08.12✎ 08:32 | 
        нет, все понятно теперь. Спасибо     | |||
| 6
    
        Strogg 09.08.12✎ 08:33 | 
        1) НИЧЕГО не писать в модуле
  2) Создать внешнюю печатную форму 3) я, например, делаю примерно так как описано в (1) за исключением заполнения параметров: /**фрагмент кода, чтоб было понятно:/ Макет=ПолучитьМакет("МакСогласие"); MSWord=Макет.Получить(); // выводим данные Попытка Документ=MSWord.Application.Documents(1); Документ.Activate(); Замена = Документ.Content.Find; Замена.Wrap = 1; //чтобы не писать каждый раз Find Замена.Execute("/*Ш_ДатаТекущая*/", , , , , , , , ,Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy; ДЛФ=DD")); ------ | |||
| 7
    
        Meloni 09.08.12✎ 08:35 | 
        а в самом ворде как оставить текст? Как сейчас написано? или ссылки на поля по-другому пишутся?     | |||
| 8
    
        Strogg 09.08.12✎ 08:37 | 
        в активДокументе у тебя может быть написано что угодно. Заменяемые слова сам уже придумывай как назовешь. У меня, например, для текущей даты в актив документе есть /*Ш_ДатаТекущая*/     | |||
| 9
    
        Meloni 09.08.12✎ 08:38 | 
        меня интересует синтаксис написания     | |||
| 10
    
        manyak 09.08.12✎ 08:54 | 
        фото в студию!     | |||
| 11
    
        Strogg 09.08.12✎ 08:57 | 
        (10) он же вроде мужик)))
  Или ты..... о б-же!!! | |||
| 12
    
        manyak 09.08.12✎ 08:59 | 
        (11) внимательнее товарисчи! :)     | |||
| 13
    
        Strogg 09.08.12✎ 09:02 | 
        (12) ы:)))))
  Мелони, фот-ку, фот-ку!!!))) | |||
| 14
    
        Meloni 09.08.12✎ 09:03 | 
        ахаха)))     | |||
| 15
    
        Meloni 09.08.12✎ 09:04 | 
        сииин-тааак-сииис, пожалуйста)     | |||
| 16
    
        rasswet 09.08.12✎ 09:06 | 
        стукни в асю-дам пример на ИС. я делал трудовой договор в ворде.     | |||
| 17
    
        Meloni 09.08.12✎ 09:08 | 
        rasswet, icq уже давно не юзаю. Можно попросить отправить на мэйл?     | |||
| 18
    
        Meloni 10.08.12✎ 07:53 | 
        подскажите в чем ошибка?
  Справка = ПолучитьМакет("Макет"); // Получить объект из макета. MSWord = Справка.Получить(); НаименованиеСотрудника = ЭтотОбъект.Работники; Попытка Документ = MSWord.Application.Documents(1); Документ.Activate(); // Получить объект, который будем использовать для поиска и замены. Замена = Документ.Content.Find; // Заменить заранее определенные ключевые конструкции на требуемый текст. Замена.Execute("<ФИО>", Ложь, Истина, Ложь, , , Истина, , Ложь, НаименованиеСотрудника); // Далее аналогично для остальных ключевых конструкций. // Делаем видимым приложение и активизируем его. MSWord.Application.Visible = Истина; MSWord.Activate(); Исключение // Если произойдет ошибка выводятся данные об ошибке и объект закрывается. Сообщить(ОписаниеОшибки()); MSWord.Application.Quit(); КонецПопытки; {Документ.ПриемНаРаботу.Форма.ФормаДокумента.Форма(912)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (0x80020005) | |||
| 19
    
        Meloni 10.08.12✎ 07:57 | 
        ошибка появляется в этом месте:
  Замена.Execute("<ФИО>", Ложь, Истина, Ложь, , , Истина, , Ложь, НаименованиеСотрудника); | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |