![]() |
![]() |
![]() |
|
v7: Получить таблицу значений с v82.comconnector. ошибка | ☑ | ||
---|---|---|---|---|
0
zladenuw
19.11.12
✎
18:11
|
Делаю так
лКом8 = СоздатьОбъект("v82.comconnector"); СтрокаПодключения = "Srvr=1csqltest;Ref=test;Usr=test;Pwd=test;"; Попытка ТекСоединение = лКом8.connect(СтрокаПодключения); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Табилца8 = ТекСоединение.ПолучитьСписокДокументов(Строка(НачДата),Строка(КонДата)); в 8 Функция ПолучитьСписокДокументов(пДата1,пДата2) Экспорт Запрос = Новый Запрос("ВЫБРАТЬ | ЗаявкаТО.Фирма, | ЗаявкаТО.Номер, | ЗаявкаТО.Дата, | ЗаявкаТО.Клиент, | ЗаявкаТО.Склад, | ЗаявкаТО.Авто, | ЗаявкаТО.ЦФО, | ЗаявкаТОТабЗЧ.ЗЧ.Наименование КАК Наименование, | ЗаявкаТОТабЗЧ.ЗЧ.Артикул КАК Артикул, | ЗаявкаТОТабЗЧ.Кво КАК Кво, | ЗаявкаТОТабЗЧ.Цена КАК Цена, | ЗаявкаТОТабЗЧ.ПроцентСкидки КАК ПроцентСкидки, | ЗаявкаТОТабЗЧ.Сумма КАК Сумма |ИЗ | Документ.ЗаявкаТО.ТабЗЧ КАК ЗаявкаТОТабЗЧ | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаТО КАК ЗаявкаТО | ПО ЗаявкаТОТабЗЧ.Ссылка = ЗаявкаТО.Ссылка |ГДЕ | ЗаявкаТО.Ссылка МЕЖДУ &Дата1 И &Дата2 | И НЕ ЗаявкаТО.Закрыта | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ЗаявкаТОТабРаботы.Ссылка.Фирма, | ЗаявкаТОТабРаботы.Ссылка.Номер, | ЗаявкаТОТабРаботы.Ссылка.Дата, | ЗаявкаТОТабРаботы.Ссылка.Клиент, | ЗаявкаТОТабРаботы.Ссылка.Склад, | ЗаявкаТОТабРаботы.Ссылка.Авто, | ЗаявкаТОТабРаботы.Ссылка.ЦФО, | ЗаявкаТОТабРаботы.Нормативы.Наименование, | ЗаявкаТОТабРаботы.Нормативы.Код, | ЗаявкаТОТабРаботы.Кво, | ЗаявкаТОТабРаботы.Цена, | ЗаявкаТОТабРаботы.ПроцентСкидки, | ЗаявкаТОТабРаботы.Сумма |ИЗ | Документ.ЗаявкаТО.ТабРаботы КАК ЗаявкаТОТабРаботы |ГДЕ | ЗаявкаТОТабРаботы.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2 | И НЕ ЗаявкаТОТабРаботы.Ссылка.Закрыта"); Запрос.УстановитьПараметр("Дата1",Дата1); Запрос.УстановитьПараметр("Дата2",Дата2); ВремТбЗн = Запрос.Выполнить().Выгрузить(); ВремТбЗн2= ВремТбЗн.Скопировать(,"Фирма,Номер,Дата,Клиент,Склад,Авто,ЦФО,Сумма"); ВремТбЗн2.свернуть("Фирма,Номер,Дата,Клиент,Склад,Авто,ЦФО","Сумма"); Возврат ВремТбЗн2; КонецФункции // () Получаю ошибку к = ТекСоединение.ПолучитьСписокДокументов(Строка(НачДата),Строка(КонДата)); {C:\USERS\DESKTOP\FROM7TO8.ERT(38)}: Плохой тип переменной |
|||
1
Шапокляк
19.11.12
✎
18:14
|
Функция ПолучитьСписокДокументов(пДата1,пДата2), а в самой функции Дата1,Дата2. Может, с ошибкой и не связано...
|
|||
2
zladenuw
19.11.12
✎
18:23
|
(0) разобрался.
Пустой запрос был. А можно передать таблицу значений 7 и заполнить ее в 8. если передавать через параметр ? |
|||
3
Шапокляк
19.11.12
✎
18:39
|
текст точно можно
|
|||
4
zladenuw
19.11.12
✎
18:42
|
в 8
Функция КонвертироватьДатус7в8(Дата7,пДень="",пМесяц="",пГод="") День = Лев(Дата7,2); Дата7 = СтрЗаменить(Дата7,День+".",""); Месяц= Лев(Дата7,2); Дата7 = СтрЗаменить(Дата7,Месяц+".",""); Год= Лев(Дата7,2); возврат Дата("20"+Год,Месяц,День,00,00,00); //Дата(1984,03,26,06,24,21) КонецФункции Функция ПолучитьСписокДокументов(пДата1,пДата2) Экспорт Дата1 = КонвертироватьДатус7в8(пДата1); Дата2 = КонвертироватьДатус7в8(пДата2); //Дата(1984,03,26,06,24,21) Запрос = Новый Запрос("ВЫБРАТЬ | ЗаявкаТО.Фирма, | ЗаявкаТО.Номер, | ЗаявкаТО.Дата, | ЗаявкаТО.Клиент, | ЗаявкаТО.Склад, | ЗаявкаТО.Авто, | ЗаявкаТО.ЦФО, | ЗаявкаТОТабЗЧ.ЗЧ.Наименование КАК Наименование, | ЗаявкаТОТабЗЧ.ЗЧ.Артикул КАК Артикул, | ЗаявкаТОТабЗЧ.Кво КАК Кво, | ЗаявкаТОТабЗЧ.Цена КАК Цена, | ЗаявкаТОТабЗЧ.ПроцентСкидки КАК ПроцентСкидки, | ЗаявкаТОТабЗЧ.Сумма КАК Сумма |ИЗ | Документ.ЗаявкаТО.ТабЗЧ КАК ЗаявкаТОТабЗЧ | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаТО КАК ЗаявкаТО | ПО ЗаявкаТОТабЗЧ.Ссылка = ЗаявкаТО.Ссылка |ГДЕ | ЗаявкаТО.Ссылка МЕЖДУ &Дата1 И &Дата2 | И НЕ ЗаявкаТО.Закрыта | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ЗаявкаТОТабРаботы.Ссылка.Фирма, | ЗаявкаТОТабРаботы.Ссылка.Номер, | ЗаявкаТОТабРаботы.Ссылка.Дата, | ЗаявкаТОТабРаботы.Ссылка.Клиент, | ЗаявкаТОТабРаботы.Ссылка.Склад, | ЗаявкаТОТабРаботы.Ссылка.Авто, | ЗаявкаТОТабРаботы.Ссылка.ЦФО, | ЗаявкаТОТабРаботы.Нормативы.Наименование, | ЗаявкаТОТабРаботы.Нормативы.Код, | ЗаявкаТОТабРаботы.Кво, | ЗаявкаТОТабРаботы.Цена, | ЗаявкаТОТабРаботы.ПроцентСкидки, | ЗаявкаТОТабРаботы.Сумма |ИЗ | Документ.ЗаявкаТО.ТабРаботы КАК ЗаявкаТОТабРаботы |ГДЕ | ЗаявкаТОТабРаботы.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2 | И НЕ ЗаявкаТОТабРаботы.Ссылка.Закрыта"); Запрос.УстановитьПараметр("Дата1",НачалоДня(Дата1)); Запрос.УстановитьПараметр("Дата2",КонецДня(Дата2)); Попытка ВремТбЗн = Запрос.Выполнить().Выгрузить(); //Попытка //ВремТбЗн2= ВремТбЗн.Скопировать(,"Фирма,Номер,Дата,Клиент,Склад,Авто,ЦФО,Сумма"); ///ВремТбЗн2.свернуть("Фирма,Номер,Дата,Клиент,Склад,Авто,ЦФО","Сумма"); //Для каждого СтрТЗ Из ВремТбЗн2 Цикл // ТбЗнДокументовСТО.НоваяСтрока(); // ТбЗнДокументовСТО.НомерДокумента = Строка(СтрТЗ.Номер); // ТбЗнДокументовСТО.ДатаДок = Строка(СтрТЗ.Дата); // ТбЗнДокументовСТО.Контрагент = Строка(СтрТЗ.Клиент); // ТбЗнДокументовСТО.Авто = Строка(СтрТЗ.Авто); // ТбЗнДокументовСТО.СТО = Строка(СтрТЗ.ЦФО); // ТбЗнДокументовСТО.Сумма = СтрТЗ.Сумма; //КонецЦикла; Возврат ВремТбЗн; //Исключение // Возврат 0; //КонецПопытки; Исключение Возврат 0; КонецПопытки; КонецФункции // () |
|||
5
zladenuw
19.11.12
✎
18:44
|
(3) передаю через параметр вот так
ТекСоединение.ПолучитьСписокДокументов(ТбЗн,Строка(НачДата),Строка(КонДата)); пишет ошибку о типах и все. А вот с 8 получаю |
|||
6
Шапокляк
19.11.12
✎
19:00
|
Значит, 7-ка не знает что ей делать с полученной из 8-ки таблицей значений.
|
|||
7
zladenuw
19.11.12
✎
19:02
|
(6) жаль. но я же передаю ее же таблицу :(
|
|||
8
zladenuw
19.11.12
✎
19:09
|
а почему тогда не работает вот так.
ТаблицаОбщая8 = ТекСоединение.NewObject("ТаблицаЗначений"); Таблица8 = ТекСоединение.NewObject("ТаблицаЗначений"); к = ТекСоединение.Обмен77.ПолучитьСписокДокументов(Строка(НачДата),Строка(КонДата),ТаблицаОбщая8,Таблица8); в 8 заполняю Функция ПолучитьСписокДокументов(пДата1,пДата2,ВремОбщая,ВремТбЗн) Экспорт ВремОбщая = Запрос.Выполнить().Выгрузить(); ВремТбЗн= ВремОбщая.Скопировать(,"Фирма,Номер,Дата,Клиент,Склад,Авто,ЦФО,Сумма"); ВремТбЗн.свернуть("Фирма,Номер,Дата,Клиент,Склад,Авто,ЦФО","Сумма"); Но таблицы пустые. |
|||
9
zladenuw
19.11.12
✎
19:31
|
у кого есть какие идеи ?
|
|||
10
Шапокляк
19.11.12
✎
19:34
|
в (8) пропущена часть кода где запрос формируется? Если так, то в самом запросе есть несколько странные места: "...ГДЕ
| ЗаявкаТО.Ссылка МЕЖДУ &Дата1 И &Дата2 . И что-то не внушает Функция КонвертироватьДатус7в8(Дата7,пДень="",пМесяц="",пГод="") День = Лев(Дата7,2); Дата7 = СтрЗаменить(Дата7,День+".",""); Месяц= Лев(Дата7,2); Дата7 = СтрЗаменить(Дата7,Месяц+".",""); Год= Лев(Дата7,2); возврат Дата("20"+Год,Месяц,День,00,00,00); //Дата(1984,03,26,06,24,21) КонецФункции Как выглядит в 7-ке Строка(НачДата)? (извините, 7-ку уже 100 лет не ковыряла) |
|||
11
zladenuw
19.11.12
✎
19:35
|
(10) 26.07.12 вот так выглядит.
если передавать в возврат Запрос.выполнить().выгрузить() То таблица есть. если же через параметры. то пусто |
|||
12
Vladal
19.11.12
✎
19:44
|
Сам давненько мучался - ТЗ по ОЛЕ не передается.
v8: ЗначениеИзСтрокиВнутр через ОЛЕ v8: v8: Как перебрать результат запроса, выполненный в другой базе, подключенной по COM? |
|||
13
zladenuw
19.11.12
✎
19:50
|
(12) ну как же не передается.
Если доступно внешние соединение. ех блин. Да я передаю уже Список значений. а он содержит 2 таблицы. По этому пляски с бубном |
|||
14
Vladal
19.11.12
✎
20:24
|
(13) Передаются только объекты базового типа. А всякие ссылки нет, но из ссылок можно получить код, наименование и прочее.
Ну раз со списком значений, посмотри 8-й пост по первой ссылке, у ТС список получился. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |