Что такое 1С
Попробуем разобрать "на пальцах" что же за зверь такой "1С". "1С - что это?", в свое время это был мой любый вопрос для студентов, которых я принимал на работу на должность "программиста 1С", в основном всех это вводило в ступор. На самом деле неудивительно, не всегда получается быстро подобрать слова на простые вопросы.
Начнем с логотипа , логотип можно увидеть, как это неудивительно, не только на коробке с программой "1С:Предприятие", но и на диске с музыкой или какой-нибудь игрушкой для ПК, что наводит на мысль, что это логотип какой-то организации. Действительно, существует фирма "1С" (произносится "один эс") основана в 1991 году, специализируется на разработке и издании различных программ. Одним из направлений работы фирмы стала разработка электронной системы учета хозяйственной деятельности различных организаций. Ответ на вопрос предыдущего абзаца - название организации :).
"1С:Предприятие" - это название одной из программ, которую разработала фирма "1С", программа стала настоящим хитом на территории России и СНГ. Первая версия "1С:Предприятие" была выпущена еще в начале 90-х для OS DOS, называлась "1С:Бухгалтерия 3.0", в ней уже были заложены принципы работы, которые применяются и в современной версии 1С 8.х.
Продолжим наши изыскания, теперь разбираемся уже непосредственно с программой "1С:Предприятие". Для чего была создана эта программа. Рассмотрим такой пример, некоторые мелкие конторы до сих пор используют такую методику учета, игнорируя все прелести прогресса:
Возьмем кассу организации Х, денежные средства поступают в кассу:
- берется чистый, отпечатанный в типографии, печатный бланк прихода средств, в нем пишется сумма прихода,
- далее расписываются тот кто принес наличность и тот кто принял (сам кассир),
- бланк разрывается на 2 части по линии отреза, корешок прикалывается в папку кассира, а вторая часть отдается лицу сдавшему наличность,
- параллельно кассир ведет записи в специальной тетради, где дополнительно дублирует записи о приходе и расходе в свою кассу. В конце дня на калькуляторе кассир складывает все суммы прихода (А) и отдельно расхода (Б), разница м\у А и Б будет остаток в кассе, которую кассир физически сверяет с наличностью в кассе.
С появлением микроэлектроники, появилась возможность отказаться от записи на бумаге. Описанный выше пример с тетрадью можно реализовать электронной таблицей с 4-мя колонками "Дата", "Кто внес\забрал наличные", "Сумма прихода", "Сумма расхода". Каждая новая операция приема\расхода денег сводится к добавления строчки в электронную таблицу. Преимущества электронного носителя очевидны: а) Одновременный доступ к состоянию кассы кассира, бухгалтера, директора б) Моментальный и верный расчет остатка в кассе (при условии что данные в таблицы были внесены верно) в) Моментальное получения остатка на любой день. Целью программы "1С:Бухгалтерия" как раз было сведение всех подобных процессов к заполнения электронных таблиц, из которых потом в любой момент можно было бы очень быстро получить необходимые данные в "отчетах". Но создатели пошли дальше заполнения таблиц, они запретили прямую запись в таблицы, вместо этого перед пользователем всегда открывается специальная форма, в которой во первых в понятном и удобном виде расположены реквизиты, присутствует дополнительная информация. Также присутствуют различные проверки на правильность вносимых данных и вообще на доступ к текущей таблице. Например можно запретить записывать изменения в таблицу кассы всем кроме кассира этой кассы, но дать право читать состояние кассы бухгалтеру и директору.
Понятно что перед создателями встал вопрос о том в каких файлах хранить электронные таблицы. Для хранения, на тот момент, оптимальным оказался формат базы данных DBF, который и был задействован. Введенные пользователем данные претерпевали трансформацию в "настоящий" SQL запрос к базе данных (добавление или обновление строк таблиц(ы) БД), платформа выполняла запрос и база DBF наполнялась данными. При необходимости, например при построении отчета, программа генерировала запрос к БД (запрос SQL на основе внутреннего 'языка запросов 1С') и полученную информацию выводила на экран.
Из чего состоит 1С:Предприятие
Программу можно смело разбить на 3 логические части:
- Платформа - собственно сама программа, файл "...\bin\1cv8.exe" и прочие файлы рядом с ним в папке "..\Program Files\1cv82". Все скрытые от пользователя и программиста 1С (!) манипуляции по непосредственной записи\чтению в электронные таблицы, проводит платформа.
- Конфигурация - набор модулей с кодом (на внутреннем языке 1С) и визульных форм, которые разработал программист 1С, по описанным правилам данные "платформа" запишет\считает в те или иные таблицы БД. В версии 1С 7.7 конфигурация хранилась в отдельном файле "1cv7.md" в той же папке где и файлы БД (*.DBF), в новой версии, начиная с 1С 8.0 отдельного файла нет,он хранится внутри БД. Но файл все же можно получить, выгрузив его через "платформу" в файл *.cf.
- База данных (БД) - хранилище данных, при создании новой базы "платформа" согласно "конфигурации" создает необходимое количество пустых таблиц. Далее, при работе конечных пользователей, в таблицах начнут появляться записи, база начнет наполняется информацией. Эти таблицы 1С8, может хранить в отличие от 1С7, в собственном формате *.1CD (единый файл), а также может работать с несколькими специализированными СУБД, такими как MS SQL, DB2, PostgreSQL.
Как правило, на одном ПК установлена одна "платформа" и произвольное количество "БД", у каждой из которых, в свою очередь, может быть своя "конфигурация".
Первая конфигурация
Работа с любой конфигурацией имеет 2 режима:
- Режим "Конфигуратора", в этом режиме программист изменяет код модулей, добавляет справочники (и соответственно таблицы БД), добавляет новые печатные формы и т.д.; программист работает со структурой БД.
- Режим "Предприятия", в этом режиме с БД работают обычные пользователи, вносят новые записи в созданные программистом справочники, списки документов, делают отчеты, шаблоны для которых также предварительно создал программист 1С и т.д.; пользователи работают с данными.
Для запуска того или иного режима предусмотрены две кнопки "1С:Предприятие" и "Конфигуратор", в окне "Запуск 1С:Предприятия".
Работу 1С:Предприятие будем рассматривать на примере версии 8.Х, изучать более старые версии не рекомендуется, т.к. в новой версии 8.Х имеется существенное расширение возможностей и исправление ошибок, про 7.7 можно вообще забыть как про дурной сон, поверьте моему долгому опыту реальной работы с этой системой. Чтобы начать изучение надо установить платформу, пропустить этот шаг не получится, всем управляет платформа. После установки 1С запускаете ее по ярлыку с рабочего стола, после чего программа просит выбрать БД, необходимо добавить новую, выбрав как расположение произвольный каталог:
Жмем кнопку "Конфигуратор", на вопрос о создании базы отвечаем утвердительно. Первая база создана, формат хранения внутренний 1CD, убедитесь что в каталоге базы появился новый файл. Для того чтобы в нашей базе появилась возможность сохранять какие-нибудь данные надо воспользоваться "деревом конфигурации" и добавить в него какой-нибудь объект - "Справочник", "Документ" или "Регистр". При добавлении любого из них в базу данных будут добавлены таблицы, в которых впоследствии, во время работы, будут делаться записи.
Начнем с объекта конфигурации "Справочник". Правой к.м. жмем на узел "Справочники", далее "Добавить", добавляем новый узел к "справочникам". Зададим ему имя "Товары":
Заполнить "Имя" для теста достаточно, можно сохранить конфигурацию и запустить ее в режиме "Предприятие", в этом режиме работают пользователи. Жмем на кнопку [F5] чтобы сразу сделать два действия - сохранить конфигурацию, а затем сразу запустить ее в режиме "Предприятие". Когда конфигурация загрузится тестируем наш первый справочник "Товары", создадим в нем один элемент "Ручка шариковая"
Жмем "Записать и закрыть" чтобы зафиксировать новую запись в БД. Обратите внимание что именно после нажатия на кнопку "записать" платформой будет сформирован автоматический запрос на добавление новой записи в БД, если закрыть форму без сохранения, то в БД ничего не изменится. Тоже самое будет происходить и при программном изменении данных, объект который вы меняете будет изменен только в оперативной памяти до тех пор пока вы не вызовите его метод "Объект.Записать();"
Закроем программу в режиме "предприятие" и вернемся в "конфигуратор". Сразу "прощупаем" еще один важнейший объект конфигурации "Документ". Опуститесь на один узел ниже к "Документы" и через правую кнопку мыши, по аналогии со справочником добавьте новый объект типа "Документ" . У документа зададим "Имя" "ПоступлениеНаСклад", далее в дереве конфигурации нажмем "+" на новом узле и добавим к нему одну табличную часть "Товары":
После этого уже в табличную часть добавим новый реквизит "Товар" и сменим его тип с "Строка" на справочник "Товары":
Затем таким же образом добавим еще один реквизит "Количество", выберем тип "Число", длина 10, точность 2, у вас должно получиться примерно следующее:
В общем-то первый "документ" уже описан и можно посмотреть как платформа выдаст то что мы "наконфигурировали", запустим через "F5" нашу конфигурацию в режим "предприятия". Обратите внимание, слева появилась новая ссылка "Поступление на склад", кликнем в нее и добавим через "+" новую запись в таблицу документов, откроется автоматически сгенерированная форма:
Добавим в таблицу "Товары" одну строчку и запишем документ [Провести и закрыть].
Подведем итог:
- При создании конфигурации дерево содержит пустые корневые узлы "Справочники", "Документы"..., т.е. не содержит "объектов метаданных", а значит и таблиц для ввода данных в режиме "Предприятие". По мере добавления новых объектов в дерево и сохранения конфигурации, в БД появляются и новые таблицы (на языке 'программиста 1С' для справочника таблицу будет представлять на экране "Форма списка справочника", а для документа "Форма списка документа"). У пользователя появляется возможность открыть соответствующую таблицу (форму списка) и добавить в нее новую запись (через форму элемента).
- "Метаданные" - данные о данных, вы довольно часто будете встречать этот объект в коде 1С. Вкратце можно сказать что метаданные это сокращенное для "описание всех таблиц и их полей, а также алгоритмов по которым данные будут записываться\считываться в\из таблицы". Поэтому "Дерево конфигурации" еще можно назвать "Деревом метаданных".
- В 1С нет возможности изменить конфигурацию из режима "Предприятие", любое изменение должно происходить из "Конфигуратора". Изменения не затрагивающие структуры таблиц БД, например изменения в программном коде модуля, можно внести во время работы, т.е. нажать кнопку "Обновить конфигурацию (F7)" во время когда БД используется другими пользователями. В противном случае придется отключить всех пользователей от базы, чтобы получить "Монопольный доступ" к БД.
- Если программист не создаст в конфигураторе форму для объекта, то платформа сама создаст ее, когда это потребуется. Реквизиты, в этом случае, будут расположены в наиболее оптимальной (по мнению разработчиков платформы 1С) для пользователя компоновке.
- Формат хранения данных выбирается при создании БД. Если указать "каталог", то платформа создаст вам новую БД во внутреннем формате *.1CD (единый файл). В файле хранится и конфигурация и пользовательские данные. Формат базы можно сменить "выгрузив" БД через "конфигуратор", затем создать новую пустую базу в другом формате (например MSSQL) и "загрузить" в последнюю выгруженный ранее файл. Таким же образом можно делать и backup базы.
- Если использовать СУБД отличную от внутренней файловой (например MSSQL или PostgreSQL), то для работы необходим необязательный при файловом режиме работы "Сервер 1С:Предприятие", это один из компонентов входящих в инсталлятор 1С:Предприятие. Сервер 1С как и СУБД можно установить на одном ПК, в штатном режиме, как правило, устанавливаются каждый на отдельный сервер. В этом случае работа всей системы меняется, запись и чтение идут в 2 шага: ПК (приложение пользователя) <—> Сервер 1С <—> Сервер СУБД. При создании новой базы указывается а) Имя базы б) Сервер предприятия в) Сервер СУБД и др. параметры.
- Вы наверное обратили внимание, что пока мы не написали ни единой строчки кода и, тем не менее, уже получили вполне рабочую систему, готовую к работе конечного потребителя. В этом состоит колоссальное преимущество 1С:Предприятие перед другими системами. С помощью конфигуратора, используя всего лишь мышь, можно построить довольно сложную систему хранения и обработки данных в десятки и сотни раз быстрей чем например разработав собственное приложение на C++ или Delphi. Всю работу по созданию БД, созданию таблиц в БД, запись в БД и чтение из БД делает платформа, мы только указали какие данные хотим хранить и тип этих данных.