|   |   | 
| 
 | УТ, ошибка sql "Не удалось привязать составной идентификатор" | ☑ | ||
|---|---|---|---|---|
| 0
    
        Bibr 06.03.25✎ 17:12 | 
        Почти типовая УТ, предположительно после обновления (через 3дня) начала ошибку выдавать:
 "Невосстановимая ошибка
 Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm: по причине: Ошибка СУБД: Microsoft OLE DB Driver for SQL Server: Не удалось привязать составной идентификатор "T3._Fld3555_TYPE". HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, SQLSrvr: SQLSTATE=42S22, state=1, Severity=10, native=4104, line=19 SQLSrvr: SQLSTATE=42S22, state=1, Severity=10, native=4104, line=19 SQLSrvr: SQLSTATE=42S22, state=1, Severity=10, native=4104, line=19" Ошибку выдаёт типовая обработка "ОбеспечениеПотребностей" в момент выполнения запроса. Запрос моделируется, после упрощения в консоли до минимального выдающего ошибку, превратился в: //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ null как поле ИЗ (ВЫБРАТЬ 0 КАК Поле1) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаВозвратТоваровОтКлиента.ДополнительныеРеквизиты КАК ЗаявкаНаВозвратТоваровОтКлиентаДополнительныеРеквизиты ПО (ЗаявкаНаВозвратТоваровОтКлиентаДополнительныеРеквизиты.Ссылка = ВЫРАЗИТЬ(NULL КАК Справочник.Назначения).Заказ) И (ЗаявкаНаВозвратТоваровОтКлиентаДополнительныеРеквизиты.Свойство = &П), (ВЫБРАТЬ 0 КАК Поле1) КАК ВложенныйЗапрос1 ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК ЗаказКлиентаДополнительныеРеквизиты ПО (ЗаказКлиентаДополнительныеРеквизиты.Ссылка = ВЫРАЗИТЬ(NULL КАК Справочник.Назначения).Заказ) И (ЗаказКлиентаДополнительныеРеквизиты.Свойство = &П) На копии моделируется, на копии же пробую как-либо чинить: - выгрузка-загрузка dt - ТИИ все пункты - переиндексация базы средствами sql Ничего не помогло. Гуглёж выдал пару ссылок на старые темы, с прямыми скулёвыми запросами. Платформа если что 8.3.24.1761, win server 2016, ms sql. Коллеги, куда копать? | |||
| 1
    
        Галахад гуру 06.03.25✎ 20:27 | 
        Там правда есть соединение по составному реквизиту?
 ВЫРАЗИТЬ(NULL КАК Справочник.Назначения).Заказ | |||
| 2
    
        Bibr 06.03.25✎ 16:21 | 
        (1) Текст Запроса выгружен в отладчике непосредственно из объекта Запрос перед Запрос.Выполнить()     | |||
