|
выгрузка справочника с выборкой произвольным алгоритмом (Конвертация 2.1) | ☑ | ||
---|---|---|---|---|
0
Charity
05.10.18
✎
16:15
|
Здравствуйте, уважаемые.
Конвертацией переношу справочник контрагентов. Требуется выгрузить только тех, по которым были движения за период. Написала запрос, в ПВД ПередОбработкой пишу мой запрос: Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ РАЗЛИЧНЫЕ | ХозрасчетныйОбороты.Субконто1 КАК Контрагент |ИЗ | РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, , , , &СубконтоКонтрагенты, , , ) КАК ХозрасчетныйОбороты"; Запрос.УстановитьПараметр("НачалоПериода", Дата(2018, 01,01)); //Дата Запрос.УстановитьПараметр("СубконтоКонтрагенты", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты); //Виды субконто хозрасчетные РезультатЗапроса = Запрос.Выполнить().Выгрузить(); Сообщить(РезультатЗапроса.Количество()); В ПВД в поле "Правило конвертации" указываю правило "Контрагенты", должно вроде все работать. А при выгрузке сообщает количество (ненулевое) и пишет, что выгружено объектов 0. Куда копать, пните, пожалуйста. Спасибо! |
|||
1
Charity
05.10.18
✎
16:17
|
Можно, конечно, перебрать в цикле и написать ВыгрузитьПоПравилу, но тогда если добавятся какие-то реквизиты для синхронизации, мне придется каждый раз лопатить ПВД на предмет соответствия полей выборки полям в ПКО. Хотелось бы попроще.
|
|||
2
Amra
05.10.18
✎
16:18
|
Вместо РезультатЗапроса = Запрос.Выполнить().Выгрузить(); напиши ВыборкаДанных = Запрос.Выполнить()
|
|||
3
elCust
05.10.18
✎
16:23
|
Не проще результат этого запроса положить в параметр, заполнив его в ПередВыгрузкойДанных и в ПКО перед выгрузкой проверить наличие ссылки в этом параметре.
|
|||
4
Charity
05.10.18
✎
16:27
|
(2) Пробую так, вроде начинает шуршать, обругивается, что поле объекта не обнаружено (код), попробую все поля кроме наименования убрать и посмотреть, что выйдет
|
|||
5
Charity
05.10.18
✎
16:29
|
(3) Это вместо РезультатЗапроса = и т.д. надо завести параметр и написать Парамаетры.Имяпараметра = Запрос.выполнить.Выгрузить()
Так надо? и потом анализировать перед конвертацией объектов? |
|||
6
Charity
05.10.18
✎
16:38
|
Может, в запросе псевдоним надо другой задать?
|
|||
7
elCust
05.10.18
✎
16:39
|
(5) Вот чтобы не повторять в ПВД всю структуру свойств из ПКО:
Да инициализируем параметр в модуле "Перед выгрузкой данных. Он должен быть таблицей значений к примеру. Затем в ПКО есть модуль "Перед выгрузкой" Там пишем: Если Параметры.НашаТаблица.Найти(Источник, "Ссылка") = Неопределено Тогда Отказ = Истина; КонецЕсли; |
|||
8
Charity
05.10.18
✎
16:45
|
Начало выгрузки: 05.10.2018 18:44:39
492 Окончание выгрузки: 05.10.2018 18:44:42 Выгружено объектов: 0 Не выгружает как будто |
|||
9
hhhh
05.10.18
✎
16:46
|
(6) вот это
ХозрасчетныйОбороты.Субконто1 КАК Контрагент бред какой-то. напиши ХозрасчетныйОбороты.Субконто1 КАК Ссылка |
|||
10
Charity
05.10.18
✎
16:48
|
(9) Я уже так писала и делала псевдоним "Источник" и "Ссылка". Попробую еще раз, чем черт не шутит
|
|||
11
Charity
05.10.18
✎
16:50
|
опять пишет, что выгружено 0...
|
|||
12
hhhh
05.10.18
✎
16:56
|
(11) а это написали?
ВыборкаДанных = Запрос.Выполнить() волшебное слово ВыборкаДанных ?? |
|||
13
elCust
05.10.18
✎
16:56
|
(11) Ну отладку запусти. Посмотри что в параметре.
|
|||
14
Charity
05.10.18
✎
17:02
|
(12) Естественно написала. И выборка не пустая. Убрала уже условие на проверку наличия в параметре контрагента, не пашет, блин
|
|||
15
Charity
05.10.18
✎
17:03
|
Похоже, я где-то в базовых понятиях запуталась, может, кто-то даст ссылку на мануалы по КД?
|
|||
16
Amra
05.10.18
✎
17:11
|
ИТС
|
|||
17
Charity
05.10.18
✎
17:34
|
(16) Спасибо! нашла еще маны и у меня диссонанс: написано, что достаточно инициализировать выборку, задать правило и будет ок. Ладно, буду разбираться, где кривые руки.
|
|||
18
Amra
05.10.18
✎
17:42
|
(17) Все правильно пишут, только имеется ввиду что в запросе должны быть все те поля, которые используются в ПВС. То есть если в ПВС сопоставлен код и наименование, то запрос должен быть
|ВЫБРАТЬ РАЗЛИЧНЫЕ | ХозрасчетныйОбороты.Субконто1.Код КАК Код, | ХозрасчетныйОбороты.Субконто1.Наименование КАК Наименование, |ИЗ | РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, , , , &СубконтоКонтрагенты, , , ) КАК ХозрасчетныйОбороты"; |
|||
19
Charity
05.10.18
✎
18:05
|
(18) Спасибо!
Я вроде как разобралась. Сказывается отсутствие постоянной работы с КД. Итак, в ПВД пишу следующее: Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ РАЗЛИЧНЫЕ | ХозрасчетныйОбороты.Субконто1 КАК Источник |ИЗ | РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, , , , &СубконтоКонтрагенты, , , ) КАК ХозрасчетныйОбороты"; Запрос.УстановитьПараметр("НачалоПериода", Дата(2017, 06,15)); //Дата Запрос.УстановитьПараметр("СубконтоКонтрагенты", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты); //Виды субконто хозрасчетные РезультатЗапроса = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса.Следующий() Цикл //Сообщить(РезультатЗапроса.Источник); ВыгрузитьПоПравилу(РезультатЗапроса.Источник,,,,"Контрагенты"); КонецЦикла; Правило конвертации для ПВД убрала. ПКО как обычно делаю. Обращаю внимание тех, кто как я не разбирается в КД, вдруг кому пригодится: ВыгрузитьПоПравилу(ЗДЕСЬ_ОБЪЕКТ_ВЫГРУЗКИ_ПЕРВЫЙ_ПАРАМЕТР и т.д. по синтаксису. У меня были образцы правил, там выгрузка была из структуры в качестве третьего параметра и я не разобравшись лепила правила по образу и подобию |
|||
20
Charity
05.10.18
✎
18:06
|
Спасибо всем, кто принял участие в данной теме
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |