Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Универсальный обмен данными в формате XML

Универсальный обмен данными в формате XML
Я
   rudnitskij
 
31.07.18 - 20:21
Всем доброго времени суток.
Вопрос касается универсального обмена в формате XML. Правила прописаны, все документы, элементы справочников и прочее передаются как им положено. Хотел бы добиться следующего:
Движения документов передаются в базу-приемник набором записей. Где и что в правилах обмена добавить, чтобы движения документа, у которого дата раньше определенного момента, не передавались в базу-приемник, и документ при этом был проведен?
 
 
   Zombi
 
1 - 31.07.18 - 22:15
"чтобы движения документа, у которого дата раньше определенного момента, не передавались в базу-приемник, и документ при этом был проведен" - Часть проведенных документов с движениями, часть проведенных же но без движений. Большей тупости сложно и придумать. Документ вообще должен без движений переноситься, а проводиться уже в приемнике. Иначе после обмена данные могут быть одни, а после того как пользователь откроет документ чтобы просто посмотреть и закроет его кнопкой "Ок", данные будут другие.
   rudnitskij
 
2 - 31.07.18 - 22:31
(1) Большей тупости, чем обзывание тупостью требования ТЗ, сложно и придумать.
В базе делается отрез по определенную дату, остатки регистров переносятся. В этих остатках уже учтены движения документов, созданных и проведенных ранее этой даты, второй раз они не нужны. Заблокировать возможность проведения таких доков проблемой совсем не является.
Я бы такие документы вообще не переносил, но их тянет универсальный обмен. Например, если есть документ "акт сверки взаиморасчетов" - универсальный обмен потянет все доки, что входят в его состав. Зачем мне их движения, по некоторым 10 лет прошло уже...
   RomanYS
 
3 - 31.07.18 - 22:34
(2) а зачем тянуть движения документов перегружаемых по ссылке?
   rudnitskij
 
4 - 31.07.18 - 22:48
(3) чтоб не проводить их в базе-приемнике
   RomanYS
 
5 - 31.07.18 - 22:50
(4) Зачем тянуть их по регистратору, разве нельзя отслеживать изменения набора записей?
   rudnitskij
 
6 - 31.07.18 - 22:52
(5) нечего отслеживать, я тяну из старой распухшей базы документы в пустую новую. Мне нечего там отслеживать
   RomanYS
 
7 - 31.07.18 - 22:54
(6) Каким образом Вы тянете движения, сами по себе они не переносятся. Или Вы не в курсе и "оно само"?
   rudnitskij
 
8 - 31.07.18 - 23:02
(7) "Каким образом Вы тянете движения" - вместе с документом, с помощью правил обмена. Выгружаются набором записей
   rudnitskij
 
9 - 31.07.18 - 23:18
(0) Есть возможность такое прописать в правилах обмена (речь идет о правилах обмена для универсального обмена в формате XML)?
   Cyberhawk
 
10 - 31.07.18 - 23:23
В ПКГС Отказ = Истина
 
 Рекламное место пустует
   hhhh
 
11 - 31.07.18 - 23:24
(8) документы выгружаются отдельно, наборы записей отдельно. Это букварь. Чего вы нам тут втираете?
   RomanYS
 
12 - 01.08.18 - 00:03
(11) +1
вроде чтобы переносить движения с документов нужно написать хоть чуть-чуть кода
   Jofa
 
13 - 01.08.18 - 01:53
(11)+
(12)+
Зачем из переносить не понятно
   Zombi
 
14 - 01.08.18 - 06:43
(2) Ты (1) Полностью прочитал или только до слова "тупость"?
   rudnitskij
 
15 - 01.08.18 - 09:55
(12) не нужно, просто в конвертации при создании правил обмена поставить галочку "переносить движения набором записей".
ЗЫ. Тут чё, никто правил в конвертации не создавал? Все пишут "хоть чуть-чуть кода" ручками от начала до конца?
   rudnitskij
 
16 - 01.08.18 - 09:57
(14) полностью. Поэтому у меня возник вопрос "ты (0) полностью прочитал?", но задавать его не стал. Какой смысл? Я ж не заставлю человека читать, если он не хочет (но очень хочет что-то написать на форуме) ...
   rudnitskij
 
17 - 01.08.18 - 09:58
(13) "Зачем из переносить не понятно" - я же писал выше, чтоб не проводить доки после переноса. Их очень много, проводить все - большая трата времени
   aleks_default
 
18 - 01.08.18 - 10:04
А нельзя было это реализовать простейшим типовым механизмом даты запрета редактирования?
   rudnitskij
 
19 - 01.08.18 - 10:15
(18) а кому запрещать редактирование?
   hhhh
 
20 - 01.08.18 - 10:16
(17) ну прооведение у вас забито в правилах. Смотрите события. Найдите эту строчку и закомментируйте. И всего делов.
   ам794123
 
21 - 01.08.18 - 10:19
(0) Смотри обработчики событий ПередВыгрузкой и ПослеЗагрузки, там и прописывай свои условия
   rudnitskij
 
22 - 01.08.18 - 10:23
(21) Пробовал и после загрузки, и при загрузке, и перед загрузкой вот такое:
<code>
    Для Каждого Движ Из Объект.Движения Цикл
        ИмяРег = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Строка(Движ),".")[1];
        СтрокаКоманды = "Объект.Движения." + ИмяРег + ".Записывать = (Объект.Дата >= '20170901000000');";
        Выполнить(СтрокаКоманды);
    КонецЦикла;    
</code>
Движения один хрен переносятся. Может по другому как-то прописать нужно?
   hhhh
 
23 - 01.08.18 - 10:27
(22) после загрузки данных - пробовал?
   rudnitskij
 
24 - 01.08.18 - 10:31
(23) да, пробовал. Сейчас еще попробую после загрузки их удалять, надеюсь, хоть удаление сработает...
   Zombi
 
25 - 01.08.18 - 10:33
(16) Я процитировал из (0) конец сообщения, но у тебя возник вопрос, полностью ли я прочитал этот пост. Это проблемы с логикой.
   rudnitskij
 
26 - 01.08.18 - 10:35
(25) нет, это у вас проблемы с желанием поговорить и отсутствием собеседников. Если вам нечего сказать по вопросу, кроме "это тупость" - пройдите мимо, сделайте одолжение всем участникам разговора
   ам794123
 
27 - 01.08.18 - 10:35
(22) Обычно пишут Отказ = Истина при выполнении некоторых условий (например Период > ДатаДедлайна в обработчике события Перед выгрузкой или при выгрузке самого регистра
   rudnitskij
 
28 - 01.08.18 - 10:45
(27) по существующим правилам обмена, движения документа выгружаются наборами записей вместе с его реквизитами и табличными частями
вот https://ibb.co/fd4dTz
   scanduta
 
29 - 01.08.18 - 10:48
(1) Документ вообще должен без движений переноситься, а проводиться уже в приемнике.



Такой подход в некоторых ситуациях вообще неприемлем. Так что утверждение неверное.
   Ботаник Гарден Меран
 
30 - 01.08.18 - 10:51
В (10) уже ответ написан, но ведь продолжают.
   ам794123
 
31 - 01.08.18 - 10:54
(28) в ТЧ и наборах тоже есть события при выгрузке и после загрузки
   rudnitskij
 
32 - 01.08.18 - 11:03
(24) "Сейчас еще попробую после загрузки их удалять, надеюсь, хоть удаление сработает..." - удаление движений после загрузки тоже не сработало.
Буду пробовать отказ перед выгрузкой из источника
   aleks_default
 
33 - 01.08.18 - 11:07
(28)Выгружаются вместе, но это разные объекты данных, и загружаются они не одновременно. И в момент загрузки объекта Документ набор записей его движений может быть как уже загружен, так и еще нет, в зависимости от того в каком порядке они располагаются в файле обмена.
 
 
   hhhh
 
34 - 01.08.18 - 11:07
(32) так ты очисти всё перед тем как тестируешь. А то у тебя результаты старых загрузок наслаиваются на результаты новых.
   rudnitskij
 
35 - 01.08.18 - 11:08
(33) это многое объясняет, благодарю
   rudnitskij
 
36 - 01.08.18 - 11:08
(34) очищаю, конечно
   hhhh
 
37 - 01.08.18 - 11:08
(33) в обработчике ПослеЗагрузкиДанных уже всё загружено.
   rudnitskij
 
38 - 01.08.18 - 13:50
Всё решилось, надо было просто эти наборы движений не выгружать. В отдельном обработчике ПередВыгрузкой у каждого набора записей прописал:
Отказ = (Источник.Дата < '20170901000000');
И всё заверте...
   rudnitskij
 
39 - 01.08.18 - 13:50
Отдельное спасибо товарищам (10) и (28), они натолкнули на решение


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует