Ошибка в запросе "Неоднозначное поле" при связи двух таблиц
По теме из базы знаний
Найденные решения
(1) 181024, текст запроса нужен (первая старница). НО скорее всего название таблицы (или ее псевдоним) совпал с названием колоннки.
criptid; Bob_Dobr; nysysimara; tolpekin; user712426; dakork; userMKA; Dinchic; О.Ж; a_l_e_xj; VKuser166138524; taasha25; user612381_reliance_com; TSSV; magiceagle; user659168_xec8787; t278; Terabaytus; user665211_antonfo; NikeeNik; Dimbayyyy; user608994_vvplotkin; serverstar; d.kolosova; Enot; berghouse; retr0; dalim; Aligator69; vtolstenev; Diadim; romulanin; AFGN; allgorhythm; user1058210; Anjo86; user661159_exponato; user733468; purik; Tolpinski; Abbra; jan-pechka; ElectronicWizard; user865537; Idris1204; Samvel.karapetyan.1994@yandex.ru; user1302055; Dmitri93; ivanek; maxunov95; KAV2; tr0; gepar1020; oyti; Lion_LexXx; JustaUser; user790607; DennyPhilord; wildfalcon; Мах; Greysvandir; shuvalov_m; shutovaa; MarMargo; user640247; Vida; RickyTickyTok; rassomaha1985; emilliya; user939418; Merkalov; jane_de_rio; nordcomp; solutioncp24; LuxVeritatis; ant_f_moro; Romakon92; chemezov; user811769; MaZaHacKa_13; Xershi; SagittariusA; HamyaG; Kennik; user667308_icscloud; mariupol1c; K_Sergei; ResetAtreides; virtyoz; qazaz2; k992007; rpgshnik; Papilion; Kometa; scully; selena72; Eskimos; orfos; max996; rgrisha;
+100
–
Ответить
спустя 968 дней, для тех, кто сегодня и завтра столкнется с проблемой.
Пример текста запроса:
Запрос составлялся в Комплексной автоматизации 1.1
Соответственно, проблема была в следующем:
1. СКД (или вы) создавали: Справочник.Номенклатура КАК Номенклатура
2. Соответственно было не правильное обращение по синониму "Номенклатура" в ЦеныНоменклатурыСрезПоследних.Номенклатура
Пример текста запроса:
ВЫБРАТЬ
Номенклатура2.Код,
Номенклатура2.Наименование,
ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура2
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = Номенклатура2.Ссылка
ПоказатьЗапрос составлялся в Комплексной автоматизации 1.1
Соответственно, проблема была в следующем:
1. СКД (или вы) создавали: Справочник.Номенклатура КАК Номенклатура
2. Соответственно было не правильное обращение по синониму "Номенклатура" в ЦеныНоменклатурыСрезПоследних.Номенклатура
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) 181024, текст запроса нужен (первая старница). НО скорее всего название таблицы (или ее псевдоним) совпал с названием колоннки.
criptid; Bob_Dobr; nysysimara; tolpekin; user712426; dakork; userMKA; Dinchic; О.Ж; a_l_e_xj; VKuser166138524; taasha25; user612381_reliance_com; TSSV; magiceagle; user659168_xec8787; t278; Terabaytus; user665211_antonfo; NikeeNik; Dimbayyyy; user608994_vvplotkin; serverstar; d.kolosova; Enot; berghouse; retr0; dalim; Aligator69; vtolstenev; Diadim; romulanin; AFGN; allgorhythm; user1058210; Anjo86; user661159_exponato; user733468; purik; Tolpinski; Abbra; jan-pechka; ElectronicWizard; user865537; Idris1204; Samvel.karapetyan.1994@yandex.ru; user1302055; Dmitri93; ivanek; maxunov95; KAV2; tr0; gepar1020; oyti; Lion_LexXx; JustaUser; user790607; DennyPhilord; wildfalcon; Мах; Greysvandir; shuvalov_m; shutovaa; MarMargo; user640247; Vida; RickyTickyTok; rassomaha1985; emilliya; user939418; Merkalov; jane_de_rio; nordcomp; solutioncp24; LuxVeritatis; ant_f_moro; Romakon92; chemezov; user811769; MaZaHacKa_13; Xershi; SagittariusA; HamyaG; Kennik; user667308_icscloud; mariupol1c; K_Sergei; ResetAtreides; virtyoz; qazaz2; k992007; rpgshnik; Papilion; Kometa; scully; selena72; Eskimos; orfos; max996; rgrisha;
+100
–
Ответить
спустя 968 дней, для тех, кто сегодня и завтра столкнется с проблемой.
Пример текста запроса:
Запрос составлялся в Комплексной автоматизации 1.1
Соответственно, проблема была в следующем:
1. СКД (или вы) создавали: Справочник.Номенклатура КАК Номенклатура
2. Соответственно было не правильное обращение по синониму "Номенклатура" в ЦеныНоменклатурыСрезПоследних.Номенклатура
Пример текста запроса:
ВЫБРАТЬ
Номенклатура2.Код,
Номенклатура2.Наименование,
ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура2
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = Номенклатура2.Ссылка
ПоказатьЗапрос составлялся в Комплексной автоматизации 1.1
Соответственно, проблема была в следующем:
1. СКД (или вы) создавали: Справочник.Номенклатура КАК Номенклатура
2. Соответственно было не правильное обращение по синониму "Номенклатура" в ЦеныНоменклатурыСрезПоследних.Номенклатура
Пол часа билась с этим запросом не могла понять в чем дело .
"Неоднозначное поле "Номенклатура.наименование"
ПО ЦеныНоменклатуры.Номенклатура = <<?>>Номенклатура.наименование"
А оказывается все очень просто.
Спасибо ответам в этой ветке
"Неоднозначное поле "Номенклатура.наименование"
ПО ЦеныНоменклатуры.Номенклатура = <<?>>Номенклатура.наименование"
А оказывается все очень просто.
Спасибо ответам в этой ветке
Подскажите пожалуйста где ошибка
вот кусок кода
Ошибка при вызове метода контекста (Выполнить)
по причине:
{(37, 109)}: Неоднозначное поле "Субконто1"
РегистрБухгалтерии.ПланСчетовОсновной2014.Остатки ( &ПозицияДокумента, Счет В (&СписокСчетовОрганизация), <<?>>Субконто1 В (&СписокТМЦОрганизация) ) КАК ПланСчетовОсновнойОстаткиОрганизация
по причине:
{(37, 109)}: Неоднозначное поле "Субконто1"
РегистрБухгалтерии.ПланСчетовОсновной2014.Остатки ( &ПозицияДокумента, Счет В (&СписокСчетовОрганизация), <<?>>Субконто1 В (&СписокТМЦОрганизация) ) КАК ПланСчетовОсновнойОстаткиОрганизация
вот кусок кода
ВЫБРАТЬ
Номенклатура.ТМЦ КАК ТМЦ,
Номенклатура.СчетУчета КАК СчетУчета,
Номенклатура.СчетУчетаНаКомиссии КАК СчетУчетаНаКомиссии,
Номенклатура.СуммаБезНДС КАК СуммаБезНДС,
Номенклатура.СтавкаНДС КАК СтавкаНДС,
Номенклатура.СуммаНДС КАК СуммаНДС,
Номенклатура.Количество КАК Колво,
Номенклатура.Коэффициент КАК Коэф,
Номенклатура.Коэффициент*Количество КАК КолвоДокумента,
Номенклатура.СебестоимостьПартии КАК СебПартии,
Номенклатура.МестоХранения КАК МестоХранения,
ЕСТЬNULL ( ПланСчетовОсновнойОстаткиСклад.КоличествоОстатокДт, 0 ) КАК КолвоНаСкладе
,
ЕСТЬNULL ( ПланСчетовОсновнойОстаткиСклад.СуммаОстатокДт, 0 ) КАК СуммаНаСкладе
,
ЕСТЬNULL ( ПланСчетовОсновнойОстаткиОрганизация.КоличествоОстатокДт, 0 ) КАК КолвоОрганизации
,
ЕСТЬNULL ( ПланСчетовОсновнойОстаткиОрганизация.СуммаОстатокДт, 0 ) КАК СуммаОрганизации
ИЗ
Документ.ТехЦентр.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрБухгалтерии.ПланСчетовОсновной2014.Остатки ( &ПозицияДокумента, Счет В (&СписокСчетовСклад), , Организация В (&СписокОрганизацийСклад) И ( Субконто1 В (&СписокТМЦСклад) ) И ( Субконто2 В (&МестоХраненияСклад) ) ) КАК ПланСчетовОсновнойОстаткиСклад
ПО
Номенклатура.Ссылка.Организация = ПланСчетовОсновнойОстаткиСклад.Организация И
Номенклатура.СчетУчета = ПланСчетовОсновнойОстаткиСклад.Счет И
Номенклатура.ТМЦ = ПланСчетовОсновнойОстаткиСклад.Субконто1 И
Номенклатура.МестоХранения = ПланСчетовОсновнойОстаткиСклад.Субконто2
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрБухгалтерии.ПланСчетовОсновной2014.Остатки ( &ПозицияДокумента, Счет В (&СписокСчетовОрганизация), Субконто1 В (&СписокТМЦОрганизация) ) КАК ПланСчетовОсновнойОстаткиОрганизация
ПО
Номенклатура.Ссылка.Организация = ПланСчетовОсновнойОстаткиОрганизация.Организация И
Номенклатура.СчетУчета = ПланСчетовОсновнойОстаткиОрганизация.Счет И
Номенклатура.ТМЦ = ПланСчетовОсновнойОстаткиОрганизация.Субконто1
ГДЕ
Номенклатура.Ссылка = &ДокументСсылка
И
СчетУчета В (&СписокСчетовСклад)
ОБЪЕДИНИТЬ ВСЕ
Показать
Спасибо, помогло.
Пишу чтобы еще быстрее было понятно.
Необходимо поменять наименование таблицы.
Пометил жирными где были изменения.
Ругается на то, когда название реквизита регистра сведений совпадает с названием объекта справочника(именно в наименовании таблицы в запросе).
Пишу чтобы еще быстрее было понятно.
Необходимо поменять наименование таблицы.
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура2
ПО ХарактеристикиСпецодеждыСрезПоследних.Номенклатура = Номенклатура2.Ссылка
Пометил жирными где были изменения.
Ругается на то, когда название реквизита регистра сведений совпадает с названием объекта справочника(именно в наименовании таблицы в запросе).
Все не так просто. Это ошибка программеров платформы, а не "ошибка новичков", как тут некоторые снисходительно пишут.
да и все сообщения, кроме первого - частные случаи одного и того же, а в общей картине так никто и не разобрался.
Ошибка возникает, когда компилятор не может однозначно определить, что в данном случае нужно использовать.
Получается двойственность чтения данных: название таблицы (или ее псевдоним) совпал с названием колонки, т.е. может относиться как к самой таблице, так и к реквизиту входящей таблицы.
Это значит, что поле (или реквизит) с таким названием может уже быть в предыдущей временной таблице (ВрТ), в справочнике или регистре, используемых в результирующем запросе (где и произошла ошибка).
Т.о., прийти в результирующий запрос поле с "аналогичным" именем может со входящей таблицей, спорное поле исходной таблицы - явно не использоваться в результирующем запросе, а сама исходная таблица - формироваться задолго до места возникновения ошибки.
И этот вариант - далеко не "ошибка новичков", когда спорные поля стоят рядом в запросе, и легко проверяются.
НЕОБХОДИМО:
Переименовать либо поле в результирующем запросе (где и произошла ошибка), либо переименовать в предыдущей используемой таблице (откуда пришел спорный реквизит)), либо - вообще не использовать исходные таблицы (либо справочник, регистр), где уже есть реквизит с таким именем.
Комментирование и явное неиспользование спорного поля в запросе не поможет - компилятор все равно читает исходную таблицу, и находит двойственное использование имени.
ПРИМЕР:
Ошибка будет:
"Неоднозначное поле "Номенклатура"
втТипЦен КАК <<?>>Номенклатура"
т.к. поле с названием "Номенклатура" уже есть в исходной ВрТ 'втТипЦен', хоть и не используется явно в результирующем запросе.
да и все сообщения, кроме первого - частные случаи одного и того же, а в общей картине так никто и не разобрался.
Ошибка возникает, когда компилятор не может однозначно определить, что в данном случае нужно использовать.
Получается двойственность чтения данных: название таблицы (или ее псевдоним) совпал с названием колонки, т.е. может относиться как к самой таблице, так и к реквизиту входящей таблицы.
Это значит, что поле (или реквизит) с таким названием может уже быть в предыдущей временной таблице (ВрТ), в справочнике или регистре, используемых в результирующем запросе (где и произошла ошибка).
Т.о., прийти в результирующий запрос поле с "аналогичным" именем может со входящей таблицей, спорное поле исходной таблицы - явно не использоваться в результирующем запросе, а сама исходная таблица - формироваться задолго до места возникновения ошибки.
И этот вариант - далеко не "ошибка новичков", когда спорные поля стоят рядом в запросе, и легко проверяются.
НЕОБХОДИМО:
Переименовать либо поле в результирующем запросе (где и произошла ошибка), либо переименовать в предыдущей используемой таблице (откуда пришел спорный реквизит)), либо - вообще не использовать исходные таблицы (либо справочник, регистр), где уже есть реквизит с таким именем.
Комментирование и явное неиспользование спорного поля в запросе не поможет - компилятор все равно читает исходную таблицу, и находит двойственное использование имени.
ПРИМЕР:
ВЫБРАТЬ
ТипЦен.Номенклатура КАК Номенклатура,
ТипЦен.Цена КАК Цена
ПОМЕСТИТЬ втТипЦен
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ТипЦен
;
/////////////////////////////////////////////////
ВЫБРАТЬ
Номенклатура.Цена
ИЗ
втТипЦен КАК Номенклатура
ПоказатьОшибка будет:
"Неоднозначное поле "Номенклатура"
втТипЦен КАК <<?>>Номенклатура"
т.к. поле с названием "Номенклатура" уже есть в исходной ВрТ 'втТипЦен', хоть и не используется явно в результирующем запросе.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот