Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как сделать фильтр по "КодОперации"??? (число прочтений - 3653 )
mc
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 59
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Как сделать фильтр по "КодОперации"???
21. Июля 2006 :: 16:05
Печать  
есть коды операций вида

ПродажаКупленногоТовара = "П";
ВозвратКупленногоТовара ="п";
РозничнаяПродажаКупленногоТовара = "Р";
ВозвратРозничныйКупленногоТовара = "р";

как в запросе по регистру установить отбор только по заданым кодам операции???

НаборЗаписей.УложитьСписокОбъектов(мсзКодыОперацийПродажи, "#ТаблицаКодОперации", ); - должно отрабатывать???
и как и где посмотреть временную таблицу "#ТаблицаКодОперации"???
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Как сделать фильтр по "КодОперации"???
Ответ #1 - 22. Июля 2006 :: 04:31
Печать  
Если коды операций это строки,то УложитьСписокОбъектов тут не поможет.
А поможет УстановитьТекстовыйПараметр.
Код
Выбрать все
ТекстЗапроса="
|...
|where $Рег.КодОперации in (:КО1, :КО2, :КО3, :КО4)
|...
|";
рс.УстановитьТекстовыйПараметр("КО1",ПродажаКупленногоТовара);
рс.УстановитьТекстовыйПараметр("КО2",ВозвратКупленногоТовара);
рс.УстановитьТекстовыйПараметр("КО3",РозничнаяПродажаКупленногоТовара);
рс.УстановитьТекстовыйПараметр("КО4",ВозвратРозничныйКупленногоТовара); 


  

1&&2&&3
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как сделать фильтр по "КодОперации"???
Ответ #2 - 22. Июля 2006 :: 07:56
Печать  
Правильнее в этом случае, IMHO,
Код
Выбрать все
where $Рег.КодОперации Collate Cyrillic_General_CS_AS in (:КО1, :КО2, :КО3, :КО4) 


или, со списком,
Код
Выбрать все
where $Рег.КодОперации Collate Cyrillic_General_CS_AS in (" + рс.мд.ПолучитьСтрокуИзСЗ(мсзКодыОперацийПродажи) + ") 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Как сделать фильтр по "КодОперации"???
Ответ #3 - 22. Июля 2006 :: 08:13
Печать  
да, точно: Collate Cyrillic_General_CS_AS
  

1&&2&&3
Наверх
 
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Как сделать фильтр по "КодОперации"???
Ответ #4 - 22. Июля 2006 :: 14:28
Печать  
berezdetsky писал(а) 22. Июля 2006 :: 07:56:
Правильнее в этом случае, IMHO,
Код
Выбрать все
where $Рег.КодОперации Collate Cyrillic_General_CS_AS in (:КО1, :КО2, :КО3, :КО4) 


или, со списком,
Код
Выбрать все
where $Рег.КодОперации Collate Cyrillic_General_CS_AS in (" + рс.мд.ПолучитьСтрокуИзСЗ(мсзКодыОперацийПродажи) + ") 



круто! это приведение к кодовой странице сервера? можно узнать, когда это выражение критично для использования, т.е. когда без него могут быть ошибки?


кстати, 1С для своих 36-ных идентификаторов использует кириллицу, кто знает?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как сделать фильтр по "КодОперации"???
Ответ #5 - 22. Июля 2006 :: 16:14
Печать  
DrACe писал(а) 22. Июля 2006 :: 14:28:
круто! это приведение к кодовой странице сервера? можно узнать, когда это выражение критично для использования, т.е. когда без него могут быть ошибки?

Это нужно, когда требуется регистрозависимое сравнение строк. CS - Case Sensitive.

DrACe писал(а) 22. Июля 2006 :: 14:28:
кстати, 1С для своих 36-ных идентификаторов использует кириллицу, кто знает?

Дык сам посчитай - 10 цифр, 26 букв латинского алфавита...  Подмигивание Зачем ей кириллица?
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Как сделать фильтр по "КодОперации"???
Ответ #6 - 23. Июля 2006 :: 08:51
Печать  
berezdetsky писал(а) 22. Июля 2006 :: 16:14:
Дык сам посчитай - 10 цифр, 26 букв латинского алфавита...  Подмигивание Зачем ей кириллица?

это следствие моего предыдущего ложного суждения - я решил, что Collate Cyrillic_General_CS_AS - это преобразование кодовой страницы, как-то связанное с кириллицей, потому и подумалось, что 1С может использовать кириллицу в идентификаторах...

"От этих пчел всего можно ожидать..." (с) Винни-Пух  Озадачен

PS кстати, раз тут используется
berezdetsky писал(а) 22. Июля 2006 :: 16:14:
...10 цифр, 26 букв латинского алфавита...
, то зачем нужно регистрозависимое сравнение? Ужас
  
Наверх
 
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Как сделать фильтр по "КодОперации"???
Ответ #7 - 23. Июля 2006 :: 09:54
Печать  
36-ричная система используется самой 1с-кой во внутренних идентификаторах объектов БД. Вот в IDDOC например. А у человека фильтр по значениям открытого поля БД "КодОперации" (Видимо типа Строка(1)). С кодами в разных регистрах:
РозничнаяПродажаКупленногоТовара = "Р"; //верхний рег
ВозвратРозничныйКупленногоТовара = "р"; // нижний рег
И 36-ричные тут совсем ни при чем. Тебе просто на твой ОФФ ответили Улыбка
  
Наверх
ICQ  
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Как сделать фильтр по "КодОперации"???
Ответ #8 - 23. Июля 2006 :: 10:04
Печать  
dnp писал(а) 23. Июля 2006 :: 09:54:
36-ричная система используется самой 1с-кой во внутренних идентификаторах объектов БД. Вот в IDDOC например. А у человека фильтр по значениям открытого поля БД "КодОперации" (Видимо типа Строка(1)). С кодами в разных регистрах:
РозничнаяПродажаКупленногоТовара = "Р"; //верхний рег
ВозвратРозничныйКупленногоТовара = "р"; // нижний рег
И 36-ричные тут совсем ни при чем. Тебе просто на твой ОФФ ответили Улыбка

тьфу, ты... спасибо за промывку зрения, клинануло меня на КодОперации из Торговли
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать