Имя: Пароль:
1C
1С v8
Не получается соединение
0 vadim2005
 
06.02.12
14:01
Имеется справочник номенклатура узлов в нем создаю номенклатурный узел в котором имеется десять позиций номенклатуры и имеется документ реализация в котором набито девять позиций из номенклатурного узла. Вопрос  как из документа реализация вывести в печатную форму ту недостающею позицию из номенклатурного листа. Делаю вот так
Запрос.Текст="ВЫБРАТЬ
                |    РеализацияТоваровУслугТовары.Количество КАК Количество,
                |    РеализацияТоваровУслугТовары.Номенклатура.Наименование КАК НоменклатураНаименование,
                |    РеализацияТоваровУслугТовары.Номенклатура.Артикул КАК НоменклатураАртикул,
                |    РеализацияТоваровУслугТовары.Сумма КАК Сумма,
                |    РеализацияТоваровУслугТовары.Цена КАК Цена,
                |    РеализацияТоваровУслугТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
                |    НоменклатурныеУзлыИсходныеКомплектующие.Количество КАК КоличествоЭталон,
                |    НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура.Наименование КАК НоменклатураНаименованиеЭталон,
                |    НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура.Артикул КАК НоменклатураАртикулЭталон,
                |    РеализацияТоваровУслугТовары.Номенклатура.КодПарфюм,
                |    НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура.КодПарфюм КАК НоменклатураКодПарфюмЭталон
                |ИЗ
                |    Справочник.НоменклатурныеУзлы.ИсходныеКомплектующие КАК НоменклатурныеУзлыИсходныеКомплектующие
                |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
                |        ПО НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура = РеализацияТоваровУслугТовары.Номенклатура
                |ГДЕ
                |    НоменклатурныеУзлыИсходныеКомплектующие.Ссылка.Код = &Код
                |    И РеализацияТоваровУслугТовары.Ссылка = &Ссылка";
                 
   Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
   //Если СсылкаНаОбъект.Комментарий="Дисплей MF" тогда
   Запрос.УстановитьПараметр("Код","00001");


но в печатную форму почему то выводятся девять позиций из реализации
1 vadim2005
 
06.02.12
14:02
ПО НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура <> РеализацияТоваровУслугТовары.Номенклатура
2 DmitryPavlik
 
06.02.12
14:12
Так у тебя "="
3 DmitryPavlik
 
06.02.12
14:14
А, понял.
добавь условие на пустую ссылку слева или есть нулл

типа
"|ГДЕ Поле = &ПустаяСсылка";
Запрос.УстановитьПараметр("ПустаяСсылка",Справочники.Номенклатура.ПустаяСсылка());"
4 vadim2005
 
06.02.12
14:23
Не понял что за поле?
5 DmitryPavlik
 
06.02.12
14:24
РеализацияТоваровУслугТовары.Номенклатура
6 vadim2005
 
06.02.12
14:25
Запрос.Текст="ВЫБРАТЬ
                |    РеализацияТоваровУслугТовары.Количество КАК Количество,
                |    РеализацияТоваровУслугТовары.Номенклатура.Наименование КАК НоменклатураНаименование,
                |    РеализацияТоваровУслугТовары.Номенклатура.Артикул КАК НоменклатураАртикул,
                |    РеализацияТоваровУслугТовары.Сумма КАК Сумма,
                |    РеализацияТоваровУслугТовары.Цена КАК Цена,
                |    РеализацияТоваровУслугТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
                |    НоменклатурныеУзлыИсходныеКомплектующие.Количество КАК КоличествоЭталон,
                |    НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура.Наименование КАК НоменклатураНаименованиеЭталон,
                |    НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура.Артикул КАК НоменклатураАртикулЭталон,
                |    РеализацияТоваровУслугТовары.Номенклатура.КодПарфюм,
                |    НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура.КодПарфюм КАК НоменклатураКодПарфюмЭталон
                |ИЗ
                |    Справочник.НоменклатурныеУзлы.ИсходныеКомплектующие КАК НоменклатурныеУзлыИсходныеКомплектующие
                |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
                |        ПО НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура <> РеализацияТоваровУслугТовары.Номенклатура
                |ГДЕ
                |    НоменклатурныеУзлыИсходныеКомплектующие.Ссылка.Код = &Код
                |  И РеализацияТоваровУслугТовары.Номенклатура = &ПустаяСсылка
                |    И РеализацияТоваровУслугТовары.Ссылка = &Ссылка";
                 
   Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
   Запрос.УстановитьПараметр("ПустаяСсылка",Справочники.Номенклатура.ПустаяСсылка());
   //Если СсылкаНаОбъект.Комментарий="Дисплей MF" тогда
   Запрос.УстановитьПараметр("Код","00001");


