Добрый день. Буду очень благодарен за помощь, так как я в 1С новичок - пытаюсь максимально во все сам вникать, но возникла непростая ситуация. Нужно добавить новый статус к уже имеющимся статусам этапам производства (Начат, Завершен, К выполнению, Сформирован, Формируется) - новый статус "Прекращен". Само по себе новое значение я к этому списку уже добавил, разумеется. Проблема возникла на этапе проверки - перепровести готовый документ с новым статусом не получается, вылезают ошибки в связи с кучей проверок в очень разных модулях. Просто, может быть, кто-то реализовывал уже подобную задачу и хотя бы подскажет, где именно искать, что стоит проверять...
---
Я предлагаю следующее решение:
1. В документе добавить новый реквизит "СтатусСПрекращен" с типом нового перечислении "СтатусыСПрекращением", который имеет значения: Начат, Завершен, К выполнению, Сформирован, Формируется, Прекращен.
2. В форме документа не показать стандартный статус, а показать новый добавленный СтатусСПрекращен (можно даже синоним установить "Статус", чтобы пользователью не было сложно).
3. При изменении СтатусСПрекращен, если СтатусСПрекращен <> Прекращен програмно изменить стандартный статус документа соответственным статусом и вызвать стандартную процедуру ПриИзмененииСтатуса.
4. ПриСозданиеНаСервере Или ПриОткрытии Если СтатусСПрекращен = Прекращен тогда этотобъект.доступность = ложь.

Не забывать в начале инициализировать СтатусыСПрекращением по значению стандартного статуса.
---
А можно конкретно текст ошибки?

И еще: Статус - это перечисление или справочник?
---
Статус - это перечисление, да

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

```1c
    Ошибка при вызове метода контекста (Записать)
    {ОбщийМодуль.Модуль1Клиент.Модуль(1358)}:Форма.Записать(ПараметрыЗаписи);
    {ОбщийМодуль.Модуль1Клиент.Модуль(1279)}:ЗаписатьОбъектИЗакрыть(Форма, ПараметрыЗаписи);
    {Документ.ЭтапПроизводства.Форма.ФормаДокумента.Форма(4260)}:Модуль1Клиент.ПровестиИЗакрыть(ЭтаФорма, Истина);

    по причине:
    Ошибка при выполнении обработчика - 'ПередЗаписью'
    по причине:
    Ошибка при вызове метода контекста (Выполнить)
    по причине:
    {(146, 3)}: Таблица не найдена "ЭкономияМатериалов"
    <<?>>ЭкономияМатериалов КАК ТаблицаЭкономия
```
---
Может посмотреть как реализованы уже существующие механизмы? И подделать такое же, но под Ваш статус
---
Ну вот я как раз так и пытаюсь делать пока - там очень много связанного кода в очень разных модулях, поэтому уже немного отчаялся...В любом случае спасибо за отклик
---
Там его овермного. Туда даже опытные профессионалы лезть не всегда отваживаются!
---
Для каждой существующих статусов (Начат, Завершен, К выполнению, Сформирован, Формируется) документ делает разные операции (в том числе разные движения в регистрах).
Если ваш новый статус будет иметь свою логику работы, сначала нужен писать эту логику,
если нет: нужна определить на какую логику новый статус похож.
---
Логика работы нового статуса минимальна(?): при его установке нужно, чтобы документ был не доступен для изменений - всего его поля. Проблема в том, что я эту логику еще даже не реализовывал: я просто пока добавил новое значение в список статусов и попробовал провести документ с ним - вылезают ошибки по заполнению. Выше привел текст того, что вылезает. В итоге документ просто не проводится с этим статусом даже без всяких условий
---
Вам бы на сердце операции делать - цены бы вам не было!
---
Я предлагаю следующее решение:
1. В документе добавить новый реквизит "СтатусСПрекращен" с типом нового перечислении "СтатусыСПрекращением", который имеет значения: Начат, Завершен, К выполнению, Сформирован, Формируется, Прекращен.
2. В форме документа не показать стандартный статус, а показать новый добавленный СтатусСПрекращен (можно даже синоним установить "Статус", чтобы пользователью не было сложно).
3. При изменении СтатусСПрекращен, если СтатусСПрекращен <> Прекращен програмно изменить стандартный статус документа соответственным статусом и вызвать стандартную процедуру ПриИзмененииСтатуса.
4. ПриСозданиеНаСервере Или ПриОткрытии Если СтатусСПрекращен = Прекращен тогда этотобъект.доступность = ложь.

Не забывать в начале инициализировать СтатусыСПрекращением по значению стандартного статуса.
---
Спасибо большое. Если все же не получится "через тернии к звездам" - я так и поступлю. Даже не подумал о таком варианте, спасибо
---
1. А потом появится третий "новый" статус (ну, например "приостановлен"), и будем делать третий реквизит с опять с дублями перечислений?
2. И кто же сможет отменить статус "Прекращен" в случае ошибки?
3. Что делать с движениями? Если этап производства прекращен - то по сути надо отменять все его движения.
4. Можно ли у документа со статусом "Завершен" установить новый статус "Прекращен"?

Я балдею с ваших костылей.
---
1. Если потом появится третий , четвертый "новый" статус, вместо добавлении нового реквизита, просто добавляем значения в новой перечислении "СтатусыСПрекращением" (ты че, не задумался?)
2. может быть статус можно будет изменять из другого места, например каком либо обработчике, или можно добавить роль и в условии проверить и по ролю. Решение удовлетворяет задачи:

при его установке нужно, чтобы документ был не доступен для изменений

3. В задаче ведь написано, что отдельной логики новый статус не имеет, значит с движениями ничего не нужна сделать

Логика работы нового статуса минимальна(?): при его установке нужно, чтобы документ был не доступен для изменений - всего его поля.

4. Можно, потому что в задаче об этом нечего не было написано.

Если ты работаешь (учишься работать) с помощью костылей, это не значит что все так делают.
---
Так может это и не статус вовсе, а просто булевый флаг??? Прежде чем править перечисление, влияющее на типовые движения - задумайтесь вопросом - а на что он будет влиять? И как поведут себя движения?
---
1. Тебе не кажется, что если написано "Нужно добавить новый статус к уже имеющимся статусам", то это не "булевый флаг"?
2. А где ты выдел, что я предлагал править перечисление? я же предлагал добавить новое перечисление "СтатусыСПрекращением" , чтобы не влияло не на что в типовом решении.
---
Тебе не кажется, что если написано "Нужно добавить новый статус к уже имеющимся статусам", то это не "булевый флаг"? Тебе не кажется, что это новичок-ламер решил "добавить статус"? Он принял неверное решение по архитектуре. А задача у него - просто закрыть форму для редактирования. Для этого не надо изменять статус производственного документа, потому что он не понимает того, где и как это вылезет!
А где ты выдел, что я предлагал править перечисление? я же предлагал добавить новое перечисление "СтатусыСПрекращением" , чтобы не влияло не на что в типовом решении. Это еще хуже. Ты еще предложи сразу новый документ рядом нарисовать.
---
Я не скрываю, что я новичок-ламер, но это отнюдь не я решил добавить новый статус - так поставили задачу, исходя из хотелок конечных пользователей, кто работает с этими документами. Им типа очень нужен еще один такой статус "Прекращен", помимо основных, чтоб удобнее было. Вот и вся история, я это не из башки взял :)
---
так поставили задачу, исходя из хотелок конечных пользователей, кто работает с этими документами. Кто постановщик задачи? Архитектор? Консультант? Бизнес-аналитик? или МарьИванна из бухгалтерии? Кто из постановщиков задачи разбирается во внутренней кухне работы ERP?
---
Ну, как тебе сказать, друг...По сути, МарьИванна с бухгалтерии. Этот запрос был передан моему начальнику, который совсем не программист 1С, а просто обслуживает систему + шарит за бухгалтерию. А от начальника, собственно, был передан мне. Тут очень фигово все со специалистами. Тот, кто реально шарил и что-то умел - ушел прямо перед моим устройством
---
Ясно.
Значит ты остаешься главным по архитектуре.
И значит, ты должен получать задачи не в виде конкретного "добавить статус в системную логику", а в виде формализованного "нам необходим инструмент для за блокирования прекращенных заказов".
И уже, будешь решать, как это сделать на уровне метаданных и архитектуры.
А вот такие предложения "добавьте нам статус" - надо сразу посылать.

Это был бесплатный совет.
---
Я пока тут буквально неделю работаю, к тому же на стажировке. Сидя и копаясь в коде, понимая, как там жестко все связано, все же подумал, что посылать пока не имею права, а так было бы неплохо :) Поэтому надо попытаться как-то сделать все это, но спасибо за совет, конечно
---
Ты не сможешь. Такие задачи решают только сеньоры с участием архитекторов. Даже миддлам не доверяют.
Даже не пытайся.
---
1. Добавление нового статуса не может быть неверное решение по архитектуре. Ты наверное тоже новичок-ламер (может быть и "опытный" новичок-ламер).
2. Мне кажется, что добавление одного реквизита в форме, и новый документ рядом нарисовать вполне другие понятия.
---
Добавление нового статуса не может быть неверное решение по архитектуре. Ты наверное тоже новичок-ламер (может быть и "опытный" новичок-ламер).
ДА ЛАДНО???
---
Поверь, но по моему опыту, в реальной жизни есть такие моменты, когда можно и даже нужна добавить статусы документов (даже имеющую отдельную логику).
---
Поверь моему 29-летнему опыту - изменять логику статусов нужно только тогда, когда они влияют на проведение документов, и ты готов и умеешь переписать эту логику!
А для установки "Форма.ТолькоПросмотр = Истина" - никаких статусов изменять не требуется!!! Не надо пытаться в салонах мерседесов возить баранов на курбан-байрам!
---
Тут походу сейчас ссора начнется

upd. Немного проглядел, она уже началась -_- Ребята, давайте жить дружно :-)
---
в спорах рождается истина) Главное, чтобы это, скорее, была культурная дискуссия...
---
в спорах рождается истина) Заблуждение. В спорах рождается только конфликт. Истина может (или не может) родиться только в дискуссиях.
---
Поверь моему 29-летнему опыту

Мне кажется вы имеете не 29-летный опыт, а 59. Наверное и программу 1с вы написали и даже компьютер вы создали.
---
Мне пофиг на твой сарказм. Но в 1994 году я уже имел дело с 1С. http://old-dos.ru/files/file_1899.html
Ты, кстати, родился тогда уже?
---
Ребята, это не дискуссия, а ссора. Давайте не засорять тред