|
Ошибка в запросе ТОИР | ☑ | ||
---|---|---|---|---|
0
extrim-style
22.11.16
✎
16:36
|
Обнаружилась следующая ошибка: иногда неверно формируется структура данных, теряются операции. Проявляется следующим образом: при первом выполнении - неправильно, при всех последующих (даже после перезапуска) - верно. В случае ошибки функция возвращает таблицу, которая неправильно отсортирована. Не могу понять, что на это влияет и как это исправить?
Параметр ID_Ремонта - одинаковый, параметр ТаблицаРемонтныхРаботПоНормативу - в этих случаях отличается идентификатор одного из полей. Функция ПолучитьТаблицуИсполняемыхРаботДляЗаявки(ID_Ремонта, ТаблицаРемонтныхРаботПоНормативу) Запрос = Новый Запрос; МенеджерВТ = новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; Запрос.Текст = "ВЫБРАТЬ | ТаблицаРемонтныхРаботПоНормативу.РемонтнаяРабота КАК РемонтнаяРабота, | ТаблицаРемонтныхРаботПоНормативу.РемонтыОборудования_ID, | ТаблицаРемонтныхРаботПоНормативу.ТехКартаРемонта, | ТаблицаРемонтныхРаботПоНормативу.Родитель_ID, | ТаблицаРемонтныхРаботПоНормативу.ID, | ТаблицаРемонтныхРаботПоНормативу.Количество КАК Количество |ПОМЕСТИТЬ ТаблицаРемонтныхРаботПоНормативу |ИЗ | &ТаблицаРемонтныхРаботПоНормативу КАК ТаблицаРемонтныхРаботПоНормативу"; Запрос.УстановитьПараметр("ТаблицаРемонтныхРаботПоНормативу", ТаблицаРемонтныхРаботПоНормативу); Запрос.Выполнить(); ЗапросРР = Новый Запрос; ЗапросРР.МенеджерВременныхТаблиц = МенеджерВТ; ЗапросРР.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | торо_ЗаявкаНаРемонтРемонтныеРаботы.РемонтнаяРабота, | торо_ЗаявкаНаРемонтРемонтныеРаботы.ID, | торо_ЗаявкаНаРемонтРемонтныеРаботы.РемонтыОборудования_ID |ПОМЕСТИТЬ РаботыВДокументах |ИЗ | Документ.торо_ЗаявкаНаРемонт.РемонтныеРаботы КАК торо_ЗаявкаНаРемонтРемонтныеРаботы |ГДЕ | торо_ЗаявкаНаРемонтРемонтныеРаботы.РемонтыОборудования_ID В(&РемонтыОборудования_ID) | И торо_ЗаявкаНаРемонтРемонтныеРаботы.Ссылка.Проведен | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | торо_НарядНаВыполнениеРемонтныхРаботРемонтныеРаботы.РемонтнаяРабота, | торо_НарядНаВыполнениеРемонтныхРаботРемонтныеРаботы.ID, | торо_НарядНаВыполнениеРемонтныхРаботРемонтныеРаботы.РемонтыОборудования_ID |ИЗ | Документ.торо_НарядНаВыполнениеРемонтныхРабот.РемонтныеРаботы КАК торо_НарядНаВыполнениеРемонтныхРаботРемонтныеРаботы |ГДЕ | торо_НарядНаВыполнениеРемонтныхРаботРемонтныеРаботы.РемонтыОборудования_ID В(&РемонтыОборудования_ID) | И торо_НарядНаВыполнениеРемонтныхРаботРемонтныеРаботы.Ссылка.Проведен | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | торо_АктОВыполненииЭтапаРаботРемонтныеРаботы.РемонтнаяРабота, | торо_АктОВыполненииЭтапаРаботРемонтныеРаботы.ID, | торо_АктОВыполненииЭтапаРаботРемонтныеРаботы.РемонтыОборудования_ID |ИЗ | Документ.торо_АктОВыполненииЭтапаРабот.РемонтныеРаботы КАК торо_АктОВыполненииЭтапаРаботРемонтныеРаботы |ГДЕ | торо_АктОВыполненииЭтапаРаботРемонтныеРаботы.РемонтыОборудования_ID В(&РемонтыОборудования_ID) | И торо_АктОВыполненииЭтапаРаботРемонтныеРаботы.Ссылка.Проведен |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТаблицаРемонтныхРаботПоНормативу.РемонтнаяРабота, | ТаблицаРемонтныхРаботПоНормативу.Количество, | ТаблицаРемонтныхРаботПоНормативу.РемонтыОборудования_ID, | ТаблицаРемонтныхРаботПоНормативу.ID, | ТаблицаРемонтныхРаботПоНормативу.Родитель_ID, | ТаблицаРемонтныхРаботПоНормативу.ТехКартаРемонта |ПОМЕСТИТЬ РаботыИзДокументаОснования |ИЗ | ТаблицаРемонтныхРаботПоНормативу КАК ТаблицаРемонтныхРаботПоНормативу |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | РаботыВДокументах.ID КАК ID1, | РаботыИзДокументаОснования.РемонтнаяРабота, | РаботыИзДокументаОснования.РемонтыОборудования_ID, | РаботыИзДокументаОснования.ID, | РаботыИзДокументаОснования.Родитель_ID, | РаботыИзДокументаОснования.ТехКартаРемонта, | РаботыИзДокументаОснования.Количество |ПОМЕСТИТЬ ИтоговаяТаблица |ИЗ | РаботыИзДокументаОснования КАК РаботыИзДокументаОснования | ЛЕВОЕ СОЕДИНЕНИЕ РаботыВДокументах КАК РаботыВДокументах | ПО РаботыИзДокументаОснования.РемонтнаяРабота = РаботыВДокументах.РемонтнаяРабота | И РаботыИзДокументаОснования.РемонтыОборудования_ID = РаботыВДокументах.РемонтыОборудования_ID |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ИтоговаяТаблица.РемонтнаяРабота, | ИтоговаяТаблица.Количество, | ИтоговаяТаблица.РемонтыОборудования_ID, | ИтоговаяТаблица.ID, | ИтоговаяТаблица.ТехКартаРемонта, | ИтоговаяТаблица.Родитель_ID |ИЗ | ИтоговаяТаблица КАК ИтоговаяТаблица |ГДЕ | ИтоговаяТаблица.ID1 ЕСТЬ NULL "; ЗапросРР.УстановитьПараметр("РемонтыОборудования_ID", ID_Ремонта); ТЗРаботы = ЗапросРР.Выполнить().Выгрузить(); Возврат ТЗРаботы; КонецФункции |
|||
1
extrim-style
22.11.16
✎
16:43
|
+(0) в таблице из второго параметра, имеется поле с уникальным идентификатором, который создаётся в коде. Какой бы ни был идентификатор (протестировал несколько раз), почему-то всегда первый раз - неправильно, потом - верно. Не пойму, в чём суть подобной ошибки?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |