Алгоритм выгрузки из 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

См. также

Перенос данных из Парус 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    48698    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. EliasShy 48 01.11.13 06:18 Сейчас в теме
Судя по всему - вы открыли для себя Recordset и работу с Jet соединением, что в принципе, само по себе не несет ценности сообществу.
Вот если бы описали бы и выложили прокси-модуль, которому скармливаешь таблицу значений, например, и он отрабатывает - была бы польза.
А по теме - довольно странно, что базу вы создаете новую программно. По-идее, база должна сначала разрабатываться, со своей структурой - смысл Access - интеграция с офисными приложениями, формы, репорты - этого нет. Хотя, может такая задача - просто странно.



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