Имя: Пароль:
1C
1С v8
Условие в запросе
0 Новичёк123123
 
10.08.11
12:52
Доброго времени суток) Такая беда есть запрос, необходимо сделать так что бы в него вытягивались счета длина названий которых рана 3 (104,105,106). Можно конечно проверять и после того как вятянули данные из запроса но старший сказал что это отчет должен рабоать быстро поэтому нужно в самом запросе ставить условие. Как поставить это условие СтрДлина(Результат.СчетУчета)=3 в запрос?

Код запроса:    Запрос.Текст="ВЫБРАТЬ
                |    ПараметрыАмортизации.ОсновноеСредство КАК ОсновноеСредство,
                |    ПараметрыАмортизации.Организация КАК Организация,
                |    ПервоначальныеСведения.ИнвентарныйНомер КАК ИнвНом,
                |    ХозрасчетныйОстаткиИОбороты.Счет КАК СчетУчета,
                |    ПервоначальныеСведения.СпособНачисленияАмортизации КАК СпособНачисленияАмортизации,
                |    ПервоначальныеСведения.ПервоначальнаяСтоимость КАК ПервоначальнаяСтоимость,
                |    ПараметрыАмортизации.ЛиквидационнаяСтоимость КАК ЛиквидационнаяСтоимость,
                |    ПараметрыАмортизации.СрокПолезногоИспользования КАК СрокПолезногоИспользования,
                |    ПараметрыАмортизации.СрокИспользованияДляВычисленияАмортизации КАК ИспользованиеДляВычисленияАмортизации
                |ИЗ
                |    РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&ДатаКон, ПервоначальнаяСтоимость > 0.01) КАК ПервоначальныеСведения
                |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыАмортизацииОСБухгалтерскийУчет.СрезПоследних КАК ПараметрыАмортизации
                |        ПО ПервоначальныеСведения.ОсновноеСредство = ПараметрыАмортизации.ОсновноеСредство
                |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты КАК ХозрасчетныйОстаткиИОбороты
                |        ПО ПервоначальныеСведения.Организация = ХозрасчетныйОстаткиИОбороты.Организация
                |            И ПервоначальныеСведения.ОсновноеСредство = ХозрасчетныйОстаткиИОбороты.Субконто1
                |ГДЕ
                |    ПервоначальныеСведения.Организация = &Организация
                |
                |СГРУППИРОВАТЬ ПО
                |    ПараметрыАмортизации.ОсновноеСредство,
                |    ПараметрыАмортизации.Организация,
                |    ПервоначальныеСведения.ИнвентарныйНомер,
                |    ХозрасчетныйОстаткиИОбороты.Счет,
                |    ПервоначальныеСведения.СпособНачисленияАмортизации,
                |    ПервоначальныеСведения.ПервоначальнаяСтоимость,
                |    ПараметрыАмортизации.ЛиквидационнаяСтоимость,
                |    ПараметрыАмортизации.СрокПолезногоИспользования,
                |    ПараметрыАмортизации.СрокИспользованияДляВычисленияАмортизации
                |
                |УПОРЯДОЧИТЬ ПО
                |    СчетУчета";
               
   Запрос.УстановитьПараметр("ДатаКон", новый Граница(КонецДня(ДатаКон),ВидГраницы.Включая));
   Запрос.УстановитьПараметр("Организация", Организация);
1 Нуф-Нуф
 
10.08.11
12:55
первым запросом получить список счетов длина которых =3,
во втором запросе использовать результат первого в качестве условия
2 Wobland
 
10.08.11
12:55
длина строки в запросе не вычисляется
3 Wobland
 
10.08.11
12:57
можно сформировать свой СЗ со счетами и в запрос уже подвосывать его. Хозрасчётный(,,,Счёт В (&СписокСчетов))
4 Нуф-Нуф
 
10.08.11
12:59
(3) имхо можно и в запросе получить, извернувшись через выразить как строка(2) и строка(3) и сравнения
5 cViper
 
10.08.11
12:59
используй like
6 Ursus maritimus
 
10.08.11
13:00
Дебильное условие - 100% неправильный подход к решению задачи
7 Генератор
 
10.08.11
13:00
ПОДОБНО("___") вроде должно работать?
8 Новичёк123123
 
10.08.11
13:07
понял спасибо) сейчас почитаю про подобно)
9 Wobland
 
10.08.11
13:11
(7) гениально! спасибо
10 Reset
 
10.08.11
13:18
(0) Старший тебе сказал что работать должно быстро. Ты почему-то это интерпретировал как "должно работать через опу". Это, глядь, не одно и тоже.
11 Новичёк123123
 
10.08.11
13:27
(10) Так он и сказал убрать все четырёхзначные счета, будь моя воля я бы не убирал(
12 if1c
 
10.08.11
14:56
(11)так стань старшим и не убирай, делов то
13 Ненавижу 1С
 
гуру
10.08.11
15:00
ПОДСТРОКА(Код,1,3)=Код
14 Reset
 
10.08.11
15:10
(13) Неверно.
Верное решение в (5),(7).

Самое верное - в (6)
15 hhhh
 
10.08.11
15:18
(14) НЕ, похоже (13) верней.
16 Генератор
 
10.08.11
15:25
(13) те у которых меньше 3 символов тоже могут попасть
17 hhhh
 
10.08.11
15:28
(16) похоже нет таких
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.