Универсальный перенос из Access через ADO в 1С 8.2 управляемое приложение

04.05.10

Интеграция - Внешние источники данных

Перенос из Access в 1С 8.2. Делалось под конкретную задачу, но сделал так, чтобы было универсально. Мало ли когда еще пригодится. К тому же ADO позволяет обращаться не только к данным MDB но и к другим поставщикам данных имеющим драйвера поддерживающие данную технологию :-)

Скачать файлы

Наименование Файл Версия Размер
Access2_1c82
.zip 86,37Kb
352
.zip 86,37Kb 352 Скачать

Идея проста как мир и используется во всех конвертациях данных.

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

  • Справочники
  • Документы
  • Регистры сведений

При переносе устанавливаются соответствия по:

  • кодам справочников
  • наименованиям
  • произвольным (но индексированным в 1С) полям справочников
  • значениям перечислений
  • по владельцу

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

Если интерес есть, то я напишу эту статью дальше с описанием как-же это было сделано, а пока пару картинок.

И наверное то, что вызывает наибольшие трудности у начинающих. Это кусочек кода для подключения базы данных как COM объекта к 1С.

	 &НаКлиенте
Функция СчитатьТаблицуMDB(ИмяТаблицы)
 
 // Open connection
    strCnxn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(Объект.ФайлДанных);
    Cnxn = Новый COMОбъект("ADODB.Connection");
    Cnxn.Open(strCnxn);    
    rst = Новый COMОбъект("ADODB.Recordset");  
    rst.Open(ИмяТаблицы, Cnxn,1);    
 
    //считываем структуру полей таблицы
    ИменаПолей=Новый СписокЗначений; 
    Для Каждого тПоле Из rst.Fields() Цикл
       ИменаПолей.Добавить(тПоле.Name);  
    КонецЦикла; 
 
    rst.MoveLast();
    МаксЗапись=rst.RecordCount; 
    rst.MoveFirst();   
 
    Объект.ИмяТаблицы=ИмяТаблицы;
    ЭтаФорма.ОбновитьОтображениеДанных(); 
	 ...

Ну и далее по тексту уже идет загрузка значений из внешнего объекта/таблицы в список значений и передача его на сервер. На сервере этот список обрабатывается согласно правилам из справочника и пишется в объекты БД.

Я выложил код с примером - чего уж жмотиться !!!

Если кто-то доделает до ума - то плиз, не продавайте, а отдайте так же - бесплатно.

Если не забудете, то копию мне пришлите :-) того что получиться.

Я не планирую это развивать и превращать во что-то законченное, т.к. занят другим. Это лишь маленький кусочек, который как мне показалось может быть интересен и полезен.

Пока это черновик статьи - не судите строго.

Если будет интерес то я:

1) Допишу статью

2) Возможно выложу каркасную конфигурацию с примером переноса, по сути это готовое решение которое может использоваться в рабочих условиях.  Я, к примеру, видел как за аналогичную работу франчи брали чуть ли ни по 50-100 часов :-), это конечно не очень порядочные франчи. Не очень хочется кормить таких людей. Так, что я на этот счет пока в раздумьях.  

См. также

Перенос данных из Парус 8 в ЗГУ 3

Зарплата Внешние источники данных Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    22447    19    1    

22

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9207    9    8    

10

Перенос данных из Парус 7.хх в ЗГУ ред.3

Внешние источники данных Зарплата Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 7.хх учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

24000 руб.

24.04.2017    48700    97    163    

86

Перенос начальных остатков из Парус 7.71 в БГУ

Внешние источники данных Взаиморасчеты Учет ОС и НМА Логистика, склад и ТМЦ Бюджетный учет Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 2.0 1С:Бухгалтерия государственного учреждения Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Перенос словарей и начальных остатков из ПП Парус-Бухгалтерия Бюджет 7.71 в 1Сv8 БГУ2. Заполнение словарей и документов по вводу начальных остатков. Не требуется установка ПП Парус7. Возможна дозагрузка. Позволит автоматически и наиболее полно ввести данные в программу для начала работы. 

15600 руб.

08.12.2011    81560    128    123    

147

Перенос данных из Парус 10 (Торнадо) в ЗГУ ред.3 через Excel

Внешние источники данных Загрузка и выгрузка в Excel Зарплата Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате из Парус 10(Торнадо) учреждений через файлы Excel в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ). В принципе, обработка может быть использована для загрузки из файлов Excel, полученных из любых информационных систем.

24000 руб.

16.11.2018    29997    20    31    

21

Загрузка спецификаций в УНФ из системы Базис-мебельщик

Производство готовой продукции (работ, услуг) Внешние источники данных Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 Лесное и деревообрабатывающее хозяйство Россия Управленческий учет Платные (руб)

Обработка предназначена для загрузки файлов, выгруженных из системы Базис-мебельщик, в справочник "Спецификации" для последующих процессов учета и диспетчирования полуфабрикатов и изделий.

7200 руб.

24.06.2021    19126    52    50    

29
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Re:аниматор 338 16.04.10 12:34 Сейчас в теме
на сайте есть обработки с интеграцией Access ... на 8.1, но от 8.2 отличий нет. смысл ремейка?
2. Душелов 4013 16.04.10 12:51 Сейчас в теме
(1) Может весь смысл в управляемом приложении?
4. Re:аниматор 338 16.04.10 14:54 Сейчас в теме
(2) не вижу сложности в управляемом приложении
7. mpkfa 21.04.10 09:24 Сейчас в теме
(4) может ты просто еще не видел :) его в полном объеме, марафет да работает а вот дальше :))) все интереснее и интереснее ;)
3. serg_info 116 16.04.10 14:49 Сейчас в теме
(1) Вы правы, такое на 8.1 есть и реализовано более законченно наверное.
Я выложу пример (конфигурацию) и MDB.

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

Это все для одного проекта и для себя.

И как правильно заметил (2) на 8.2 в управляемом режиме, так что на код посмотреть кому-то будет очень интересно. Т.к. считать данные из файловой системы мы можем только на клиенте, а записать в базу только на сервере.

ТОЛСТЫЙ КЛИЕНТ - под 8.2. не интересен и оставлен как я понимаю для совместимости.
5. Re:аниматор 338 16.04.10 14:56 Сейчас в теме
(3) ясно, просто уже перешел полностью на 8.2, как то уже не задумываюсь о 8.1
6. serg_info 116 16.04.10 15:22 Сейчас в теме
(5) Везет Вам !

А у меня еще мозг кипит. Все мне кажется что перемудрили с объектной моделью.
Слишком много объектов для доступа к одной сущности данных. Ну в связи с клиент сервером - 2-ва объекта бы сделали один на чтение другой на запись, а то аж по 5 наворотили. Такое ощущение что разработчикам объектной модели платили по кол-ву объектов / методов / свойств.

А ты тут сиди разбирайся.

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

8. serg_info 116 21.04.10 11:57 Сейчас в теме
О народ стал качать, буду ждать коментов.

Вообще по хорошему надо дописать выбор наименований таблиц и полей из структуры БД Accessa один фиг все уже и так считано, просто создать списки и прицепить их на форму выбора в справочник.
Аналогично поступить с объетами 1С получить из метаданных и привязать к полям выбора в справочник описаний правила переноса.

Вынести правила переноса во внешний файл и вообще всю обработку.
Я наверное мог бы доделать, но сейчас траблы со временем.

Кто-нибудь возьмется доделать до ума?
Может потом и со мной поделитесь.
9. oldje 04.05.10 00:53 Сейчас в теме
10. serg_info 116 04.05.10 13:34 Сейчас в теме
(9) Хотел причесать обработку, но времени не хватило. Выложу старый "непричесанный" вариант, но он тоже рабочий.
11. oldje 05.05.10 19:44 Сейчас в теме
Спасибо, здесь когда-то публиковалась обработка формирования ХМЛ правил переноса из произвольного источника по АДО для любой конфигурации, интересно было бы что-нибудь аналогичное
12. Boruh 16.06.11 10:55 Сейчас в теме
Помогите,
Не могу импортировать данные из Access ,пишет :
поизошла исключительная ситуация (Microsoft JET Database Engine)Ошибочный пароль.
13. Sekletcov 28.09.11 09:40 Сейчас в теме
Там в обработке в строке подключения есть Login= и Pasw= там надо прописывать, а если нет, тогда самому внести эти строки...
14. user979692 21.05.18 19:55 Сейчас в теме
Здравствуйте. У меня программа Склад (составлена лет 15-20 местным программистом). База данных открывается через Microsoft Access. Нужно перенести в 1С 8.3 Управление сервисным центром. Как это сделать, сколько стоит и тд?
15. МихаилМ 21.05.18 21:22 Сейчас в теме
(14)
ошиблись разделом. Вам раздел тендеры https://infostart.ru/project/
Оставьте свое сообщение