Имя: Пароль:
1C
1C 7.7
v7: 1с++ файловая. Итоги и временные таблицы
0 zling
 
28.10.12
21:48
через OLEDBData. У кого есть пример? Скиньте пож-та
69 zling
 
29.10.12
09:58
(67) они были скопированы из архива старой базы, переименованы
70 Ёпрст
 
29.10.12
09:59
(69) переименованы.. нафига ?
скопированы, куда ?
в родную базу ?
71 zling
 
29.10.12
10:00
ну да. А что не так то. Не объединять же их в одну
72 Ёпрст
 
29.10.12
10:02
(71) п..ц

Нужно было всего то, написать обычный запрос к внешней базе, используя метапарсер и ПрисоединитьМД + в этом же запросе поиметь объекты ЭТОЙ базы, синхронизируя элементы с разных баз по какому либо реквизиту (или, если это копия базы - сразу типизировать к объектам этой базы)

А не городить огород с временными табличками и с каким-то нелепым переименованием и копированием файлов.
73 zling
 
29.10.12
10:04
(72) обычный запрос без execscript вполне читает эти таблицы, проверял. Проблемы начинаются когда по запросу пользователя идет много union ов.
74 zling
 
29.10.12
10:06
тогда мы натыкаемся на вышеописанное ограничение дбф запросов в 1024 символа в скомпил. виде
75 zling
 
29.10.12
10:06
в таком случае я хочу поместить их во внутр. таблицу, а потом объединить
76 zling
 
29.10.12
10:07
вот тут и начинаются траблы с execscript  select into cursor
77 zling
 
29.10.12
10:10
Ёпрст4, скажите плиз, как без этих апострофов?
78 zling
 
29.10.12
10:14
к настоящей (родной) таблице базы тоже самое
ТекстЗапроса="EXECSCRIPT('SELECT  * INTO CURSOR TmpTable1 NOFILTER FROM ( '
   |' SELECT '
   |'РегПродажа_04_4.SP2222 AS Себест'
   |' FROM '
   |' RA2228 as РегПродажа_04_4 '
   |') AS WW  ')";
ICommandText::Execute(): Function name is missing ).


так все нормально
ТекстЗапроса="EXECSCRIPT('SELECT  * INTO CURSOR TmpTable1 NOFILTER FROM (  SELECT РегПродажа_04_4.SP2222 AS Себест  FROM RA2228 as РегПродажа_04_4 ) AS WW  ')";
(одной строкой)

и так тоже (а это не родная таблица)
ТекстЗапроса="EXECSCRIPT('SELECT  * INTO CURSOR TmpTable1 NOFILTER FROM (  SELECT РегПродажа_04_4.SP2222 AS Себест  FROM _RA2228_04 as РегПродажа_04_4 ) AS WW  ')";
79 zling
 
29.10.12
10:18
опять же от амперсантов просто так избавиться не могу, ибо текст не тестового запроса не уложится в 250 символов
80 Ёпрст
 
29.10.12
10:22
http://zalil.ru/33901757

на вот , пример запроса к внешней базе с синхронизацией по коду + укладывание его во временную ТЗ.
81 Ёпрст
 
29.10.12
10:22
и выкинь ты свои переименованыные файлы куда подальше.
82 Ёпрст
 
29.10.12
10:23
пользуй метапарсер и наслаждайся.
83 zling
 
29.10.12
10:35
седня не мой день :(
\_ЗАПРОСКВНЕШНЕЙБАЗЕСИНХРОНИЗАЦИЯПОКОДУ.ERT(73)}: FAILED! ICommandText::Execute(): Syntax error.
84 Ёпрст
 
29.10.12
10:36
(83) покажи, какой текст запроса пихаешь
85 Ёпрст
 
29.10.12
10:36
или тупо мою поделку запустил ?

Если да, то 1cpp какой версии ?
оледб, какой версии ?
86 Ёпрст
 
29.10.12
10:38
87 zling
 
29.10.12
10:39
все из этой ветки самое свежее
88 zling
 
29.10.12
10:40
я кстати был неправ насчет описки на сайте (37)
89 zling
 
29.10.12
10:41
именно все это, и фокспро и 1с++
90 Ёпрст
 
29.10.12
10:43
Тогда моя поделка должна работать, запрос в монопольном режиме выполняешь ?
Если да, заплатка от hogik стоит ?
91 zling
 
