Алгоритм выгрузки из 1С в Access

31.10.13

Разработка - Математика и алгоритмы

Работающий алгоритм выгрузки из 1С в Access. Понадобилось выгрузить отчет в ACCESS, пришлось разбираться.

Пришлось перекопать множество материалов пока не наткнулся на книгу А. Михайлова "1C: Предприятие 7.7/8.0: системное программирование. Данный код можно использовать в отчетах для их выгрузки в файл ACCESS.

//Создаем файл Access

dbe = Новый COMОбъект("DAO.DBEngine.36");

wksp = dbe.Workspaces(0);

db = 0;

Имя = "С:\Темр";

ИмяФайла = "File";

Путь = Имя + "\"+ИмяФайла+".mdb";

db = wksp.CreateDataBase(Путь,";LANGID=0x0419;CP=1251;COUNTRY=0");

wksp.Close();

dbe = Неопределено;

СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Путь;

// Создание таблицы

// Начальная инициализация

Catalog = Новый COMОбъект("ADOX.Catalog");

Catalog.ActiveConnection = СтрокаПодключения;

// Создание новой таблицы

Table = Новый COMОбъект("ADOX.Table");

// Имя таблицы

Table.Name = "DistrSalesReport";

// Создание новой колонки

// Допустимые типы

// adDouble = 5 Значение с плавающей точкой двойной точности

// adDAte = 7 Дата

// adCurrency = 6 Денежная сумма

// adBoolean = 11 Булево  

// adVarWChar = 202 Символьная строка Unicode, заканчивающаяся NULL

// adLongVarWChar = 203 Длинное строковое значение

Column = Новый COMОбъект("ADOX.Column");

// Имя колонки

Column.Name = "IdRow";

Column.Type = 5; // Число

// Присоединение колонки к таблице

Table.Columns.Append(Column);

Column = Новый COMОбъект("ADOX.Column");

// Имя колонки

Column.Name = "PRRDistribCode";

Column.Type = 202; // Строка

// Присоединение колонки к таблице

Table.Columns.Append(Column);

// Присоединение созданной таблицы (листа)

Catalog.Tables.Append(Table);

СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Путь + ";""";

Connection = Новый COMОбъект("ADODB.Connection");

Попытка

      Connection.Open(СтрокаПодключения);

Исключение

      Сообщить(ОписаниеОшибки());

      Возврат;

КонецПопытки;

Запись = Новый COMОбъект("ADODB.RecordSet");

ТекстЗапроса = "SELECT * FROM DistrSalesReport";

Запись.Open(ТекстЗапроса, Connection, 1, 3);

Indy = 0;

//Здесь ваш запрос или тз для выгрузки

//Бежим по выборке запроса 1С

Пока Выборка.Следующий() Цикл

   Indy = Indy + 1;

   // Добавление новой записи в колонки

   Запись.AddNew();

   Запись.Fields(0).Value = Indy;

   Запись.Fields(1).Value = "Какая то строка";

   Запись.UpDate();

КонецЦикла;

// Закрываем соединение

Connection.Close();

Connection = Неопределено;

//проверяем файл

Вступайте в нашу телеграмм-группу Инфостарт

Выгрузка в Access

См. также

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

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

28500 руб.

15.11.2022    27286    32    49    

43

Внешние источники данных Программист Бизнес-аналитик 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Розница 3.0 Платные (руб)

Обработка для выгрузки данных из подготовленных СКД в фоновом режиме в базу ClickHouseDB, PostgreSQL, MySQL, в шину данных с поддержкой REST API (CSV, JSON. SQL), в локальные файлы (CSV, JSON, XLS, XLSX) или в Google Sheets. Это дополнительная подключаемая обработка.

18000 руб.

21.08.2024    5182    12    4    

12

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

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

10200 руб.

24.06.2021    23813    60    55    

44

Оптовая торговля Розничная торговля Внешние источники данных Прайсы 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Хотите, чтобы остатки и цены товаров в вашей базе всегда были актуальными без лишних усилий? Теперь это возможно - автоматизируйте процесс загрузки и обновления данных о номенклатуре от ваших поставщиков или конкурентов. Как это работает? Вы сами настраиваете правила и расписание для каждого поставщика, чтобы обновление информации из произвольных форматов прайс-листов происходило автоматически.

15000 руб.

15.05.2024    2563    4    0    

5

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

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

13200 руб.

19.12.2016    50963    107    106    

76

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

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

60000 руб.

16.11.2018    31895    23    31    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. EliasShy 48 01.11.13 06:18 Сейчас в теме
Судя по всему - вы открыли для себя Recordset и работу с Jet соединением, что в принципе, само по себе не несет ценности сообществу.
Вот если бы описали бы и выложили прокси-модуль, которому скармливаешь таблицу значений, например, и он отрабатывает - была бы польза.
А по теме - довольно странно, что базу вы создаете новую программно. По-идее, база должна сначала разрабатываться, со своей структурой - смысл Access - интеграция с офисными приложениями, формы, репорты - этого нет. Хотя, может такая задача - просто странно.



2. dimens 48 01.11.13 09:38 Сейчас в теме
У меня была конкретная задача: сделать отчет и выгрузить его в файл ASSECC по заранее определенной структуре (2 таблицы и определенное количество и названия столбцов). Порылся на этом сайте, решения не нашел. Сделал свое. Я описал лишь свой опыт не претендуя на новизну (это не научная статья). Другому программисту 1С при выполнении схожей задачи будет проще. Хорошо тогда как под 1С создать по вашему файл Assecc?
nepu6kin; validol3; +2 Ответить
3. EliasShy 48 05.11.13 12:07 Сейчас в теме
(2) Добрый день.
Если у Вас заранее определенная структура файла базы - то зачем его каждый раз создавать. Сделали шаблон, скопировали, заполнили.
4. dimens 48 05.11.13 23:35 Сейчас в теме
Добрый день! У меня пользователь сам выбирает куда ему сохранять файл с отчетом + имя этого файла приходиться генерить.
5. EliasShy 48 06.11.13 08:15 Сейчас в теме
(4) ну имя файла - просто строка! Сохранить заготовленный шаблон с новым именем.
6. ser6702 180 06.11.13 10:29 Сейчас в теме
полезно - книгу же Михайлова где сейчас найти ;-)
7. dimens 48 06.11.13 12:16 Сейчас в теме
8. dimens 48 06.11.13 12:28 Сейчас в теме
EliasShy, конечно можно использовать "заготовку файла Assecc" нужной структуры, как вариант сохранять его в двоичные данные или active document, но это тема отдельной статьи.
9. EliasShy 48 06.11.13 12:36 Сейчас в теме
(8) Ну на счет отдельной статьи - надеюсь Вы пошутили.
Было бы интересно, если бы сделали наподобие прокси-класса для работы с базами Access. Однако практическая ценность дальше "интересно" вряд-ли распространится.
Для отправки сообщения требуется регистрация/авторизация