Имя: Пароль:
1C
1С v8
как програмно выгрузить регистр сведений по своим отборам через правила
0 qwerty072
 
22.03.13
13:06
есть правила выгрузки, есть зарегистрированные записи в плане обмена и необходимо их выгрузить, но никак не могу понять как быть с регистрами сведений, как этот набор, который формируется через план обмена запихнуть в обработку выгрузки через хмл
1 mikecool
 
22.03.13
13:07
"есть зарегистрированные записи в плане обмена " - регистрировать нужно только то, что нужно и тогда такой темы не было бы
2 qwerty072
 
22.03.13
13:08
выгрузка документов выглядит таким образом примерно, только переделана через метаданные, чтобы быть общей для всех доков

ДоступныеПоляОтбора = ОтборДляОтчета.Отбор.ПолучитьДоступныеПоля();
       Поле = ДоступныеПоляОтбора.Добавить("Документ_ОтчетОРозничныхПродажах", "Отчет о розничных продажах",
           Новый ОписаниеТипов("ДокументСсылка.ОтчетОРозничныхПродажах"));
       Поле.Отбор = Истина;


Отбор = ОтборДляОтчета.Отбор.Добавить("Документ_ОтчетОРозничныхПродажах");
       Отбор.Использование = Истина;
       Отбор.ВидСравнения = ВидСравнения.ВСписке;
       Отбор.Значение = СписокОтчетов;
3 qwerty072
 
22.03.13
13:09
(1) а как это выгрузить программно, в том плане передать это всё в обработки выгрузки
4 qwerty072
 
22.03.13
13:11
в инете нашёл вот такую штуку
нзВыгрузка = РегистрыСведений[знЭлемент.ИмяРегистра].СоздатьНаборЗаписей();
нзОтбор = нзВыгрузка.Отбор;
для каждого стчЭлемент из знЭлемент.Данные цикл
   стрНаименованиеОтбра = стчЭлемент.Наименование;
   нзОтбор[стрНаименованиеОтбра].Значение = стчЭлемент.Данные;
   нзОтбор[стрНаименованиеОтбра].ВидСравнения = всРавно;
   нзОтбор[стрНаименованиеОтбра].Использование = истина;
конеццикла;
нзВыгрузка.Прочитать();
ЗаписатьXML(хмлФайл, нзВыгрузка);

но мне этот вариант не подходит, потому что механизм выгрузки идёт стандартным и зануть туда ЗаписатьXML(хмлФайл, нзВыгрузка); никак не получится
5 qwerty072
 
22.03.13
13:30
т.е. другими словами: я беру обработку УниверсальныйОбменДаннымиXML, гружу в неё свои правила и по плану обмена смотрю что зарегистрировано для обмена и этоже отмечаю в данной обработки, со всем получилось, но вот с Регистрами Сведений никак не могу понять как программно это сделать и даже элементарно в ручную не получается сделать несколько отборов
6 evstifeev
 
22.03.13
13:36
можно просто для нужного документа в ПКО ПослеВыгрузки написать выгрузку по правилу необходимых регистров, на подобее выгрузки контактной информации
7 kosts
 
22.03.13
13:41

Пока Выборка.Следующий() Цикл
           // Регистрация документа
           ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Выборка.Регистратор);
           // Регистрация движений регистра
           Набор = РегистрыСведений.ПлановыеНачисленияРаботниковОрганизаций.СоздатьНаборЗаписей();
           Набор.Отбор.Регистратор.Значение = Выборка.Регистратор;
           Набор.Отбор.Регистратор.Использование = Истина;
           ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Набор);
       КонецЦикла;
[//1c]
8 qwerty072
 
22.03.13
13:44
(7) я выгружаю через правила, потому что хоть и идентичные конфы, но у объектов справочников разные ссылки и если штатными средствами грузить, то элементы задублятся
9 qwerty072
 
22.03.13
13:45
(6) а можно поподробнее про контактную инфу, посмотрел в правилах выгрузки справочник контрагента и ничего не увидел про выгрузку РС как РН в документах при выгрузке движений
10 kosts
 
22.03.13
13:46
(8) Поиск элементов справочников не по внутренней ссылке, а по коду или еще как это тоже штатная возможность обмена по правилам.
11 evstifeev
 
22.03.13
13:48
(9) в КД, справка-информация об обработчиках-Правила конвертации объектов. После выгрузки
12 qwerty072
 
22.03.13
13:50
(10) вот так у меня и реализован сейчас поиск: по коду
13 kosts
 
22.03.13
13:52
Не совсем понятно что на самом деле тебе нужно.
Зарегистрировать или выгрузить?...
14 qwerty072
 
22.03.13
13:54
(11) не много туплю, но что туда написать, чтобы грузились РС
выгрузитьпоправилу(правило нужно регистра сведений) так что ли?
15 kosts
 
22.03.13
13:55
(14) Регистры сведений выгружаются/загружаются штатно по правилам, нужно делать настройку в правилах.
16 kosts
 
22.03.13
13:56
(15) Это перенос регистра накоплений не реализован
17 evstifeev
 
25.03.13
10:39
(14) да, именно так
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.