Имя: Пароль:
1C
1С v8
Конвертация данных - выгрузка договоров за период
0 cmex
 
21.01.14
13:17
Добрый день.
Как выгрузить договора в КД за определенный период?
У меня есть ПКО - "ДоговорыКонтрагентов", далее в правиле выгрузке данных нахожу Справочник "Договоры контрагентов" и в событие "ПередОбработкой" пишу следующее:

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    ХозрасчетныйОбороты.Субконто1.Ссылка КАК Ссылка
|ИЗ
|    РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, , , &Договоры, Организация = &Организация, , ) КАК ХозрасчетныйОбороты";

Запрос.УстановитьПараметр("ДатаНач", Дата('20130101'));
Запрос.УстановитьПараметр("ДатаКон", Дата('20141231235959'));
Запрос.УстановитьПараметр("Договоры", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры);
Запрос.УстановитьПараметр("Организация", );

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


Как указать параметр Организация и какие параметры передать в "ВыгрузитьПоПравилу"?
1 zak555
 
21.01.14
13:20
у договора есть реквизит организация
2 cmex
 
21.01.14
13:22
(1) это да, как мне указать по какой я отбор хочу сделать? Справочники.Организации.НайтиПоКоду("")?
3 Franchiser
 
гуру
21.01.14
13:23
(2) Как тебе нравится: по Коду, Наименованию или ИНН+КПП
4 zladenuw
 
21.01.14
13:24
(2) так задай параметр и заполняй его при выгрузке. если ручная выгрузку ну или (3)
5 cmex
 
21.01.14
13:24
(1) (3) с этим ОК,спасибо,теперь какие параметры передать в "ВыгрузитьПоПравилу",
6 Franchiser
 
гуру
21.01.14
13:26
ВходящиеДанные= новый Структура();
    ВходящиеДанные.Вставить("Договора",Дог);
ВыгрузитьПоПравилу(,, ВходящиеДанные,, "ДоговорыКонтрагентов");
7 cmex
 
21.01.14
13:28
(6) а первый параметр не надо разве?
8 Franchiser
 
гуру
21.01.14
13:28
ВходящиеДанные.Вставить("Организация",Справочники.Организации.Найтипокоду("111"));
еще это можешь добавить
9 zak555
 
21.01.14
13:29
ИсходящиеДанные = новый Структура();
ИсходящиеДанные.Вставить("Договора",Дог);
ИсходящиеДанные.Вставить("Организация ",Организация );
10 Franchiser
 
гуру
21.01.14
13:31
Можешь указать и первый, или же в договорах определи переменную ключвыгружаемыхданных
11 zak555
 
21.01.14
13:32
(10) +1

у тебя же наверное Организация -- это параметр, который достпупен везде
12 Franchiser
 
гуру
21.01.14
13:33
Можно использовать вместо найтипокоду Параметр выгрузки или загрузки, чтобы пользователь на каком-то этапе выгрузки или загрузки выбирал организацию
13 Franchiser
 
гуру
21.01.14
13:33
в твоем случае параметр выгрузки
14 cmex
 
21.01.14
13:35
(13) а где его указать? параметр в смысле организации
15 cmex
 
21.01.14
13:35
(10) ИсходящиеДанные.Вставить("Договора",Дог); что такое "Договора"
16 zak555
 
21.01.14
13:36
(15) в элементе конверации
17 Franchiser
 
гуру
21.01.14
13:36
(14) на форме универсальной обработки выгрузки. Там еще можно формы делать пользовательские.
18 zak555
 
21.01.14
13:36
(14) поле структуры
19 Franchiser
 
гуру
21.01.14
13:38
(10) да наверно неправильно, д.б. реквизиты договора ИсходящиеДанные.Вставить("Наименование",Договор.Наименование);
20 Franchiser
 
гуру
21.01.14
13:39
(14) встаешь на правила конвертации, лупа, закладка параметры
21 Franchiser
 
гуру
21.01.14
13:40
+(20) галочка Диалог
22 cmex
 
21.01.14
13:42
(19) то есть это поля для поиска что ли тут надо указать?
23 Franchiser
 
гуру
21.01.14
13:43
(22) все поля которые передаешь, а поиска или не поиска определяешь в правиле Договоры.
24 Franchiser
 
гуру
21.01.14
13:45
все зависит от правила Договоры, можешь передать 1 парамет ссылку, а в Договорах расписывать Источник.наименование, Источник.ВидДоговора итд
25 Franchiser
 
гуру
21.01.14
13:47
а если передашь реквизиты, в приемники просто ставишь галку "Получить из входящих данных"
26 Franchiser
 
гуру
21.01.14
13:49
В твоем случае достаточно даже источник передать, а входящие данные не нужны
27 Franchiser
 
гуру
21.01.14
13:50
обычно во входящие данные пихают то чего нельяз получить из источника
28 cmex
 
21.01.14
13:56
(27) то есть достаточно вот так:

ВыборкаДанных = Запрос.Выполнить().Выгрузить();
Для каждого Дог из ВыборкаДанных цикл
    ВыгрузитьПоПравилу(Дог.Ссылка,,,, "ДоговорыКонтрагентов");
КонецЦикла;
29 zak555
 
21.01.14
13:57
(25) это если в структурой передаёшь
30 Franchiser
 
гуру
21.01.14
14:19
(28)Достаточно, если в правиле договоры у тебя все определено через Источник
31 cmex
 
21.01.14
15:16
(30) спасибо
Закон Брукера: Даже маленькая практика стоит большой теории.