Смена статуса документов, справочников и задач в 1С 8.3

· 9 мин

Содержание

Менеджер просит перевести заказ в работу, а поле «Статус» в документе серое и не нажимается. Чтобы поменять статус в 1С 8.3, нужно открыть сам объект и изменить его реквизит «Статус» (или выбрать команду смены статуса в списке) — отдельной универсальной кнопки «Сменить статус» в программе нет. Где именно менять — зависит от того, статус чего вы меняете: документа, элемента справочника или задачи.

Само слово «статус» в 1С 8.3 закрывает сразу несколько разных механизмов. У документов это один реквизит-перечисление. У элементов справочников полноценного статуса обычно нет — есть пометка удаления и реквизиты состояния. У задач и бизнес-процессов состояние меняется по мере прохождения маршрута, а не вручную. Разберём каждый случай с точными действиями на экране.

Где в 1С 8.3 хранится статус и из чего он состоит

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

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

  • 🟢 Проведён / не проведён — отражает ли документ движения в учёте.
  • 📝 Записан — сохранён в базе, но ещё не проведён.
  • 🗑️ Помечен на удаление — помечен к удалению, но физически ещё в базе.

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

Доступность статусов включается функциональной опцией. Если поля «Статус» в документе вообще нет, статусы выключены в настройках раздела — их сначала нужно активировать.

Как сменить статус документа

Чаще всего статус меняют у заказов. Порядок действий в УТ 11, КА и ERP одинаковый:

  1. Откройте нужный документ двойным щелчком из списка.
  2. В шапке найдите поле Статус (обычно вверху, рядом с номером и датой).
  3. Выберите новое значение из выпадающего списка.
  4. Нажмите Провести и закрыть или Записать.

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

Жизненный цикл заказа клиента

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

Если нужный статус выбрать не удаётся, сперва посмотрите на сам документ. Проведённый заказ с незакрытыми отгрузками не переведётся в «Закрыт», пока по нему есть движения. А документ, по которому идёт обмен или который заблокирован другим пользователем, не даст сменить реквизит, пока блокировка не снята.

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

Статусы элементов справочников: почему прямого статуса обычно нет

Здесь чаще всего возникает путаница. У элементов справочников — номенклатуры, контрагентов, сотрудников — отдельного реквизита «Статус», как у документов, обычно нет. То, что пользователи называют статусом, на деле одно из трёх:

  • Пометка на удаление — скрывает запись и помечает её к удалению. Меняется командой Пометить на удаление / Снять пометку в меню Ещё или правой кнопкой мыши.
  • Реквизит состояния — например, у договора есть срок действия и признак «Действует». Такой реквизит открывается в самой карточке и меняется как обычное поле.
  • Расчётное состояние — его нельзя отредактировать напрямую.

Последний случай — про сотрудников. Состояние «работает / уволен» в ЗУП 3.1 и в Бухгалтерии не хранится в карточке сотрудника как переключатель. Оно определяется кадровыми документами: приёмом, кадровым переводом, увольнением. Чтобы «сменить статус» уволенного обратно на работающего, нужно не править карточку, а провести или отменить соответствующий кадровый документ.

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

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

Дополнительный реквизит и есть самый близкий аналог статуса для справочника. Его добавляют через Администрирование → Общие настройки → Дополнительные реквизиты и сведения: создают реквизит типа «Дополнительное значение» со списком вариантов (например, Активен, Архив, На проверке), привязывают к нужному справочнику. После этого в карточке появляется поле, которое можно менять как обычный статус, а в списке — отбирать по нему.

Статусы задач и бизнес-процессов

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

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

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

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

В 1С:Документооборот у задач и процессов есть более богатый набор состояний (на исполнении, на доработке, отложена), но и там состояние меняется действиями исполнителя, а не прямым редактированием поля.

Как поменять статус программно

Во встроенном языке статус — обычный реквизит, поэтому меняется присваиванием и записью объекта. Общий шаблон:

Заказ = Документы.ЗаказКлиента.НайтиПоНомеру("ЗК-0000123", Дата).ПолучитьОбъект();
Заказ.Статус = Перечисления.СтатусыЗаказовКлиентов.КВыполнению;
Заказ.Записать(РежимЗаписиДокумента.Проведение);

Точное имя перечисления и его значения зависят от конфигурации. Посмотреть их можно в конфигураторе в ветке Перечисления или через синтакс-помощник — не угадывайте название, если не уверены.

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

Выборка = Документы.ЗаказКлиента.Выбрать();
Пока Выборка.Следующий() Цикл
    Попытка
        Объект = Выборка.ПолучитьОбъект();
        Объект.Статус = Перечисления.СтатусыЗаказовКлиентов.Закрыт;
        Объект.Записать(РежимЗаписиДокумента.Проведение);
    Исключение
        Сообщить("Не удалось изменить заказ " + Выборка.Номер);
    КонецПопытки;
КонецЦикла;

Два момента, которые часто ломают такой код:

  • Метод Записать запускает обработчики проведения и проверки заполнения. Если конфигурация пересчитывает статус по состоянию отгрузок, ваше значение может тут же смениться на расчётное.
  • Менять статус в цикле по большой выборке лучше с обработкой ошибок на каждом объекте, иначе одна проблемная запись оборвёт весь проход.

Если задача разовая, не пишите код — используйте консоль запросов только для поиска нужных документов, а менять статус давайте через штатные команды.

Массовое изменение статусов и автоматизация

Когда нужно перевести десятки или сотни объектов, помогает обработка Групповое изменение реквизитов. Путь к ней зависит от конфигурации:

КонфигурацияПуть к обработке
Бухгалтерия 3.0Администрирование → Обслуживание → Групповое изменение реквизитов
УТ 11, КА, ERPНСИ и администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов
ЗУП 3.1Администрирование → Обслуживание → Групповое изменение реквизитов

В обработке выбирают тип объекта, при необходимости задают отбор, указывают реквизит Статус и новое значение, затем запускают изменение. Отбор помогает не задеть лишнее: например, можно взять только заказы старше полугода со статусом К выполнению и перевести их в Закрыт, оставив свежие документы нетронутыми.

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

Групповое изменение необратимо. Перед запуском в рабочей базе сделайте резервную копию — восстановить одним кликом исходные значения не получится.

Для регулярной смены статуса по расписанию (например, автоматически закрывать старые заказы) подойдёт регламентное задание с небольшой обработкой. Его настраивают в разделе обслуживания; запускать такие задания лучше в нерабочее время, чтобы не мешать пользователям.

История изменений: кто и когда поменял статус

Чтобы видеть, кто и когда менял статус, в базе должно быть включено версионирование объектов. Включается оно в настройках: Администрирование → Общие настройки → Версионирование объектов (в УТ — раздел НСИ и администрирование). Там отмечают, для каких типов объектов хранить версии.

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

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

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

Типичные ошибки при смене статуса

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

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

Есть ли в 1С 8.3 одна кнопка «Сменить статус» для всех объектов?
Нет. Статус документа меняют в его реквизите, состояние элемента справочника — через пометку удаления или реквизиты карточки, а состояние задачи — выполнением. Единого механизма нет.
Можно ли вернуть заказ из статуса «Закрыт» обратно в работу?
Обычно да, но сначала нужно снять то, что закрыло заказ: заново открыть строки, отменить причину закрытия. Пока по заказу числятся закрытые отгрузки, система не даст вернуть статус.
Почему у контрагента и номенклатуры нет статуса, как у документа?
В типовых конфигурациях у этих справочников реквизита-статуса нет. Чтобы отделить активные записи от архивных, используют группы, пометку на удаление или дополнительный реквизит.
Чем статус отличается от пометки на удаление?
Статус — это бизнес-реквизит (стадия заказа). Пометка на удаление — техническое состояние: запись скрыта и помечена к физическому удалению. Это разные вещи, менять их нужно разными командами.
Сохраняется ли, кто именно поменял статус?
Только если включено версионирование объектов. Тогда в истории изменений видно пользователя, дату и прежнее значение статуса. Без версионирования эти данные не фиксируются.