Имя: Пароль:
1C
1С v8
Как сделать в Конвертации данных?
0 Сияющий Асинхраль
 
29.05.14
00:09
Задача такова. За период перекидываются документы из одной конфигурации в другую. Все работает, все здорово. Надо сделать так, чтобы загружались и записывались в конфигурацию назначения только документы из выбранного периода, а из других периодов (по ссылкам) документы не тянулись, а привязывались к уже существующим документам или справочникам, если они есть в конфе назначения, или не переносились вообще, если в конфе назначения их нет. Не подскажете как это сделать в КД?
1 Tateossian
 
29.05.14
00:17
Поробуй так: в глобальном обработчике "ПередВыгрузкой" Если ТипЗнч(Источник) = Тип("Документ...") Тогда Если Источник.Дата < Параметры.ДатаНачала Тогда Отказ = Истина КонецЕсли
2 Dionis Sergeevich
 
29.05.14
01:46
", а привязывались к уже существующим документам или справочникам, если они есть в конфе назначения, или не переносились вообще, если в конфе назначения их нет"

на ПКО кликни 1 раз и поставь галочку "не создавать ненайденное" - так как то
3 Сияющий Асинхраль
 
29.05.14
04:29
(2) Про эту галку я знаю, я же сказал, что в выгружаемом периоде документы и справочники должны грузиться однозначно (и перезаписываться, если что), т.е. эта галка стоять не должна, а вот для документов из старых периодов она должна срабатывать... В этом и вопрос - как это реализовать?
4 Фокусник
 
29.05.14
04:33
(3) вероятно, этот "флаг" можно установить программно для каждого документа. Я бы справку по обработчика почитал. Но в телефоне это сложно будет сделать :)
5 novice
 
29.05.14
05:37
прошу ТС рассказать о результатах успешности или неуспешности задумки
6 Генератор
 
29.05.14
06:06
(3) или можно еще 2 правила создать для дока, в одном создавать в другом не создавать; выгружать то которое создавать, а в прочих ссылках указать то, которое не создавать
7 Генератор
 
29.05.14
06:07
+(6) приоритет у того которое не создавать выше поставить
8 SleepyHead
 
гуру
29.05.14
06:21
(7) В обработчике ПКС "Перед загрузкой" выбирать правило тогда уж, если нет уверенности в том, что Фокусник посоветовал

ИмяПКО = ...
9 Генератор
 
29.05.14
06:48
(8) что проще, для каждого свойства прописать обработчик (а ведь могут быть свойства составного типа) или один раз проставить пко в правиле выгрузки и приоритет?
10 SleepyHead
 
гуру
29.05.14
06:50
(9) Ну, если вопрос ставится именно так - что проще, то конечно флажок.

:)
11 SleepyHead
 
гуру
29.05.14
06:54
(9) Не понял только вашу идею, каким образом приоритет и флажок вы свяжете с датой документа (смотрю идею ТС о том, что документы ранее определенной даты должны переноситься по ссылкам, а прочие загружаться).
12 Генератор
 
29.05.14
07:05
(11) Документы которые должны загружаться он выгружает явно, правилом выгрузки. Документы на которые должны загружаться только ссылки, выгружаются не явно, по свойствам. Указываем у свойств и у правила выгрузки разные ПКО и все.
13 Рэйв
 
29.05.14
07:09
(0)
В ПослеЗагрузки ПКО документа:

Если Объект.Дата<НачПериода И Объект>КонПериода И Объект.ссылка.Пустая() Тогда
     Отказ = Истина;
     Возврат;
    
конецЕсли;
14 Рэйв
 
29.05.14
07:10
Объект>КонПериода -> Объект.Дата>КонПериода
15 SleepyHead
 
гуру
29.05.14
07:15
(12) Перечитал посты (1) и (3), ничего подобного не увидел про явную выгрузку.

Самый нормальный совет дал Фокусник, в ПКО можно установить параметр "НеЗамещатьОбъект" , в обработчике "ПередЗагрузкой" в самом ПКО.

Проанализировать дату документа в ПКО и установить при необходимости.

Цитата из справки:

"НеЗамещатьОбъект - Если для данного параметра установить значение Истина, то объект идентифицированный при загрузке (т.е. найденный в информационной базе приемнике по значению синхронизирующих полей) не будет изменен/замещен."
16 SleepyHead
 
гуру
29.05.14
07:16
Таким образом, не нужно плодить лишние ПКО.
17 ASU_Diamond
 
29.05.14
09:34
а как при загрузке отработает система то что в реквизит нужно занести значение, а самого значения нет в файле?
18 Сияющий Асинхраль
 
30.05.14
11:31
(4) Прав. Уже перед выгрузкой можно проанализировать даты и расставить флаги программно:

НеЗамещатьОбъектПриЗагрузке - Булево. По умолчанию  - определяется в правилах обмена, но может быть изменено. Если для данного параметра установить значение Истина, то объект идентифицированный при загрузке (т.е. найденный в информационной базе приемнике по значению синхронизирующих полей) не будет изменен/замещен.

НеСоздаватьЕслиНеНайден – Булево. По умолчанию определяется в форме элемента правила конвертации объекта. Если Истина, то выполняется только поиск объекта в приемнике, новый объект не создается.