29.10.12
10:48
нет не в мономпольном, остальные выполняются. Есть какой-нить метод, прочитать версию 1с++?
92 Ёпрст
 
29.10.12
10:49
(91) ^))))

нажать на знак "?"
Или меню-помощь- о программе.
93 zling
 
29.10.12
10:59
интересно блин, еще раз заменил 1cpp.dll в bin на свежескачанную и ваша тестовая обработка
глОлеДБ = СоздатьОбъект("OLEDBData");
{D:\1C BASES\zzzzzzzzzzzz\EXTFORMS\_ЗАПРОСКВНЕШНЕЙБАЗЕСИНХРОНИЗАЦИЯПОКОДУ.ERT(125)}: Неудачная попытка создания объекта (OLEDBData)
94 Ёпрст
 
29.10.12
11:04
(93) 1cpp Не загружена.. и всего лишь.
ЗЫ: смотри, что в каталогиИБ валяется еще и в папке пользователя.
95 zling
 
29.10.12
11:07
Процедура ПриОткрытии()        
   Попытка              
       Путь = КаталогИБ(); Путь = Путь + ?(Прав(Путь,1)="\","","\");
       ЗагрузитьВнешнююКомпоненту(Путь+"1cpp.dll");
       Сообщить("1с++ загружена");
   Исключение
       Сообщить("не удалось загрузить 1с++");
       Возврат;
   КонецПопытки;
   
   глОлеДБ = СоздатьОбъект("OLEDBData");



1с++ загружена
глОлеДБ = СоздатьОбъект("OLEDBData");
{D:\1C BASES\qqqqqqqqqqqqqq\EXTFORMS\_ЗАПРОСКВНЕШНЕЙБАЗЕСИНХРОНИЗАЦИЯПОКОДУ.ERT(126)}: Неудачная попытка создания объекта (OLEDBData)
96 zling
 
29.10.12
11:08
regsvr32 на win 7 не выполняется
97 zling
 
29.10.12
11:14
при начале работы системы указал, все норм, версия 3.2, но обработка не выполняется Х)
98 Ёпрст
 
29.10.12
11:14
(96) Ё...
1.1cpp сто лет в обед не требует регистрации в реестре
2.судя по ошибке, 1срр не загружена
99 zling
 
29.10.12
11:15
FAILED! ICommandText::Execute(): Syntax error.
100 Ёпрст
 
29.10.12
11:16
3. ЗагрузитьВнешнююКомпоненту пихать в попытку не имеет смысла - это ФУНКЦИЯ, которая возвращает, загружена ВК или нет, Исключения там никогда не будет.
101 Ёпрст
 
29.10.12
11:16
Что написано в Меню "О программе" ?
102 1Сергей
 
29.10.12
11:19
я так и не понял. База точно файловая?
103 zling
 
29.10.12
11:20
да, куда загрузить картинку лучше?
104 Ёпрст
 
29.10.12
11:21
105 zling
 
29.10.12
11:27
106 Ёпрст
 
29.10.12
11:28
И.. ?
107 zling
 
29.10.12
11:30
108 zling
 
29.10.12
11:32
EXECSCRIPT('SELECT  * INTO CURSOR  Вася NOFILTER from (  '+
' SELECT '+
' СпрНаш.DESCR as КлиентосВЭтойбазе '+
' ,Спр.DESCR as КлиентосВУдаленнойБазе '+
' FROM sc134 СпрНаш '+
' left join D:\1C bases\xxxxxxxxxxx\torg92\sc134 Спр on СпрНаш.Code = Спр.Code )as WW  ')
109 Ёпрст
 
29.10.12
11:34
И.. точно не в монопольном режиме ?
И точно в обеих базах есть справочник.Контрагенты ?
И что пишет это ?

ОлеДБКоманда.Отладка(1) ?
110 Ёпрст
 
29.10.12
11:35
и точно, что установлен vfp из ссылки выше ?
111 zling
 
29.10.12
11:36
а в ссылке из майкрософта файлик vfpoledb.msm - чисто вспомогательный, или его тоже куда закидывать нужно?
112 Ёпрст
 
29.10.12
11:36
покажи вкладочку с предприятием
113 zling
 
29.10.12
11:36
(110) ну да
114 Ёпрст
 
