Сохранение данных и изменений в 1С 8.3: от документа до конфигурации

· 9 мин

Содержание

В режиме «1С:Предприятие» изменения в документе или справочнике сохраняются кнопкой Записать (горячая клавиша Ctrl+S) или Записать и закрыть; документ дополнительно проводят кнопкой Провести (Ctrl+Enter). В Конфигураторе правки сначала сохраняют командой Конфигурация → Сохранить конфигурацию (Ctrl+S), а чтобы они попали в рабочую базу — Конфигурация → Обновить конфигурацию базы данных (F7).

Это два разных слоя. Пользователь сохраняет свои данные — введённые документы, настройки отчётов, записи справочников. Разработчик сохраняет изменения структуры — формы, реквизиты, процедуры. Ниже разберём оба, плюс то, как устроены транзакции, почему запись иногда «не проходит» и как не потерять работу из-за сбоя.

Как записать документ, справочник и настройки в режиме предприятия

Любая форма объекта в «1С:Предприятии» хранит изменения только после явной записи. Пока вы не нажали кнопку, данные живут в памяти формы и пропадут при закрытии без сохранения.

Основные команды на командной панели формы:

  • 💾 Записать — сохраняет объект в базу, но оставляет форму открытой. Для документа это запись без проведения: движений по регистрам не будет.
  • ✅ Провести — записывает документ и формирует движения (проводки, записи в регистрах). Форма остаётся открытой.
  • 🚪 Записать и закрыть — сохраняет и закрывает окно. Для документа эта кнопка по умолчанию выполняет проведение.
  • ↩️ Провести и закрыть — то же, что предыдущая, но с явным проведением (для документов, где кнопки разделены).

Горячие клавиши ускоряют работу: Ctrl+S — записать, Ctrl+Enter — записать и закрыть (для документа — с проведением), Esc — закрыть форму. Если вы меняли данные и нажали Esc, платформа спросит, сохранять ли изменения.

В формах списков (журнал документов, список справочника) отдельной кнопки «Сохранить» нет. Новый элемент создаётся и записывается в своей форме, а изменение реквизита прямо в строке списка сохраняется, как только вы уходите со строки.

Отдельная история — настройки отчётов и списков. Когда вы поменяли отбор, группировку или колонки в отчёте на СКД, их надо сохранить явно: меню Ещё → Сохранить настройки (или Ещё → Прочее → Изменить вариант). Иначе при следующем открытии вернётся стандартный вид. Персональные настройки формы (ширина колонок, видимость) платформа запоминает автоматически — отдельно сохранять не нужно.

Ещё одна частая задача — сохранить изменения во внешней обработке или отчёте. Файл .epf (обработка) или .erf (отчёт) правят в Конфигураторе и сохраняют командой Файл → Сохранить (Ctrl+S), указав путь к файлу. Если открыли обработку из встроенного редактора в режиме предприятия (через расширение или режим разработчика), там тоже действует Ctrl+S, но меняется именно файл на диске, а не конфигурация базы.

Транзакции: почему запись либо проходит целиком, либо не проходит вовсе

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

Отсюда практическое следствие: частичного сохранения в 1С не бывает. Нельзя «записать только шапку» документа, а табличную часть оставить на потом в рамках одной записи. Либо весь объект корректен и пишется, либо платформа возвращает ошибку и ничего не меняет.

Это же объясняет типичную жалобу «нажал записать, а изменений нет». Чаще всего запись прервалась: выскочило сообщение об ошибке, пользователь его закрыл не читая, форма осталась открытой со старыми данными. Данные не потерялись — они просто не были записаны, потому что транзакция не завершилась.

Пример. Вы проводите реализацию из десяти строк, и по девятой строке не хватает остатка на складе, а в настройках стоит контроль остатков. Платформа не запишет «девять строк из десяти» — она откатит всю запись и сообщит о нехватке. Поправили остаток или строку — проводите заново, и документ пишется целиком.

Проведение больших документов (например, закрытие месяца или объёмная реализация) может занять время. Не закрывайте программу принудительно, пока идёт запись, — прервёте транзакцию и получите тот же эффект «ничего не сохранилось».

Сохранение изменений конфигурации в Конфигураторе

Конфигуратор работает с двумя версиями конфигурации: той, что вы правите («основная конфигурация»), и той, по которой реально работает база («конфигурация базы данных»). Это ключевой момент, из-за которого новички теряют правки.

Порядок такой:

  1. Внесли изменения в формы, модули, реквизиты.
  2. Конфигурация → Сохранить конфигурацию (Ctrl+S) — правки сохранились в основной конфигурации. База при этом ещё работает по-старому.
  3. Конфигурация → Обновить конфигурацию базы данных (F7) — платформа переносит изменения в рабочую базу. Только теперь пользователи увидят новую форму или реквизит.

На шаге 3 платформа показывает окно реорганизации с перечнем изменений и спрашивает подтверждение. Если менялась структура данных (добавлен реквизит, изменён тип), в список попадут пункты реорганизации таблиц.

Когда нужен монопольный (исключительный) доступ к базе:

  • при изменении структуры данных (новые реквизиты, регистры, смена типов) — платформа попросит всех выйти из базы;
  • при загрузке конфигурации из файла .cf и загрузке базы из .dt;
  • при тестировании и исправлении информационной базы.

