Книга знаний

1С:Предприятие / Приемы программирования / Обмен данными, УРБД

Конвертация банковской выписки

Конвертация банковской выпискиАвтор статьи: Михей
Последняя редакция №1 от 31.03.07
URL: http://kb.mista.ru/article.php?id=505

Ключевые слова: КД, Конвертация данных, Банковска выписка


Поставили как то задачу перенести документ из 7.7 БанковскаяВыписка в "Управление торговлей 8.0". В УТ 8.0 такого документа нету, есть только обработка "Выписка банка", но есть документы "Платежное поручение входящее" и "Платежное поручение исходящее" в которые и нужно переносить "Банковскую выписку".

Создадим правило переноса "Банковской выписки" в документы "Платежное поручение входящее" и "Платежное поручение исходящее".

1. Создадим правило конвертации объекта с пустым источником и приемником "Платежное поручение входящее" (ПКО = "ПлатежноеПоручениеВходящее").

2. Создадим правило выгрузки данных для банковской выписки, и установим для него способ выборки "Произвольный алгоритм" (ПВД = "ПлатежноеПоручениеВходящее").

3. В событии ПередОбработкой ПВД "ПлатежноеПоручениеВходящее" нужно написать код на встроенном языке 7.7 который бы проводил выборку из банковских выписок только входящих платежей (реквизит табличной части "ПлюсМинус = Перечисление.ПлюсМинус.Минус") и заполнил встроенную переменную ВыборкаДанных. Пример:

ВыборкаДанных = СоздатьОбъект("ТаблицаЗначений");
ВыборкаДанных.НоваяКолонка("Номер");
ВыборкаДанных.НоваяКолонка("Дата");
ВыборкаДанных.НоваяКолонка("Контрагент");
ВыборкаДанных.НоваяКолонка("Сумма");
ВыборкаДанных.НоваяКолонка("Индекс");

БанковскаяВыписка = СоздатьОбъект("Документ.БанковскаяВыписка");
БанковскаяВыписка.ВыбратьДокументы();
Пока БанковскаяВыписка.ПолучитьДокумент() = 1 Цикл
    БанковскаяВыписка.ВыбратьСтроки();
    Пока БанковскаяВыписка.ПолучитьСтроку() = 1 Цикл

         Если БанковскаяВыписка.ПлюсМинус = Перечисление.ПлюсМинус.Плюс Тогда
              Продолжить;
         КонецЕсли;

         ВыборкаДанных.НоваяСтрока();
         ВыборкаДанных.Номер      = БанковскаяВыписка.Номер;
         ВыборкаДанных.Дата       = БанковскаяВыписка.Дата;
         ВыборкаДанных.Контрагент = БанковскаяВыписка.Контрагент;
         ВыборкаДанных.Сумма      = БанковскаяВыписка.Сумма;
         ВыборкаДанных.Индекс     = БанковскаяВыписка.НомерСтроки;
    КонецЦикла;
КонецЦикла;

//Колонка Индекс необходима для того чтобы сделать каждую строку таблицы ВыборкаДанных
//объектом выгрузки, увидим это дальше.

4. Переходим к правилу конвертации объекта "ПлатежноеПоручениеВходящее", в событии ПередВыгрузкой, напишем следующий код:

КлючВыгружаемыхДанных = Строка(Источник.Дата) + Строка(Источник.Номер) + Строка(Источник.Индекс);

//таким образом с каждой строки таблицы ВыборкаДанных мы получим один объект для выгрузки

5. Создаем правила конвертации свойств. Здесь проблем возникнуть не должно. В правиле конвертации номера документа, в обработчике ПередВыгрузкой я написал:

Значение = Строка(Источник.Номер) + "-" + Строка(Источник.Индекс);

// это нужно для синхронизации, чтобы при повторной загрузке не создавались повторно документы
// не забудьте включить синхронизацию по номеру и дате

Все, правило конвертации для платежного поручения входящего готово! Для исходящего поручения правило конвертации создается аналогично. Удачи!

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика