|
1с и Word более 255 символов | ☑ | ||
---|---|---|---|---|
0
perester
25.08.17
✎
11:50
|
Есть код
ПараметрыДокумента = Новый Соответствие; // получаем макет Макет = ЭтотОбъект.ПолучитьМакет(ИмяМакета); Excel = Макет.Получить(); // выводим данные Попытка Документ = Excel.Application.Documents(1); //получаем объект - документ. Это OLE объект, с ним можно работать используя все методы, которые существуют в VBA Документ.Activate(); ПараметрыДокумента.Вставить("{v8 Достижения}", ?(ЗначениеЗаполнено(ЭтотОбъект.ДопГлавныеДостижения), ЭтотОбъект.ДопГлавныеДостижения, "")); Для каждого ЭлементПД из ПараметрыДокумента Цикл Пока Документ.Content.Find.Execute(ЭлементПД.Ключ, , , , , , , , ,ЭлементПД.Значение) Цикл //Пустое тело. Вся работа выполняется в условии цикла КонецЦикла; КонецЦикла; Естественно в нем еще много всяких ПД.Вставить(тыры-пыры), но для примера подойдет С такой макетом в виде ворда первый раз связался, но я так поднял что ЭлементПД.Ключ это искомая строка и заменяется на ЭлементПД.Значение, вопроса у меня 2, точнее полтора: 1) Ключ обязательно должен быть в {}? 2) если нет, то почему не работает Для каждого ЭлементПД из ПараметрыДокумента Цикл если СтрДлина(ЭлементПД.Значение)>255 тогда ключ = ЭлементПД.Ключ; полная = ЭлементПД.Значение; длинаполной = Стрдлина(полная); ПараметрыДокумента.Удалить(ЭлементПД.Ключ); Если (длинаполной%235)>0 тогда колитер = Цел(длинаполной/235+1) Иначе колитер = цел(длинаполной/235) конецЕсли; для счетчик = 1 по колитер цикл значение = лев(полная,235); ПараметрыДокумента.Вставить(ключ, значение); новаядлина = (СтрДлина(полная)-235); полная = прав(полная,новаядлина); Если найти(ключ,"{v8")=0 тогда значение = Ключ+ Значение конецЕсли; Пока Документ.Content.Find.Execute(Ключ, , , , , , , , ,Значение) Цикл //Пустое тело. Вся работа выполняется в условии цикла КонецЦикла; ПараметрыДокумента.Удалить(Ключ); Ключ = прав(значение,20); конеццикла; Иначе Пока Документ.Content.Find.Execute(ЭлементПД.Ключ, , , , , , , , ,ЭлементПД.Значение) Цикл //Пустое тело. Вся работа выполняется в условии цикла КонецЦикла; КонецЕсли КонецЦикла; Или как это реализовать? |
|||
1
Fragster
гуру
25.08.17
✎
11:52
|
странно, в заголовке ворд, а в сообщении - эксель
|
|||
2
perester
25.08.17
✎
11:54
|
(1) Только заметил, этот макет делал не я, устраняю ошибку с 255 символами, но сохраняет то он ворд файл :о
|
|||
3
perester
25.08.17
✎
11:55
|
(2) тип макета Active document, а еще в конфигураторе он как вордовский файл
|
|||
4
perester
25.08.17
✎
12:03
|
(0) смысл кода(второго): находит последние 20 символов предыдущего значения и говорит что ключ им равен, потом значение = ключ(20 предыдущих значений) и 235 следующих символов в цикле
но когда я его запускаю он очень долго думает и все, ворд через некоторое время запускается и говорит что слишком много синтаксических ошибок и продолжает думать |
|||
5
perester
25.08.17
✎
12:18
|
up, тонет
|
|||
6
perester
25.08.17
✎
20:30
|
Up*
|
|||
7
breezee
25.08.17
✎
21:04
|
(0) Вроде 1С теперь без эксель апликэйшн может рабоатть с экселем
|
|||
8
mikecool
25.08.17
✎
21:06
|
(0) 1 - да, 2 - хз, отладка что говорит?
я недавно первый раз столкнулся, послали в общий модуль, нашел, посмотрел и быстро все сделал |
|||
9
Alexandr_U1982
25.08.17
✎
22:36
|
(0)Проблему 255 знаков в Word можно решить с помощью закладок.
В шаблоне Word ставишь закладку. Большой текст режешь на куски по 255 символов и выводишь их перед закладкой так, чтобы закладка всегда указывала на конец введенного текста. Из 1с закладки Word доступные через свойство bookmarks. |
|||
10
perester
26.08.17
✎
02:18
|
(8) ну вот, а я то в цикле без {} искал, видимо из-за этого
(9) кажется понимаю, он не ищет и заменяет, а ставит закладку и в нее вставляет текст? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |