1С Конвертация, использование внешнего источника данных

0. SergeMalikov 553 26.09.12 14:47 Сейчас в теме
Загрузка информации в базу данных платформы 1С 8.2 из внешних источников с помощью "Конвертации данных"

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. yandextesting 144 26.09.12 14:47 Сейчас в теме
Чего-то я не понял: на кой в данном случае вообще используется конвертация данных, если мы все равно все в коде ручками прописываем? Куда интересней и универсальней, на мой взляд, реализация отсюда - "Загрузка информации из внешних данных с помощью конфигурации "Конвертация данных" "
daho; maXon777; +2 Ответить
3. comol 4347 02.10.12 08:58 Сейчас в теме
(1) там модификация КД, которая уже не актуальна ввиду развития самой КД. Здесь просто описание решения конкретной задачи штатными средствами.
2. comol 4347 02.10.12 08:57 Сейчас в теме
Хорошая идея. Вроде и просто а не всегда в голову придёт.
4. vahate 04.10.12 12:26 Сейчас в теме
очень интересует обработка для перехода (переноса) с Розница 1.0 для Украины (от российской почти ничем не отдичается) на Розница 2.0 для России.
5. klel 11.10.12 07:36 Сейчас в теме
хорошая статейка в особенности внешние источники данных
6. higs 11.10.12 10:23 Сейчас в теме
Довольно своеобразный подход к Конвертации данных, однако, имеет право на жизнь. Спасибо за альтернативную точку зрения!
7. Трактор 1200 11.10.12 10:23 Сейчас в теме
Это статья конкурса http://mg.spec8.ru/2012/10/06/competition-july2012/ На мой взгляд самая толковая статья из всех статей конкурса. Плюс от меня достался только двум статьям. Этой и про УРИБ
8. zipik 11.10.12 12:42 Сейчас в теме
9. pt_olga 62 11.10.12 17:27 Сейчас в теме
я бы конечно таким путем не пошла, т.к. к DBF таблицам можно обращаться и напрямую без бубна конвертации, автор использует достаточно креативный подход, за что ему плюс :)
PLAstic; mihan; +2 Ответить
10. Gawws 11.10.12 20:23 Сейчас в теме
Плюс здесь в том, что создаются с помощью КД правила конвертации данных. А для переноса используется универсальная загрузка данных из xml. Хорошая статья.
11. Kamikadze 46 11.10.12 21:48 Сейчас в теме
12. and_r 12.10.12 05:38 Сейчас в теме
Спасибо за статью, вроде все не сложно, но когда впервые сталкиваешься, убивается много времени, благодаря автору шишек набъется меньше :-)
13. EvgeniuXP 12.10.12 20:17 Сейчас в теме
Если честно, ничего не понял, где связь между внешними источниками и конвертацией даннных.... такое ощущение, что автор показал как подключаться через внешние источники и отдельно как перенести данные.... только откуда из дбф напрямую?... но в качестве источника ничего не указано...
14. EvgeniuXP 12.10.12 20:19 Сейчас в теме
всё, отбой, не доглядел :-\
15. Йожкин Кот 1080 17.10.12 17:16 Сейчас в теме
Я в своей разработке использую прослойку с виде подключаемой обработки, в которой реализованы методы подключения к внешним источникам и получения данных этих источников в виде ТЗ. Пользуюсь еще со времен 8.1, где объекта "Внешние источники данных" нет. Идею подсмотрел где-то на партнерском форуме.
Событие перед обработкой получается примерно похожее:
ОбработкаРаботаСВнешнимиДанными = ДопОбработки.РаботаСВнешнимиДанными;

ОбработкаРаботаСВнешнимиДанными.ТекстЗапроса =
"
|SELECT
|posts.code,
|posts.name
|
|FROM [posts] as posts
|";

Если ОбработкаРаботаСВнешнимиДанными.ВыполнитьЗапрос() Тогда

ВходящиеДанные = Новый Структура;

Таблица = ОбработкаРаботаСВнешнимиДанными.Таблица.Скопировать();

Для каждого СтрокаТаблицы Из Таблица Цикл

ВходящиеДанные.Очистить();
ВходящиеДанные.Вставить("Код", СокрЛП(СтрокаТаблицы.code));
ВходящиеДанные.Вставить("Наименование", СокрЛП(СтрокаТаблицы.name));

ВыгрузитьПоПравилу(,, ВходящиеДанные,, "ДолжностиОрганизаций");

КонецЦикла;

КонецЕсли;
daho; Новенький_2209; +2 Ответить
16. Новенький_2209 04.11.12 00:06 Сейчас в теме
(15) Йожкин Кот, хорошая идея! Надо будет попробовать.
17. daho 8 06.11.12 14:57 Сейчас в теме
Ставлю плюс, автору спасибо!
18. Franchiser 47 26.11.12 12:21 Сейчас в теме
Интересно, кто-нибудь проверял код работает? Обычно если источник пустой, нужно в любом случае указывать Значение= "1"; И еще КД запоминает выгруженные объекты и скорее всего нужно определять переменную "КлючВыгружаемыхданных", иначе может загрузиться, например, только 1 элемент.
24. daho 8 23.05.13 11:31 Сейчас в теме
(18) Franchiser, А если источник ТЗ или структура?
26. Franchiser 47 23.05.13 14:09 Сейчас в теме
(24) Что значит источник ТЗ или структура. Если из тз или из структуры требуется вытащить некое значение то нужно определять переменную КлючВыгружаемыхданных, т.к. это в другой объект тоже может быть передана эта же тз или структура и получится что проставится не то значение. Если же говорить о структуре ВходящиеДанные или ТЗ Выборка Данных тогда мы работаем уже не с самой ТЗ а со строкой ТЗ, не с самой структурой а значением из структуры, поэтому тут все хорошо.
19. SergeMalikov 553 27.11.12 15:24 Сейчас в теме
Работает. В screenshot-ах результаты работы на реальных данных.
20. kn 111 12.12.12 12:14 Сейчас в теме
Спасибо, было полезно познакомиться с такой возможностью
21. AlexO 129 18.01.13 14:16 Сейчас в теме
Только на курсах обучают грузить DBF через КД.
Да, кому ничего не понятно - то ну очень интересное решение :)
25. daho 8 23.05.13 11:33 Сейчас в теме
(21) AlexO, dbf потихоньку умирает...
22. MaxS 1977 13.04.13 00:27 Сейчас в теме
Самому в голову приходило такая идея. Но некогда было её исследовать и тем более оформить как статью. ;) +
23. Spacer 303 01.05.13 23:25 Сейчас в теме
Что-то я попробовал подключиться через внешние источники данных к dbf файлам FoxPro,
используя вашу строку подключения: "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:\mydbpath;".
Вроде подключилось, таблицы видит, а поля этих таблиц - нет.
И про каждую таблицу пишет: "Необъектные данные". Не могу понять в чем дело...
27. MaxS 1977 13.09.13 07:22 Сейчас в теме
Если в КД программно выбираются данные, зачем промежуточное звено в виде 1С и внешнего источника данных? Причем в примере выше, DBF выгружается в ТЗ.

С таким же успехом можно было в ПВД бы сделать так:

ДБФ = Новый XBase(ПолноеИмя,ИмяФайлаИндекса,Истина);

ДБФ.Первая();
  Пока НЕ ДБФ.ВКонце() Цикл
  ИсходящиеДанные = Новый Структура("КОД,ФИО,СЕМЬЯ,ПЛОЩАДЬОБЩАЯ");
  ИсходящиеДанные.КОД = ДБФ.ПолучитьЗначениеПоля("КОД");
  //...
  ВыгрузитьПоПравилу(,,ИсходящиеДанные,,"ЛицевыеСчета");
КонецЦикла;
Показать


В этом варианте если dbf файл огромный, мы читаем его последовательно, а не выгружаем целиком в таблицу значений.

Задача усложняется, если в dbf хранится например строковое поле УИД (ссылка на справочник), ссылающееся на другой dbf (справочник).
В КД нужно будет создать ПКО для заполнения реквизита, в этом случае ПВД не сработает, а данные из dbf получить как-то нужно. Т.е. читать dbf нужно в ПКО или ещё раньше...
28. Dragga 17.02.14 01:22 Сейчас в теме
Молодец, хорошая реализация. Как пример к использованию
29. ураниум 6 11.07.16 18:12 Сейчас в теме
как строку перенести в перечисление, справочник?
Оставьте свое сообщение
Вопросы с вознаграждением