Имя: Пароль:
1C
1С v8
Не работает отбор при выгрузке журнала регистрации через COM-соединение
0 sirbure
 
02.11.15
12:10
Что я делаю не так? Журнал выгружается весь!  Почему? вот Код:

База=Новый COMОбъект("v82.ComConnector");
Соединение=    База.Connect(ПутьКБазе);
МассивСобытий = Новый Массив;
МассивСобытий.Добавить("_$Data$_.Unpost");
МассивСобытий.Добавить("_$Data$_.New");
МассивСобытий.Добавить("_$Data$_.Post");
МассивСобытий.Добавить("_$Session$_.Finish");
МассивСобытий.Добавить("_$Session$_.Start");
Фильтр=Новый Структура;
Дата1=НачалоГода(Дата(2012,01,01,00,00,00));    
Дата2=Дата(2013,01,01,00,00,00);  
Фильтр.Вставить("ДатаНачала",Дата1);
Фильтр.Вставить("ДатаОкончания",Дата2);
Фильтр.Вставить("Событие",МассивСобытий);
Соединение.ВыгрузитьЖурналРегистрации("C:\DATA\DATA.xml",Фильтр);
1 Злопчинский
 
02.11.15
12:12
а у нас ЖР пухнет очень быстро, только прибили = хреняк уже опять полтора гига и это при том, что операций в БП3 (пока только филиал) - с гулькин нос (кто такой "гулька" - непонятно!)
2 sirbure
 
02.11.15
12:16
(1)  Что это?)
3 RomanYS
 
02.11.15
12:23
Параметры:

<Приемник> (обязательный)

Тип: Строка; ТаблицаЗначений.
Строка, содержащая имя выходного XML файла, либо таблица значений, в которую будут выгружены выбранные в соответствии с отбором записи журнала регистрации.



Судя по этому фильтр работает только при выгрузке в ТЗ, хотя прочитать можно по разному.

Ну если пробовать, то корректнее всё-таки
Фильтр= Соединение.NewObject("Структура");
4 sirbure
 
02.11.15
12:31
(3)  Неа, Не соответствие типов, там же com обхект получается а не структура!
5 RomanYS
 
02.11.15
12:50
(4) проверил, всё работает, и фильтр и через ком и в файл.
А если делать как в (0), то действительно выгружает весь ЖР
6 TormozIT
 
гуру
02.11.15
12:53
Чую, автор еще долго будет мучаться с COM.
7 vhl
 
02.11.15
12:56
(4) слушай старших, не спрорь!
8 RomanYS
 
02.11.15
12:57
(6) это да...
Но 1с помогает ему запутаться, когда ей передаешь структуру с другой стороны соединения, она не выдает исключение, а игнорирует параметр
9 TormozIT
 
гуру
02.11.15
13:02
(8) Возможно там нет проверки типа, а проверяется что это коллекция. А дальше в ней ищутся элементы типа КлючИЗНачение и не находятся. В общем похоже на баг платформы. Ты прав.
10 sirbure
 
02.11.15
13:07
(5)  Да, тупанул) массив тоже нужно было на соединении создавать!  Уже лучше)Но, Тогда возникает вопрос: а Можно ли как то сохранить таблицу значений которая на стороне соединения в mlx ?
11 sirbure
 
02.11.15
15:15
Просто привлекаю внимание!
12 RomanYS
 
02.11.15
15:21
(10) что такое mxl знаю, xml знаю.
mlx пока не знаю, сделаешь - расскажешь?
13 sirbure
 
02.11.15
15:43
(12) mxl конечно же!
14 RomanYS
 
02.11.15
15:46
(13) получи ТЗ, обойди циклом выведи по макету.
Или ТЗ в построитель отчета - там строчек 5 кода.
15 sirbure
 
02.11.15
16:09
(14)  не очень понял про построитель отчета!
16 Serginio1
 
02.11.15
17:00
С ком проще работать через внешние отчеты. Отладил на клиенте, затем вызываешь внешниюю обработку через COM задавая нужные параметры
17 Serginio1
 
02.11.15
17:01
18 Serginio1
 
02.11.15
17:04
Ну и грабли постоянные
МассивСобытий = Новый Массив;
вместо База.New("Массив");