Имя: Пароль:
1C
1С v8
Ошибка в запросе. Неоднозначное поле. Как избавиться?
0 GreenDay1986
 
22.11.11
12:03
"ВЫБРАТЬ
   |ВЫБОР КОГДА ПартияМатериаловВЭксплуатации.Дата <= &ДатаПерехода ТОГДА
   | ПартияМатериаловВЭксплуатации.Дата  
   |ИНАЧЕ  
   |ПередачаМатериаловВЭксплуатациюСпецодежда.Ссылка.Дата
   |КОНЕЦ КАК ДатаПередачи,
   |    ХозрасчетныйОстаткиИОбороты.Субконто3 КАК ФизЛицо,
   |    ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Партия,
   |    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
   |    ПартияМатериаловВЭксплуатации.НазначениеИспользования КАК НазначениеИспользованияПартия,
   |ВЫБОР КОГДА ПартияМатериаловВЭксплуатации.Дата <= &ДатаПерехода ТОГДА
   |ПартияМатериаловВЭксплуатации.НазначениеИспользования.СрокПолезногоИспользования    
   |ИНАЧЕ  
   |ПередачаМатериаловВЭксплуатациюСпецодежда.НазначениеИспользования.СрокПолезногоИспользования
   |КОНЕЦ КАК СрокПолезногоИспользования,    
   |    ПередачаМатериаловВЭксплуатациюСпецодежда.НазначениеИспользования КАК НазначениеИспользованияПередача,
   |    ПередачаМатериаловВЭксплуатациюСпецодежда.Ссылка КАК ДокПередачи,
   |ВЫБОР КОГДА ПартияМатериаловВЭксплуатации.Дата <= &ДатаПерехода ТОГДА
   |ПартияМатериаловВЭксплуатации.Номенклатура.БазоваяЕдиницаИзмерения    
   |ИНАЧЕ  
   |ПередачаМатериаловВЭксплуатациюСпецодежда.Номенклатура.БазоваяЕдиницаИзмерения
   |КОНЕЦ КАК ЕдиницаИзмеренияНаименование,  
   |    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК СуммаПоступление,
   |    СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт) КАК КолПоступление,
   |    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт) КАК СуммаИзноса,
   |    СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт) КАК КолИзноса,
   |    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток) КАК СуммаКонОстаток,
   |    СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонОстаток
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, &ДатаОтчета, Период, , Счет В (&СписокСчетов), , ) КАК ХозрасчетныйОстаткиИОбороты
   |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПартияМатериаловВЭксплуатации КАК ПартияМатериаловВЭксплуатации
   |        ПО ХозрасчетныйОстаткиИОбороты.Субконто2 = ПартияМатериаловВЭксплуатации.Ссылка
   |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СписаниеМатериаловИзЭксплуатации.Спецодежда КАК СписаниеМатериаловИзЭксплуатацииСпецодежда
   |        ПО ХозрасчетныйОстаткиИОбороты.Субконто3 = СписаниеМатериаловИзЭксплуатацииСпецодежда.ФизЛицо
   |            И ХозрасчетныйОстаткиИОбороты.Субконто1 = СписаниеМатериаловИзЭксплуатацииСпецодежда.Номенклатура
   |            И ХозрасчетныйОстаткиИОбороты.Субконто2 = СписаниеМатериаловИзЭксплуатацииСпецодежда.Ссылка    
   |ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПередачаМатериаловВЭксплуатацию.Спецодежда КАК ПередачаМатериаловВЭксплуатациюСпецодежда
   |        ПО ХозрасчетныйОстаткиИОбороты.Субконто3 = ПередачаМатериаловВЭксплуатациюСпецодежда.ФизЛицо
   |            И ХозрасчетныйОстаткиИОбороты.Субконто1 = ПередачаМатериаловВЭксплуатациюСпецодежда.Номенклатура
   |            И ХозрасчетныйОстаткиИОбороты.Субконто2 = ПередачаМатериаловВЭксплуатациюСпецодежда.Ссылка
   |      ГДЕ
   |    ХозрасчетныйОстаткиИОбороты.Субконто3 = &ТекущийСотрудник




{(2, 13)}: Неоднозначное поле "ПартияМатериаловВЭксплуатации.Дата"
ВЫБОР КОГДА <<?>>ПартияМатериаловВЭксплуатации.Дата <= &ДатаПерехода ТОГДА
1 Ненавижу 1С
 
гуру
22.11.11
12:05
переименуй таблицу

ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПартияМатериаловВЭксплуатации КАК ДокПартияМатериаловВЭксплуатации
ну и везде этот алиас пропиши
2 Wobland
 
22.11.11
12:06
пальцем в небо
ИЗ спрПартияМатериаловВЭксплуатации...
3 Wobland
 
22.11.11
12:06
(2) ИЗ ... КАК спрПартияМатериаловВЭксплуатации
4 GreenDay1986
 
22.11.11
12:14
Я так понимаю проблема в том что ПартияМатериаловВЭксплуатации.Ссылка содержится и в документе передачи и в документе списания?
5 Ненавижу 1С
 
гуру
22.11.11
12:16
(4) в том что имя это трактоваться может по разному
6 GreenDay1986
 
22.11.11
12:31
Можно ли в данную конструкцию или в запрос в целом указать что выбираться должна та номенклатура(партия) у которой нет документа списания.
Пробовал ГДЕ ДокПартияМатериаловВЭксплуатации.Ссылка = Null В результате выполнения не выводит ничего
7 Wobland
 
22.11.11
12:33
(6) а ГДЕ ЕСТЬ NULL?
8 GreenDay1986
 
22.11.11
12:33
Пардон СписаниеМатериаловИзЭксплуатацииСпецодежда.Ссылка = Null
9 GreenDay1986
 
22.11.11
12:34
Счас попробую
10 hhhh
 
22.11.11
12:34
(6) = Null - это в юмор
11 Ненавижу 1С
 
гуру
22.11.11
12:35
(10) а =Неопределено это камеди-клаб?
12 Wobland
 
22.11.11
12:35
(10) я тоже так думал, пока не узнал, что в коде так можно
13 kosts
 
22.11.11
12:39
(12) Можно то можно, а оно работает?
14 Ненавижу 1С
 
гуру
22.11.11
12:42
(13) да, но в коде
15 Wobland
 
22.11.11
12:42
(13)
Сообщить(NULL=NULL);
Сообщить(NULL<>NULL);
====
истина
ложь
16 kosts
 
22.11.11
12:45
(15)А ну тогда все в порядке...
17 GreenDay1986
 
22.11.11
12:52
ГДЕ ЕСТЬNULL(ДокПартияМатериаловВЭксплуатации.Ссылка,0)= Истина тоже ничего не выдает
18 Wobland
 
22.11.11
12:58
(17) как работает ЕСТЬNULL()? это тебе ни разу не булевская функция
19 GreenDay1986
 
22.11.11
15:19
Мне нужно вывести только те позиции для которых отсутствует документ списания СписаниеМатериаловИзЭксплуатацииСпецодежда.Ссылка = Пустая ссылка
20 GreenDay1986
 
22.11.11
15:19
Помогите плиз :)
21 kosts
 
22.11.11
19:05
(19) Не совсем понятно что тебе нужно или Null или пустая ссылка. Т.к. это совсем разные вещи. "пустая ссылка" - это значит значение существует, но оно не заполнено (например, в документе не выбран сотрудник).
Null это когда при соединении с одной стороны вообще нет записей (нет информации). Например, к таблице отработанное время присоединим слева таблицу с праздниками. Так вот в "рабочий день" ("не праздник") значений "в таблице" праздники не будет, т.е. будет NULL.

Ну так что нужно?
22 GreenDay1986
 
23.11.11
08:18
Нужно выбрать все субконто по которым нет документа списания. :)
23 Sammo
 
23.11.11
08:22
(17) Что должна вернуть ЕСТЬNULL(ДокПартияМатериаловВЭксплуатации.Ссылка,0) если оно таки нулл?

(подсказка: см. "ЕстьNULL()" и "Есть NULL"