Имя: Пароль:
1C
1С v8
Косяк в обработке "УниверсальныйОбменДаннымиXML"?
0 sound
 
16.02.12
12:12
Обработка "УниверсальныйОбменДаннымиXML". Создаем в КД2 правила между идентичными конфами (все по умолчанию). Выгружаем какой-нибудь 1 документ с бухгалтерскими проводками. Заходим в конфигуратор базы приемника, запускаем отладку, открываем указанную обработку, ставим галку "Загружать данные в режиме обмена (ОбменДанными.Загрузка = Истина)", идем в МодульНабораЗаписей, например регистра бухгалтерии в процедуру ПередЗаписью, ставим точку останова, смотрим в момент загрузки на значение "ОбменДанными.Загрузка", видим = ЛОЖЬ. Чо за Х, это так надо или я что-то не так понял? То есть сам документ грузится в режиме ОбменДанными.Загрузка = Истина, а его движения в ОбменДанными.Загрузка = ЛОЖЬ?
Покопался в модуле объекта данной обработки нашел процедуру "ЗагрузитьДвижения", мне кажется там где-то после строчки

Движения.Прочитать();

надо добавить строчку:

УстановитьОбменДаннымиЗагрузка(Движения, ЗагружатьДанныеВРежимеОбмена);

или я не прав?
1 sound
 
16.02.12
12:14
А да, версия обработки 2.1.5
2 sound
 
16.02.12
12:46
неужели никто не пользуется этой обработкой а?
3 СноваЗдорова
 
16.02.12
12:53
ща сижу пользуюсь этой обработкой, но не заморачивался. Накопаешь чо - отпишись =)
4 Vladal
 
16.02.12
12:54
Пересчет итогов не отключал?
5 acsent
 
16.02.12
12:56
УниверсальныйОбменДаннымиXML не предназначен для записейдвижений наборами
6 sound
 
16.02.12
13:00
(3) Не заморачивался, наверное, потому что в процедуре "ПередЗаписью" ничего "страшного" как у меня нету, но даже если открыть типовую бухию и посмотреть, то там пара сотен строк кода, а если документов не тыща, а тыщ 500, это что получается делается фактически перепроведение?
7 sound
 
16.02.12
13:02
(4) Пересчет итогов - это про настройки обработки, про конвертацию или про чо?

(5) Где это написано?
8 sound
 
16.02.12
13:08
(5) Если открыть обработку "ВыгрузкаМетаданных", входящей в КД2, то там на форме есть галка "Не выгружать регистры бухгалтерии", значит движения можно выгружать, а в обработке "УниверсальныйОбменДаннымиXML" есть галка "ЗаписыватьРегистрыНаборамиЗаписей"
9 Vladal
 
16.02.12
13:20
(7) Пересчет итогов - это настройка на форме обработки. Но я глянул, у меня обработка УниверсальныйОбменДаннымиXML Турбо, дописанная, и там на морде есть флажок "Отключить пересчет итогов"
10 sound
 
16.02.12
13:59
(9) Очень интересно что это вообще за пересчет итогов?
11 sound
 
16.02.12
14:17
UP
12 guitar_player
 
16.02.12
14:19
(10) книжки по регистрам накопления почитай...
13 sound
 
16.02.12
15:23
(12) Вообще не смешно нифига, а есть что конкретно посоветовать кроме книжек? Про пересчет итогов вообще как бы в курсе, но каким боком они всплывают в данной (типовой) обработке?
14 Feanor
 
16.02.12
16:04
(13) в ПКО для регистра бухгалтерии выстави флаг загрузки и забудь о проблеме
15 sound
 
16.02.12
16:10
(14) Если ПКО - это правила конвертации объекта в КД2(а не приходно-кассовый ордер :)), то все понятно, кароче как решить проблему я в курсе, но вопрос по конкретной обработке: это косяк или тайный смысл?
16 Feanor
 
16.02.12
16:12
(15) у меня в этой обработке тоже печаль есть, задаюсь ровным счетом таким же вопросом...

Передаю таблицу значений как параметр, выгрузка - всё ок, загрузка ругается на тип "Не определено" или "Хранилище значений"
17 sound
 
16.02.12
16:47
(16) Это в КД2 да? А можно как-то замутить с помощью КД чтобы выгружались объекты из массива (в нем куча ссылок на документы и справочники), то есть как-то "скормить" обработке по выгрузке "УниверсальныйОбменДаннымиXML" этот массив, чтобы выгрузка была только по этим данным?
18 Feanor
 
16.02.12
16:52
(17) задать массив как входящий параметр, по-моему, не получится. А вот получить этот массив программно как-то вполне можно.
19 Feanor
 
16.02.12
16:53
+(18) т.е. свою ТЗ я получаю в процессе выгрузки и хочу её передать в загрузку
20 sound
 
16.02.12
16:55
(18) (19) Ну вот в том то и дело, что у меня есть программно сформированный массив ссылок, как мне теперь сделать выгрузку только этих ссылок (ну и тех что рекурсивно цепляются)?
21 DailyLookingOn Sunset
 
16.02.12
16:57
(19)
В таблице значений нужно сохранять ключевые реквизиты.
Какой смысл ГУИды между базами передавать?
22 Feanor
 
16.02.12
16:57
(20) переопредели выборку. в нужной выборке делаешь "Одним запросом" и "Произвольный алгоритм", подсовывешь свою выборку. ну и почитай описание обработчика "Перед обработкой"
23 Feanor
 
16.02.12
16:58
(21) у меня нет гуидов и ссылок в моей ТЗ, чисто служебная информация. не нужно считать меня дауном :)
24 DailyLookingOn Sunset
 
16.02.12
17:04
(23)
И на тип параметра "ХранилищеЗначений" тоже ругается?
Таблицы значений в типах нет, хотя в пределах выгрузки использовать можно.
25 Feanor
 
16.02.12
17:06
(24) да, на "Хранилище значений" и ругается (орфография сохранена). В параметр типа "ХранилищеЗнчаений" помещаю свою ТЗ и ставлю галочку у параметра "Использовать при загрузке"
26 sound
 
16.02.12
17:16
В общем беда следущая, начну издалека :)
Работали себе юзеры в базе, никого не трогали, потом злые программеры решили обновить конфигурацию базы данных, база работает почти круглосуточно, а обновление вместе с пересчетом итогов длится очень долго (писал тут v8: Обновление конфигурации базы данных без пересчета итогов. Сделали средствами скуэль копию, поместили туда юзеров, из живой всех выгнали и сделали обновление за 2-е суток, обновления серьезные примерно 10 релизов проскочили. Планов обмена и прочих красивых штук не настроено, зато есть журнал регистрации из которого можно взять и посмотреть кто и что менял за эти 2-е суток и перенести данные только измененных и новых объектов. Какие-то большие таблицы типа независимых регистров сведений можно перенести опять же скуелем.
27 DailyLookingOn Sunset
 
16.02.12
17:20
(25)
Поржал.
Слепил тестовый XML.
В файле выгрузки в тексте "Хранилище значения" убрал пробел - всё заработало.
Где при выгрузке происходит прокол с типом - наверно можно найти, мне это не надо.
28 DailyLookingOn Sunset
 
16.02.12
17:22
Лепишь заплатку:
Если СтроковыйТипСвойства="Хранилище значения" Тогда
СтроковыйТипСвойства="ХранилищеЗначения";
КонецЕсли;
29 Feanor
 
16.02.12
17:25
(27), (28) молодец, возьми с полки пирожок )))

Но мне подобное решение изначально уже было очевидно. Только кошернее немного допилить обработку, а то каждый раз в хмл менять не комильфо.
30 DailyLookingOn Sunset
 
16.02.12
17:26
(29)
В (28) и есть допилка обработки.
31 Feanor
 
16.02.12
17:27
(30) да, точно
32 sound
 
16.02.12
17:28
+(26)

Фильтр = Новый Структура;
Фильтр.Вставить("ДатаНачала",     ДатаНачала);
Фильтр.Вставить("ДатаОкончания", ДатаОкончания);
ТЗЖурнал = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(ТЗЖурнал, Фильтр);
ТЗЖурнал.Свернуть("Данные", "");


И вот как теперь сделать чтобы КД выгружала только данные из ТЗЖурнал ?
33 Feanor
 
16.02.12
17:42
(32) думаю, можно посмотреть виды документов в этой ТЗ, затем для каждого такого документа переопределить выборку данных. Возможно, придется дробить ТЗ по метаданным, что бы передать в запрос как параметр.
34 sound
 
17.02.12
10:55
Странно, я думал что для КД это было бы очень логично: правила конвертации объектов настроены, осталось подсунуть универсальной обработке выборку (массив, таблицу и т.д.) с тем что нужно передавать и в путь!
35 sound
 
17.02.12
10:56
Возвращаясь к теме вопроса (раз больше никто ничего не говорит), будем пробовать аккуратно констатировать, что это ошибка в типовой обработке, которую почему-то за столь долгое время ее существования никто не обнаружил!
36 Feanor
 
17.02.12
10:57
(35) не ошибка, а маленький косячок
37 sound
 
17.02.12
11:01
(36) мне показался не таким уж маленьким, с учетом того сколько было времени потрачено впустую, ну да ладно всем спасибо!