|
Ком ошибка при запросе | ☑ | ||
---|---|---|---|---|
0
Jurgens73
21.10.14
✎
12:55
|
Уже перерыл много чего но никак не могу разобраться. кто может подскажите причину.
Ком = Новый COMObject("V82.ComConnector"); Соед = Ком.Connect(СтрокаСоединения); КомЗапрос = Соед.NewObject("Запрос"); ТекстКомЗапрос = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1, | ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Субконто2, | ХозрасчетныйОстаткиИОбороты.Субконто3 КАК Субконто3, | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт, | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт КАК СуммаНачальныйОстатокКт, | ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт, | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт, | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт, | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт, | ХозрасчетныйОстаткиИОбороты.Счет |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачДата, &КонДата, Период, , Счет В ИЕРАРХИИ (&ВыбСчет), , ) КАК ХозрасчетныйОстаткиИОбороты |ГДЕ | ХозрасчетныйОстаткиИОбороты.Организация = &Организация"; Если ЗначениеЗаполнено(СУбконто1) ТОгда ТекстКомЗапрос = ТекстКомЗапрос + " | И ХозрасчетныйОстаткиИОбороты.Субконто1 = &Субконто1"; КомСубконто1 = СУбконто1; Если СУбконто1 = Неопределено Тогда ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(СУбконто1)) Тогда КомСубконто1 = Соед.Справочники[Субконто1.метаданные().имя].НайтиПоНаименованию(Субконто1.Наименование); ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипЗнч(СУбконто3)) Тогда Сообщить("Документ"); КонецЕсли; КомЗапрос.УстановитьПараметр("Субконто1", КомСубконто1); КонецЕсли; |
|||
1
Looser-1c
21.10.14
✎
12:55
|
Я угадаю ошибку с трёх букв!
|
|||
2
Ёпрст
21.10.14
✎
12:56
|
ВыбСчет - это че ?
|
|||
3
Ёпрст
21.10.14
✎
12:56
|
видать с счет не с оле-базы, да ?
|
|||
4
Jurgens73
21.10.14
✎
12:57
|
блин а че исходный текст нельзя редактировать7
|
|||
5
Ёпрст
21.10.14
✎
12:57
|
(4) можно - используй силу копипаста!
|
|||
6
Maxus43
21.10.14
✎
12:58
|
нет не выполнить, ни прочего.
Чего за ошибка? (4) Тут нельзя забрать слова назад, думай чего пишешь) |
|||
7
Jurgens73
21.10.14
✎
12:58
|
Если ЗначениеЗаполнено(СУбконто3) ТОгда
ТекстКомЗапрос = ТекстКомЗапрос + " | И ХозрасчетныйОстаткиИОбороты.Субконто3 = &Субконто3"; КомСубконто3 = СУбконто3; Если СУбконто3 = Неопределено Тогда ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(СУбконто3)) Тогда КомСубконто3 = Соед.Справочники[Субконто3.метаданные().имя].НайтиПоНаименованию(Субконто3.Наименование); ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипЗнч(СУбконто3)) Тогда ЗначениеПеречисления = Субконто3; ИмяПеречисления = ЗначениеПеречисления.Метаданные().Имя; ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(ЗначениеПеречисления); ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя; КомСубконто3 = соед.Метаданные().Перечисления[Субконто3.Метаданные().Имя].EnumValues[ИмяЗначенияПеречисления]; КонецЕсли; КомЗапрос.УстановитьПараметр("Субконто3", КомСубконто3); КонецЕсли; КомЗапрос.Текст = ТекстКомЗапрос; омРезультат = КомЗапрос.Выполнить(); по причине: Произошла исключительная ситуация (1C:Enterprise 8.2.19.83): {(16, 42)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. И ХозрасчетныйОстаткиИОбороты.Субконто3 <<?>>= &Субконто3 |
|||
8
Jurgens73
21.10.14
✎
12:59
|
субконто3 - перечисление
|
|||
9
Maxus43
21.10.14
✎
13:00
|
(7) ну типы не совпадают судя по ошибке. Мы как узнаем что там?
Проверь в той базе план счетов, субконты его, этот же запрос выполни там |
|||
10
Jurgens73
21.10.14
✎
13:01
|
Да там в той базе субконто3 так же перечисление этого же типа
|
|||
11
Jurgens73
21.10.14
✎
13:02
|
и педедаю перечисление в отладчике ком объект уже перечисление тип
|
|||
12
palpetrovich
21.10.14
✎
13:04
|
(10) покажи что у тебя в УстановитьПараметр для Субконто3
|
|||
13
Maxus43
21.10.14
✎
13:06
|
что-то мне кажется странно это вот соед.Метаданные().Перечисления[Субконто3.Метаданные().Имя].EnumValues[ИмяЗначенияПеречисления];...
попробуй четко указать перечисление, чтоб проверить. соед.Перечисления[Субконто3.Метаданные().Имя].ЧтоТамУТебя |
|||
14
Maxus43
21.10.14
✎
13:08
|
ТИп там у тебя - метаданные на выходе, а не значение перечисления
|
|||
15
palpetrovich
21.10.14
✎
13:11
|
*(12) для ВыбСчет конечно
(13) а мне вот это странно: КомСубконто1 = СУбконто1; :) |
|||
16
Maxus43
21.10.14
✎
13:12
|
(15) это да, странно, но не смертельно если всё таки условия срабатывают)
|
|||
17
palpetrovich
21.10.14
✎
13:15
|
Если нижеизложенные предположения верны:
Субконто1 // эта база КомСубконто1 // подключаемая база то Если ЗначениеЗаполнено(СУбконто1) ТОгда ТекстКомЗапрос = ТекстКомЗапрос + " | И ХозрасчетныйОстаткиИОбороты.Субконто1 = &Субконто1"; КомСубконто1 = СУбконто1; Если СУбконто1 = Неопределено Тогда // сюда по-ходу не попадаем :) |
|||
18
Jurgens73
21.10.14
✎
13:45
|
Задал явно. сработало. спасибо. буду дальше разбираться
|
|||
19
Maxus43
21.10.14
✎
13:49
|
(18) Метаданные() - лишнее там, перемудрил
|
|||
20
Jurgens73
21.10.14
✎
13:55
|
EnumValues - вот лишнее
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |