Имя: Пароль:
1C
 
Можно ли получить обьект по текстовому виду ссылки?
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 По Текст.КоличествоСтрок() Цикл
//Здесь парсишь строку, получая Дату, номер и представление-синоним, писать лень, все очень просто
     
Для Каждого Документ Из Метаданные.Документы Цикл
   Если Документ.Синоним = ТвойСиноним Тогда

        Запрос.Текст = Запрос.Текст + "
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ Док.Ссылка ИЗ " + Документ.ПолноеИмя() + " КАК Док
|ГДЕ Док.Номер = &Номер" + Счетчик + " И Док.Дата Между &ДатаС" + Счетчик + " И &ДатаПо" + Счетчик;

        Запрос.УстановитьПараметр("Номер" + Счетчик, НомерИзПредставления);
        Запрос.УстановитьПараметр("ДатаС" + Счетчик, НачалоДня(ДатаИзПредставления));
        Запрос.УстановитьПараметр("ДатаПо" + Счетчик, КонецДня(ДатаИзПредставления));

        Прервать;

     КонецЕсли;
КонецЦикла;
КонецЦикла;

Удавляешь в тексте запроса первое ОБЪЕДИНИТЬ ВСЕ и результат этого запроса будет готовым набором ссылок
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.