|
0 / 0 / 0
Регистрация: 14.09.2007
Сообщений: 428
|
|
1С+word23.10.2008, 09:26. Показов 34350. Ответов 10
Метки нет (Все метки)
ли создовать документ в фомате word из 1С??? и обратно импортировать в 1С 7.7 (если конечно документ соответсвует шаблону)????
Где можно достать информацию с примерами по использованию worda???? Много как всегда хочу!!! Но что поделать!!! Задумка простая, прикольно но у меня wordа как такового не установлено (у меня опен офисссссссссссссс - блин) вот так я работаю!!!!
0
|
|
| 23.10.2008, 09:26 | |
|
Ответы с готовыми решениями:
10
Сохранение макета в Word (MXL --> таблица в Word) Word.Application. Взаимодействие с word. Добавить общие шаблоны *.dot в папку appdata и в word Проблема с $word=new COM("word.application") or die("Couldn ''t start Word!"); |
|
0 / 0 / 0
Регистрация: 22.04.2010
Сообщений: 38
|
|
| 23.10.2008, 10:45 | |
|
[codebox]Если СокрЛП(ПутьКПечФорме)<>"" Тогда
Если Найти(ПутьКПечФорме,".odt")>0 Тогда //OpenOffice Состояние("Создаем документ OO Writer..."); scr=СоздатьОбъект("MSScriptControl.Scrip tControl"); scr.language="javascript"; scr.eval("Massiv=new Array()"); Massiv=scr.eval("Massiv"); //создали массив на ява ServiceManager=СоздатьОбъект("com.sun.st ar.ServiceManager"); Scr.AddObject("ServiceManager",ServiceMa nager); Desktop=ServiceManager.createInstance("c om.sun.star.frame.Desktop"); //сом объект FileNameSh = СокрЛП(ПутьКПечФорме); URL = СтрЗаменить(FileNameSh," ","%20"); URL = СтрЗаменить(URL,"\","/"); URL ="file://localhost/" + URL; Попытка DocumentSh=Desktop.LoadComponentFromURL( URL,"_blank",0, Massiv ); //шаблон текста Document=Desktop.LoadComponentFromURL("p rivate:factory/swriter","_blank",0, Massiv ); //новый документ Исключение КонецПопытки; dispatcher = ServiceManager.createInstance("com.sun.s tar.frame.DispatchHelper"); //компанента для копирования dispatcher.executeDispatch(DocumentSh.Cu rrentController.Frame, ".uno:SelectAll", "", 0, Massiv);//выделить все dispatcher.executeDispatch(DocumentSh.Cu rrentController.Frame, ".uno:Copy", "", 0, Massiv);//копировать dispatcher.executeDispatch(Document.Curr entController.Frame, ".uno:Paste", "", 0, Massiv);//вставить в новый документ DocumentSh.Close(0); //закрываем шаблон Для Инд=1 По Закладки.РазмерСписка() Цикл Закладка = СокрЛП(Закладки.ПолучитьЗначение(Инд)); ЗакладкаЦ = Закладка; Текст = Подстановка(Закладка); // ишем и заменяем SearchDesc=Document.createReplaceDescrip tor();//компанента для поиска SearchDesc.SearchString = Закладка;//искомый текст SearchDesc.ReplaceString = Текст;//замена Document.replaceAll(SearchDesc);// заменяем все по шаблону КонецЦикла; //Сетка TextTables = Document.getTextTables();//список таблиц документа Table = TextTables.getByIndex(12);//получаем нужную таблицу Rows = Table.getRows();//список строк таблицы ТТрафика = СоздатьОбъект("Справочник.ТипыТрафика"); ТСетка = СоздатьОбъект("Справочник.СеткаТарифов") ; ТТрафика.ИспользоватьВладельца(Тариф); Валюта = Подстановка("ТарифВалюта"); ПервыйПроход=0; Н=3; ТТрафика.ВыбратьЭлементы(); Пока ТТрафика.ПолучитьЭлемент()=1 Цикл Если ТТрафика.ЯвляетсяТарифицируемым = 0 Тогда Продолжить; КонецЕсли; //шапка Если ПервыйПроход=0 Тогда Table.getCellByPosition(0,Н).setString(Т Трафика.Наименование); Cell=Table.getCellByPosition(0,Н); //Ячейка таблицы CellCursor = Cell.createTextCursor();//выделяем текст CellCursor.paraAdjust = 0;//0 по левому краю Н=Н+1; Rows.insertByIndex(Н,1);//добавляем строку Table.getCellByPosition(0,Н).setString(" Объем трафика"); Cell=Table.getCellByPosition(0,Н); //Ячейка таблицы CellCursor = Cell.createTextCursor();//выделяем текст CellCursor.paraAdjust = 1;//1 по правому краю Table.getCellByPosition(2,Н).setString(" Стоимость"); ПервыйПроход=1; Иначе Н=Н+1; Rows.insertByIndex(Н,1);//добавляем строку Table.getCellByPosition(0,Н).setString(Т Трафика.Наименование); Cell=Table.getCellByPosition(0,Н); //Ячейка таблицы CellCursor = Cell.createTextCursor();//выделяем текст CellCursor.paraAdjust = 0;//0 по левому краю Н=Н+1; Rows.insertByIndex(Н,1);//добавляем строку Table.getCellByPosition(0,Н).setString(" Объем трафика"); Cell=Table.getCellByPosition(0,Н); //Ячейка таблицы CellCursor = Cell.createTextCursor();//выделяем текст CellCursor.paraAdjust = 1;//1 по правому краю Table.getCellByPosition(2,Н).setString(" Стоимость"); КонецЕсли; //сетка ЗнакОбъема = ?(Тариф.ТарифМегабайт=1," Mб."," Гб."); SearchDesc.SearchString = "ЗнакОбъема";//искомый текст SearchDesc.ReplaceString = ЗнакОбъема;//замена Document.replaceAll(SearchDesc); ТСетка.ИспользоватьВладельца(ТТрафика.Те кущийЭлемент()); ТСетка.ПорядокРеквизита("Интервал"); ТСетка.ВыбратьЭлементы(); ПерваяСтрочкаСетки=0; Пока ТСетка.ПолучитьЭлемент() = 1 Цикл Н=Н+1; Rows.insertByIndex(Н,1);//добавляем строку Если ПерваяСтрочкаСетки=0 Тогда Table.getCellByPosition(0,Н).setString(" 1 Мб."); Table.getCellByPosition(1,Н).setString(? (ТСетка.Интервал>=9999999.000,"и более",Строка(ТСетка.Интервал)+ЗнакОбъем а)); Table.getCellByPosition(2,Н).setString(С окрЛП(Строка(Формат(ТСетка.Стоимость,"Ч1 5.2. ")))); Table.getCellByPosition(3,Н).setString(С трока(Валюта + ". за 1 "+ЗнакОбъема)); ИнтервалОт=Строка(ТСетка.Интервал); ПерваяСтрочкаСетки=1; Иначе Table.getCellByPosition(0,Н).setString(И нтервалОт+ЗнакОбъема); Table.getCellByPosition(1,Н).setString(? (ТСетка.Интервал>=9999999.000,"и более",Строка(ТСетка.Интервал)+ЗнакОбъем а)); Table.getCellByPosition(2,Н).setString(С окрЛП(Строка(Формат(ТСетка.Стоимость,"Ч1 5.2. ")))); Table.getCellByPosition(3,Н).setString(С трока(Валюта + ". за 1 "+ЗнакОбъема)); ИнтервалОт=Строка(ТСетка.Интервал); КонецЕсли; КонецЦикла; КонецЦикла; dispatcher.executeDispatch(Document.Curr entController.Frame, ".uno:GoToStartOfDoc", "", 0,Massiv);//в начало документа Иначе//MS Word Состояние("Создаем документ MS Word..."); Если ФС.СуществуетФайл(ПутьКПечФорме) = 0 Тогда Предупреждение("Файл шаблона не найден"); Возврат; КонецЕсли; Word=СоздатьОбъект("Word.Application"); Word.Options.CheckSpellingAsYouType = 0; Word.Options.CheckGrammarAsYouType = 0; Word.Options.CheckGrammarWithSpelling = 0; Word.Documents.Add(ПутьКПечФорме); Document=Word.ActiveDocument; // ЗнакОбъема = ?(Тариф.ТарифМегабайт=1," Mб."," Гб."); // к = Закладки.РазмерСписка(); Для н = 1 по к Цикл Закладка = СокрЛП(Закладки.ПолучитьЗначение(н)); ЗакладкаЦ = Закладка; Текст = Подстановка(Закладка); // Заменяем пока закладки не кончатся ц = 0; Пока ц < 10 Цикл Метка2Текст(ЗакладкаЦ, Текст); ц = ц + 1; ЗакладкаЦ = Закладка + СокрЛП(ц); КонецЦикла; КонецЦикла; // Сетка BookMark = Document.Bookmarks("НачалоСетки"); BookMark.Select(); ТТрафика = СоздатьОбъект("Справочник.ТипыТрафика"); ТСетка = СоздатьОбъект("Справочник.СеткаТарифов") ; ТТрафика.ИспользоватьВладельца(Тариф); ТТрафика.ВыбратьЭлементы(); Валюта = Подстановка("ТарифВалюта"); первый = 1; Пока ТТрафика.ПолучитьЭлемент() = 1 Цикл Если ТТрафика.ЯвляетсяТарифицируемым = 0 Тогда Продолжить; КонецЕсли; ВидТрафика = ТТрафика.ТекущийЭлемент(); Для н = 1 по к Цикл Закладка = СокрЛП(Закладки.ПолучитьЗначение(н)); ЗакладкаЦ = Закладка; Текст = Подстановка(Закладка); // Заменяем пока закладки не кончатся ц = 0; Пока ц < 10 Цикл Метка2Текст(ЗакладкаЦ, Текст); ц = ц + 1; ЗакладкаЦ = Закладка + СокрЛП(ц); КонецЦикла; КонецЦикла; Если первый = 0 Тогда Word.Selection.InsertRowsBelow(1); КонецЕсли; первый = 0; Word.Selection.TypeText(СокрЛП(ТТрафика) ); Word.Selection.ParagraphFormat.Alignment = 0; Word.Selection.Borders(-4).LineStyle = 0; Word.Selection.MoveRight(1); Word.Selection.Borders(-4).LineStyle = 0; Word.Selection.MoveRight(1); Word.Selection.Borders(-4).LineStyle = 0; Word.Selection.MoveRight(1); Word.Selection.InsertRowsBelow(1); Word.Selection.TypeText("Объем трафика"); Word.Selection.ParagraphFormat.Alignment = 2; Word.Selection.Borders(-4).LineStyle = 0; Word.Selection.MoveRight(1); Word.Selection.Borders(-4).LineStyle = 1; Word.Selection.MoveRight(1); Word.Selection.TypeText("Стоимость"); Word.Selection.Borders(-4).LineStyle = 0; Word.Selection.MoveRight(1); Word.Selection.MoveRight(1); Word.Selection.InsertRowsBelow(1); ТСетка.ИспользоватьВладельца(ТТрафика.Те кущийЭлемент()); ТСетка.ПорядокРеквизита("Интервал"); ТСетка.ВыбратьЭлементы(); Если ТСетка.ПолучитьЭлемент() = 1 Тогда Интервал = ТСетка.Интервал; Стоимость = ТСетка.Стоимость; Word.Selection.TypeText("1 Мб"); Word.Selection.Borders(-4).LineStyle = 1; Word.Selection.MoveRight(1); Если ТСетка.ПолучитьЭлемент() = 0 Тогда Word.Selection.TypeText("и более"); Последний = 1; Иначе Word.Selection.TypeText(СокрЛП(Интервал) +ЗнакОбъема); Последний = 0; КонецЕсли; Word.Selection.Borders(-4).LineStyle = 1; Word.Selection.MoveRight(1); Word.Selection.TypeText(Формат(СокрЛП(Ст оимость),"Ч15.2. ")); Word.Selection.Borders(-4).LineStyle = 1; Word.Selection.MoveRight(1); Word.Selection.Borders(-4).LineStyle = 1; Word.Selection.TypeText(Валюта + ". за 1 "+ЗнакОбъема); Word.Selection.Borders(-4).LineStyle = 1; КонецЕсли; Пока Последний = 0 Цикл Стоимость = ТСетка.Стоимость; Word.Selection.InsertRowsBelow(1); Word.Selection.TypeText(СокрЛП(Интервал) +ЗнакОбъема); Word.Selection.Borders(-4).LineStyle = 1; Word.Selection.MoveRight(1); Интервал = ТСетка.Интервал; Если ТСетка.ПолучитьЭлемент() = 0 Тогда Word.Selection.TypeText("и более"); Последний = 1; Иначе Word.Selection.TypeText(СокрЛП(Интервал) +ЗнакОбъема); КонецЕсли; Word.Selection.Borders(-4).LineStyle = 1; Word.Selection.MoveRight(1); Word.Selection.TypeText(Формат(СокрЛП(Ст оимость),"Ч15.2. ")); Word.Selection.Borders(-4).LineStyle = 1; Word.Selection.MoveRight(1); Word.Selection.TypeText(Валюта + ". за 1 "+ЗнакОбъема); Word.Selection.Borders(-4).LineStyle = 1; КонецЦикла; КонецЦикла; Word.Visible=1; КонецЕсли;[/codebox] Есть еще по мелочам
0
|
|
|
0 / 0 / 0
Регистрация: 14.09.2007
Сообщений: 428
|
|
| 23.10.2008, 12:27 | |
|
Ты просто крут!!!!!! Спасибо!!!
Что у тебя есть по мелочам??? :blink:
0
|
|
|
0 / 0 / 0
Регистрация: 22.04.2010
Сообщений: 38
|
|
| 23.10.2008, 12:41 | |
|
Долго живу много работаю
0
|
|
|
syrkyyjy
|
|
| 05.11.2008, 10:51 | |
|
Книга Андрея Михайлова 1С предприятие системное прграммирование
|
|
|
0 / 0 / 0
Регистрация: 14.09.2007
Сообщений: 428
|
|
| 05.11.2008, 10:59 | |
|
sergeyji
да есть оно уже у меня вот читал!!!
0
|
|
|
syrkyyjy
|
|
| 08.11.2008, 04:22 | |
|
так а что конкретно надо
|
|
|
0 / 0 / 0
Регистрация: 14.09.2007
Сообщений: 428
|
|
| 16.02.2009, 11:24 | |
|
Как альтернатива опен офиса???
Ведь не у всех установлен офис, но и опен!!!! у кого есть пример с работой?
0
|
|
|
syrkyyjy
|
|
| 17.02.2009, 01:57 | |
|
А что такое open?
|
|
|
0 / 0 / 0
Регистрация: 14.09.2007
Сообщений: 428
|
|
| 17.02.2009, 07:36 | |
|
Опен офис - альтернатива майкрософта!!!
0
|
|
|
0 / 0 / 0
Регистрация: 22.04.2010
Сообщений: 38
|
||||||
| 17.02.2009, 11:39 | ||||||
0
|
||||||
| 17.02.2009, 11:39 | |
|
Помогаю со студенческими работами здесь
11
Поиск строк в шаблоне в word и вывод в таблицу в другой файл word Нарушение форматирования документов word 2010 при открытии в word 2013
MS Word 2003: как открыть файлы более новых версий Word? Работа метода Word.Selection.Find при поиске в документе Word Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|