| 3
    
        Bibr 06.03.25✎ 17:12 | 
        (1) целиком если интересно выглядит так:
 ПодробностиВЫБРАТЬ РАЗРЕШЕННЫЕ ТаблицаФорматы.Склад КАК Склад, ТаблицаФорматы.ФорматМагазина КАК ФорматМагазина ПОМЕСТИТЬ ВтФорматыСкладов ИЗ РегистрСведений.ИсторияИзмененияФорматовМагазинов.СрезПоследних(, ) КАК ТаблицаФорматы ГДЕ ТаблицаФорматы.ФорматМагазина <> ЗНАЧЕНИЕ(Справочник.ФорматыМагазинов.ПустаяСсылка) ИНДЕКСИРОВАТЬ ПО Склад ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ Таблица.Номенклатура КАК Номенклатура, Таблица.Характеристика КАК Характеристика, Таблица.Склад КАК Склад ПОМЕСТИТЬ ВтТоварыПоддерживаемогоЗапаса ИЗ РегистрСведений.ТоварныеОграничения КАК Таблица ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварныеОграничения КАК НастройкаГруппировки ПО (Таблица.ГруппировкаТоварныхОграничений <> ЗНАЧЕНИЕ(Справочник.ГруппировкиТоварныхОграничений.ПустаяСсылка)) И (НастройкаГруппировки.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) И (НастройкаГруппировки.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) И (НастройкаГруппировки.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) И (НастройкаГруппировки.ГруппировкаТоварныхОграничений = Таблица.ГруппировкаТоварныхОграничений) И (НастройкаГруппировки.ЭтоДействующийПараметр) ГДЕ ЕСТЬNULL(НастройкаГруппировки.МетодОбеспеченияПотребностей, Таблица.МетодОбеспеченияПотребностей) <> ЗНАЧЕНИЕ(Перечисление.МетодыОбеспеченияПотребностей.ЗаказПодЗаказ) И Таблица.Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) И (Таблица.Номенклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать) ИЛИ Таблица.Характеристика <> ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) И Таблица.ЭтоДействующийПараметр И Таблица.Склад = &П2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Таблица.Номенклатура, ТаблицаХарактеристик.Ссылка, Таблица.Склад ИЗ РегистрСведений.ТоварныеОграничения КАК Таблица ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК ТаблицаНоменклатуры ПО (ТаблицаНоменклатуры.Ссылка = Таблица.Номенклатура) ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ТаблицаХарактеристик ПО (ТаблицаХарактеристик.Владелец = ВЫБОР КОГДА ТаблицаНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры) ТОГДА ТаблицаНоменклатуры.Ссылка КОГДА ТаблицаНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры) ТОГДА ТаблицаНоменклатуры.ВидНоменклатуры КОГДА ТаблицаНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры) ТОГДА ТаблицаНоменклатуры.ВладелецХарактеристик КОНЕЦ) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварныеОграничения КАК НастройкаДетальная ПО (НастройкаДетальная.Номенклатура = Таблица.Номенклатура) И (НастройкаДетальная.Характеристика = ТаблицаХарактеристик.Ссылка) И (НастройкаДетальная.Склад = Таблица.Склад) И (НастройкаДетальная.ЭтоДействующийПараметр) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварныеОграничения КАК НастройкаГруппировки ПО (Таблица.ГруппировкаТоварныхОграничений <> ЗНАЧЕНИЕ(Справочник.ГруппировкиТоварныхОграничений.ПустаяСсылка)) И (НастройкаГруппировки.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) И (НастройкаГруппировки.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) И (НастройкаГруппировки.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) И (НастройкаГруппировки.ГруппировкаТоварныхОграничений = Таблица.ГруппировкаТоварныхОграничений) И (НастройкаГруппировки.ЭтоДействующийПараметр) ГДЕ ЕСТЬNULL(НастройкаГруппировки.МетодОбеспеченияПотребностей, Таблица.МетодОбеспеченияПотребностей) <> ЗНАЧЕНИЕ(Перечисление.МетодыОбеспеченияПотребностей.ЗаказПодЗаказ) И Таблица.Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) И Таблица.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) И Таблица.Номенклатура.ИспользованиеХарактеристик <> ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать) И Таблица.ЭтоДействующийПараметр И НастройкаДетальная.Склад ЕСТЬ NULL И НЕ ТаблицаХарактеристик.Ссылка ЕСТЬ NULL И Таблица.Склад = &П2 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ Т.Номенклатура КАК Номенклатура, Т.Характеристика КАК Характеристика, Т.Склад КАК Склад, СпрСпособ.Ссылка КАК СпособОбеспечения ПОМЕСТИТЬ ВтТовары ИЗ ВтТоварыПоддерживаемогоЗапаса КАК Т ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВариантыОбеспеченияРаботами КАК ТаблицаВариантыОбеспеченияРаботами ПО (Т.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)) И (ТаблицаВариантыОбеспеченияРаботами.Номенклатура = Т.Номенклатура) И (ТаблицаВариантыОбеспеченияРаботами.Характеристика = Т.Характеристика) И (ТаблицаВариантыОбеспеченияРаботами.РеквизитДопУпорядочивания = 1) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВариантыОбеспеченияТоварами КАК ТаблицаВариантыОбеспеченияТоварами ПО (Т.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Набор))) И (ТаблицаВариантыОбеспеченияТоварами.Номенклатура = Т.Номенклатура) И (ТаблицаВариантыОбеспеченияТоварами.Характеристика = Т.Характеристика) И (ТаблицаВариантыОбеспеченияТоварами.Склад = Т.Склад) И (ТаблицаВариантыОбеспеченияТоварами.РеквизитДопУпорядочивания = 1) ЛЕВОЕ СОЕДИНЕНИЕ ВтФорматыСкладов КАК ТаблицаФорматыСкладов ПО (ТаблицаФорматыСкладов.Склад = Т.Склад) И (ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СхемыОбеспечения КАК ТаблицаСхемыОбеспеченияСкладов ПО (ТаблицаСхемыОбеспеченияСкладов.СхемаОбеспечения = Т.Номенклатура.СхемаОбеспечения) И (ТаблицаСхемыОбеспеченияСкладов.Склад = Т.Склад) И (ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СхемыОбеспечения КАК ТаблицаСхемыОбеспеченияФорматов ПО (ТаблицаСхемыОбеспеченияФорматов.СхемаОбеспечения = Т.Номенклатура.СхемаОбеспечения) И (ТаблицаСхемыОбеспеченияФорматов.Склад = ТаблицаФорматыСкладов.ФорматМагазина) И (ТаблицаСхемыОбеспеченияСкладов.СхемаОбеспечения ЕСТЬ NULL) И (ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL) ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпособыОбеспеченияПотребностей КАК СпрСпособ ПО (ВЫБОР КОГДА Т.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА ЕСТЬNULL(ТаблицаВариантыОбеспеченияРаботами.СпособОбеспеченияПотребностей, Т.Номенклатура.СпособОбеспеченияПотребностей) ИНАЧЕ ЕСТЬNULL(ТаблицаВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей, ЕСТЬNULL(ТаблицаСхемыОбеспеченияСкладов.СпособОбеспеченияПотребностей, ЕСТЬNULL(ТаблицаСхемыОбеспеченияФорматов.СпособОбеспеченияПотребностей, ЗНАЧЕНИЕ(Справочник.СпособыОбеспеченияПотребностей.ПустаяСсылка)))) КОНЕЦ = СпрСпособ.Ссылка), (ВЫБРАТЬ 0 КАК Поле1) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаВозвратТоваровОтКлиента.ДополнительныеРеквизиты КАК ЗаявкаНаВозвратТоваровОтКлиентаДополнительныеРеквизиты ПО (ЗаявкаНаВозвратТоваровОтКлиентаДополнительныеРеквизиты.Ссылка = ВЫРАЗИТЬ(NULL КАК Справочник.Назначения).Заказ И ЗаявкаНаВозвратТоваровОтКлиентаДополнительныеРеквизиты.Свойство = &П), (ВЫБРАТЬ 0 КАК Поле1) КАК ВложенныйЗапрос1 ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК ЗаказКлиентаДополнительныеРеквизиты ПО (ЗаказКлиентаДополнительныеРеквизиты.Ссылка = ВЫРАЗИТЬ(NULL КАК Справочник.Назначения).Заказ И ЗаказКлиентаДополнительныеРеквизиты.Свойство = &П) ГДЕ ЕСТЬNULL(СпрСпособ.ТипОбеспечения, ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.Покупка)) = &П3 И ВЫБОР КОГДА ВЫРАЗИТЬ(NULL КАК Справочник.Назначения).Заказ ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента ТОГДА ВЫРАЗИТЬ(ЗаявкаНаВозвратТоваровОтКлиентаДополнительныеРеквизиты.Значение КАК ДАТА) КОГДА ВЫРАЗИТЬ(NULL КАК Справочник.Назначения).Заказ ССЫЛКА Документ.ЗаказКлиента ТОГДА ВЫРАЗИТЬ(ЗаказКлиентаДополнительныеРеквизиты.Значение КАК ДАТА) КОНЕЦ = &П4 ИНДЕКСИРОВАТЬ ПО Номенклатура, Характеристика, Склад, СпособОбеспечения ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ВтФорматыСкладов ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПЕРВЫЕ 1 Т.Номенклатура КАК Номенклатура, Т.Характеристика КАК Характеристика, Т.Склад КАК Склад, Т.СпособОбеспечения КАК СпособОбеспечения, ПРЕДСТАВЛЕНИЕССЫЛКИ(Т.Номенклатура) КАК НоменклатураПредставление, ПРЕДСТАВЛЕНИЕССЫЛКИ(Т.Склад) КАК СкладПредставление, ПРЕДСТАВЛЕНИЕССЫЛКИ(Т.СпособОбеспечения) КАК СпособОбеспеченияПредставление, ПРЕДСТАВЛЕНИЕССЫЛКИ(Т.Характеристика) КАК ХарактеристикаПредставление ИЗ ВтТовары КАК Т | |||
| 4
    
        АНДР 06.03.25✎ 20:28 | 
        (0) Без этого не ругается!?
 (ВЫБРАТЬ 0 КАК Поле1) КАК ВложенныйЗапрос | |||
| 5
    
        Bibr 06.03.25✎ 16:53 | 
        (4) без этого не ругается, да.     | |||
| 6
    
        Bibr 06.03.25✎ 17:12 | //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ ЗаявкаНаВозвратТоваровОтКлиентаДополнительныеРеквизиты.Ссылка как Ссылка1, ЗаявкаНаВозвратТоваровОтКлиентаДополнительныеРеквизиты.Свойство как Свойство1, ЗаявкаНаВозвратТоваровОтКлиентаДополнительныеРеквизиты.Значение как Значение1, ЗаказКлиентаДополнительныеРеквизиты.Ссылка как Ссылка2, ЗаказКлиентаДополнительныеРеквизиты.Свойство как Свойство2, ЗаказКлиентаДополнительныеРеквизиты.Значение как Значение2 ИЗ Документ.ЗаявкаНаВозвратТоваровОтКлиента.ДополнительныеРеквизиты КАК ЗаявкаНаВозвратТоваровОтКлиентаДополнительныеРеквизиты, Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК ЗаказКлиентаДополнительныеРеквизиты в таком виде не ругается | |||
| 7
    
        АНДР 06.03.25✎ 17:20 | 
        (6) А если в Где добавить
 (ЗаказКлиентаДополнительныеРеквизиты.Ссылка = ВЫРАЗИТЬ(NULL КАК Справочник.Назначения).Заказ) | |||
| 8
    
        АНДР 06.03.25✎ 17:25 | 
        (7) И раздели уже таблицы Документ.ЗаявкаНаВозвратТоваровОтКлиента и 
 Документ.ЗаказКлиента | |||
| 9
    
        Ёпрст 06.03.25✎ 20:21 | 
        Ипать, еще и кросс джоин туда.     | |||
| 10
    
        Bibr 07.03.25✎ 10:26 | 
        (7-9)
 что делать-то? интересует, как убрать ошибку. Желательно правкой данных/таблиц, а не кода | |||
| 11
    
        Bibr 07.03.25✎ 10:33 | 
        (7) та же ошибка     | |||
| 12
    
        Мультук гуру 07.03.25✎ 10:37 | 
        (10) 
 Сарказм. 1) Это же очевидно -- прихлопнуть все "ДополнительныеРеквизиты" в "ЗаявкаНаВозвратТоваровОтКлиента" и "ЗаявкаНаВозвратТоваровОтКлиента" -- нет данных, нет выборки 2) Так-то запрос (6) прикольный, ага 3) Тут два варианта. Ждать патчей ИЛИ смотреть "а как раньше было". Либо раньше было также, но не было доп.реквизитов см пункт 1 | |||
| 13
    
        АНДР 07.03.25✎ 10:57 | 
        (11) Теперь ищи в какой таблице (8)
 Потом по периодам ищи конкретную запись. | |||
| 14
    
        Мультук гуру 07.03.25✎ 11:15 | 
        Риторический вопрос.
 А какое отношение к типовая обработка "ОбеспечениеПотребностей" Имеет таблица "Документ.ЗаказКлиента.ДополнительныеРеквизиты" | |||
| 15
    
        Bibr 07.03.25✎ 12:55 | 
        (14)
 юзеры в обработке ОбеспечениеПотребностей делают отбор по допреквизиту своему (своя дата доставки) и видимо автоматом идёт в скд. похоже что в этом и проблема | |||
| 16
    
        Bibr 07.03.25✎ 14:14 | 
        Проблема решена.
 Причина - юзер добавил доп реквизит, который использовался в отборе обработки в ещё один тип документа. т.е. тот же доп реквизит расширил на новый тип. и после этого типовая обработка стала формировать такой запрос, который скуль отказывается переваривать. Т.е. отбор по доп реквизиту в этой обработке нормально работает пока доп реквизит только для одного типа объекта. Решение - удалить доп реквизит из нового типа дока и для нового создать отдельный. всем спасибо | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |