|   |   | 
| 
 | Подключение по com. Запрос не работает - "неверные параметры" | ☑ | ||
|---|---|---|---|---|
| 0
    
        Темный 19.07.11✎ 12:37 | 
        Подключаюсь к другой базе по com - соединению. Не могу загрузить данные из таблицы значений во временную таблицу :-(
  Итак, как я получаю ТЗ в своей базе: ТЗ1 = Новый ТаблицаЗначений; ТЗ1.Колонки.Добавить("Номенклатура",Новый ОписаниеТипов("Строка")); ТЗ1.Колонки.Добавить("НомерГТД",Новый ОписаниеТипов("Строка")); ТЗ1.Колонки.Добавить("НаименованиеПолное",Новый ОписаниеТипов("Строка")); ТЗ1.Колонки.Добавить("Код",Новый ОписаниеТипов("Строка")); ТЗ1.Колонки.Добавить("СтранаПроисхождения",Новый ОписаниеТипов("Строка")); ТЗ1.Колонки.Добавить("Родитель",Новый ОписаниеТипов("Строка")); | |||
| 1
    
        Темный 19.07.11✎ 12:38 | 
        Потом делаю ТЗ в подключенной базе:
  ТЗПриемник = Приемник.NewObject("ТаблицаЗначений"); ТЗПриемник.Колонки.Добавить("Номенклатура", Приемник.NewObject("ОписаниеТипов","Строка")); ТЗПриемник.Колонки.Добавить("НомерГТД",Приемник.NewObject("ОписаниеТипов","Строка")); ТЗПриемник.Колонки.Добавить("НаименованиеПолное",Приемник.NewObject("ОписаниеТипов","Строка")); ТЗПриемник.Колонки.Добавить("Код",Приемник.NewObject("ОписаниеТипов","Строка")); ТЗПриемник.Колонки.Добавить("СтранаПроисхождения",Приемник.NewObject("ОписаниеТипов","Строка")); ТЗПриемник.Колонки.Добавить("Родитель",Приемник.NewObject("ОписаниеТипов","Строка")); | |||
| 2
    
        Темный 19.07.11✎ 12:39 | 
        Потом заполняю первую ТЗ обходом из запроса:
  Пока ВыбЗап.Следующий() Цикл СтрокаТЗ1 = ТЗ1.Добавить(); СтрокаТЗ1.Номенклатура = СокрЛП(ВыбЗап.Номенклатура); СтрокаТЗ1.НомерГТД = СокрЛП(ВыбЗап.НомерГТД); СтрокаТЗ1.НаименованиеПолное = СокрЛП(ВыбЗап.НаименованиеПолное); СтрокаТЗ1.Код = СокрЛП(ВыбЗап.Код); СтрокаТЗ1.СтранаПроисхождения = СокрЛП(ВыбЗап.СтранаПроисхождения); СтрокаТЗ1.Родитель = СокрЛП(ВыбЗап.Родитель); КонецЦикла; | |||
| 3
    
        Темный 19.07.11✎ 12:39 | 
        Потом переношу данные:
  Стр = ЗначениеВСтрокуВнутр(ТЗ1); ТЗПриемник = ЗначениеИзСтрокиВнутр(Стр); | |||
| 4
    
        Темный 19.07.11✎ 12:40 | 
        А вот и сам запрос:
  "ВЫБРАТЬ | Таб1.Номенклатура КАК Номенклатура, | Таб1.НомерГТД, | Таб1.НаименованиеПолное, | Таб1.Код, | Таб1.СтранаПроисхождения, | Таб1.Родитель |ПОМЕСТИТЬ ТабНомИсточник |ИЗ | &Таб КАК Таб1 |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТабНомИсточник.Номенклатура КАК Номенклатура, | КОЛИЧЕСТВО(НоменклатураСпр.Ссылка) КАК КолВоНайденых, | ТабНомИсточник.НомерГТД, | ТабНомИсточник.НаименованиеПолное, | ТабНомИсточник.Код, | ТабНомИсточник.СтранаПроисхождения, | ТабНомИсточник.Родитель |ИЗ | ТабНомИсточник КАК ТабНомИсточник | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК НоменклатураСпр | ПО ТабНомИсточник.Номенклатура = НоменклатураСпр.Наименование | |СГРУППИРОВАТЬ ПО | ТабНомИсточник.Номенклатура, | ТабНомИсточник.НомерГТД, | ТабНомИсточник.НаименованиеПолное, | ТабНомИсточник.Код, | ТабНомИсточник.СтранаПроисхождения, | ТабНомИсточник.Родитель | |ИМЕЮЩИЕ | КОЛИЧЕСТВО(НоменклатураСпр.Ссылка) = 0"; | |||
| 5
    
        Темный 19.07.11✎ 12:40 | 
        А здесь передаю таблицу:
  Запрос.УстановитьПараметр("Таб",ТЗПриемник); | |||
| 6
    
        73 19.07.11✎ 12:41 | 
        Всё?     | |||
| 7
    
        Темный 19.07.11✎ 12:43 | 
        В отладчике смотрел, таблица имеет колонки тип "Строка".
  выражение значение тип ТЗПриемник.Колонки.Код.ТипЗначения строка описаниетипов | |||
| 8
    
        Темный 19.07.11✎ 12:43 | 
        Ошибка:
  Выборка = Запрос.Выполнить().Выбрать(); по причине: Произошла исключительная ситуация: {(10, 2)}: Неверные параметры "Таб" <<?>>&Таб КАК Таб1 | |||
| 9
    
        Темный 19.07.11✎ 12:44 | 
        Все. Что не так делаю? Вроде форум внимательно читал...     | |||
| 10
    
        73 19.07.11✎ 12:46 | 
        А чего в (2) сразу табличку вторую не заполнить?
  И как запрос создаёшь не показал... | |||
| 11
    
        73 19.07.11✎ 12:49 | 
        (10)+ Имхо, в (3) описание таблички второй затирается...     | |||
| 12
    
        Темный 19.07.11✎ 12:52 | 
        Запрос = Приемник.newObject("Query");     | |||
| 13
    
        Темный 19.07.11✎ 12:53 | 
        Может, и затирается. Но, вряд ли, в отладчике (7)     | |||
| 14
    
        Темный 19.07.11✎ 12:54 | 
        Попробую в (2) сразу заполнять.     | |||
| 15
    
        73 19.07.11✎ 12:55 | 
        (13) По (7) видно чьё это Описание типов и чья строка?     | |||
| 16
    
        Темный 19.07.11✎ 12:57 | 
        Однако, спасибо! Действительно, заполнил сразу табличку и взлетело. Видимо, через строку лучше не передавать     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |