Прикрепить атачмент

Cleric-Lviv

Lotus team
03.01.2008
600
0
#1
Всем привет!
Вопрос состоит вот в чем:

когда я инициирую прикрепление атачмента с документа "А" в документ "В" то мне надобно сопоставить имя атачмента и номер документа если они одинаковие тогда прикрепляем если нет то надо спросить в юзера уверен ли он в прикриплении етого атачмента.

но вот незадача как достать имя атачмента я знаю но как расцепить ево? ведь видает полное имя 123.doc или 123.pdf....... а номер документа просто будет 123.................

как бить?
 

Kizarek86

Lotus team
20.07.2007
864
4
#2
Есть проблема в обрезке значения?
@left(NameFile;".")....
strleft(NameFile,".")
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#4
на собаках думаю сложновато будет.
Я писал это все в бекэнде. Смотри NotesEmbeddedObjects.
для имен аттачей тебе подойдут свойства Name или Source
 

Cleric-Lviv

Lotus team
03.01.2008
600
0
#6
да нет мне только в скрипте нуна

но вот незадача какая то где ошибка то?
Код:
If ( rtitemdocWithAttach.Type = RICHTEXT ) Then
Forall o In rtitemdocWithAttach.EmbeddedObjects
Msgbox o.name -- показивает полное имя атачмента
fn = o.name					
Const sourcestr = " fn "
ss$ = Strleftback (sourcestr, " . ") не присваивает накакова значения
Msgbox ss$ -- пустой 
End Forall 
End If
 

susinmn

Well-known member
16.10.2007
529
3
#7
ss$ = Strleftback(o.name, ".")

"." - кавычки, точка, кавычки. не надо ни каких пробелов))
 

Omh

Lotus team
04.07.2007
2 210
1
#9
Если надо только имя файла, то
Код:
ss$ = Strleft(sourcestr, ".")
---уточнение :)---

Точнее не так.
Надо отрезать extension
И потом получить оставшееся:
Код:
Ext = StrRightBack(<FULFILENAME>, ".")
FilenameOnly = Left(<FULFILENAME>, Len(<FULFILENAME>) - (Len(Ext) + 1)) '+1 это точка
 

TIA

:-)
Lotus team
15.05.2009
790
3
#11
fn = o.name
Const sourcestr = " fn " 'что это???
ss$ = Strleftback (fn, " . ") не присваивает накакова значения



Ещё проверьте свой код, приаттачив два файла с одинаковым именем.
 

Omh

Lotus team
04.07.2007
2 210
1
#12
Опа, а я и не увидел, что там константа режется :)
 

Cleric-Lviv

Lotus team
03.01.2008
600
0
#15
да в имени файла есть точка и не одна.:) после первой точки может бить или одна или 2 цифри
фал будет обзиватся так : xxxxx.x(x).doc(pdf)


Чудеса.....полтергейст какойто..... все чудейснешим образом заработало:))))))) к обеду ничерта не работало, только что проверил все гуд:))))
 

Omh

Lotus team
04.07.2007
2 210
1
#17
ToxaRat
Всё-равно собаки тут говно.
Если в доке было вложено 2 аттачмента с одним и тем же именем, собаки вернут внутреннее имя (AHUU24G), а на скрипте можно получить настоящее.
Тем более задача стоит как-бэ на скрипте написать :)
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 233
18
#18
идем дальше ;)
f1 = evaluate({@LeftBack(@AttachmentNames; ".")}, DocA)
f2 = evaluate({@LeftBack(@AttachmentNames; ".")}, DocB)

if f1(0)=f2(0) then
.......

и будет более глубокая проверка так как аттач может и не быть в поле вообще, а так, рядышком болтаться ;)
аттачей может быть много и там и там и опять таки в разных полях и т.д.

не знаю как вы, но в данном случае использовать чистый скрипт не разумно - не раз на этом обламывался
 

Omh

Lotus team
04.07.2007
2 210
1
#19
Ну Evaluate порнуха ж, разве не?
Кмк, именно скриптовая задача ;)

Ладно, углубились ;)
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#20
Не надо извращаться!!!
проверять аттачи на собаках а потом как копировать? Простое копирование RT-полей не поможет. Копировать поля $FILES системой запрещено.
Остается детач с последующим аттачем. Детач и аттач на собаках еще больший геморрой!
@AttachmentNames; и o.name - не всегда возвращают имя файла с расширением! Тут еще надо o.Source