Как менять данные и конфигурацию в 1С 8.3 и не сломать учёт
Содержание
Базу 1С 8.3 редактируют двумя путями. Данные (справочники, документы, движения регистров) меняют в режиме 1С:Предприятие под пользователем с полными правами. Структуру (реквизиты, формы, отчёты, макеты) меняют в Конфигураторе, а для типовых конфигураций правильнее делать это через расширение, не снимая базу с поддержки.
Обычная ситуация: бухгалтер находит 300 карточек номенклатуры без единицы измерения, а программист просит «просто добавить поле в договор». Первое решается за пять минут групповой обработкой. Второе, сделанное напрямую в типовой конфигурации, потом годами усложняет каждое обновление. Ниже — какой способ подходит под какую правку и в каком порядке действовать.
Перед правкой базы: копия, права и закрытый период
Любое редактирование начинайте с резервной копии. Для правки нескольких документов хватит выгрузки, для изменения конфигурации нужны две копии.
| Что делаете | Какая копия нужна | Где сделать |
|---|---|---|
| Правите данные вручную | Выгрузка базы в .dt | Конфигуратор → Администрирование → Выгрузить информационную базу |
| Меняете конфигурацию | .dt + файл конфигурации .cf | Конфигуратор → Конфигурация → Сохранить конфигурацию в файл |
| Запускаете массовую обработку | .dt, сделанная прямо перед запуском | Там же, что и выше |
| Файловая база, всё сразу | Копия папки с файлом 1Cv8.1CD | При закрытой программе у всех пользователей |
Восстанавливаться из копии придётся целиком: загрузка .dt заменяет всю базу, включая документы, которые коллеги успели ввести после выгрузки. Поэтому массовые правки делайте вне рабочего дня или договоритесь, что в базу никто не заходит.
Права пользователя
- 🔑 Для правки данных нужна роль с полными правами или группа доступа, которая разрешает изменять нужные объекты. Проверить —
Администрирование → Настройки пользователей и прав → Пользователи, вкладка прав пользователя. - 🛠 Для входа в Конфигуратор у пользователя должны быть административные права. Обычный бухгалтер с ограниченным профилем туда не попадёт — это правильно.
- 📅 Если документ лежит в закрытом периоде, программа не даст его записать. Дата запрета настраивается в
Администрирование → Настройки пользователей и прав → Даты запрета изменения. Сдвигайте её только на время правки и возвращайте обратно.
Открытие закрытого периода в учёте, по которому уже сдана отчётность, меняет цифры в сданных декларациях. Сначала решите, нужна ли уточнёнка, потом правьте.
Режим 1С:Предприятие или Конфигуратор: где что редактировать
Новички часто пытаются «поправить базу через конфигуратор», когда нужно изменить одну проводку. И наоборот, ищут в пользовательском режиме, как добавить реквизит . Разделение простое.
| Задача | Где делается | Риск |
|---|---|---|
| Исправить реквизит документа, карточку контрагента | 1С:Предприятие | Низкий: перепроведение |
| Заменить значение у сотен элементов | 1С:Предприятие, групповое изменение | Средний: задевает много объектов |
| Подправить движения документа | 1С:Предприятие, ручная корректировка | Средний: документ перестаёт пересчитываться |
| Добавить реквизит, форму, печатную форму | Конфигуратор, расширение | Средний |
| Изменить код типового модуля | Конфигуратор, снятие с поддержки | Высокий: трудные обновления |
| Проверить и починить структуру базы | Конфигуратор, тестирование и исправление | Высокий: только на копии |
Редактирование данных: справочники, документы и регистры
Справочники и документы
Карточки справочников и документы правятся прямо в форме: открыли, изменили, нажали Записать и закрыть. У проведённого документа после правки нажмите Провести и закрыть, иначе движения останутся старыми.
Если документов много, используйте групповое изменение. В списках БП 3.0, ЗУП 3.1 и УТ 11 выделите строки (Ctrl или Shift), откройте меню Ещё и найдите команду изменения выделенных. В открывшейся обработке:
- Отметьте реквизит, который меняете.
- Задайте новое значение.
- Нажмите кнопку изменения и дождитесь итогового сообщения.
- Проверьте результат на 2–3 случайных элементах.
💡 Обработка умеет менять и табличные части. Например, проставить ставку НДС во всех строках выделенных поступлений.
Объекты, которых нет в меню
Часть справочников и регистров не выведена в разделы. Включите Главное меню → Сервис → Параметры → Отображать команду «Все функции». После этого в главном меню появится пункт Все функции: там любые справочники, документы, регистры сведений и накопления, а также стандартные обработки.
Движения документа и регистры
Проводки и записи регистров меняются через сам документ. В БП 3.0 откройте документ, нажмите кнопку Дт/Кт (показать проводки и другие движения). В форме движений установите флажок «Ручная корректировка (разрешает редактирование движений документа)» и правьте строки на вкладках регистров.
После ручной корректировки документ перестаёт пересчитывать движения при перепроведении. Если потом поменяете сумму в шапке, проводки останутся прежними. Снимите флажок, когда правка больше не нужна, и перепроведите документ.
Когда исправление не привязано ни к одному документу, создайте ручную операцию: Операции → Операции, введенные вручную. В ней можно добавить не только проводки, но и записи других регистров через выбор регистров в меню операции.
Регистры сведений (курсы валют, цены, сведения о сотрудниках) редактируются как обычный список: открыли через Все функции, нашли запись по фильтру, изменили. Записи, у которых есть документ-регистратор, напрямую не правятся — только через документ.
Удаление лишнего
Удаление в 1С двухшаговое. Сначала объект помечается на удаление (Delete в списке), затем помеченные объекты удаляются обработкой Администрирование → Обслуживание → Удаление помеченных объектов. Обработка сама проверяет ссылки: если на элемент ссылаются документы, он не удалится, и вы увидите, кто мешает.
Дубли контрагентов и номенклатуры лучше не удалять вручную, а сливать: в БП 3.0 это Администрирование → Обслуживание → Корректировка данных → Поиск и удаление дублей. Обработка заменяет ссылки на дубль ссылкой на оригинал во всех документах.
Изменение конфигурации: формы, отчёты, макеты
Конфигурацию меняют в Конфигураторе: Конфигурация → Открыть конфигурацию. Типовая база стоит на поддержке поставщика, поэтому объекты по умолчанию закрыты для правки (значок замка в дереве).
Расширение — основной способ для типовых
Расширения появились в платформе 8.3.6 и сейчас покрывают почти все задачи доработки:
- ➕ новый реквизит справочника или документа;
- 🖨 своя печатная форма или изменённый макет;
- 📝 правка формы: добавить поле, скрыть лишнее, переставить группы;
- ⚙️ перехват процедур модуля (аннотации
&Перед,&После,&Вместо).
Порядок такой:
- В Конфигураторе откройте
Конфигурация → Расширения конфигурации. - Добавьте новое расширение, задайте имя и префикс (например,
мр_). - В дереве основной конфигурации щёлкните правой кнопкой по нужному объекту и выберите добавление в расширение.
- Внесите правки: добавьте реквизит, заимствуйте форму или макет.
- Нажмите
Обновить конфигурацию базы данных(F7) — только после этого изменение увидят пользователи.
💡 Готовое расширение сохраняется в файл .cfe. Его можно перенести в другую базу через Администрирование → Печатные формы, отчеты и обработки → Расширения без захода в Конфигуратор. Загрузка .cfe и применение к базе — разные шаги: после загрузки расширение нужно ещё активировать.
Правка самой конфигурации
Если без изменения типового модуля не обойтись, включите возможность изменения: Конфигурация → Поддержка → Настройка поддержки → Включить возможность изменения. Для отдельных объектов выберите режим «Объект поставщика редактируется с сохранением поддержки». Тогда при обновлении придётся сравнивать и объединять ваши правки с новым релизом.
Каждая такая правка — плюс время к каждому будущему обновлению. Поэтому полное снятие с поддержки оставьте для отраслевых конфигураций, которые уже глубоко переписаны.
Внешние отчёты, обработки и сторонние инструменты
Внешние файлы не меняют конфигурацию вообще, поэтому это самый безопасный способ добавить функцию.
| Файл | Расширение | Для чего |
|---|---|---|
| Внешний отчёт | .erf | Свой отчёт на запросе и СКД |
| Внешняя обработка | .epf | Массовые правки, загрузки, печатные формы |
| Расширение | .cfe | Изменение объектов и форм конфигурации |
Создать внешний файл можно в Конфигураторе: Файл → Новый → Внешняя обработка. Подключить в рабочей базе — Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Разовую обработку можно открыть и через Файл → Открыть, если пользователю это разрешено.
Что ещё используют разработчики и администраторы:
- 🧰 1C:Enterprise Development Tools (EDT) — среда разработки на базе Eclipse, хранит конфигурацию в файлах, удобна для работы с Git.
- 🗄 Хранилище конфигурации — когда конфигурацию правят несколько программистов: объект захватывается, правится и помещается обратно.
- 🔌 COM-соединение и OData — чтение и запись данных из внешних программ через объектную модель 1С.
- 🔍 Консоль запросов — проверить, сколько объектов попадёт под правку, до запуска обработки.
Не меняйте данные напрямую в таблицах SQL Server или PostgreSQL. Платформа хранит ссылки, итоги регистров и служебные данные по своим правилам. Ручной UPDATE в СУБД обходит проверки, ломает итоги и не попадает в журнал регистрации.
Скрипты и пакетный режим: автоматизация правок
Массовую правку по сложному правилу оформляют внешней обработкой. Пример: проставить единицу измерения «шт» всем элементам номенклатуры, где она пустая.
&НаСервере
Процедура ЗаполнитьЕдиницыНаСервере()
ЕдиницаШт = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796");
Если ЕдиницаШт.Пустая() Тогда
Сообщить("В классификаторе нет единицы с кодом 796");
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа
| И Номенклатура.ЕдиницаИзмерения = ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)";
Выборка = Запрос.Выполнить().Выбрать();
Изменено = 0;
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.ЕдиницаИзмерения = ЕдиницаШт;
Попытка
Объект.Записать();
Изменено = Изменено + 1;
Исключение
Сообщить("Не записан: " + Строка(Выборка.Ссылка) + " — " + ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
Сообщить(СтрШаблон("Изменено элементов: %1", Формат(Изменено, "ЧГ=0")));
КонецПроцедуры
&НаКлиенте
Процедура Заполнить(Команда)
ЗаполнитьЕдиницыНаСервере();
КонецПроцедуры
Пример рассчитан на БП 3.0, где у номенклатуры есть реквизит ЕдиницаИзмерения. В другой конфигурации сверьте имена реквизитов в Конфигураторе. Запрос отбирает только нужные элементы, поэтому обработка не трогает остальные карточки, а ошибки записи выводятся по каждому элементу и не обрывают цикл.
Пакетный запуск
Обслуживание можно запускать без интерфейса, например из планировщика Windows ночью:
rem Выгрузка базы в .dt
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Base\Buh" /N"Админ" /P"пароль" /DumpIB"D:\Backup\buh.dt" /Out"D:\Backup\log.txt"
rem Применение изменений конфигурации к базе
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Base\Buh" /N"Админ" /P"пароль" /UpdateDBCfg /Out"D:\Backup\log.txt"
rem Запуск внешней обработки в режиме предприятия
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /F"D:\Base\Buh" /N"Админ" /P"пароль" /Execute"D:\Tools\fix.epf"
Номер платформы в пути замените на свой. Для серверной базы вместо /F используется /S"сервер\база". Пароль в bat-файле храните только на сервере с ограниченным доступом к папке.
Повторяющиеся правки внутри базы оформляют регламентными заданиями в расширении: платформа сама запускает их по расписанию на сервере 1С.
Где чаще всего ломают базу при редактировании
Ещё одна частая беда — запуск Администрирование → Тестирование и исправление в Конфигураторе «на всякий случай» прямо на рабочей базе. Режим требует монопольного доступа, может удалять объекты с битыми ссылками и идёт долго. Запускайте его только при реальных ошибках структуры и только после выгрузки .dt.
Монопольный режим отключит всех пользователей, и несохранённые данные в их сеансах пропадут. Предупредите коллег заранее и делайте это вне рабочего времени.
Частые вопросы
Можно ли редактировать базу 1С, если в ней работают пользователи?
Как узнать, кто и что поменял в базе?
Администрирование → Обслуживание → Журнал регистрации. Отбор по пользователю, периоду и объекту покажет время и вид изменения.