Имя: Пароль:
1C
1С v8
Сравнение в запросе двух разных типов
,
0 zemskow
 
01.09.11
09:24
Приветствую уважаемые форумчане. Прошу подсказать.
2 Fragster
 
гуру
01.09.11
09:25
не равны
3 Wobland
 
01.09.11
09:28
равны
4 Нуф-Нуф
 
01.09.11
09:29
+1 к не равны
5 Нуф-Нуф
 
01.09.11
09:29
даешь голосовалку
6 zemskow
 
01.09.11
09:29
Стоит задача сделать отчет с использованием СКД В запросе Из справочника контрагенты вытащить первые 2 символа поля ИНН. В результате получаем Код региона. Затем сравнить код региона со значением поля РегистрСведений.АдресныйКлассификатор.КодАдресногоОбъектаВКоде 
7 luckyluke
 
01.09.11
09:31
(6) код адресного объекта в коде если не ошибаюсь число... где-то я такое делал...
8 zemskow
 
01.09.11
09:31
Сделал Вот так но неработает.
9 zemskow
 
01.09.11
09:31
ВЫБРАТЬ
   АдресныйКлассификатор.Наименование,
   АдресныйКлассификатор.Сокращение,
   ВложенныйЗапрос.Наименование КАК Наименование1,
   ВложенныйЗапрос.ИНН,
   ВложенныйЗапрос.Поле1
ИЗ
   РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           Контрагенты.ИНН КАК ИНН,
           ПОДСТРОКА(Контрагенты.ИНН, 1, 2) КАК Поле1,
           Контрагенты.Наименование КАК Наименование
       ИЗ
           Справочник.Контрагенты КАК Контрагенты) КАК ВложенныйЗапрос
       ПО АдресныйКлассификатор.КодАдресногоОбъектаВКоде = ВложенныйЗапрос.Поле1
10 zemskow
 
01.09.11
09:32
Инн - это число
11 zemskow
 
01.09.11
09:33
Простите вру Инн- строка. КодАдресногоОбъектаВКоде- число
12 Wobland
 
01.09.11
09:33
ВЫРАЗИТЬ(ИНН, Строка) - будет уже строка...
13 zemskow
 
01.09.11
09:34
Как сравнить не понятно. ВЫРАЗИТЬ не хочет работать
14 Wobland
 
01.09.11
09:34
(13) ну надо как-то его заставить
15 luckyluke
 
01.09.11
09:35
(12) не сработает.
(13) я делал соответствие строк и чисел от 01 до 99, а потом уже соединял.
16 luckyluke
 
01.09.11
09:38
Я делал что-то вроде этого:
ВЫБРАТЬ
   0 КАК Число,
   "0" КАК Строка
ПОМЕСТИТЬ ВТ_СоответствиеЧиселИСтрок

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   1,
   "1"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   2,
   "2"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   3,
   "3"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   4,
   "4"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   5,
   "5"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   6,
   "6"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   7,
   "7"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   8,
   "8"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   9,
   "9"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   АдресныйКлассификатор.Наименование КАК Наименование,
   АдресныйКлассификатор.Сокращение КАК Сокращение,
   ВТ_СоответствиеЧиселИСтрок.Строка + ВТ_СоответствиеЧиселИСтрок1.Строка КАК ЧислоСтрока
ИЗ
   РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор
       ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СоответствиеЧиселИСтрок КАК ВТ_СоответствиеЧиселИСтрок
       ПО (АдресныйКлассификатор.ТипАдресногоЭлемента = 1)
           И ((ВЫРАЗИТЬ(АдресныйКлассификатор.КодРегионаВКоде / 10 - 0.5 КАК ЧИСЛО(1, 0))) = ВТ_СоответствиеЧиселИСтрок.Число)
       ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СоответствиеЧиселИСтрок КАК ВТ_СоответствиеЧиселИСтрок1
       ПО (АдресныйКлассификатор.ТипАдресногоЭлемента = 1)
           И (АдресныйКлассификатор.КодРегионаВКоде - (ВЫРАЗИТЬ(АдресныйКлассификатор.КодРегионаВКоде / 10 - 0.5 КАК ЧИСЛО(1, 0))) * 10 = ВТ_СоответствиеЧиселИСтрок1.Число)
ГДЕ
   АдресныйКлассификатор.ТипАдресногоЭлемента = 1
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан