Смена статуса документов, справочников и задач в 1С 8.3
Содержание
Менеджер просит перевести заказ в работу, а поле «Статус» в документе серое и не нажимается. Чтобы поменять статус в 1С 8.3, нужно открыть сам объект и изменить его реквизит «Статус» (или выбрать команду смены статуса в списке) — отдельной универсальной кнопки «Сменить статус» в программе нет. Где именно менять — зависит от того, статус чего вы меняете: документа, элемента справочника или задачи.
Само слово «статус» в 1С 8.3 закрывает сразу несколько разных механизмов. У документов это один реквизит-перечисление. У элементов справочников полноценного статуса обычно нет — есть пометка удаления и реквизиты состояния. У задач и бизнес-процессов состояние меняется по мере прохождения маршрута, а не вручную. Разберём каждый случай с точными действиями на экране.
Где в 1С 8.3 хранится статус и из чего он состоит
Статус — это реквизит объекта, почти всегда типа «Перечисление». Разработчик конфигурации заранее задаёт список возможных значений, поэтому выбрать можно только из готового набора, свой текст вписать нельзя.
Статус документа — не то же самое, что его состояние на платформе. У любого документа есть три технических признака, которые часто путают со статусом:
- 🟢 Проведён / не проведён — отражает ли документ движения в учёте.
- 📝 Записан — сохранён в базе, но ещё не проведён.
- 🗑️ Помечен на удаление — помечен к удалению, но физически ещё в базе.
Эти признаки меняются командами Провести, Записать, Пометить на удаление, а не выбором из списка статусов. А вот отдельный реквизит «Статус» (например, у заказа клиента или заказа поставщика) — это уже бизнес-логика конкретной конфигурации.
Доступность статусов включается функциональной опцией. Если поля «Статус» в документе вообще нет, статусы выключены в настройках раздела — их сначала нужно активировать.
Как сменить статус документа
Чаще всего статус меняют у заказов. Порядок действий в УТ 11, КА и ERP одинаковый:
- Откройте нужный документ двойным щелчком из списка.
- В шапке найдите поле
Статус(обычно вверху, рядом с номером и датой). - Выберите новое значение из выпадающего списка.
- Нажмите
Провести и закрытьилиЗаписать.
В части конфигураций статус можно поменять, не открывая документ: выделите строку в списке и используйте команду смены статуса в командной панели (меню Ещё). Если такой команды нет — значит, в вашей версии статус меняется только из карточки.
Набор статусов и их названия зависят от настройки. У заказа клиента это обычно Не согласован → К выполнению → Закрыт, у заказа поставщику — ещё и промежуточное К поступлению. Перепрыгнуть через статус конфигурация чаще всего не даёт: сначала проводятся промежуточные шаги.
Если нужный статус выбрать не удаётся, сперва посмотрите на сам документ. Проведённый заказ с незакрытыми отгрузками не переведётся в «Закрыт», пока по нему есть движения. А документ, по которому идёт обмен или который заблокирован другим пользователем, не даст сменить реквизит, пока блокировка не снята.
Отдельная история — статусы документов в ЭДО. Их вручную не выставляют: статус (создан, ожидает подписи, подписан, завершён) меняется сам по мере обмена с контрагентом. Ваши действия здесь — подписать, отклонить, аннулировать, а программа уже переведёт документ в соответствующее состояние.
Статусы элементов справочников: почему прямого статуса обычно нет
Здесь чаще всего возникает путаница. У элементов справочников — номенклатуры, контрагентов, сотрудников — отдельного реквизита «Статус», как у документов, обычно нет. То, что пользователи называют статусом, на деле одно из трёх:
- Пометка на удаление — скрывает запись и помечает её к удалению. Меняется командой
Пометить на удаление / Снять пометкув менюЕщёили правой кнопкой мыши. - Реквизит состояния — например, у договора есть срок действия и признак «Действует». Такой реквизит открывается в самой карточке и меняется как обычное поле.
- Расчётное состояние — его нельзя отредактировать напрямую.
Последний случай — про сотрудников. Состояние «работает / уволен» в ЗУП 3.1 и в Бухгалтерии не хранится в карточке сотрудника как переключатель. Оно определяется кадровыми документами: приёмом, кадровым переводом, увольнением. Чтобы «сменить статус» уволенного обратно на работающего, нужно не править карточку, а провести или отменить соответствующий кадровый документ.
Не пытайтесь задать состояние сотрудника вручную через групповую обработку. Вы рассогласуете карточку и кадровые документы, после чего поедут расчёты и отчётность по персоналу.
Для номенклатуры и контрагентов реквизита-статуса в типовых конфигурациях нет вовсе. Если нужно разделить «активные» и «архивные» позиции, обычно используют группы, папки или дополнительный реквизит.
Дополнительный реквизит и есть самый близкий аналог статуса для справочника. Его добавляют через Администрирование → Общие настройки → Дополнительные реквизиты и сведения: создают реквизит типа «Дополнительное значение» со списком вариантов (например, Активен, Архив, На проверке), привязывают к нужному справочнику. После этого в карточке появляется поле, которое можно менять как обычный статус, а в списке — отбирать по нему.
Статусы задач и бизнес-процессов
Бизнес-процесс и задача — это платформенные объекты. У бизнес-процесса состояние складывается из того, стартован он и завершён ли, и какие точки маршрута сейчас активны. Напрямую «переставить» это состояние из интерфейса нельзя — им управляет маршрут.
Чтобы продвинуть процесс, исполнитель открывает свою задачу и нажимает Выполнено (в разных конфигурациях — Выполнить, Согласовано, Не согласовано). После этого процесс сам переходит к следующей точке. Когда пройдены все точки, процесс получает признак «Завершён».
Если процесс запущен ошибочно, его не «меняют на отменённый», а прерывают: администратор или автор останавливает процесс штатной командой. Насильно менять состояние задач в базе не стоит — повиснут связанные процессы.
Ещё одна частая просьба — «переназначить задачу на другого исполнителя». Это тоже не смена статуса: исполнителя меняют в самой задаче или через механизм переадресации, если он в конфигурации есть. Состояние (выполнена или нет) при этом не трогают — оно поменяется, когда новый исполнитель отработает задачу.
В 1С:Документооборот у задач и процессов есть более богатый набор состояний (на исполнении, на доработке, отложена), но и там состояние меняется действиями исполнителя, а не прямым редактированием поля.
Как поменять статус программно
Во встроенном языке статус — обычный реквизит, поэтому меняется присваиванием и записью объекта. Общий шаблон:
Заказ = Документы.ЗаказКлиента.НайтиПоНомеру("ЗК-0000123", Дата).ПолучитьОбъект();
Заказ.Статус = Перечисления.СтатусыЗаказовКлиентов.КВыполнению;
Заказ.Записать(РежимЗаписиДокумента.Проведение);
Точное имя перечисления и его значения зависят от конфигурации. Посмотреть их можно в конфигураторе в ветке Перечисления или через синтакс-помощник — не угадывайте название, если не уверены.
Если менять статус нужно сразу по выборке документов, обходите их штатным выбором и оборачивайте каждую запись в обработку исключений — тогда одна проблемная запись не оборвёт весь проход:
Выборка = Документы.ЗаказКлиента.Выбрать();
Пока Выборка.Следующий() Цикл
Попытка
Объект = Выборка.ПолучитьОбъект();
Объект.Статус = Перечисления.СтатусыЗаказовКлиентов.Закрыт;
Объект.Записать(РежимЗаписиДокумента.Проведение);
Исключение
Сообщить("Не удалось изменить заказ " + Выборка.Номер);
КонецПопытки;
КонецЦикла;
Два момента, которые часто ломают такой код:
- Метод
Записатьзапускает обработчики проведения и проверки заполнения. Если конфигурация пересчитывает статус по состоянию отгрузок, ваше значение может тут же смениться на расчётное. - Менять статус в цикле по большой выборке лучше с обработкой ошибок на каждом объекте, иначе одна проблемная запись оборвёт весь проход.
Если задача разовая, не пишите код — используйте консоль запросов только для поиска нужных документов, а менять статус давайте через штатные команды.
Массовое изменение статусов и автоматизация
Когда нужно перевести десятки или сотни объектов, помогает обработка Групповое изменение реквизитов. Путь к ней зависит от конфигурации:
| Конфигурация | Путь к обработке |
|---|---|
| Бухгалтерия 3.0 | Администрирование → Обслуживание → Групповое изменение реквизитов |
| УТ 11, КА, ERP | НСИ и администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов |
| ЗУП 3.1 | Администрирование → Обслуживание → Групповое изменение реквизитов |
В обработке выбирают тип объекта, при необходимости задают отбор, указывают реквизит Статус и новое значение, затем запускают изменение. Отбор помогает не задеть лишнее: например, можно взять только заказы старше полугода со статусом К выполнению и перевести их в Закрыт, оставив свежие документы нетронутыми.
Ключевое ограничение: групповое изменение меняет реквизит, но не перепроводит документы. Если статус влияет на движения и отчёты, после обработки изменённые документы придётся перепровести.
Групповое изменение необратимо. Перед запуском в рабочей базе сделайте резервную копию — восстановить одним кликом исходные значения не получится.
Для регулярной смены статуса по расписанию (например, автоматически закрывать старые заказы) подойдёт регламентное задание с небольшой обработкой. Его настраивают в разделе обслуживания; запускать такие задания лучше в нерабочее время, чтобы не мешать пользователям.
История изменений: кто и когда поменял статус
Чтобы видеть, кто и когда менял статус, в базе должно быть включено версионирование объектов. Включается оно в настройках: Администрирование → Общие настройки → Версионирование объектов (в УТ — раздел НСИ и администрирование). Там отмечают, для каких типов объектов хранить версии.
После этого у документа появляется команда История изменений в меню Ещё (в некоторых конфигурациях — в подменю Перейти). Она открывает список версий: по каждой видно дату, пользователя и изменённые реквизиты, включая переходы статуса.
Чтобы понять, что именно поменялось между двумя сохранениями, выделите две версии и откройте их сравнение — программа подсветит отличия построчно. Это тот самый инструмент, которым закрывают спор «я статус не менял»: в отчёте видно и пользователя, и прежнее значение. Версии занимают место в базе, поэтому хранить их по всем объектам подряд не нужно — отметьте только те документы, по которым реально ведёте аудит.
Если версионирование включили только сегодня, историю за прошлые периоды программа не покажет — версии пишутся с момента включения. Для документов ЭДО дополнительно полезен журнал обмена: он фиксирует смену состояний при передаче контрагенту.