29.10.12
11:36
что значит чисто вспомогательный ?!
Это установщик
115 zling
 
29.10.12
11:37
msi - установщик
116 Ёпрст
 
29.10.12
11:37
VFPOLEDBSetup.msi нужен вот этот.. + рестарт компа потом
117 zling
 
29.10.12
11:39
http://s1.ipicture.ru/uploads/20121029/G3UgJPFH.png предприятие. Ща перезагружусь
118 zling
 
29.10.12
11:54
все тож самое
FAILED! ICommandText::Execute(): Syntax error.
119 Ёпрст
 
29.10.12
11:56
не верю.
:)
120 Ёпрст
 
29.10.12
11:56
проверил на 2008  - усё работате
121 zling
 
29.10.12
11:56
я тоже :)
122 Ёпрст
 
29.10.12
11:57
нет 7-ки под рукой, думаю, там тоже усё работате.

Без помещения во временную ТЗ работает ?

Если да, то права на запись в каталогИБ есть ?
123 zling
 
29.10.12
11:57
грю не мой день :) у меня ща бубен отрастет х)
124 Ёпрст
 
29.10.12
11:57
именно туда "складываются" псевдо-временные файлы.
125 zling
 
29.10.12
12:00
значение сортировки в самой базе как нибудь влияют?
126 Ёпрст
 
29.10.12
12:03
влияет.. но в данном запросе - нет
127 Ёпрст
 
29.10.12
12:04
вот так то хоть работает ?

//СоздатьВременнуюТаблицу(ТекстЗапроса,"Вася");
//Возврат ОлеДБКоманда.ВыполнитьИнструкцию("select * from Вася");
Возврат ОлеДБКоманда.ВыполнитьИнструкцию(ТекстЗапроса);
128 Ёпрст
 
29.10.12
12:05
+ убери из текста запроса все комментарии (то что с -- )
129 zling
 
29.10.12
12:06
ща
130 zling
 
29.10.12
12:08
ТЗ = ОлеДБКоманда.ВыполнитьИнструкцию("EXECSCRIPT('SELECT  * INTO "+ТипТабл+"  "+
   ИмяВременнойТаблицы+" "+ДобПар+" from (SELECT СпрНаш.DESCR  as КлиентосВЭтойбазе ,Спр.DESCR as КлиентосВУдаленнойБазе FROM $Справочник.Контрагенты СпрНаш  left join База2.@Справочник.Контрагенты Спр on СпрНаш.Code = Спр.Code) as WW  ') ");  
ошибка уже другая
CommandText::Execute(): File '$справочник.контрагенты' does not exist.
131 Ёпрст
 
29.10.12
12:09
(130) ну круто, в базе нет справочник.Контрагенты у тебя.
132 Ёпрст
 
29.10.12
12:09
и (127) проверил ?
133 zling
 
29.10.12
12:11
так

//СоздатьВременнуюТаблицу(ТекстЗапроса,"Вася");
   
   //Возврат ОлеДБКоманда.ВыполнитьИнструкцию("select * from Вася");
   
   Возврат ОлеДБКоманда.ВыполнитьИнструкцию(ТекстЗапроса);

и без коментариев не работает
134 zling
 
29.10.12
12:11
без коменнтов в тексте запроса
135 zling
 
29.10.12
12:12
ОлеДБКоманда = глОлеДБ.СоздатьКоманду();
   ТекстЗапроса = "
   |SELECT
   |    СпрНаш.DESCR as КлиентосВЭтойбазе
   |    ,Спр.DESCR as КлиентосВУдаленнойБазе
   |FROM $Справочник.Контрагенты СпрНаш
   |left join База2.@Справочник.Контрагенты Спр on СпрНаш.Code = Спр.Code
   |";
   глПарсерВторойБазы(ТекстЗапроса,"База2",ПутьКБазе2);
   ТекстЗапроса=СтрЗаменить(ТекстЗапроса,"*",":");
   
   //СоздатьВременнуюТаблицу(ТекстЗапроса,"Вася");
   
   //Возврат ОлеДБКоманда.ВыполнитьИнструкцию("select * from Вася");
   
   Возврат ОлеДБКоманда.ВыполнитьИнструкцию(ТекстЗапроса);


FAILED! ICommandText::Execute(): Syntax error.
136 zling
 
29.10.12
12:13
спр.Контрагенты есть
137 Ёпрст
 
