Имя: Пароль:
1C
1С v8
Конвертация данных. Дополнения табличной части.
0 DaryaKoroleva
 
24.02.15
11:28
Добрый день.
Переношу данные из Бухгалтерии 2.0 документ "платежное поручение" в Документооборот в дописанный документ.
Можно ли сделать так что бы в приемнике табличная часть документа дополнялась данными (дата, сумма) из разных платежных поручений источника?
Т.е. например у нас есть в источнике 2 платежных поручения по договору N, от 2.02.14 и от 3.02.14. В приемник они должны создаться как один документ, а данные по дате и сумме просто записаться в табличную часть документа у которого договор тоже N?
Примерно вот так:
http://cs625618.vk.me/v625618735/1ea1d/DPJwiSYjUuE.jpg
1 busy1
 
24.02.15
11:34
Добрый день. Сам сейчас вот занимаюсь конвертацией. Да, можно так. Не могу тебе сказать как именно. Сам только начал разбираться.
2 mikecool
 
24.02.15
11:34
можно, источник данных - произвольный запрос
3 busy1
 
24.02.15
11:35
(2) имеется ввиду Входящие данные в ПКО ???
4 welwel
 
24.02.15
11:43
в ПВД - произвольный запрос,
там же определить ИсходящиеДанные,
а в ПКО получить из входящих данных
5 DaryaKoroleva
 
24.02.15
12:18
В ПВД у документа Платежное Поручение выбрала способ выборки "произвольный алгоритм".
Так же прописала в "Перед обработкой":
ИсходящиеДанные = Новый Массив;
Запись  = Новый Структура;

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|    ПлатежноеПоручение.Дата,
|    ПлатежноеПоручение.СуммаДокумента,
|    ПлатежноеПоручение.Контрагент,
|    ПлатежноеПоручение.ДоговорКонтрагента.Номер
|ИЗ
|    Документ.ПлатежноеПоручение КАК ПлатежноеПоручение";

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

(4) А где конкретно в ПКО прописать "входящие данные"?
6 busy1
 
24.02.15
12:36
в ПКО есть галочка "получать из входящих данных"
7 sttt
 
24.02.15
12:39
в ПКС есть галочка
8 DaryaKoroleva
 
24.02.15
12:57
(6) В ПКО нет ее. Она в ПКС есть..
9 busy1
 
24.02.15
15:01
Поставь в ПКС
10 DaryaKoroleva
 
24.02.15
15:44
Поставила в ПКС.
Выгружаю.
Пишет: "Выгружено объектов: 0" (
11 busy1
 
24.02.15
15:47
Источник в ПКО убери и посмотри отладчиком.
12 welwel
 
24.02.15
15:48
(5) выборка не определена, посмотрите справку по обработчику
13 DaryaKoroleva
 
24.02.15
17:37
Поменяла  "Результат" на "ВыборкаДанных".

ИсходящиеДанные = Новый Массив;
Запись  = Новый Структура;

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
        |    ПлатежноеПоручение.Дата,
        |    ПлатежноеПоручение.СуммаДокумента,
        |    ПлатежноеПоручение.Контрагент,
        |    ПлатежноеПоручение.ДоговорКонтрагента.Номер,
        |    ПлатежноеПоручение.ПометкаУдаления,
        |    ПлатежноеПоручение.ДоговорКонтрагента,
        |    ПлатежноеПоручение.ВалютаДокумента
        |ИЗ
        |    Документ.ПлатежноеПоручение КАК ПлатежноеПоручение";

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

Объекты выгружает)

А как теперь сделать так, что бы объекты попадали в один документ в табличную часть?)
14 welwel
 
24.02.15
18:30
в выборкаданных должна быть одна запись
а в ней уже должна быть коллекция, соответствующая табличной части