1C-CodeОсновы 1С → Что такое 1С:Предприятие: конфигурация и база

Что такое 1С:Предприятие: конфигурация и база

Платформа, конфигурация, информационная база — три разных вещи, которые новичок считает одной. С этого начинается всё остальное.

Глава 15 из 36 · чтение примерно 22 минут

Эта глава отвечает на вопрос, который кажется глупым, пока не попробуешь ответить: что вообще такое «1С». Без ответа на него дальше будет непонятно, где лежит ваш код, почему у соседней фирмы «та же 1С», но всё по-другому, и что значит «обновились и всё сломалось».

Если вы уже работали в конфигураторе — пролистайте до врезки «Три слова, которые путают на собеседовании».

Три разные вещи

Когда говорят «1С», имеют в виду одно из трёх. Это не придирка к словам: перепутав их, невозможно понять ни одну инструкцию.

Платформа — программа, которую вы ставите с диска или скачиваете. Она сама по себе ничего не умеет по части учёта: в ней нет ни товаров, ни накладных. Это движок — он умеет показывать формы, выполнять код, ходить в базу данных. Версии платформы выглядят как 8.3.24.1548.

Конфигурация — описание того, ЧТО вы учитываете: какие есть справочники, документы, отчёты, какой код за ними стоит. «Бухгалтерия предприятия», «Управление торговлей», «Зарплата и управление персоналом» — это конфигурации. Их пишут разработчики: фирма «1С», партнёры и вы.

Информационная база — сами данные конкретной фирмы: её контрагенты, её накладные, её остатки. У двух фирм может быть одна и та же конфигурация и совершенно разные базы.

Аналогия, которая помогает

Платформа — проигрыватель. Конфигурация — пластинка. База — то, что на ней записали именно вы.

Проигрыватель без пластинки молчит. Пластинку можно поменять на другую. А записи стереть и поставить чужие — значит потерять свою фирму.

Три слова, которые путают на собеседовании

«Обновить 1С» — три разных действия, и последствия у них разные:

Обновить платформу — поставить новый движок. Данные и конфигурация не меняются. Обычно безопасно.

Обновить конфигурацию — взять новую версию описания от фирмы «1С». Вот здесь и ломается то, что дописывали своими руками: об этом глава про поддержку.

Обновить базу — так не говорят вообще. Если сказали — переспросите, что имелось в виду. На собеседовании этот вопрос задают, чтобы проверить, отличаете ли вы три вещи от одной.

Платформа обновляется отдельно

Из того, что это три разные вещи, следует и три разных обновления. Платформу ставят на компьютер как обычную программу — и рядом могут стоять сразу несколько версий. Конфигурацию обновляют внутри базы. Данные не обновляют вовсе.

У конфигурации есть минимальная версия платформы: открыть её на более старой нельзя. Отсюда обычный порядок обновления типовой — сначала платформа, потом конфигурация, а не наоборот.

И есть режим совместимости — настройка конфигурации, которая говорит платформе: «веди себя как версия 8.3.14». Её ставят, чтобы новая платформа не поломала поведение, на которое опирается старый код. Цена — новые возможности платформы при этом недоступны, и «почему у меня нет этого метода, он же есть в документации» чаще всего именно про неё.

Чем человек открывает базу

Одну и ту же базу можно открыть тремя разными программами, и это не про удобство — от выбора зависит, какой код вообще может работать.

Три клиента

КлиентЧто этоЧем важен разработчику
Тонкийосновной способ работы сегодняумеет только управляемые формы; вся работа с данными — на сервере
Толстыйстарый режим, остался для администрированияможет обращаться к данным напрямую с клиента — и поэтому прощает ошибки, которые в тонком падают
Вебта же конфигурация в браузеренет доступа к файлам и COM; всё, что «работает у меня», может не работать здесь

Проверять надо в тонком клиенте

Код, написанный и проверенный в толстом клиенте, регулярно падает в тонком: там нельзя обратиться к справочнику прямо с клиента, а в толстом — можно.

Человек при этом работает в тонком. Получается «у меня работает, у него нет» — и причина не в правах и не в данных, а в том, каким клиентом открывали.

Правило: пишем так, будто клиент только тонкий. Это ровно то, ради чего существуют директивы компиляции.

Управляемые формы и обычные

Ещё одно деление, о которое спотыкаются при чтении старых примеров в интернете.

Обычные формы — старый механизм. Форма и данные живут вместе, код обращается к базе откуда угодно, деления на клиент и сервер в нём нет.

Управляемые формы — то, что делают сейчас. Форма разорвана на клиентскую и серверную половину, и это разделение и есть главная тема половины этого учебника.

Практический вывод: увидели в примере ОткрытьФорму без директив и обращение к справочнику прямо рядом с Предупреждение — это код для обычных форм, и переносить его нельзя.

Где живут данные

Информационная база бывает двух видов, и разработчику это важно знать с первого дня.

Файловая — вся база лежит в одном файле 1Cv8.1CD в папке. Удобно для одного человека и маленькой фирмы. Работает медленно на объёме, плохо переносит много одновременных пользователей и не умеет нормальных блокировок.

Клиент-серверная — данные лежат в настоящей СУБД (PostgreSQL, MS SQL), а между ней и людьми стоит сервер 1С:Предприятия. Так работают все, у кого больше нескольких пользователей.

Почему это важно вам: один и тот же код ведёт себя по-разному. Запрос, который на файловой базе отрабатывает мгновенно, на клиент-серверной может встать в очередь из-за блокировки. Про это — отдельная глава.

Чем отличаются на практике

ФайловаяКлиент-серверная
Где данныефайл 1Cv8.1CDСУБД: PostgreSQL или MS SQL
Сколько людейдо несколькихдесятки и сотни
Блокировкигрубые, на таблицу целикомуправляемые, на строки
Фоновые заданиятолько пока кто-то работаетсами по расписанию
Где встречаетсямалый бизнес, разработкавсе остальные

Что такое кластер, сеанс и соединение

Три слова из клиент-серверного варианта, которые встречаются в любом разговоре про боевую базу.

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

Сеанс — один вошедший человек (или одно фоновое задание). Сеанс занимает лицензию и виден в списке активных пользователей.

Соединение — техническая связь с базой. У одного сеанса их может быть несколько, а могут не быть вовсе: человек открыл базу и ушёл обедать — сеанс есть, соединения нет.

Разница нужна на практике в одном месте: перед обновлением базу просят освободить, и завершать надо сеансы. Закрытые соединения ничего не решают — человек вернётся из обеда и продолжит работать.

Файлы, которые вы будете видеть

РасширениеЧто внутриКогда нужен
.cfконфигурация целиком, без данныхперенести разработку в другую базу
.cfuобновление конфигурации от поставщикаобновить типовую
.dtВСЯ база: конфигурация и данныеперенести базу, сделать копию
.epf / .erfвнешняя обработка / внешний отчётразовая работа без правки конфигурации
.cfeрасширение конфигурациидоработка, не снимающая с поддержки

Выгрузка конфигурации — не резервная копия

Ошибка, которая стоит дорого и делается один раз в жизни. .cf — это только конфигурация. Данных в нём нет: ни одного документа, ни одного остатка.

Копия базы — это .dt (или, на боевой клиент-серверной, копия средствами самой СУБД: так быстрее и надёжнее).

Проверочный вопрос перед любым опасным действием: «если сейчас всё пропадёт, из чего я восстановлю документы?» Если ответ «из cf» — резервной копии нет.

Кто такой «разработчик 1С»

Человек, который меняет конфигурацию. Не платформу — её пишет фирма «1С». Не данные — их вводят бухгалтеры и кладовщики.

Меняет двумя способами, и разница принципиальна:

Мышью — добавить справочник, положить поле на форму, нарисовать структуру отчёта. Это тоже разработка, и её больше, чем кажется со стороны.

Кодом — описать поведение: что случится при проведении документа, как пересчитать сумму при смене количества, откуда взять цену. Код пишется на встроенном языке — том самом, которому посвящены первые главы.

Обычная работа — смесь обоих. Задача вида «добавьте в накладную колонку „Скидка“ и сделайте, чтобы сумма пересчитывалась» — это десять минут мышью и двадцать строк кода.

На чём спотыкаются

Ищут свой код в платформе. Его там нет. Всё, что написали вы, лежит в конфигурации — и уедет вместе с ней при переносе на другой компьютер.

Считают, что «типовая» значит «неизменяемая». Типовую конфигурацию можно менять, и половина работы разработчика — именно это. Вопрос в том, как менять, чтобы обновление потом не стёрло правки.

Путают «базу» и «конфигурацию» в разговоре. «Скинь мне базу» и «скинь мне конфигурацию» — просьбы о разном: первая содержит данные фирмы, вторая нет. Отдать не то — иногда нарушение закона.

Что значит «режим предприятия» и «конфигуратор»

Одну и ту же базу открывают в двух режимах, и это два разных окна с разными возможностями.

1С:Предприятие — режим работы. В нём сидят бухгалтеры: вводят документы, печатают отчёты. Ничего изменить в устройстве программы отсюда нельзя.

Конфигуратор — режим разработки. Здесь видно дерево всех объектов конфигурации, здесь пишется код и правятся формы. Про него — следующая глава.

Разработчик живёт в обоих: пишет в конфигураторе, проверяет в предприятии. Переключение между ними — движение, которое повторяется по сто раз в день.

Упражнение 1. Три слова

Функция ЧтоЭто(Название) получает строку и должна вернуть, к чему это относится: "платформа", "конфигурация" или "база". Правила: "8.3.24" — платформа (начинается с «8.»); "Бухгалтерия предприятия" и "Управление торговлей" — конфигурация; всё остальное — база.

Решается в тренажёре: код запускается и проверяется сразу.

Упражнение 2. Из чего восстановится база

Функция ЭтоКопияБазы(Расширение) получает расширение файла строкой — "cf", "dt", "cfe", "epf". Вернуть Истина только для того файла, из которого восстановятся и конфигурация, и данные.

Решается в тренажёре: код запускается и проверяется сразу.

Короткий свод

Платформа — движок, её ставят. Конфигурация — описание учёта, её пишут. База — данные фирмы, их вводят. Разработчик 1С меняет конфигурацию: мышью и кодом. Работает в конфигураторе, проверяет в предприятии. База бывает файловой и клиент-серверной, и один и тот же код ведёт себя в них по-разному.

Как закрепить

Читать про код и писать код — разные умения. В тренажёре к этой главе идут упражнения: вы пишете решение, оно запускается на настоящем интерпретаторе 1С и проверяется сразу, без установки платформы.

Открыть эту главу в тренажёре

Запросы в работе: как писать, что ломается, чем ускорять
Конфигуратор и дерево метаданных