Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: v7: работа с word через ole

Всех приветствую. Надо найти в абзаце ворда слово, от него выделить до начала абзаца и заменить текст.
Слово нахожу, его выделяю, дальше затык, не могу передать параметры.
Если нажимать кнопками, контрол+шифт+стрелкаВверх,
в макросе: Selection.MoveUp Unit:=wdParagraph, :=1, Extend:=wdExtend

Word = СоздатьОбъект("Word.Application");
Word.Visible = 1; 
Word.ActiveDocument.Select();
Word.Selection.Find.Text = "тест";
Если Word.Selection.Find.Execute() <> 0 Тогда
Word.Selection.ExtendMode = 1;// указываем на выделение текста

Word.Selection.MoveUp();  // сама команда

Иначе
    Предупреждение("ERROR> ", 2);
КонецЕсли;

Судя по макросу, параметр Extend:=wdExtend я вроде как указал, а вот как остальные (Unit и Count) - затык.
пробовал типа Word.Selection.MoveUp(1, 1, 1); тоже облом((

может, кто сталкивался, поделитесь. В интернете ничего не нашел(((
Ответ: О! допинал))), мало ли, кому сгодится
        Word.ActiveDocument.Select();
        Word.Selection.Find.Text = СловоВхода;
        Если Word.Selection.Find.Execute() <> 0 Тогда  // нашли

            Word.Selection.ExtendMode = 1;
            Word.Selection.MoveUp(4); 
ну и далее замена...
парметр нашел на
Вопрос: Робота с флажками в word через 1с

Добрый день!

Подскажите, пожалуйста, как через 1с переключить флажок в вордовском документе. Предварительно там создан флажок, по умолчанию флажок снят.
Ответ: Покажи скрином что конкретно хочешь?
Вопрос: Правильно вставить данные в Word-макет ВПФ

Здравствуйте. Возникла следующая ситуация:
Дорабатываю внешнюю обработку с анкетой физического лица в ломбарде.
Макет на печать составлен в MS Word. Есть следующие проблемы:

1) колонка с датой рождения не заполняется (при отрабатывании обработки пустая колонка)
- красным выделено поле, которое должно заполниться. Макет заполнял в соответствии с типовым договором займа. (в типовом параметр называется ДатаРожденияЗалогодателя и у меня так же).
Код:
    Данные.Вставить ("СтоимостьКредита", СтруктУсловияДоговора.СтоимостьКредитаБезПериода);
    Данные.Вставить ("НазваниеОрганизации2", СтруктЛеваяЧасть.ОрганизацияНаименование);
    Данные.Вставить ("ИННОрганизации", СтруктЛеваяЧасть.ОрганизацияИНН);
    Данные.Вставить ("КППОрганизации", СтруктЛеваяЧасть.ОрганизацияКПП);
    Данные.Вставить ("ЮрАдресОрганизации", СтруктЛеваяЧасть.ОрганизацияАдресЮридический);
    Данные.Вставить ("ТелефонОрганизации", СтруктЛеваяЧасть.ОрганизацияТелефон);
    Данные.Вставить ("РуководительОрганизации", СтруктРасчетОплаты.ФИОРуководителя);
    Данные.Вставить ("НазваниеКонтрагента", СтруктЛеваяЧасть.ФИОЗалогодателя);
    Данные.Вставить ("Паспорт", СтруктЛеваяЧасть.ПаспортныеДанныеЗалогодателя); 
    Данные.Вставить ("ДатаРождения", СтруктЛеваяЧасть.ДатаРожденияЗалогодателя);
Часть кода, все отрабатывает, кроме последней строки.

А это весь код функции
Код:
Функция Печать () Экспорт
    Состояние ("Вывод данных в Word...");
   
    Данные = ПолучитьДокументВордИзМакета ("Макет");
   
    Приложение = Данные.Приложение;
    Документ = Данные.Документ;
    Закладки = Документ.Bookmarks;
    Выделение = Приложение.Selection;
   
    Данные = Новый Структура;
   
    СоответствиеПараметров = ЛМБ_ПечатьЗалоговыхБилетов.ПолучитьДанныеПоЗалогу(
        СсылкаНаОбъект);
   
    СтруктЛеваяЧасть      = СоответствиеПараметров.Получить("ОсновныеПараметры");
    СтруктУсловияДоговора = СоответствиеПараметров.Получить("УсловияДоговора");
    СтруктРасчетОплаты    = СоответствиеПараметров.Получить("РасчетОплаты");
    СтруктМобПриложения   = СоответствиеПараметров.Получить("МобильноеПриложение");
   
    Данные.Вставить ("НомерДокумента", СтруктЛеваяЧасть.СерияЗБ + " " +
        СтруктЛеваяЧасть.НомерЗБ);
    Данные.Вставить ("ДатаДокумента", СтруктЛеваяЧасть.ДатаЗалога);
    Данные.Вставить ("ДатаДокумента2", СтруктЛеваяЧасть.ДатаЗалога);
    Данные.Вставить ("НазваниеОрганизации", СтруктЛеваяЧасть.ОрганизацияНаименование);
    Данные.Вставить ("РеквизитыКонтрагента", СтруктЛеваяЧасть.ОписаниеЗалогодателя);
    Данные.Вставить ("ПолнаяСтоимость",
        "" + СтруктУсловияДоговора.ПолнаяСтоимостьКредита + " %");
    Данные.Вставить ("ПолнаяСтоимостьПрописью",
        СтруктУсловияДоговора.ПолнаяСтоимостьКредитаСтрокойСИзмерением);
    Данные.Вставить ("СуммаЗайма", " " + СтруктЛеваяЧасть.СуммаОценки + " (" +  ОбщегоНазначения.СформироватьСуммуПрописью(СтруктЛеваяЧасть.СуммаОценки, Константы.ВалютаРегламентированногоУчета.Получить()) + ")");
   
        Данные.Вставить ("СуммаЗайма2", "" + СтруктЛеваяЧасть.СуммаЗайма + " (" +
        СтруктЛеваяЧасть.СуммаЗаймаСтрокой1 + ")");
        Данные.Вставить ("СрокДействия", СтруктЛеваяЧасть.ДатаВозврата +
        " (" + СтруктЛеваяЧасть.СрокЗайма + ")");
    Данные.Вставить ("ПроцентнаяСтавка",
        СтруктУсловияДоговора.ПолнаяСтоимостьКредитаСИзмерением);
    Данные.Вставить ("ДатаВозврата", СтруктЛеваяЧасть.ДатаВозврата);
    Данные.Вставить ("ДатаВозврата2", СтруктЛеваяЧасть.ДатаВозврата);
        Данные.Вставить ("ЗалоговаяВещь1", СтруктЛеваяЧасть.ЗалоговаяВещь1);
        Данные.Вставить ("ЗалоговаяВещь2", СтруктЛеваяЧасть.ЗалоговаяВещь2);
        Данные.Вставить ("ЗалоговаяВещь3", СтруктЛеваяЧасть.ЗалоговаяВещь3);
        Данные.Вставить ("ЗалоговаяВещь4", СтруктЛеваяЧасть.ЗалоговаяВещь4);
       
    Данные.Вставить ("СуммаПлатежа", СтруктУсловияДоговора.СуммаПриВыкупеВСрок +
        " (" + ОбщегоНазначения.СформироватьСуммуПрописью (
        СтруктУсловияДоговора.СуммаПриВыкупеВСрокРуб,
        Константы.ВалютаРегламентированногоУчета.Получить()) + ")");
    Данные.Вставить ("СрокДействия2", СтруктЛеваяЧасть.ДатаВозврата +
        " + " + СтруктЛеваяЧасть.СрокЗайма);
        Данные.Вставить ("СтоимостьКредита", СтруктУсловияДоговора.СтоимостьКредитаБезПериода);
    Данные.Вставить ("НазваниеОрганизации2", СтруктЛеваяЧасть.ОрганизацияНаименование);
    Данные.Вставить ("ИННОрганизации", СтруктЛеваяЧасть.ОрганизацияИНН);
    Данные.Вставить ("КППОрганизации", СтруктЛеваяЧасть.ОрганизацияКПП);
    Данные.Вставить ("ЮрАдресОрганизации", СтруктЛеваяЧасть.ОрганизацияАдресЮридический);
    Данные.Вставить ("ТелефонОрганизации", СтруктЛеваяЧасть.ОрганизацияТелефон);
    Данные.Вставить ("РуководительОрганизации", СтруктРасчетОплаты.ФИОРуководителя);
    Данные.Вставить ("НазваниеКонтрагента", СтруктЛеваяЧасть.ФИОЗалогодателя);
    Данные.Вставить ("Паспорт", СтруктЛеваяЧасть.ПаспортныеДанныеЗалогодателя); 
    Данные.Вставить ("ДатаРождения", СтруктЛеваяЧасть.ДатаРожденияЗалогодателя);
    //Данные.Вставить ("МестоРождения", СтруктЛеваяЧасть.МестоРожденияЗалогодателя);
    //Данные.Вставить ("ДатаНачалаОтношенийСКлиентом", СтруктЛеваяЧасть.ЛМБ_ДатаНачалаОтношенийСКлиентом);
    //Данные.Вставить ("ДатаОперации", СтруктЛеваяЧасть.ДатаОперации);
    Данные.Вставить ("АдресКонтрагента", СтруктЛеваяЧасть.АдресЗалогодателя);
    Данные.Вставить ("ТелефонКонтрагента", СтруктЛеваяЧасть.ТелефонЗалогодателя);
   
    ЗаполнитьСвойстваДокументаВорд (Выделение, Документ, Данные);
    Приложение.Visible = Истина;
КонецФункции // Печать
Если маловато инфы - поправьте.
Ответ:
Пропустил через отладчик пошагово. Всё заполнилось. Никаких ошибок не выдает, ничего. Я в замешательстве.
Вопрос: 1C ERP 8.3 Установлен безопасный режим. Получение COM для word

Доброго времени коллеги!
После обновления в 8.3, возникла проблема с открытием word через com объект. Ругается на безопасный режим.
Пробовали сначало просто внешней обработкой - не смогли найти решение, пришли к расширениям - аналогичная проблема.
ПРичем пробовали получить com из общего модуля. Процедура "УстановитьБезопасныйРежим(ложь)" выдает другую ошибку (говорит о необходимости работы в безопасном режиме) Права на пользователе полные.
Внешняя обработка работает корректно через Файл/Открыть
Причина написания своей обработки (внешней обработки в т.ч.) - сохранить базовую конфигурацию неизменной для простоты последующих обновлений (для того и в расширения конфигурации ушли)
Может кто сталкивался с подобной проблемой и может подсказать решение? Google ничего путнего не нашел, приведенные примеры в более менее походих ситуациях обойти ошибку не позволили
Ответ: Благодарю! Очень полезная информация и ссылка.
Правда в моем случае все решилось банальней, в настройках расширения (не через свойства пр. кнопки мыши, а через меню конфигурация) есть две галочки по безопасному режиму и опасным действиям. Убрав их, обработки начали выполняться.
Вопрос: v7: Перестала работать обработка для MS WORD

после смены MS WORD c 2003 на 2016 перестала работать обработка:

ДоговорШ = Word.Documents;
ДоговорШ.Open(ИмяФайлаШаблона,0,1);//открываем на чтение

Word.Visible = 0;
wdFindContinue = 1;                                                                                    
wdReplaceAll = 2;                    
True = 1;                                        
False = 0;
        
Word.Selection.Find.Execute("{1}", True, True, False, False, False, True, wdFindContinue,False," "+НомерДоговора, wdReplaceAll);

ругается:
Word.Selection.Find.Execute("{1}", True, True, False, False, False, True, wdFindContinue,False," "+НомерДоговора, wdReplaceAll);
{D:\BASE\EXTFORMS\ВОРД.ERT(105)}: Microsoft Word: Данная команда недоступна.

как исправить?
Ответ:
сохранили исходный файл как шаблон и все заработало

были *.doc, стали *.dot

ps. открыли в MS Word 2016 и выбрали "Сохранить как", потом "Шаблон 97-2003"
Вопрос: 1C (клиент-сервер) и Word

Платформа 8.3.6.2014. Конфигурация УТ 11.1.10.131. У документа есть печатная форма, макет которой имеет тип Active document (файл Word). Поскольку это печатная форма, то все телодвижения происходят в модуле менеджера, НО получить такой макет мы можем только на клиенте.

Макет = ПолучитьМакет("Макет");
Word = Макет.Получить();

На второй строке печать вылетает с ошибкой. Как это обойти, учитывая, что печатная форма должна формироваться по кнопке Печать.
Ответ: Разобрался. Если есть необходимость формировать печатные формы в Word или Open Office по фен-шую, то есть по кнопке Печать, как и обычные формы, то нужно в модуле менеджера в процедуре ДобавитьКомандыПечати указать, что форма начинает формироваться не в менеджере, а в общем модуле, который работает на клиенте. Например,

КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "ОбщийМодульКлиент.СформироватьПечатнуюФормуMSWord";
КомандаПечати.МенеджерПечати = "";
КомандаПечати.Идентификатор = "ФормаMSWord";
КомандаПечати.Представление = "Форма (MS Word)";

А дальше можно у же обращаться к процедурам и функциям менеджера для, например, получения данных.
Вопрос: Работа с шаблонами Word

Приветствую, ребята! У меня тут ступор небольшой. Потребовалось создать ВПФ для БП 3.0, да еще и чтоб шаблон вордовский подгружался. Думаю делать через ActiveDocument и использовать закладки. Вопрос . Не будет ли каких подводных камней, если юзвери будут пользоваться тонким клиентом?
Ответ:
Вроде работает
Вопрос: Как правильно закрыть процесс Word

Добрый день,
Подскажите, как правильно закрыть процесс Word, использовала
Word.Quit(0);
но потом диспетчер задач забивается процессами Word и приходится чистить их в ручную.
Ответ:
Спасибо большое, я опробую, о результатах напишу чуть позже
Вопрос: Макет Word

Долго открывается или не открывается шаблон Word созданный в 1С(ActiveDocument).
Шаблон 3-ёх страничный. Заметил, что если открыть или открыт сам Макет(в 1С), то все работает.
Кликните здесь для просмотра всего текста
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
&НаКлиенте
Процедура Сформировать(Команда)
Серверная();
КонецПроцедуры
 
&НаСервере                                          
Процедура Серверная()
 
Договор=РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
MSWord = Договор.Получить();
 
MSWord.Activate();  
 
ФормДат=Объект.Дата;        
MSWord.Variables.Item("FIO").Value=Объект.Пациент;
MSWord.Variables.Item("Vrach").Value= Объект.Врач.Наименование;
MSWord.Variables.Item("Data").Value=Формат(ФормДат,"ДЛФ=DD");
MSWord.Fields.UpDate();
 
MSWord.Application.Visible = Истина;
 
КонецПроцедуры
Ответ: Ozam, В управляемом приложении актив документом лучше не пользоваться)))
Данный код в клиент-серверой версии или сломается или просто будет на сервере открывать ворд)))



Добавлено через 1 минуту
Сообщение от Эксмет
на какой строке кода происходит зависание
Зависание происходит на строке
Сообщение от Ozam
КонецПроцедуры
Процедуры Серверная()
Вопрос: управление торговлей 11 (Демо) Печатная форма Word

Всем привет. все та же печатная форма, 3 дня с этим разбираюсь. Мне дали уже готовую внешнюю печатную форму (Во вложении). В качестве макета выступает документ MSWord договора купли-продажи (ЗаказКлиента), добавлен в Active Document. Задача: в документе, сделать маленькую правку, Нужно чтобы в нижней таблице был у организации
Закрытое акционерное общество «Торговый дом Комплексный» правильный адрес - "117342, Москва г, Севастопольский пр-кт, дом № 56", а не "г. Иркутск, ул. Щорса, 1". Мне говорили что это можно сделать через само предприятие, а не конфигурацию. вопрос как это сделать? я еще совсем новичок.

Вложения:

  • Размер файла:
    44,7 КБ
    Просмотров:
    3
Ответ:
Спасибо решил проблему