Имя: Пароль:
1C
1С v8
УниверсальныйОбменДаннымиXML и отбор
0 Mikhail Volkov
 
23.06.13
19:17
В некоторых документах кроме Даты есть еще одна дата. Чтобы документы отбирать по обеим датам, пришлось в КД в Правилах выгрузки данных Способ отбора данных заменить Стандартную выборку заменить на Произвольный алгоритм. При этом у этих документов не стало отбора по значению.
Как-то можно вернуть возможность отбора по значению при Произвольном алгоритме?
1 AlexNew
 
23.06.13
19:18
Параметр сделай и засунь в ПередВыгрузкой.
2 Mikhail Volkov
 
23.06.13
19:23
(1) Например?
3 AlexNew
 
23.06.13
19:34
Делаешь новый параметр ДопДата. В ПередВыгрузкой проверяешь, если нет - Отказ = Истина. Тут что непонятно?
4 Mikhail Volkov
 
23.06.13
20:08
(3) Отбор по ДопДата у меня прописан в ПВД, работает. Но при замене стандартной выборки на произвольный алгоритм пропала возможность отбора по значению!?
Например, недоступно стало задать условие: Документ_ПриходныйКассовыйОрдер.Проведен Равно Да
Как-то можно вернуть эту возможность?
5 AlexNew
 
23.06.13
20:13
Зачем тебе произвольный алгоритм, если можно проверить ПередВвгрузкой?
6 Mikhail Volkov
 
23.06.13
20:21
(5) В ПВД у меня следующее:

ТексЗапроса = "
|ВЫБРАТЬ
|    Документ.Ссылка,
|    Документ.Дата,
|    Документ.ДатаПринятияКУчетуВУУ
|ИЗ
|    Документ.АвансовыйОтчет КАК Документ
|ГДЕ
|    ВЫБОР
|        КОГДА Документ.ДатаПринятияКУчетуВУУ = &ПустаяДата
|            ТОГДА Документ.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
|        ИНАЧЕ Документ.ДатаПринятияКУчетуВУУ МЕЖДУ &ДатаНачала И &ДатаОкончания
|    КОНЕЦ
|";

Запрос = Новый Запрос(ТексЗапроса);
Запрос.УстановитьПараметр("ДатаНачала",    ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
Запрос.УстановитьПараметр("ПустаяДата",       Дата('00010101'));

Выборка = Запрос.Выполнить().Выбрать();

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

Это можно в ПКО ПередВыгрузкой засунуть?
7 AlexNew
 
23.06.13
20:24
Еще и проще можно будет.
8 Mikhail Volkov
 
23.06.13
21:19
При стандартной выборке отбор впервую очередь по Дате. И если Дата вне заданого периода выгрузки, то он не выгрузится. Даже если ДопДата в пределах заданого периода.
В ПКО не сделать нужный отбор, только в ПВД.
9 AlexNew
 
23.06.13
21:56
Тогда только запихать везде алгоритм проверки на правильную дату начала из параметров, а указывать минимальную. Хотя лучше бы штатными средствами, чтобы план обмена смотрел, что выгружать.
10 Mikhail Volkov
 
24.06.13
11:41
Стандартная выборка выбирает только из заданного периода, на параметры не реагирует.
Все же, при отключении стандартной выборки, можно вернуть отбор по значению?
11 Mikhail Volkov
 
24.06.13
12:35
Еще одна проблема всплыла. Кроме гуид синхронизация осуществлялась по реквизитам: Номер, Дата, Организация. Теперь Дату использовать нельзя, они могут быть разные. Как использовать Год(Дата)? Что прописать в ПКО в полях поиска?
12 Mikhail Volkov
 
24.06.13
15:22
С синхронизацией вроде разобрался - дата нужна лишь для периода поиска...
Повторюсь, как можно вернуть возможность отбора по значению при Произвольном алгоритме?
13 Mikhail Volkov
 
25.06.13
08:17
Похоже, что нет...
14 AlexNew
 
25.06.13
08:34
В полях поиска - все что надо, а как искать будешь - в алгоритме опишешь. Посмотри помощник по обработчикам, там и переменные описаны доступные служебные.
15 AlexNew
 
25.06.13
08:36
При произвольном алгоритме отбора не может быть по определению.
16 Mikhail Volkov
 
25.06.13
11:28
(15) Жаль конечно...
(14) В помошнике нет нужного примера. По поиску отдельную тему открыл v8: КД: Поля поиска