так вообще ничего не выводится
7 DmitryPavlik
 
06.02.12
14:28
Попробуй убрать "НоменклатурныеУзлыИсходныеКомплектующие.Ссылка.Код = &Код"
что выйдет?
8 Рэйв
 
06.02.12
14:29
(0)>>в нем создаю номенклатурный узел в котором имеется десять позиций номенклатуры

Каким образом "имеестся"? Это папка? Владелец? Регистратор РС?
9 vadim2005
 
06.02.12
14:31
Наменклатурный узел это элемент справочника я его открываю открывается форма справочника и я в нее методом подбора подбираю номенклатуру
10 DmitryPavlik
 
06.02.12
14:31
(8) это элеметн справочника номенклатура с ТЧ
11 Рэйв
 
06.02.12
14:32
(10)А..вон что..
12 vadim2005
 
06.02.12
14:33
да
13 Рэйв
 
06.02.12
14:37
тогда так:


//---------
Запрос.Текст="
|Выбрать
| Зап.НоменклатураНаименованиеЭталон
|ИЗ
|(ВЫБРАТЬ
|    РеализацияТоваровУслугТовары.Номенклатура КАК НомВДокументе,
|    НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура КАК НоменклатураНаименованиеЭталон
|ИЗ
|    Справочник.НоменклатурныеУзлы.ИсходныеКомплектующие КАК НоменклатурныеУзлыИсходныеКомплектующие
|        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
|        ПО НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура = РеализацияТоваровУслугТовары.Номенклатура
|ГДЕ
|    НоменклатурныеУзлыИсходныеКомплектующие.Ссылка.Код = &Код
|    И РеализацияТоваровУслугТовары.Ссылка = &Ссылка) Зап
|ГДЕ Зап.НомВДокументе Есть NULL";
14 vadim2005
 
06.02.12
14:45
неполучается всеравно пустота
15 Рэйв
 
06.02.12
14:49
(14)Значит в документе все составляющие.
16 Jaffar
 
06.02.12
14:58
(0) узел в документе как указывается?
17 vadim2005
 
06.02.12
15:01
ни как исвестен только код узла
18 Jaffar
 
06.02.12
15:10
(17) а не проще было бы в шапке узел указать и отбирать по ней?
каким условием в (0) отбирается только номенклатура из нужного в данном документе узла?
19 DmitryPavlik
 
06.02.12
15:16
Наверное, проще обработать ТЗ :)
20 DmitryPavlik
 
06.02.12
15:19
если выполняется условие: в тч документа тч одного узла, то

ВЫБРАТЬ
   НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура
ИЗ
   Справочник.НоменклатурныеУзлы.ИсходныеКомплектующие КАК НоменклатурныеУзлыИсходныеКомплектующие,
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
   НоменклатурныеУзлыИсходныеКомплектующие.Ссылка = &СсылкаУзел
   И РеализацияТоваровУслугТовары.Ссылка = &СсылкаДок
   И РеализацияТоваровУслугТовары.Номенклатура <> НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура

сработает )
какой-то ваще левый код, но хоть что-то :D
21 Рэйв
 
06.02.12
15:22
(20)Не сработает:-)  Он хочет видеть ОТСУТСТВУЮЩИЕ.
Их как раз выводит (13)Если такие есть.

А твое
РеализацияТоваровУслугТовары.Номенклатура <> НоменклатурныеУзлыИсходныеКомплектующие.Номенклатура

только отличающиеся от з узла
22 DmitryPavlik
 
06.02.12
15:31
(13) тоже не работает.
такая логика прокатывает при прямых SQL запросах.
Надо соединять не по номенклатура, а по узлу тогда уж
23 Рэйв
 
06.02.12
15:32
(22)глупости. Узел в запросе будет один полюбому

Вот из-за этого.

 НоменклатурныеУзлыИсходныеКомплектующие.Ссылка = &СсылкаУзел

так что все сработает
24 vadim2005
 
06.02.12
15:32
Может как нибудь можно получить это не через запрос?
25 Рэйв
 
06.02.12
15:32
(22)И если что запросы в 8.х  как раз и имют скульную логику.
26 Рэйв
 
06.02.12
15:33
*имеют
27 Рэйв
 
06.02.12
15:33
(13)Шамань над (13)
Что-то ты делаешь не так. Должно показать отсутствующие если они есть конечно
28 Рэйв
 
06.02.12
15:34
(27)->(24)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.