Имя: Пароль:
1C
1C 7.7
v7: В OpenOffice Writer сделать таблицу заполняемую из 1с
0 Double_Medved
 
15.05.14
10:00
Добрый день! Стоит ТиС и OpenOffice, нужно значит заполнять из заявки печатный договор, фигачу его в опен офис, так как там иногда нужно добавлять целые абзацы - например не предусмотренные ранее сроки доставки и т.д., и вообще в writer конечно проще работать с текстом. Получилось создавать документ, заменять в нужных местах контрагента и т.д., но вот там в конце должна быть еще табличка - и вот блин как там табличку сделать, может знает кто? Количество строк в табличке меняется, то есть по количеству строк в документе.
1 Double_Medved
 
15.05.14
10:12
Кароче там что-то такое
scr = СоздатьОбъект("MSScriptControl.ScriptControl");
   scr.language = "javascript";
   scr.eval("Массив=new String");
   Массив = scr.eval("Массив");
   scr.AddCode("function SetItem(ind,val){Массив[ind]=val}");
  
   ServiceManager=СоздатьОбъект("com.sun.star.ServiceManager");
   scr.AddObject("ServiceManager",ServiceManager);
   Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
   Document = Desktop.LoadComponentFromURL("private:factory/swriter", "_blank", 0, Массив);
    Replace = ТекстовыйПроцессор.CreateReplaceDescriptor();
    Replace.SearchString  = "Контагент";
    Replace.ReplaceString = "Василий";
    Document.ReplaceAll(Replace);
Это вот как-то так можно заполнить шапку и т.д., а как табличку сделать?
2 spectre1978
 
15.05.14
10:17
А табличка может быть с любым к-вом строк, и одна, и стопицот? Просто если там к-во строк относительно ограниченное - скажем до десяти, то я бы создал ее фиксированного размера и менял бы в полях [Поле1Стр1], [Поле1Стр2]... а неиспользуемые заменил бы на прочерки. И все.
3 Double_Medved
 
15.05.14
10:22
(2) Ну табличка там одна, строк в среднем 5-10 (там расписаны предоставленные услуги и цены на них), но иногда бывает пару десятков. Блин может там можно как-то сделать одну строку таблицы, а потом копировать ее сколько надо раз и заменять там значения? Инфы как-то мало в интернете об этом, или ее фиг найдешь
4 spectre1978
 
15.05.14
10:23
(3) Сделайте приложением к договору спецификацию с этими услугами, и печатайте ее обычным 1Совским мокселем
5 spectre1978
 
15.05.14
10:24
вообще идея составлять в ворде текст из блоков типа абзацев и таблиц - она ущербная изначально. Тебя потом задерут, потому что вечно будет что-то не так. Подумай, как сделать как можно более "типовые" шаблоны, пусть их будет много... и менять в них по минимуму и по прозрачному алгоритму
6 Double_Medved
 
15.05.14
10:25
(4)Да так конечно можно сделать, менеджеры опплюются, хотят все с одной кнопки
7 spectre1978
 
15.05.14
10:27
Мое дело посоветовать. Опять-таки, спецификаций может быть много, сегодня один список, завтра договорились про другой - можно весь дог не переделывать, а приложить другую спеку.
8 Double_Medved
 
15.05.14
10:28
Сейчас они вообще занимаются чем-то неприличным. Открывают в ворде стандартный договор, копипастят в него из 1с контагента, сумму и т.д., потом то ли в экселе то ли еще где делают эту табличку, потом ее копипастят в ворд. Причем самые умные вставляют ее как ОЛЕ объект или что-то такое, а менее умные делают ее скриншот, обрезают в пейнте и вставляют как рисунок
9 Double_Medved
 
15.05.14
10:32
Обидно просто то что в 1с все данные эти расписаны - например заявка на газовую плиту и ее монтаж. 1с по типу номенклатуры может разобрать где оборудование и где услуги - и соответсвенно знает что плиту надо пихать в одно место, а монтаж плиты в другое. Можно было бы запихать это все в эксель - таблички там сделать просто. Но там много текста еще, который надо будет редактировать. Как вот с этим быть не знаю. Получается что в экселе наоборот - текст неудобно, таблички удобно. Получается что ни в в ворде ни в экселе это все неудобно.
10 Mikeware
 
15.05.14
10:34
(9) Я не понял, ты предлагаешь сделать это за тебя? тогда принято озвучивать цену.....
11 Double_Medved
 
15.05.14
10:40
(10)Не, просто мне надо скрестить 1с, ворд и эксель. Достаточно тривиальная задача в экселе неудобна для ворда и наоборот, как инь и янь. Товарищ spectre1978 предложил это разделить, и это пока что единственное рациональное решение.
12 Mikeware
 
15.05.14
10:42
(11) ну так в чем проблема? делай. задача для ворда несложная, для опен/либраоффисов чуть посложнее.
13 spectre1978
 
15.05.14
10:48
(11) как работать в ОО с таблицами - инфа, в принципе, есть немножко. Оттолкнуться можно от записи макроса в ОО Writer, кое-что есть вот здесь http://forum.vingrad.ru/topic-267855.html. Но похоже что придется повозиться
14 Дегенератор идей
 