Правка только кода (процедур, функций) без изменения структуры обычно применяется без монопольного режима — платформа умеет обновлять такие изменения «на лету» в клиент-серверном варианте.

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

Если над конфигурацией работают несколько разработчиков, правки сохраняют не прямо в базу, а в хранилище конфигурации: Конфигурация → Хранилище конфигурации → Поместить в хранилище. Так изменения фиксируются версиями, видны коллегам и не теряются при параллельной работе.

Если нужно отдать правки, не затрагивая базу прямо сейчас, используйте Конфигурация → Сохранить конфигурацию в файл — получите файл .cf, который применяют в другой базе через Загрузить конфигурацию из файла с последующим F7.

Чем отличаются способы сохранения

Сведём в таблицу, какое действие что именно сохраняет и какие последствия имеет.

ДействиеЧто сохраняетДвижения/проводкиМонопольный доступ
Записать (Ctrl+S) в документесам документнетне нужен
Провести / Записать и закрытьдокумент + движениядане нужен
Сохранить настройки отчётавариант отчёта—не нужен
Сохранить конфигурацию (Ctrl+S) в Конфигуратореосновную конфигурацию—не нужен
Обновить конфигурацию БД (F7)переносит правки в рабочую базу—нужен при изменении структуры
Выгрузить информационную базу (.dt)полную копию базы—нужен

Логика простая: в режиме предприятия вы сохраняете данные, в Конфигураторе — структуру и код, а .dt-выгрузка делает снимок всего сразу.

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

Что делать, если изменения не сохраняются

Разберём частые ситуации по симптому. Сначала прочитайте текст сообщения платформы — в 90% случаев там уже написана причина.

Диагностика: выберите симптом

Бывает и наоборот — кнопка Записать неактивна (серая). Причины три: в форме нет ни одного изменения (писать нечего), объект открыт только на просмотр, или у роли нет права на запись. Если форма открыта на просмотр, обычно есть команда перейти к редактированию; право на запись добавляет администратор.

Отдельно про блокировки. Если объект «завис» заблокированным, хотя коллега уже вышел, причиной бывает аварийно закрытый сеанс. Администратор может посмотреть активные сеансы и при необходимости завершить зависший. Завершать чужой сеанс можно, только убедившись, что человек действительно не работает — иначе оборвёте его несохранённую работу.

Ещё одна причина «не сохраняется» в клиент-серверной базе — закончилось место на диске сервера или переполнился журнал регистрации. Это уже вопрос к администратору, пользователь тут бессилен.

Как не потерять изменения: резервные копии и регулярная запись

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

Резервную копию файловой базы в типовых конфигурациях (например, «1С:Бухгалтерия 8» ред. 3.0) настраивают здесь: Администрирование → Обслуживание → Резервное копирование и восстановление. Там же задаётся расписание — например, автоматически при завершении работы. Из Конфигуратора копию всей базы делают командой Администрирование → Выгрузить информационную базу (файл .dt).

Для клиент-серверной базы (СУБД PostgreSQL или MS SQL Server) копии делают средствами самой СУБД по расписанию — это задача администратора, а не пользователя.

Восстановление — обратная операция. Файловую копию разворачивают там же, в Администрирование → Обслуживание, либо загружают .dt из Конфигуратора командой Администрирование → Загрузить информационную базу. Загрузка .dt полностью затирает текущую базу, поэтому перед восстановлением убедитесь, что берёте нужную копию, и что в базе никто не работает. Храните копии на отдельном диске или в облаке: копия рядом с базой не спасёт при отказе диска.

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

Простой чек-лист перед рискованными действиями — обновлением конфигурации, массовой обработкой, перепроведением:

Перед обновлением или массовой операцией
Выполнено: 0 / 5

Хорошая привычка: нажимать Ctrl+S после каждой заметной порции работы в большом документе, не дожидаясь конца. Запись без проведения проходит быстро и ничем не мешает.

Частые вопросы

В чём разница между «Записать» и «Провести»?
Записать сохраняет документ, но не формирует движения по регистрам — проводок не будет. Провести сохраняет документ и сразу создаёт движения. Непроведённый документ хранится в базе, но на учёт не влияет.
Я сохранил конфигурацию в Конфигураторе, а пользователи изменений не видят. Почему?
Сохранение (Ctrl+S) обновляет только основную конфигурацию. Чтобы правки попали в рабочую базу, нужно Обновить конфигурацию базы данных (F7) и подтвердить реорганизацию.
Можно ли отменить сохранённые изменения?
Записанный документ можно пометить на удаление или вернуть прежние значения вручную — «отмены» одним действием нет. Правки конфигурации до обновления базы можно откатить командой Конфигурация → Вернуться к конфигурации базы данных.
Есть ли в 1С автосохранение документов?
Нет. Открытая форма хранит изменения в памяти до явной записи. Защита от потерь — регулярная запись (Ctrl+S) и резервные копии базы, а не автосейв.
Почему при записи большого документа всё «подвисает»?
Идёт транзакция: платформа пишет документ и все движения как единую операцию. Прерывать её нельзя — дождитесь завершения, иначе запись откатится целиком.