Имя: Пароль:
1C
1С v8
КД: отбор документов по 2-й дате возможен?
0 Mikhail Volkov
 
31.05.13
07:35
Обмен между 2-я базами БП2.0 (разные конфигурации) идет через обработку УниверсальныйОбменДаннымиXML по периодам. Руководству вздумалось в ряд документов ввести 2-ю дату. Теперь нужно выгружать документы не только за заданный период, но и те, у которых 2-я дата попадает в заданный период.
Можно ли такой отбор документов прописать в правилах обмена (как?), или придется УниверсальныйОбменДаннымиXML курочить?
1 Wobland
 
31.05.13
07:36
ПВД сделай своё
2 Mitriy
 
31.05.13
07:38
можно воспользоваться отбором...
3 Mikhail Volkov
 
31.05.13
08:20
(1) Где, в каком обработчике, "Перед выгрузкой данных"?
В демке КД есть пример, как пишутся ПВД? Или в каких типовых правилах обмена можно посмотреть пример?
4 Wobland
 
31.05.13
08:24
я вот так делал. может, криво, да работает ;)

Если Параметры.СтандартнаяОбработкаВыгрузки=0 Тогда
   ИмяДокумента="ПоступлениеТМЦ";
   ИмяПравила="ПоступлениеТоваровУслуг";

   док=СоздатьОбъект("Документ."+ИмяДокумента);
   ИспользоватьВыгрузкуПоОрганизации=-ПустоеЗначение(Параметры.Организация)+1;
   док.ВыбратьДокументы(ДатаНачала, ДатаОкончания);

   Пока док.ПолучитьДокумент()=1 Цикл
       Если ((ИспользоватьВыгрузкуПоОрганизации=1) И  (док.ЮрЛицо=Параметры.Организация)) ИЛИ (ИспользоватьВыгрузкуПоОрганизации=0) Тогда
           ВыгрузитьПоПравилу(док.ТекущийДокумент(), , , , ИмяПравила);
       Иначе
           Отказ=1;
       КонецЕсли;
   КонецЦикла;
КонецЕсли;
5 fenixx
 
31.05.13
08:32
(0) Создаёшь новое ПВД, способ выборки - "Произвольный алгоритм". В обработчике "ПередОбработкой" пишешь свой алгоритм выборки, каждый полученный документ выгружаешь посредством команды "ВыгрузитьПоПравилу"
6 Mikhail Volkov
 
31.05.13
09:07
(5) Такое ПВД надо создать для каждого документа, который имеет 2-ю дату? Допустим создал ПВД_АвансовыйОтчет_ПередОбработкойПравила, что дальше?
7 cw014
 
31.05.13
09:10
Вопрос "как написать код"... Загляни в описание к обработчикам событий да посмотри. Там все переменные есть, а уж код с отбором под 1С сможешь и сам написать...

И да... +(2) отбором тоже пользоваться можно
8 Mikhail Volkov
 
31.05.13
09:14
(7) Нет, не про код. Где указать "ВыгрузитьПоПравилу"?
9 Wobland
 
31.05.13
09:19
(8) В обработчике "ПередОбработкой"
10 cw014
 
31.05.13
09:19
(8) Почитай обработчики. Вообще в ПВД можно использовать "ВыборкаДанных"
11 ЧашкаЧая
 
31.05.13
09:21
В обработчике ПВД перед обработкой

// получаем выборку по второй дате
Запрос = Новый Запрос;
Запрос.Текст =
...
Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
   ДокументСсылка = Выборка.Ссылка;
   ВидДокумента = Выборка.Ссылка.Метаданные().Имя;
   
   ВыгрузитьПоПравилу(ДокументСсылка, , , , ВидДокумента); // здесь вид документа это на самом деле имя ПКО, здесь можна вручную строку вписать

КонецЦикла;
12 Mikhail Volkov
 
31.05.13
09:43
(11) Спс