|
Можно ли получить обьект по текстовому виду ссылки? | ☑ | ||
---|---|---|---|---|
0
Ц_У
10.11.08
✎
15:24
|
Есть список ссылок вида:
"Заказ покупателя ТРД00000119 от 01.10.2008 18:47:45" Можно ли получить объект по такому параметру? Мозг не включается... |
|||
1
and2
10.11.08
✎
15:25
|
(0) выреж номер и ищи.
|
|||
2
Sadovnikov
10.11.08
✎
15:26
|
(0) Где эти "ссылки" взял?
|
|||
3
Ц_У
10.11.08
✎
15:26
|
(1)
Счет-фактура выданный ТРД00000083 от 03.10.2008 9:56:03 Реализация товаров и услуг ТРД00000083 от 03.10.2008 9:56:33 Заказ поставщику ТРД00000083 от 29.10.2008 14:09:39 Да ну, а тут что вырезать?)) |
|||
4
vde69
10.11.08
✎
15:27
|
Это видимо Представление, тогда запросом можно
|
|||
5
Ц_У
10.11.08
✎
15:27
|
(2) Да в любой отчет выведи реквизит "ссылка" у локумента
|
|||
6
dimoff
10.11.08
✎
15:29
|
Парсишь по пробелам, идешь с конца, последнее значение - время, предпоследнее - дата, четвертое с конца - Номер, все что до него конкатинируешь в одну строку через пробел и ищешь в метаданных документов Синоним.
Но это только для документов. |
|||
7
v_rtex
10.11.08
✎
15:29
|
(5) ответ в (1)
|
|||
8
Sadovnikov
10.11.08
✎
15:31
|
(5) Очень интересно... В "любом отчете" можно нормальную ссылку получить, а не только текстовое представление документа.
|
|||
9
vde69
10.11.08
✎
15:31
|
(7) ответ в 4
в запросе пишешь условие ТвойДокумент.Представление = &Параметр и все |
|||
10
Sadovnikov
10.11.08
✎
15:32
|
(9) Не торопись :) Прочитай (5).
|
|||
11
dimoff
10.11.08
✎
15:32
|
В 4 не ответ а пример зависания компа на полдня минимум
|
|||
12
Ц_У
10.11.08
✎
15:34
|
Ненене... вы меня не поняли, тип документа может быть любой, я думал что можно типа как-то так:
Метаданные.Документы.Найти("Счет-фактура выданный ТРД00000083 от 03.10.2008 9:56:03 ") Ну или что-то подобное :) |
|||
13
and2
10.11.08
✎
15:34
|
(10) получить представление а потом коноебиться ища ссылку :).
|
|||
14
and2
10.11.08
✎
15:35
|
(12) получай ссылку в запросе сразу.
|
|||
15
Sadovnikov
10.11.08
✎
15:35
|
(13) Во-во.
|
|||
16
dimoff
10.11.08
✎
15:35
|
(12) 6 почитай
|
|||
17
vde69
10.11.08
✎
15:35
|
(10)(11) ну не буду мешать :)
|
|||
18
Defender aka LINN
10.11.08
✎
15:36
|
(9) Ну-ну...
|
|||
19
dimoff
10.11.08
✎
15:37
|
(17) Ты не мешаешь
|
|||
20
Ц_У
10.11.08
✎
15:37
|
(12) Да что вы мне про Фому, я вам про Ерему...
У меня есть только текстовое представление в отдельном файле и база, в которой их нужно найти, ну не руками же... |
|||
21
Ц_У
10.11.08
✎
15:37
|
(20) было к (14) :)
|
|||
22
and2
10.11.08
✎
15:38
|
(20) тогда в (6) все сказано.
|
|||
23
Sadovnikov
10.11.08
✎
15:38
|
(20) Заметь, про отдельный файл ты только в (20) сказал.
|
|||
24
vde69
10.11.08
✎
15:42
|
(23)(22) так Вы хотите по ОДНОЙ строке искать? я вообще думал в запросе сразу таблицу загнать, и за 1 подход взять вес
|
|||
25
Sadovnikov
10.11.08
✎
15:43
|
(24) да я вообще хочу телько одного - чтобы авторы веток как можно быстрее ВСЮ необходимую информацию о проблеме выдавали...
|
|||
26
dimoff
10.11.08
✎
15:46
|
(24) Дмитрий, вы никогда не слышали про то, чем поиск по индексируемыем полям отличается от поиска по неиндексируемым? Преинтереснейшая, скажу вам, штука :)
(25) Зачем это тебе? |
|||
27
Ц_У
10.11.08
✎
15:46
|
Есть файл со списком "ссылок", любых обьектов, которые нужно удалить из базы,
как это сделать? Полагаю, что через метаданные, придется пройтись по всем, и все.. как и куда идти забыл.. :) |
|||
28
Serg_1960
10.11.08
✎
15:46
|
Ветка случайно не про утренний парсинг окна / файла сообщений после ночного запуска обработки? :))
|
|||
29
Ц_У
10.11.08
✎
15:47
|
(28) упс... :)
|
|||
30
Sadovnikov
10.11.08
✎
15:52
|
(26) Да фиг его знает... Наверное, что бы правильно на вопрос ответить. Или понять, что я правильного ответа не знаю...
В общем, суета сует... |
|||
31
Serg_1960
10.11.08
✎
15:53
|
(29) Я к тому, что если это Ваша обработка, тогда может сразу гуиды выводить? :))
|
|||
32
dimoff
10.11.08
✎
15:55
|
(30) Конечно суета сует, любой дурак ответит на вопрос, который правильно поставлен, самое интересное догадаться что имеется ввиду, а так скука да и только, какой интерес отвечать то, что ты априори знаешь.
|
|||
33
Sadovnikov
10.11.08
✎
15:56
|
(32) Я помедитирую над этой мыслью :)
|
|||
34
dimoff
10.11.08
✎
15:58
|
(33) :)
|
|||
35
MRAK
10.11.08
✎
15:59
|
(32) это тогда к Сове обращайся)
|
|||
36
Живой Ископаемый
10.11.08
✎
16:06
|
(32) Это прямо философия доктора Хауса...
Вот кстати краткое содержание: http://ifun.ru/view/46295 Он именно поэтому не желала рабоать в клинике потому что там вечно больные со скучными болезнями.... |
|||
37
Serg_1960
10.11.08
✎
16:21
|
Строки определенного формата? Тогда проще :) Я бы начал так болванку писать:
// сначало типа так: ПредставлениеТип = Новый Соответствие; Для Документ Из Метаданные.Документы Цикл ПредставлениеТип.Вставить(Документы.Представление,Документ.Имя); КонецЦикла; // а дальше в цикле строки парсить Строка = "Реализация товаров и услуг ТРД00000083 от 03.10.2008 9:56:33"; Поз1 = Найти(Строка,"ТРД"); Поз2 = Найти(Строка,"от"); Представление = Лев(Строка,Поз1-2); Номер = Сред(Строка,Поз1,Поз2-Поз1-1); // тут я могу наврать - лень считать ДатаС = Сред(Строка,Поз2); // см. выше :) ДатаС = СтрЗаменить(ДатаС," ",""); ДатаС = СтрЗаменить(ДатаС,":","."); // тут надо тоже колдовать: надо "09", а она зараза просто "9" ТипДокумента = ПредставлениеТип.Получить(Представление); ... |
|||
38
Ц_У
10.11.08
✎
18:43
|
Преобразование в массив текста специфическое ))
но мне и не надо, что бы красиво, надо что бы работало В принципе получилось универсально, если поменять метаданные, то результат все равно будет )) Всем спасибо. Процедура Кнопка1Нажатие(Элемент) СписокСсылок = Новый Массив; СоответствиеСсылок = Новый Соответствие; Текст = Новый ТекстовыйДокумент; Текст.УстановитьТекст(ЭлементыФормы.СписокСсылокТекст.Значение); Для Сч = 1 По Текст.КоличествоСтрок() Цикл Если (НЕ ПустаяСтрока(Текст.ПолучитьСтроку(Сч))) ИЛИ (Текст.ПолучитьСтроку(Сч)="") Тогда СписокСсылок.Добавить(Текст.ПолучитьСтроку(Сч)); КонецЕсли; КонецЦикла; Для Каждого Документ Из Метаданные.Документы Цикл Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПРЕДСТАВЛЕНИЕ(Ссылка) КАК Представление, |Ссылка КАК Ссылка ИЗ "+Документ.ПолноеИмя(); ТаблицаСсылок = Запрос.Выполнить().Выбрать(); Пока ТаблицаСсылок.Следующий() Цикл СоответствиеСсылок.Вставить(ТаблицаСсылок.Представление,ТаблицаСсылок.Ссылка); КонецЦикла; КонецЦикла; Для Каждого ЭлементМассива Из СписокСсылок Цикл СсылкаДок = СоответствиеСсылок.Получить(ЭлементМассива); КонецЦикла; КонецПроцедуры |
|||
39
dimoff
10.11.08
✎
18:54
|
Я считаю работать это будет намного дольше чем если идти по пути 6
|
|||
40
Ц_У
10.11.08
✎
19:01
|
(39)Как напишешь, стукни в аську скорости замерим,
долго, выбирает все ссылки на все документы, а что делать... А если там не Документ а, скажем, номенклатура... универсальность требует жертв =) |
|||
41
Jolly Roger
10.11.08
✎
19:07
|
(0) Представления у разных видов документов могут совпадать...
|
|||
42
dimoff
10.11.08
✎
21:51
|
(40) А чего писать, я алгоритм дал
Для Сч = 1 По Текст.КоличествоСтрок() Цикл //Здесь парсишь строку, получая Дату, номер и представление-синоним, писать лень, все очень просто Для Каждого Документ Из Метаданные.Документы Цикл Если Документ.Синоним = ТвойСиноним Тогда Запрос.Текст = Запрос.Текст + " |ОБЪЕДИНИТЬ ВСЕ |ВЫБРАТЬ Док.Ссылка ИЗ " + Документ.ПолноеИмя() + " КАК Док |ГДЕ Док.Номер = &Номер" + Счетчик + " И Док.Дата Между &ДатаС" + Счетчик + " И &ДатаПо" + Счетчик; Запрос.УстановитьПараметр("Номер" + Счетчик, НомерИзПредставления); Запрос.УстановитьПараметр("ДатаС" + Счетчик, НачалоДня(ДатаИзПредставления)); Запрос.УстановитьПараметр("ДатаПо" + Счетчик, КонецДня(ДатаИзПредставления)); Прервать; КонецЕсли; КонецЦикла; КонецЦикла; Удавляешь в тексте запроса первое ОБЪЕДИНИТЬ ВСЕ и результат этого запроса будет готовым набором ссылок |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |