ОБСУЖДЕНИЕ

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

30 ответов 11,7 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Всем привет!
Вопрос состоит вот в чем:

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

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

как бить?
 
Есть проблема в обрезке значения?
@left(NameFile;".")....
strleft(NameFile,".")
 
  • Нравится
Реакции: magistr
на собаках думаю сложновато будет.
Я писал это все в бекэнде. Смотри NotesEmbeddedObjects.
для имен аттачей тебе подойдут свойства Name или Source
 
да нет мне только в скрипте нуна

но вот незадача какая то где ошибка то?
Код:
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
 
ss$ = Strleftback(o.name, ".")

"." - кавычки, точка, кавычки. не надо ни каких пробелов))
 
ss$ = Strleftback (o.name, " . ")
 
Если надо только имя файла, то
Код:
ss$ = Strleft(sourcestr, ".")
---уточнение :)---

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

я так уже пробовал ничево не изменилось:)
 
fn = o.name
Const sourcestr = " fn " 'что это???
ss$ = Strleftback (fn, " . ") не присваивает накакова значения



Ещё проверьте свой код, приаттачив два файла с одинаковым именем.
 
Опа, а я и не увидел, что там константа режется :)
 
ToxaRat
А если в имени файла есть точка :)
 
да в имени файла есть точка и не одна.:) после первой точки может бить или одна или 2 цифри
фал будет обзиватся так : xxxxx.x(x).doc(pdf)


Чудеса.....полтергейст какойто..... все чудейснешим образом заработало:))))))) к обеду ничерта не работало, только что проверил все гуд:))))
 
ToxaRat
Всё-равно собаки тут говно.
Если в доке было вложено 2 аттачмента с одним и тем же именем, собаки вернут внутреннее имя (AHUU24G), а на скрипте можно получить настоящее.
Тем более задача стоит как-бэ на скрипте написать :)
 
идем дальше ;)
f1 = evaluate({@LeftBack(@AttachmentNames; ".")}, DocA)
f2 = evaluate({@LeftBack(@AttachmentNames; ".")}, DocB)

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

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

не знаю как вы, но в данном случае использовать чистый скрипт не разумно - не раз на этом обламывался
 
Ну Evaluate порнуха ж, разве не?
Кмк, именно скриптовая задача ;)

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

Статистика тем

Создано
Cleric84,
Последний ответ от
Cleric84,
Ответы
30
Просмотры
11 676