Имя: Пароль:
1C
1C 7.7
v7: Отбор по реквизиту документа.
0 r_p
 
01.10.13
11:28
Приветствую. Есть конфа 7.7. Есть документ, у документа общий реквизит "Примечание" (Строка(256)), галочка "Отбор" в св-вах общего реквизита отжата и по причинам от меня не зависящий я не могу ее поставить.
Надо получить список документов со значением этого реквизита.
ВыбратьПоЗначению использовать не могу, из-за галочки "Отбор". Запросом не могу получить, пишет ошибку "Длина индекса превышает максимальную длину и не может быть уменьшена." Перебором делать долго. Есть еще варианты или я туплю где-то. Текст запроса на всякий случай:

ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ДатаНач по ДатаКон;
    |ОбрабатыватьДокументы все;
    |Без итогов;
    |ТекущийДокумент = Документ.Получение.ТекущийДокумент;
    |Примечания = Документ.Получение.Примечания;
    |Группировка ТекущийДокумент;
    |Группировка Примечания;
    |Условие(Примечания = Примечание);
    |";//}}ЗАПРОС
1 КапЛей
 
01.10.13
11:30
мдя... отбор по строке, да еще скорее всего неограниченной длины это пять!
2 r_p
 
01.10.13
11:31
(1) Знаю что жесть. Она не ограничена. 256 символов.
3 r_p
 
01.10.13
11:32
Конфу писал юный рарусец. Проклинаем его ежедневно.
4 VladZ
 
01.10.13
11:33
(0) "Надо получить список документов со значением этого реквизита" - зачем? Точнее так: зачем анализировать весь бред из примечания длинной 256 символов?
5 КапЛей
 
01.10.13
11:33
а пользуются ей дятлы, которые заставляют такого же дятла юного мастерить ненужные отборы.
6 VladZ
 
01.10.13
11:33
Если вам нужна некая информация для анализа - вытаскивайте ее в отдельные реквизиты и анализируйте по ним.
7 VladZ
 
01.10.13
11:34
(5) Жестоко, хоть и в точку... С таким подходом не найдешь себе клиентов. :)
8 r_p
 
01.10.13
11:35
(6) Я бы с БОЛЬШИМ удовольствием так бы и сделал. Но конфа стоит на over 9000 машинах и поменять конфу как либо не получится.
9 КапЛей
 
01.10.13
11:40
(8) зачем отбор по примечанию? проверить не написал ли кто на более чем 9000 машинах случайно "Войну и Мир"?
10 oslokot
 
01.10.13
11:44
(0) Просто выбрать по условию ПустаяСтрока(Примечание) = 0 ?
Попробуй прямым запросом
11 r_p
 
01.10.13
11:45
Ладно. Понял что вопрос скорее политический, чем по коду. Буду продавливать создание нового реквизита.
12 oslokot
 
01.10.13
11:46
(10) а, сравнивать с чем-то. Ну тоже прямым запросом можно быстро вытянуть
13 Ёпрст
 
01.10.13
11:47
ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)

    |Период с ДатаНач по ДатаКон;
    |ОбрабатыватьДокументы все;
    |Без итогов;
    |ТекущийДокумент = Документ.Получение.ТекущийДокумент;
    |Примечания = Документ.Получение.Примечания;
    |Группировка ТекущийДокумент;
    |Условие(Найти(Примечания,Примечание)>0);
    |";//}}ЗАПРОС
14 Ёпрст
 
01.10.13
11:47
|Условие(Найти(Примечания,СокрЛП(Примечание))>0);
даже так лучшее
15 r_p
 
01.10.13
11:51
(13) Кстати работает, спасибо.
16 r_p
 
01.10.13
11:52
Привык к запросам 8-ки. Забыл что можно использовать стандартные функции в запросе.
17 PRO100 NigGaZ
 
01.10.13
14:42
ТекстЗапроса = "
|SELECT Получение.IDDOC [ТекущийДокумент $Документ.Получение]
|    , Cast(Left(Получение.Примечания, 256) AS Примечания
|FROM $Документ.Получение AS Получение With (NOLOCK)
|WHERE (Cast(Left(Получение.Примечания, 256) AS Примечания) = :Примечение)
|";
может так хз