Перейти к содержимому
Краткие возможности интеграции с 1Сv8
Проведение анализа 1Сv8 средствами MS Access через COM соединение (comcntr.dll)
- Настройка подключение к 1Сv8 (файловая или серверная),
- Получение плана счетов с видами субконто,
- Выгрузка справочников,
- Выгрузка документов, в том числе и с табличной частью
- Выгрузка проводок,
- Выгрузка остатков (ОСВ в разрезе периодов)
- Конструктор запросов
Более подробную информацию о функционале БД можно просмотреть в видео и по ссылке infostart.ru
Содержание:
1. Функционал информационной системы Access
2. Как сформировать новую систему базы данных MS Access?
3. Какие функциональные возможности представляются конкретно к конфигурации 1С: УТ?
1. Функционал информационной системы Access
Для нормального комплексного анализа получения данных, управление ими из конфигурации системы 1С, то есть построения отчетов рекомендовано использовать информационную систему Access. Данная программа представляет собой организованный способ регулирования баз данных, имеющая определенный функционал:
1. Сканирование и сортировка информации
2. Сохранение данных
3. Рациональное редактирование в доступный формат
4. Подветржение совокупности повторяющихся элементов технических процессов операции автоматизирования. Например, к ним относятся учет и ведение планов счетов, а также планирование.
5. Обработка информации даже из сложных комбинаций отчетов.
Для выполнения своего назначения информационная система Access использует систему инструментов программы для введения, содержания, скрининга и редактирования. В частности, можно назвать совокупность конструкторов для создания запросов в Access, таблиц, страниц доступа к файлам, а также форм. Обратите внимание, что в конечном итоге, файл в любом случае обозначается *.mdb.
2. Как сформировать новую систему базы данных MS Access?
Сформируем новую систему базы данных MS Access. Включаем программу и выбираем в окне диалога «Создать», а потом «Новая база данных».
Доступные шаблоны
Создать
Не забываем о дополнительной возможности воспользоваться мастером базы данных для решения этой же задачи. В нем собраны макеты с таблицами, подобными Excel, формами, а также шаблонами отчетов 1С.
Файл
Чтобы использовать уже имеющиеся базы данных субд MS Access на сервере 1С предварительно устанавливаем Microsoft Access Runtime 2016 – у него самые оптимальные требования по лицензированию и в состав его функций входит установщик драйвера Microsoft ODBC. Можно установить программу и на корпоративном компьютере, на котором используется файловая информационная база 1С или сервер толстого клиента.
3. Какие функциональные возможности представляются конкретно к конфигурации 1С: УТ ?
Применимые конкретно к конфигурации 1С: УТ функциональные возможности представляют:
1. Сортировка информации из базы Access для кода встроенного языка программирования 1С
2. Загрузка данных, при условии, что сам файл упорядочен к рабочему процессу 1С и имеет все таблицы. Осуществляется через, формированные системой, связи через ADO. Создаем набор для чтения данных и отправляем на обработку. Затем очищаем ресурс.
3. Выгрузка базы Access из таблицы значений и запроса. При этом учитывается, что система имеет ограничение (2 ГБ) по максимальному объему файла информационной базы 1С. В случае превышения этого требования, можно выгружать данные частями.
4. Выгрузка итогового варианта группировки информации.
Учитывая описания типов данных полей таблицы бд, имеем в виду, что в 1С используется, составной тип: он охватывает ссылочные типы 1С и примитивные.
Специалист компании «Кодерлайн»
Елена Шашкова
Обобщающий урок в 11 классе по теме «Информационные технологии накопления, обработки и хранения данных». Разработан по программе Макаровой Н.В. К уроку прилагается конспект, мультимедийная презентация актуализации знаний в форме игры «Своя игра», презентация для проведения урока, практические работы (готовые для распечатки) и домашнее задание. Так же прилагается электронная ведомость в Excel для наглядного отображения итогов урока.
Просмотр содержимого документа
«Домашнее задание»
Просмотр содержимого документа
«Конспект урока»
Просмотр содержимого документа
«Практическая работа по БД»
Просмотр содержимого документа
«Практическая работа по ЭТ»
Просмотр содержимого документа
«Рефлексия»
Просмотр содержимого презентации
«Обобщающий урок»
В современном мире нужны инструменты, которые бы позволяли хранить, систематизировать и обрабатывать большие объемы информации, с которыми сложно работать в Excel или Word.
Подобные хранилища используются для разработки информационных сайтов, интернет-магазинов и бухгалтерских дополнений. Основными средствами, реализующими данный подход, являются MS SQL и MySQL.
Продукт от Microsoft Office представляет собой упрощенную версию в функциональном плане и более понятную для неопытных пользователей. Давайте рассмотрим пошагово создание базы данных в Access 2007.
Microsoft Access 2007 – это система управления базами данных (СУБД), реализующая полноценный графический интерфейс пользователя, принцип создания сущностей и связей между ними, а также структурный язык запросов SQL. Единственный минус этой СУБД – невозможность работать в промышленных масштабах. Она не предназначена для хранения огромных объемов данных. Поэтому MS Access 2007 используется для небольших проектов и в личных некоммерческих целях.
Но прежде чем показывать пошагово создание БД, нужно ознакомиться с базовыми понятиями из теории баз данных.
Определения основных понятий
Без базовых знаний об элементах управления и объектах, использующихся при создании и конфигурации БД, нельзя успешно понять принцип и особенности настройки предметной области. Поэтому сейчас я постараюсь простым языком объяснить суть всех важных элементов. Итак, начнем:
- Предметная область – множество созданных таблиц в базе данных, которые связаны между собой с помощью первичных и вторичных ключей.
- Сущность – отдельная таблица базы данных.
- Атрибут – заголовок отдельного столбца в таблице.
- Кортеж – это строка, принимающая значение всех атрибутов.
- Первичный ключ – это уникальное значение (id), которое присваивается каждому кортежу.
- Вторичный ключ таблицы «Б» – это уникальное значение таблицы «А», использующееся в таблице «Б».
- SQL запрос – это специальное выражение, выполняющее определенное действие с базой данных: добавление, редактирование, удаление полей, создание выборок.
Теперь, когда в общих чертах есть представление о том, с чем мы будем работать, можно приступить к созданию БД.
Создание БД
Для наглядности всей теории создадим тренировочную базу данных «Студенты-Экзамены», которая будет содержать 2 таблицы: «Студенты» и «Экзамены». Главным ключом будет поле «Номер зачетки», т.к. данный параметр является уникальным для каждого студента. Остальные поля предназначены для более полной информации об учащихся.
Итак, выполните следующее:
- Запустите MS Access 2007.
- Нажмите на кнопку «Новая база данных».
- В появившемся окне введите название БД и выберите «Создать».
Все, теперь осталось только создать, заполнить и связать таблицы. Переходите к следующему пункту.
Создание и заполнение таблиц
После успешного создания БД на экране появится пустая таблица. Для формирования ее структуры и заполнения выполните следующее:
- Нажмите ПКМ по вкладке «Таблица1» и выберите «Конструктор».
- Теперь начинайте заполнять названия полей и соответствующий им тип данных, который будет использоваться.
Внимание! Первым полем принято устанавливать уникальное значение (первичный ключ). Для него предпочтительно числовое значение.
- После создания необходимых атрибутов сохраните таблицу и введите ее название.
- Снова нажмите ПКМ по вкладке с уже новым название и выберите «Режим таблицы».
- Заполните таблицу необходимыми значениями.
Совет! Для тонкой настройки формата данных перейдите на ленте во вкладку «Режим таблицы» и обратите внимание на блок «Форматирование и тип данных». Там можно кастомизировать формат отображаемых данных.
Создание и редактирование схем данных
Перед тем, как приступить к связыванию двух сущностей, по аналогии с предыдущим пунктом нужно создать и заполнить таблицу «Экзамены». Она имеет следующие атрибуты: «Номер зачетки», «Экзамен1», «Экзамен2», «Экзамен3».
Для выполнения запросов нужно связать наши таблицы. Иными словами, это некая зависимость, которая реализуется с помощью ключевых полей. Для этого нужно:
- Перейти во вкладку «Работа с базами данных».
- Нажать на кнопку «Схема данных».
- Если схема не была создана автоматически, нужно нажать ПКМ на пустой области и выбрать «Добавить таблицы».
- Выберите каждую из сущностей, поочередно нажимая кнопку «Добавить».
- Нажмите кнопку «ОК».
Конструктор должен автоматически создать связь, в зависимости от контекста. Если же этого не случилось, то:
- Перетащите общее поле из одной таблицы в другую.
- В появившемся окне выберите необходимы параметры и нажмите «ОК».
- Теперь в окне должны отобразиться миниатюры двух таблиц со связью (один к одному).
Выполнение запросов
Что же делать, если нам нужны студенты, которые учатся только в Москве? Да, в нашей БД только 6 человек, но что, если их будет 6000? Без дополнительных инструментов узнать это будет сложно.
Именно в этой ситуации к нам на помощь приходят SQL запросы, которые помогают изъять лишь необходимую информацию.
Виды запросов
SQL синтаксис реализует принцип CRUD (сокр. от англ. create, read, update, delete — «создать, прочесть, обновить, удалить»). Т.е. с помощью запросов вы сможете реализовать все эти функции.
На выборку
В этом случае в ход вступает принцип «прочесть». Например, нам нужно найти всех студентов, которые учатся в Харькове. Для этого нужно:
- Перейти во вкладку «Создание».
- Нажать кнопку «Конструктор запросов» в блоке «Другие».
- В новом окне нажмите на кнопку SQL.
- В текстовое поле введите команду: SELECT * FROM Студенты WHERE Адрес = “Харьков”; где «SELECT *» означает, что выбираются все студенты, «FROM Студенты» – из какой таблицы, «WHERE Адрес = “Харьков”» – условие, которое обязательно должно выполняться.
- Нажмите кнопку «Выполнить».
- На выходе мы получаем результирующую таблицу.
А что делать, если нас интересуют студенты из Харькова, стипендии у которых больше 1000? Тогда наш запрос будет выглядеть следующим образом:
SELECT * FROM Студенты WHERE Адрес = “Харьков” AND Стипендия > 1000;
а результирующая таблица примет следующий вид:
На создание сущности
Кроме добавления таблицы с помощью встроенного конструктора, иногда может потребоваться выполнение этой операции с помощью SQL запроса. В большинстве случаев это нужно во время выполнения лабораторных или курсовых работ в рамках университетского курса, ведь в реальной жизни необходимости в этом нет. Если вы, конечно, не занимаетесь профессиональной разработкой приложений. Итак, для создания запроса нужно:
- Перейти во вкладку «Создание».
- Нажать кнопку «Конструктор запросов» в блоке «Другие».
- В новом окне нажмите на кнопку SQL, после чего в текстовое поле введите команду:
CREATE TABLE Преподаватели
(КодПреподавателя INT PRIMARY KEY,
Фамилия CHAR(20),
Имя CHAR (15),
Отчество CHAR (15),
Пол CHAR (1),
Дата_рождения DATE,
Основной_предмет CHAR (200));
где «CREATE TABLE» означает создание таблицы «Преподаватели», а «CHAR», «DATE» и «INT» – типы данных для соответствующих значений.
- Кликните по кнопке «Выполнить».
- Откройте созданную таблицу.
Внимание! В конце каждого запроса должен стоять символ «;». Без него выполнение скрипта приведет к ошибке.
На добавление, удаление, редактирование
Здесь все гораздо проще. Снова перейдите в поле для создания запроса и введите следующие команды:
Создание формы
При огромном количестве полей в таблице заполнять базу данных становится сложно. Можно случайно пропустить значение, ввести неверное или другого типа. В данной ситуации на помощь приходят формы, с помощью которых можно быстро заполнять сущности, а вероятность допустить ошибку минимизируется. Для этого потребуются следующие действия:
- Откройте интересующую таблицу.
- Перейдите во вкладку «Создание».
- Нажмите на необходимый формат формы из блока «Формы».
Совет! Рекомендуется использовать «Разделенную форму» – кроме самого шаблона, в нижней части будет отображаться миниатюра таблицы, которая сделает процесс редактирования еще более наглядным.
- С помощью навигационных кнопок переходите к следующей записи и вносите изменения.
Все базовые функции MS Access 2007 мы уже рассмотрели. Остался последний важный компонент – формирование отчета.
Формирование отчета
Отчет – это специальная функция MS Access, позволяющая оформить и подготовить для печати данные из базы данных. В основном это используется для создания товарных накладных, бухгалтерских отчетов и прочей офисной документации.
Если вы никогда не сталкивались с подобной функцией, рекомендуется воспользоваться встроенным «Мастером отчетов». Для этого сделайте следующее:
- Перейдите во вкладку «Создание».
- Нажмите на кнопку «Мастер отчетов» в блоке «Отчеты».
- Выберите интересующую таблицу и поля, нужные для печати.
- Добавьте необходимый уровень группировки.
- Выберите тип сортировки каждого из полей.
- Настройте вид макета для отчета.
- Выберите подходящий стиль оформления.
Внимание! В официальных документах допускается только стандартный стиль оформления.
- Просмотрите созданный отчет.
Если отображение вас не устраивает, его можно немного подкорректировать. Для этого:
- Нажмите ПКМ на вкладке отчета и выберите «Конструктор».
- Вручную расширьте интересующие столбцы.
- Сохраните изменения.
Вывод
Итак, с уверенностью можно заявить, что создание базы данных в MS Access 2007 мы разобрали полностью. Теперь вам известны все основные функции СУБД: от создания и заполнения таблиц до написания запросов на выборку и создания отчетов. Этих знаний хватит для выполнения несложных лабораторных работ в рамках университетской программы или использования в небольших личных проектах.
Для проектирования более сложных БД необходимо разбираться в объектно-ориентированном программировании и изучать такие СУБД, как MS SQL и MySQL. А для тех, кому нужна практика составления запросов, рекомендую посетить сайт SQL-EX, где вы найдете множество практических занимательных задачек.
Удачи в освоении нового материала и если есть какие-либо вопросы – милости прошу в комментарии!
+5
Загружаем данные из Access в 1С
Код 1C v 8.х
Файл = "C:filesdemo.mdb" ;
//СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Файл + "; Extended Properties=""Excel 8.0;HDR=NO;""";
СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Файл + ";""";
Connection = Новый COMОбъект("ADODB.Connection");
Попытка
Connection.Open(СтрокаПодключения);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Connection;
Command.CommandText = "S_elect * FROM Table1";
Command.CommandType = 1;
RecordSet = Новый COMОбъект("ADODB.RecordSet");
RecordSet = Command.Execute();
стр ="";
Пока RecordSet.EOF() = 0 Цикл
для н=0 по Recordset.Fields.Count -1 цикл
стр = стр + " " + Recordset.Fields(н).Value;
КонецЦикла;
Сообщить(стр);
стр ="";
RecordSet.MoveNext();
КонецЦикла;
RecordSet.Close();
Connection.Close();
Код 1C v 7.x
Акцесс = СоздатьОбъект("ADODB.CONNECTION");
Попытка
СтрокаПодключения="Driver={Microsoft Access Driver (*.mdb)};Dbq=C:mybase.mdb;Uid=Admin;Pwd=";
Акцесс.Open(СтрокаПодключения);
Исключение
Сообщить("Все плохо:"+ОписаниеОшибки());
Возврат;
КонецПопытки;
Команда = СоздатьОбъект("ADODB.Command");
Команда.ActiveConnection=Акцесс;
ТекстСелект = "S_elect * FROM tblCustoms";
НаборЗаписей = СоздатьОбъект("ADODB.RecordSet");
Команда.CommandText=ТекстСелект;
Попытка
НаборЗаписей=Команда.Execute;
Исключение
Сообщить("Обломись:"+ОписаниеОшибки());
КонецПопытки;
Попытка
НаборЗаписей.MoveFirst();
Исключение //нет записей в рекордсете
НаборЗаписей.Close();
Возврат;
КонецПопытки;
Пока НаборЗаписей.EOF()=0 Цикл
ИНН = НаборЗаписей.Fields("INN").Value;
//ну и т.д.
НаборЗаписей.MoveNext();
КонецЦикла;
НаборЗаписей.Close();
// Для тех, у кого в базе Акцесс создана рабочая группа (есть файлик mdw), строка подключения будет такая:
СтрокаПодключения="Driver= Microsoft Access Driver (*.mdb)};systemDB=C:wg.mdw;Dbq=C:mybase.mdb;Uid=Admin;Pwd=";
Работа с ACCESS из 1С через DAO
Код 1C v 7.x
Процедура Выполнить()
//фасВладелец = СтрЗаменить(фасВладелец," ","_");
Спр = СоздатьОбъект("Справочник.ТоварыВПрайсе");
Спр.ИспользоватьВладельца(ФасВладелец);
dbe = СоздатьОбъект("dao.DBEngine.36");
wksp = dbe.Workspaces(0);
db = 0;
Если ФС.СуществуетФайл(КаталогИБ()+"Pric_list.mdb")=0 Тогда //
db = wksp.CreateDataBase(КаталогИБ()+"Pric_list.mdb",";LANGID=0x0419;Cp=1251;Country=0"); //
db.Execute("Create table [" + Строка(фасВладелец) + "]
|(Rec_ind integer,
|Код text,
|Артикул text,
|Цена integer,
|Товар text,
|Единица text,
|Val text);"
);
db.Execute("Create index Rec_ind on ["+Строка(фасВладелец)+"] (Rec_ind);");
Иначе
db= wksp.OpenDataBase(КаталогИБ()+"Pric_list.mdb");
Попытка
rs = db.OpenRecordset(Строка(фасВладелец));
Исключение
Сообщить("Создается новая таблица");
КонецПопытки;
Если ПустоеЗначение(rs)= 1 Тогда
db.Execute("Create table [" + Строка(фасВладелец) + "]
|(Rec_ind integer,
|Код text,
|Артикул text,
|Цена integer,
|Товар text,
|Единица text,
|Val text);"
);
db.Execute("Create index Rec_ind on ["+Строка(фасВладелец)+"] (Rec_ind);");
КонецЕсли;
db.Execute("Delete * From ["+Строка(фасВладелец)+"];");
КонецЕсли;
rs = db.OpenRecordset(Строка(фасВладелец));
Y = 1;
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() = 1 Цикл
лсЕдиницы = "";
Если Спр.асТовар.апТип=Перечисление.ТипТовара.Услуга Тогда
лсЕдиницы = "";
ИначеЕсли Спр.асТовар.апТип=Перечисление.ТипТовара.Весовой Тогда
лсЕдиницы = "г";
ИначеЕсли Спр.асТовар.апТип=Перечисление.ТипТовара.Штучный Тогда
лсЕдиницы = "шт.";
КонецЕсли;
Если Спр.ЭтоГруппа() = 0 Тогда
rs.AddNew();
rs.Rec_ind = Y;
rs.Код= Спр.асТовар.ПолныйКод();
rs.Артикул = Спр.асТовар.сАртикул;
rs.Цена = Спр.чЦена;
rs.Товар=Спр.асТовар.сПолнНаименование;
rs.Единица = лсЕдиницы;
rs.Val = Спр.асВалюта.Код;
rs.Update();
Y=Y+1;
КонецЕсли;
КонецЦикла;
db.Close();
Сообщить("Выгрузка завершена");
КонецПроцедуры
Код 1C v 7.x
Процедура ACCESS()
dbe=CreateObject("DAO.DBEngine.36");
wksp=dbe.Workspaces(0);
db=0;
// в ковычках имя фаила с расширением MDB
Если ФС.СуществуетФайл(КаталогПользователя()+"sr.mdb")=0 Тогда
// создание файла базы данных с русским порядком сортировки
db=wksp.CreateDataBase(КаталогПользователя()+"mars_sr.mdb",";LANGID=0x0419;CP=1251;COUNTRY=0");
// DDL - запрос на создание таблицы
// описание языка DDL (подмножество SQL) смотрите в хелпе по MS Access
// не пытайтесь делать это с другими форматами - DDL через DAO поддерживается только для MDB
//Создадим еще таблицу
db.Execute("CREATE TABLE BANKS
|(REC_IND INTEGER,
|BANKCODE INTEGER,
|BANKNAME TEXT ,
|ModifiedFlg BIT,
|ChangeSeqFlg BIT);"
);
// индекс на нужные поля
db.Execute("CREATE INDEX REC_IND ON BANKS (REC_IND);");
Иначе
// просто открываем базу данных в разделенном режиме
db=wksp.OpenDataBase(КаталогПользователя()+"sr.mdb");
// и очищаем имеющиеся данные
db.Execute("DELETE * FROM BANKS;");
КонецЕсли;
// rs-это как раз сама таблица, куда мы будем добавлять записи
rs=db.OpenRecordset("BANKS");
// добавление записи
rs.AddNew();
// присвоение значений полям
rs.REC_IND = "1";
rs.BANKCODE = "34";
rs.BANKNAME = "Инвест";
rs.ModifiedFlg = "1";
// запомним запись
rs.Update();
// и так далее ...
db.Close(); // закрытие базы данных
КонецПроцедуры