Выполнение технических операций в 1С: работа с реквизитами и табличными частями
Технические операции в 1С по изменению номеров, дат и удалению строк табличных частей выполняются программными средствами или штатными обработками. Выбор метода зависит от объема правок.
Оглавление
Изменение номеров документов
Номер документа является служебным реквизитом. Для его изменения программно необходимо получить объект документа, присвоить новое значение свойству Номер и выполнить запись методом Записать(). При этом важно учитывать настройки стратегии нумерации и возможность дублирования. Для массовой перенумерации (например, кассовых документов) применяются специализированные обработки или механизмы установки начального номера. Если поле номера некорректируемое в интерфейсе, изменение возможно только через объектную модель или специальные административные инструменты.
В типовых конфигурациях используются штатные средства:
- Групповое изменение реквизитов: Обработка доступна по пути «Администрирование — Обслуживание — Корректировка данных» и позволяет массово изменить номера у выделенных документов.
- Перенумерация документов: Функция применяется для исправления нарушений последовательности нумерации.
Корректировка дат
Дата изменяется через свойство Дата объекта документа. После присвоения нового значения документ следует перезаписать и перепровести для актуализации движений регистров. При изменении даты «задним числом» необходимо контролировать порядок проведения документов и состояние итогов регистров бухгалтерии.
При массовой корректировке дат обращайте внимание на «Даты запрета изменения», которые могут блокировать редактирование старых периодов.
Штатная обработка «Групповое изменение реквизитов» позволяет установить новую дату и время сразу для пакета проведенных документов без ручного открытия каждого из них. На форме изменения выделенных элементов достаточно установить флажок напротив поля «Дата» и указать новое значение.
Удаление строк табличной части
Работа с табличными частями требует соблюдения правил индексации и использования специфических методов объектной модели.
- Полная очистка: Для удаления всех строк используется метод
Очистить()у соответствующей табличной части объекта (например,ДокументОбъект.Товары.Очистить()). - Удаление по условию: Метод
Удалить()принимает в качестве параметра конкретную строку табличной части или её индекс. - В управляемых формах: Удаление текущей строки выполняется через метод
Удалить(), которому передаетсяТекущаяСтрокаэлемента формы.
При программном удалении по условию собирайте индексы или строки для удаления в отдельную коллекцию перед основным циклом удаления, либо используйте обратный цикл (от количества к нулю).
Частые ошибки
- Удаление в прямом цикле: Категорически запрещено удалять строки в прямом цикле
Для Каждого...Из, так как это сбивает индексацию коллекции и приводит к пропуску элементов или ошибкам выполнения. - Отсутствие перепроведения: Изменение даты «задним числом» без последующего перепроведения документа оставляет неактуальными движения регистров и нарушает итоги учета.
- Игнорирование дат запрета: Попытка штатными средствами изменить реквизиты в закрытом периоде завершится ошибкой, если не скорректировать «Даты запрета изменения» для пользователя.
FAQ
Как изменить номер документа, если поле является некорректируемым в интерфейсе?
Если поле номера недоступно для редактирования на форме документа, изменить его можно только программно через объектную модель (присвоив значение свойству Номер с последующей записью) или с помощью специальных административных инструментов и обработок.
Что делать, если нарушена последовательность нумерации документов? В типовых конфигурациях предусмотрена функция «Перенумерация документов», которая автоматически исправляет нарушения последовательности. Также можно использовать обработку «Групповое изменение реквизитов» для ручной корректировки выделенного пакета документов.