15.05.14
11:28
в шаблоне MsWord у меня шапка таблицы.. в обработке просто добавляю строки
    Договор=Word.ActiveDocument();
    Договор.Tables(2).Range.Select();
    
    Таблица=Word.Selection();
    
    Для Й =1 По Спецификация.КоличествоСтрок() Цикл
        //    Договор.Tables(2).Cell(Й+1,2).Range.Font.Name = "Verdana";     
        Спецификация.ПолучитьСтрокуПоНомеру(Й);
        Таблица.InsertRowsBelow(1);
        Договор.Tables(2).Cell(Й+1,1).Range.Text = Строка(Й);//номер строки  
        Договор.Tables(2).Cell(Й+1,1).Range.Font.Bold = 0;
        Договор.Tables(2).Cell(Й+1,1).Range.Font.Size = 9;
        Договор.Tables(2).Cell(Й+1,2).Range.Text = СокрЛП(Спецификация.Номенклатура.Артикул);
        Договор.Tables(2).Cell(Й+1,2).Range.Font.Bold = 0;
        Договор.Tables(2).Cell(Й+1,2).Range.Font.Size = 10;  
        Договор.Tables(2).Cell(Й+1,2).Range.ParagraphFormat.Alignment = 1;         
        Договор.Tables(2).Cell(Й+1,3).Range.Text = СокрЛП(Спецификация.Номенклатура);
        Договор.Tables(2).Cell(Й+1,3).Range.Font.Bold = 0;
        Договор.Tables(2).Cell(Й+1,3).Range.Font.Size = 9;
        Договор.Tables(2).Cell(Й+1,3).Range.ParagraphFormat.Alignment = 0;
        Договор.Tables(2).Cell(Й+1,4).Range.Text = СокрЛП(Спецификация.Количество);
        Договор.Tables(2).Cell(Й+1,4).Range.Font.Bold = 0;
        Договор.Tables(2).Cell(Й+1,4).Range.Font.Size = 9;
        Договор.Tables(2).Cell(Й+1,4).Range.ParagraphFormat.Alignment = 2;
        Договор.Tables(2).Cell(Й+1,5).Range.Text = СокрЛП(Спецификация.Единица);
        Договор.Tables(2).Cell(Й+1,5).Range.Font.Bold = 0;
        Договор.Tables(2).Cell(Й+1,5).Range.Font.Size = 9;
        Договор.Tables(2).Cell(Й+1,6).Range.Text = СокрЛП(ГлФрм(Спецификация.Сумма/Спецификация.Количество));
        Договор.Tables(2).Cell(Й+1,6).Range.Font.Bold = 0;
        Договор.Tables(2).Cell(Й+1,6).Range.Font.Size = 8;
        Договор.Tables(2).Cell(Й+1,6).Range.ParagraphFormat.Alignment = 2;        
        Договор.Tables(2).Cell(Й+1,7).Range.Text = СокрЛП(ГлФрм(Спецификация.Сумма));
        Договор.Tables(2).Cell(Й+1,7).Range.Font.Bold = 1;
        Договор.Tables(2).Cell(Й+1,7).Range.Font.Size = 8;
        Договор.Tables(2).Cell(Й+1,7).Range.ParagraphFormat.Alignment = 2;
        
    КонецЦикла;
15 Дегенератор идей
 
15.05.14
11:29
во чего в своем избранном нашел:
http://help1c.com/faq/view/540.html

там вроде еще много статей и хороших примеров
16 spectre1978
 
15.05.14
12:36
(15) ключевое слово - опенофис. Там все совершенно по-другому
17 Дегенератор идей
 
21.05.14
10:47
(16) Все категории»Работа с Microsoft Office и OpenOffice
http://help1c.com/faq/cat/42.html
18 Сияющий Асинхраль
 
21.05.14
11:03
А нафиг ООО или МСО? уже большому количеству клиентов сделал договора в 1С, сколько помню ни одной претензии не было... Печатают и с таблицами и без таблиц, и со склонением ФИО и разными другими примочками...
19 Mikeware
 
21.05.14
11:06
(18) Удобно, однако. Юротдел делает/корректирует шаблоны договоров, и выкладывает их. совсем не беспокоя мою службу.
20 Мутабор
 
21.05.14
11:09
Фигасе прикольно
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
21 spectre1978
 
21.05.14
11:10
Глючок-с в движке. Безобидный, но все-таки
22 Мутабор
 
21.05.14
11:15
(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)
23 Сияющий Асинхраль
 
21.05.14
11:28
(19) Продвинутые у тебя юрики однако, почти и не встречал таких, большая часть максимум что могут сделать, колонку в экселе сложить :-(
24 Mikeware
 
21.05.14
11:29
(23) Ну, письменные инструкции порой творят чудеса... :-)даже с юристами.
25 Сияющий Асинхраль
 
21.05.14
11:33
(24) Учту... И договора так попробую... :-)
Ошибка? Это не ошибка, это системная функция.