29.10.12
12:13
хрень какая то, а так ?

Возврат ОлеДБКоманда.ВыполнитьИнструкцию("select * from $Справочник.Контрагенты");
138 zling
 
29.10.12
12:14
(137) выполняет
139 zling
 
29.10.12
12:15
win 7 home edition - глючная скатина, может из-за нее?
140 Ёпрст
 
29.10.12
12:16
а так ?
    ТекстЗапроса = "
   |SELECT *
   |from База2.@Справочник.Контрагенты";
   глПарсерВторойБазы(ТекстЗапроса,"База2",ПутьКБазе2);
Возврат ОлеДБКоманда.ВыполнитьИнструкцию(ТекстЗапроса);
141 Ёпрст
 
29.10.12
12:17
(139) надеюсь, 1с-ина у тебя не портабл версия ?!
142 Ёпрст
 
29.10.12
12:17
она не дружит с вк
143 zling
 
29.10.12
12:17
сетевая все компоненты
144 zling
 
29.10.12
12:18
портабл - это что?
145 zling
 
29.10.12
12:19
Command contains unrecognized phrase/keyword
146 Ёпрст
 
29.10.12
12:20
(144) это отвязанная от винды версия платформы без установщика
147 zling
 
29.10.12
12:20
щас типовуху скачаю откуда-нибудь
148 Ёпрст
 
29.10.12
12:21
а так, что пишет ?

    ТекстЗапроса = "
   |SELECT *
   |from База2.@Справочник.Контрагенты";
   глПарсерВторойБазы(ТекстЗапроса,"База2",ПутьКБазе2);
  ОлеДБКоманда.Отладка(1);
Возврат ОлеДБКоманда.ВыполнитьИнструкцию(ТекстЗапроса);
149 zling
 
29.10.12
12:24
SELECT *
from D:\1C bases\xxxxxxxxxxx\torg92\sc134
Возврат ОлеДБКоманда.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\1C BASES\FIESTA-2010\FIESTA-2010\EXTFORMS\_ЗАПРОСКВНЕШНЕЙБАЗЕСИНХРОНИЗАЦИЯПОКОДУ.ERT(119)}: FAILED! ICommandText::Execute(): Command contains unrecognized phrase/keyword.
150 Salimbek
 
29.10.12
12:27
(149) Все дело в пробеле пути к базе?
151 Ёпрст
 
29.10.12
12:28
(150) скорее всего
152 zling
 
29.10.12
12:28
(150) кстати возможно, а можно как нибудь обойти, типа []?
153 Ёпрст
 
29.10.12
12:29
можно попробовать в [] взять такой путь к табличке.
154 Ёпрст
 
29.10.12
12:29
(152) пробуй.
155 zling
 
29.10.12
12:33
да, выполнилась )))
156 Ёпрст
 
29.10.12
12:34
Вот, теперь с временной тоже должно работать..
ну и..
можешь хоть к 10 базам в одном запросе обращаться
157 zling
 
29.10.12
12:37
щас
158 zling
 
29.10.12
12:39
ТЗ = ОлеДБКоманда.ВыполнитьИнструкцию("EXECSCRIPT('SELECT  * INTO "+ТипТабл+"  "+
{D:\1C\F2010\_ЗАПРОСКВНЕШНЕЙБАЗЕСИНХРОНИЗАЦИЯПОКОДУ.ERT(73)}: FAILED! ICommandText::Execute(): Cannot open file d:\1c\f2010\f2010\sc134.dbf.
159 Ёпрст
 
29.10.12
12:40
(158) монопольно выполняешь ?
:)
160 zling
 
29.10.12
12:40
все нормально!!!
161 zling
 
29.10.12
12:41
ура!!!
162 zling
 
29.10.12
12:41
Ребята, спасибо большое.
163 zling
 
29.10.12
12:43
могу на пиво/морожное на яндекс или веб мани немного кинуть, хотя конечно Ёпрст4 и  kiruha потратили время намного больше. Кидайте реквизиты :)
164 zling
 
29.10.12
12:46
Salimbek тоже спасибо :)
165 zling
 
29.10.12
12:47
И КонецЦикла
166 Ёпрст
 
29.10.12
12:48
в личке всё есть
167 zling
 
29.10.12
12:50
ок
168 Salimbek
 
29.10.12
13:52
(164) На здоровье...