Имя: Пароль:
1C
1С v8
Вопрос по КД
0 Aleksei_Pro
 
09.08.12
14:04
Пишу правила переноса между 2 базами документами. Базы идентичны, такой вопрос: если переносится документ реализация товаров, и в нем контрагент переносится, то все содержимое контрагента перенесется ( это договора все по нему, банковские счета, котактные лица)? или справочники отдельно надо выгружать?
1 golden-pack
 
09.08.12
14:06
правила писать для каждого объекта.
2 Aleksei_Pro
 
09.08.12
14:08
(1) да правила написаны для каждого объекта и готовы. Только вопрос , если контрагент выгрузится как с ним подвяжутся другие справочники, в контрагенте же нет ссылок на них?
3 ssh2006
 
09.08.12
14:09
Никак не подвяжутся
4 Aleksei_Pro
 
09.08.12
14:10
Тогда вопрос, как сделать правильно, выгружать и справочники или как то можно прописать чтобы выгружались все справочники, где владельцем указан данный контрагент?
5 golden-pack
 
09.08.12
14:10
Если нужно выгружать все договора (например) - просто добавь этот справочник в правила выгрузки..
6 Aleksei_Pro
 
09.08.12
14:13
(5) нет у меня есть справочник контрагенты доработанный, на нем 5 подчиненных справочников расположены, не красиво будет в правила выгрузки 1 типа документа, еще включать 5 справочников и при этом, справочнки все перегрузятся.
7 ssh2006
 
09.08.12
14:15
Например в ПослеВыгрузки ПВД Контрагента выгружай нужно с помощью ВыгрузитьПоПравилу
8 Aleksei_Pro
 
09.08.12
14:21
(7)В после выгрузки написал так?:
Если (НЕ Источник.ЭтоГруппа) И (НЕ Источник.ПометкаУдаления) Тогда
Запрос = Новый Запрос;
Запрос.текст = "
|ВЫБРАТЬ
   |КонтактнаяИнформация.Объект,
   |КонтактнаяИнформация.Тип,
   |КонтактнаяИнформация.Вид,
   |КонтактнаяИнформация.Представление,
   |КонтактнаяИнформация.Поле1,
   |КонтактнаяИнформация.Поле2,
   |КонтактнаяИнформация.Поле3,
   |КонтактнаяИнформация.Поле4,
   |КонтактнаяИнформация.Поле5,
   |КонтактнаяИнформация.Поле6,
   |КонтактнаяИнформация.Поле7,
   |КонтактнаяИнформация.Поле8,
   |КонтактнаяИнформация.ТипДома,
   |КонтактнаяИнформация.ТипКвартиры,
   |КонтактнаяИнформация.ТипКорпуса,
   |КонтактнаяИнформация.Поле9,
   |КонтактнаяИнформация.Поле10,
   |КонтактнаяИнформация.Комментарий,
   |КонтактнаяИнформация.ЗначениеПоУмолчанию
|ИЗ
   |РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|ГДЕ
   |КонтактнаяИнформация.Объект = &Объект";
Запрос.УстановитьПараметр("Объект",Источник);
Выборка = Запрос.выполнить().Выбрать();
Пока выборка.следующий() Цикл
    ВыгрузитьПоПравилу(Выборка,,,,"КонтактнаяИнформация");
КонецЦикла;
КонецЕсли;

ВыгрузитьПоПравилу(Источник,,,,"ДоговорыКонтрагентов");
ВыгрузитьПоПравилу(Источник,,,,"БанковскиеСчета");
ВыгрузитьПоПравилу(Источник,,,,"ТочкиДоставки");
ВыгрузитьПоПравилу(Источник,,,,"доп_BulkСтационарныеЕмкости");                                    
ВыгрузитьПоПравилу(Источник,,,,"КонтактныеЛица");
9 Aleksei_Pro
 
09.08.12
14:26
Вот это правильно будет?
ВыгрузитьПоПравилу(Источник,,,,"ДоговорыКонтрагентов");
Источник - это контрагент
10 ssh2006
 
