Имя: Пароль:
1C
1С v8
Можно ли создать левое соединение через числовой тип?
0 RelieveR
 
03.11.11
12:04
Пробую связать две таблицы через реквизит числового типа - не работает, через текст - работает!
1 Живой Ископаемый
 
03.11.11
12:05
Говорят даже через NULL можно...
2 izekia
 
03.11.11
12:05
типы у реквизитов одинаковые?
3 izekia
 
03.11.11
12:06
(!) для этого соединения не нужно, просто через запятую перечислить можно
4 Buster007
 
03.11.11
12:08
(0) можно
5 Axel2009
 
03.11.11
12:09
ни в коем случае нельзя, как можно соединять по числам?
6 Wobland
 
03.11.11
12:10
(1) а я даже по истине делал ;)
7 Starhan
 
03.11.11
12:11
Можно даже по неопределено :)
8 Starhan
 
03.11.11
12:11
А вы вести поля по которым связываешь и посомотреь что там в консоли запросов религия не позволяет видимо :)
9 RelieveR
 
03.11.11
12:12
(5) У меня связь идет по картам турникета, у которых числовой тип
10 Живой Ископаемый
 
03.11.11
12:12
2(7) нет, по неопределено нельзя... не получится.
11 izekia
 
03.11.11
12:12
(15) ну почти по все кроме 13-го и 29-го числа
12 izekia
 
03.11.11
12:13
(6)(7) сразу видно быдлокодеров, которые соединяют по значению, а не по полям
прошу сильно не обижаться - пятница)
13 RelieveR
 
03.11.11
12:14
(7-8) знаешь может и смешно это все выглядит, просто смешно получается - текстовым форматом работала связь, числовым - нет.
14 izekia
 
03.11.11
12:14
(9) текст запроса, по которому не получается, покажи
15 Wobland
 
03.11.11
12:14
(12) ноно! в моих прикладных решениях такого нет
16 Живой Ископаемый
 
03.11.11
12:15
2(12) чувак, сказали только часы не переводят, календарь продолжает работать как и раньше.. сегодня четверг
17 izekia
 
03.11.11
12:17
(15) шутка... извини))
18 hhhh
 
03.11.11
12:17
(16) пятницу определяют не по календарю.
19 ptiz
 
03.11.11
12:17
Открою страшную тайну:
таблицы связываются не по значениям, и не по полям, а по "Условию отбора".

<Соединение>

[ВНУТРЕННЕЕ] СОЕДИНЕНИЕ <Описание источника>
ПО <Условие отбора> |
ЛЕВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ <Описание источника>
ПО <Условие отбора> |
ПРАВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ <Описание источника>
ПО <Условие отбора> |
ПОЛНОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ <Описание источника>
ПО <Условие отбора> |


<Условие отбора> содержит условия, в соответствии с которыми в выборке необходимо соединить данные из исходных таблиц – источников запроса.
20 Wobland
 
03.11.11
12:17
(16) сегодняшний четверг - логическая пятница. вон - на голосовалку посмотри ;)
21 izekia
 
03.11.11
12:19
(19) точно
(16) не порть мне пятницу)
22 Shurjk
 
03.11.11
12:19
(19) Пришел и все испортил, тут только народ начал рассказывать всякие байки выводить мистические законы.
23 izekia
 
03.11.11
12:22
(22) да не говори, портят тут всякие пятницу ... как могут
24 Goggy
 
03.11.11
12:22
(13) кидай уже запрос сюда, хватит филосовствовать.
25 Starhan
 
03.11.11
12:23
(12) имеется ввиду конечно тип поля. (не обиделся)
(10)
ВЫБРАТЬ
   СчетФактураПолученный.Ссылка,
   СчетФактураПолученный.ДокументОснование,
   ВложенныйЗапрос.Поле1
ИЗ
   Документ.СчетФактураПолученный КАК СчетФактураПолученный
        СОЕДИНЕНИЕ (ВЫБРАТЬ
           НЕОПРЕДЕЛЕНО КАК Поле1) КАК ВложенныйЗапрос
       ПО СчетФактураПолученный.ДокументОснование = ВложенныйЗапрос.Поле1

Все работает
ЧТЯДНТ?
26 Starhan
 
03.11.11
12:24
(25) запрос к (10)
27 izekia
 
03.11.11
12:25
(26) а я уж подумал часом что мьсе знает толк)))
28 izekia
 
03.11.11
12:25
(24) это, слышь, не порть ветку до конца уже
29 RelieveR
 
03.11.11
12:26
(25) на такое не обижаются))) я стараюсь по быстрому объяснять я прекрасно понимаю, что по типу несвязываются таблицы
30 RelieveR
 
03.11.11
12:27
сильно не вникайте вот держите (коль просили):
МенеджерВТ = Новый МенеджерВременныхТаблиц;
   ЗапросВТ = Новый Запрос;
   ЗапросВТ.МенеджерВременныхТаблиц = МенеджерВТ;
   ЗапросВТ.Текст = "ВЫБРАТЬ
                    |    СостояниеРаботников.Работник КАК Сотрудник,
                    |    СостояниеРаботников.НерабочееСостояние КАК Состояние,
                    |    СостояниеРаботников.ПериодНачала,
                    |    ВЫБОР
                    |        КОГДА СостояниеРаботников.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1)
                    |            ТОГДА СписокВыхода.ПериодВыхода
                    |        ИНАЧЕ СостояниеРаботников.ПериодЗавершения
                    |    КОНЕЦ КАК ПериодВыхода
                    |ПОМЕСТИТЬ СостояниеРаботниковОрганизации
                    |ИЗ
                    |    (ВЫБРАТЬ
                    |        СостояниеРаботниковОрганизаций.Период КАК ПериодНачала,
                    |        СостояниеРаботниковОрганизаций.Сотрудник КАК Работник,
                    |        СостояниеРаботниковОрганизаций.Состояние КАК НерабочееСостояние,
                    |        СостояниеРаботниковОрганизаций.ПериодЗавершения КАК ПериодЗавершения,
                    |        СостояниеРаботниковОрганизаций.Регистратор КАК Документ
                    |    ИЗ
                    |        РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
                    |    ГДЕ
                    |        СостояниеРаботниковОрганизаций.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Работает)
                    |        И СостояниеРаботниковОрганизаций.Период <= &Дата
                    |        И (СостояниеРаботниковОрганизаций.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1)
                    |                ИЛИ СостояниеРаботниковОрганизаций.ПериодЗавершения > &Дата)) КАК СостояниеРаботников
                    |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                    |            СостояниеРаботниковОрганизаций.Период КАК ПериодВыхода,
                    |            СостояниеРаботниковОрганизаций.Сотрудник КАК Сотрудник
                    |        ИЗ
                    |            РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
                    |        ГДЕ
                    |            СостояниеРаботниковОрганизаций.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Работает)
                    |            И СостояниеРаботниковОрганизаций.Период >= &Дата) КАК СписокВыхода
                    |        ПО (СписокВыхода.ПериодВыхода > СостояниеРаботников.ПериодНачала)
                    |            И (СостояниеРаботников.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1))
                    |            И СостояниеРаботников.Работник = СписокВыхода.Сотрудник
                    |ГДЕ
                    |    ВЫБОР
                    |            КОГДА СостояниеРаботников.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1)
                    |                ТОГДА СписокВыхода.ПериодВыхода > &Дата
                    |            ИНАЧЕ СостояниеРаботников.ПериодЗавершения >= &Дата
                    |        КОНЕЦ";
   ЗапросСобытий = Новый Запрос;
   ЗапросСобытий.МенеджерВременныхТаблиц = МенеджерВТ;
   ЗапросСобытий.Текст = "ВЫБРАТЬ
                         |    СобытияТурникетаЗаДеньСобытияЗаДень.Время КАК ВремяСобытия,
                         |    СобытияТурникетаЗаДеньСобытияЗаДень.Устройство КАК Устройство,
                         |    СобытияТурникетаЗаДеньСобытияЗаДень.Событие КАК Событие,
                         |    СобытияТурникетаЗаДеньСобытияЗаДень.СемействоНомерКарты КАК СемействоНомерКарты,
                         |    КартыТурникетаСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
                         |    СостояниеРаботниковОрганизации.ПериодНачала,
                         |    СостояниеРаботниковОрганизации.Состояние
                         |ИЗ
                         |    РегистрСведений.КартыТурникетаСотрудников.СрезПоследних(
                         |            &Дата,
                         |            Период <= &Дата
                         |                И (ДатаВозврата > &Дата
                         |                    ИЛИ ДатаВозврата = ДАТАВРЕМЯ(1, 1, 1))) КАК КартыТурникетаСотрудниковСрезПоследних
                         |        ЛЕВОЕ СОЕДИНЕНИЕ СостояниеРаботниковОрганизации КАК СостояниеРаботниковОрганизации
                         |        ПО КартыТурникетаСотрудниковСрезПоследних.Сотрудник = СостояниеРаботниковОрганизации.Сотрудник
                         |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СобытияТурникетаЗаДень.СобытияЗаДень КАК СобытияТурникетаЗаДеньСобытияЗаДень
                         |        ПО КартыТурникетаСотрудниковСрезПоследних.СемействоНомерКарты = СобытияТурникетаЗаДеньСобытияЗаДень.СемействоНомерКарты
                         |ГДЕ
                         |    СобытияТурникетаЗаДеньСобытияЗаДень.Ссылка = &Ссылка
                         |    И (СобытияТурникетаЗаДеньСобытияЗаДень.Событие = ЗНАЧЕНИЕ(Справочник.СобытияТурникета.Вход)
                         |            ИЛИ СобытияТурникетаЗаДеньСобытияЗаДень.Событие = ЗНАЧЕНИЕ(Справочник.СобытияТурникета.Выход))
                         |
                         |СГРУППИРОВАТЬ ПО
                         |    СобытияТурникетаЗаДеньСобытияЗаДень.СемействоНомерКарты,
                         |    СобытияТурникетаЗаДеньСобытияЗаДень.Событие,
                         |    СобытияТурникетаЗаДеньСобытияЗаДень.Время,
                         |    СобытияТурникетаЗаДеньСобытияЗаДень.Устройство,
                         |    СостояниеРаботниковОрганизации.ПериодНачала,
                         |    СостояниеРаботниковОрганизации.Состояние,
                         |    КартыТурникетаСотрудниковСрезПоследних.Сотрудник
                         |
                         |УПОРЯДОЧИТЬ ПО
                         |    СемействоНомерКарты УБЫВ,
                         |    СостояниеРаботниковОрганизации.ПериодНачала УБЫВ,
                         |    ВремяСобытия";
31 Wobland
 
03.11.11
12:27
(25) что это? что это за вложенный запрос? держите меня семеро, шестеро не удержат! тебе надо найти СФ с незаполненным основанием?
32 Starhan
 
03.11.11
12:28
(31) пример связи по Неопределно для автора из (10)
мне лично ничего не надо.
33 Starhan
 
03.11.11
12:30
(31) я тут на стороне советчеков а не вопрошателей :)
34 Wobland
 
03.11.11
12:30
(32) пардон, не разобрался сразу
35 Axel2009
 
03.11.11
12:32
(30) а типы в обеих таблицах совпадают? СемействоНомерКарты
36 izekia
 
03.11.11
12:32
тип и там и там одинаковый у СемействоНомерКарты
почему через справочник карты не сделал?
37 hhhh
 
03.11.11
12:34
(30) а вто это

СрезПоследних(
 &Дата,
 Период <= &Дата

пятничный прикол? Юмор?
38 RelieveR
 
03.11.11
12:35
(35) да у всех все совпадает (я в одном месте создал, а в остальных - копированием).
(36) сначала хотел через справочник, но потом подумал - смысл?
39 izekia
 
03.11.11
12:36
(38) да, действительно, не было бы этой темы тогда
попробуй через выразить сделать?
40 RelieveR
 
03.11.11
12:36
(37) согласен масло масленное))) парон исправлю (просто работает и ладно)!!!!
41 ptiz
 
03.11.11
12:36
(37) Класс :)
42 Wobland
 
03.11.11
12:37
(37) контрольный
43 RelieveR
 
03.11.11
12:38
Ладно ребята признаю - ступил у меня бывает так периодически)))
44 izekia
 
03.11.11
12:39
(38) смысл справочника в том, что ты оперируешь не номером карты, а ссылкой на карту, чаще всего это удобнее
45 izekia
 
03.11.11
12:39
(43) через выразить попробовал?
и вообще зачем было делать поле кода числовым, даже если так ... или номера с нуля не могут начинаться?
46 Живой Ископаемый
 
03.11.11
12:42
2(25) ну не знаю.. мне просто не хотелось чтобы ты так делал... это гадко в конце концов.. :)
47 RelieveR
 
03.11.11
12:42
(45) с нуля - нет
48 RelieveR
 
03.11.11
12:42
(46) чем?
49 izekia
 
03.11.11
12:43
(48) через выразить сделал?
50 RelieveR
 
03.11.11
12:46
(49) не могу врубиться как через выразить?
51 Starhan
 
03.11.11
12:46
(46) речь же про возможности, а не про кто как делает )
52 Starhan
 
03.11.11
12:47
(50) закинь запрос в консоль запросов убери все лишнее оставь ток эти поля (+ пару ключевых)и посомтри что там.
53 izekia
 
03.11.11
12:47
ВЫРАЗИТЬ(КартыТурникетаСотрудниковСрезПоследних.СемействоНомерКарты КАК Число, 10, 0) = ВЫРАЗИТЬ(СобытияТурникетаЗаДеньСобытияЗаДень.СемействоНомерКарты КАК Число, 10, 0)
54 Starhan
 
03.11.11
12:54
возможно в документе это строка или длина разная у чисел.
55 RelieveR
 
03.11.11
12:55
Всем спасибо как всегда последний день недели на меня плохо повлиял)))
Разобрался: в документах то изменил тип, а во всех регистрах - нет вот и пошло!!!
56 izekia
 
03.11.11
12:56
(55) не порти ветку
57 RelieveR
 
03.11.11
12:57
(5) ;) договорились))...
58 RelieveR
 
03.11.11
12:58
вот бывает же делаешь делаешь, а потом затупишь.... и все не работает (у меня часто так бывает). Затем развисаешь и все: то что не мог в течение нескольких дней сделать, делаешь за пару минут!!!
59 RelieveR
 
03.11.11
12:59
(58) особенно когда надо куда-то отпроситься, а начальник не пускает, аргументируя тем, что ничего не сделал))) Голова сразу начинает варить...
60 Axel2009
 
03.11.11
13:05
да, я оказался прав! +1lvl к телепатии
61 izekia
 
03.11.11
13:25
(60) смотри в (2)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан