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

04.05.10

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Access2_1c82
.zip 86,37Kb
352
352 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

  • кодам справочников
  • наименованиям
  • произвольным (но индексированным в 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 часов :-), это конечно не очень порядочные франчи. Не очень хочется кормить таких людей. Так, что я на этот счет пока в раздумьях.  

См. также

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    23072    25    49    

39

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

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

120000 руб.

19.08.2020    26536    26    1    

28

Внешние источники данных Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Готовая интеграция для управляемых форм. Встраивается в вашу 1С как расширение. Реализует автоматический обмен данными между 1С (1С:Фитнес клуб и аналогов) и СКУД RusGuard, автоматизирует бизнес-процессы по созданию и учету сотрудников в СКУД. Значительно упрощает работу специалистов отдела кадров и отдела безопасности: избавляет от двойного ввода информации в 1С и СКУД.

94999 руб.

11.07.2024    1324    1    0    

3

Розничная торговля Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Бухгалтерский учет 1С:Бухгалтерия 3.0 Фармацевтика, аптеки Россия Бухгалтерский учет Платные (руб)

Внешняя обработка загрузки данных из файла-выгрузки, сформированного в программе F3 TAIL версии 3.4 (и выше) или еФарма версии 2.1, в базу конфигурации 1С: Бухгалтерия предприятия 8, ред. 3.0 (базовая, ПРОФ, КОРП, ФРЕШ).

13200 руб.

19.12.2016    48713    98    106    

70

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

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

84000 руб.

24.04.2017    52726    104    165    

91
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Re:аниматор 338 16.04.10 12:34 Сейчас в теме
на сайте есть обработки с интеграцией Access ... на 8.1, но от 8.2 отличий нет. смысл ремейка?
2. Душелов 4021 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/
Оставьте свое сообщение