09.08.12
14:27
(9) думаю что нет. Нужно указывать выгружаемую ссылку, а не источник
11 Aleksei_Pro
 
09.08.12
14:29
(10) источник.ссылка?
12 ssh2006
 
09.08.12
14:32
Ссылку на нужный договор, счет и тд. Например делаешь выборку подчиненных договоров и выгружаешь по правилу в цикле
13 Aleksei_Pro
 
09.08.12
15:17
хорошо, а как установить в контрагенте отбор по организации когда выгружаю договора по правилу?
14 ssh2006
 
09.08.12
15:30
Организация может быть параметром конвертации например
15 Йохохо
 
09.08.12
15:34
(3) (5) абсолютно не верно
(2) подвяжутся все, не кипишуй. РС не подвяжется
16 Aleksei_Pro
 
09.08.12
15:37
РС это понятно, я его и привязал
17 Йохохо
 
09.08.12
15:43
все остальное будет выгружено по ссылке
18 Aleksei_Pro
 
09.08.12
16:10
(17) например справочник "Контактные лица" не переносится
19 Йохохо
 
09.08.12
16:29
если есть ссылка на контактное лицо в документе, то вполне себе переносится
20 Йохохо
 
09.08.12
16:29
+элемент
21 Aleksei_Pro
 
09.08.12
16:54
Выгружаю документ, там есть котрагент, а у контрагента есть подчиненный справочник "Контактные лица", он не переносится , пробовал так:
   запрос_1 = новый запрос;
   запрос_1.Текст  = "ВЫБРАТЬ
   |    КонтактныеЛица.Ссылка,
   |    КонтактныеЛица.ПометкаУдаления,
   |    КонтактныеЛица.Предопределенный,
   |    КонтактныеЛица.ОбъектВладелец,
   |    КонтактныеЛица.Код,
   |    КонтактныеЛица.Наименование,
   |    КонтактныеЛица.Фамилия,
   |    КонтактныеЛица.Имя,
   |    КонтактныеЛица.Отчество,
   |    КонтактныеЛица.ДатаРождения,
   |    КонтактныеЛица.Роль,
   |    КонтактныеЛица.Должность,
   |    КонтактныеЛица.Описание,
   |    КонтактныеЛица.ВидКонтактногоЛица,
   |    КонтактныеЛица.ПользовательЛичногоКонтакта,
   |    КонтактныеЛица.Представление
   |ИЗ
   |    Справочник.КонтактныеЛица КАК КонтактныеЛица
   |ГДЕ
   |    КонтактныеЛица.ОбъектВладелец = &ОбъектВладелец";
   запрос_1.УстановитьПараметр("ОбъектВладелец",Источник);
   Выборка_1 = запрос_1.выполнить().Выбрать();
   Пока Выборка_1.следующий() Цикл
       ВыгрузитьПоПравилу(Выборка_1,,,,"КонтактныеЛица");
   КонецЦикла;

Выгражается только 1-ая строка
22 fisher
 
09.08.12
17:02
Для ПКО, которые без источника надо или ставить галку "Не запоминать выгруженные объекты" или прописывать перед выгрузкой "КлючВыгрузкиДанных" (как-то так называется, точно не помню). А иначе ключом выгрузки по дефолту является представление источника (т.е. они у тебя все в одного выгружаются).
23 fisher
 
09.08.12
17:05
Вернее, не все в одного, а при выгрузке остальных после первого КД считает что эти данные уже выгружались (неправильно оптимизирует).
24 Aleksei_Pro
 
09.08.12
17:07
(23) ставить галку в пко у контактной информации?
25 Aleksei_Pro
 
09.08.12
17:11
да спасибо взлетело
26 fisher
 
09.08.12
17:11
(24) Да. Но этим ты отключаешь оптимизацию выгрузки. Т.е. если где-то еще раз при выгрузке встретится ссылка на этого контрагента, то его контакты будут выгружены повторно.
Правильнее прописать "КлючВыгружаемыхДанных", например скомбинировав его из кода контрагента и кода контактного лица. Тогда сколько бы при выгрузке не встретилась эта ссылка, выгружена она будет только один раз.