Создание нового Статуса Этапов Производства 1С ERP 8.3

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

Не забывать в начале инициализировать СтатусыСПрекращением по значению стандартного статуса.
user1839716; Ali_q; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Ali_q 1 07.09.22 14:00 Сейчас в теме
А можно конкретно текст ошибки?

И еще: Статус - это перечисление или справочник?
4. user1839716 07.09.22 15:42 Сейчас в теме
Статус - это перечисление, да

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

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

по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Ошибка при вызове метода контекста (Выполнить)
по причине:
{(146, 3)}: Таблица не найдена "ЭкономияМатериалов"
<<?>>ЭкономияМатериалов КАК ТаблицаЭкономия
Показать
8. Ali_q 1 07.09.22 16:07 Сейчас в теме
(4) Может посмотреть как реализованы уже существующие механизмы? И подделать такое же, но под Ваш статус
11. user1839716 07.09.22 16:17 Сейчас в теме
(8) Ну вот я как раз так и пытаюсь делать пока - там очень много связанного кода в очень разных модулях, поэтому уже немного отчаялся...В любом случае спасибо за отклик
12. user1831019 07.09.22 16:19 Сейчас в теме
(11) Там его овермного. Туда даже опытные профессионалы лезть не всегда отваживаются!
user1839716; +1 Ответить
3. SP17081992 5 07.09.22 14:02 Сейчас в теме
(1) Для каждой существующих статусов (Начат, Завершен, К выполнению, Сформирован, Формируется) документ делает разные операции (в том числе разные движения в регистрах).
Если ваш новый статус будет иметь свою логику работы, сначала нужен писать эту логику,
если нет: нужна определить на какую логику новый статус похож.
5. user1839716 07.09.22 15:44 Сейчас в теме
(3) Логика работы нового статуса минимальна(?): при его установке нужно, чтобы документ был не доступен для изменений - всего его поля. Проблема в том, что я эту логику еще даже не реализовывал: я просто пока добавил новое значение в список статусов и попробовал провести документ с ним - вылезают ошибки по заполнению. Выше привел текст того, что вылезает. В итоге документ просто не проводится с этим статусом даже без всяких условий
6. user1831019 07.09.22 15:50 Сейчас в теме
(5) Вам бы на сердце операции делать - цены бы вам не было!
7. SP17081992 5 07.09.22 15:56 Сейчас в теме
(5) Я предлагаю следующее решение:
1. В документе добавить новый реквизит "СтатусСПрекращен" с типом нового перечислении "СтатусыСПрекращением", который имеет значения: Начат, Завершен, К выполнению, Сформирован, Формируется, Прекращен.
2. В форме документа не показать стандартный статус, а показать новый добавленный СтатусСПрекращен (можно даже синоним установить "Статус", чтобы пользователью не было сложно).
3. При изменении СтатусСПрекращен, если СтатусСПрекращен <> Прекращен програмно изменить стандартный статус документа соответственным статусом и вызвать стандартную процедуру ПриИзмененииСтатуса.
4. ПриСозданиеНаСервере Или ПриОткрытии Если СтатусСПрекращен = Прекращен тогда этотобъект.доступность = ложь.

Не забывать в начале инициализировать СтатусыСПрекращением по значению стандартного статуса.
user1839716; Ali_q; +2 Ответить
9. user1839716 07.09.22 16:15 Сейчас в теме
(7) Спасибо большое. Если все же не получится "через тернии к звездам" - я так и поступлю. Даже не подумал о таком варианте, спасибо
10. user1831019 07.09.22 16:16 Сейчас в теме
(7) 1. А потом появится третий "новый" статус (ну, например "приостановлен"), и будем делать третий реквизит с опять с дублями перечислений?
2. И кто же сможет отменить статус "Прекращен" в случае ошибки?
3. Что делать с движениями? Если этап производства прекращен - то по сути надо отменять все его движения.
4. Можно ли у документа со статусом "Завершен" установить новый статус "Прекращен"?

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

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


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

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


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

Если ты работаешь (учишься работать) с помощью костылей, это не значит что все так делают.
14. user1831019 07.09.22 16:30 Сейчас в теме
(13) Так может это и не статус вовсе, а просто булевый флаг??? Прежде чем править перечисление, влияющее на типовые движения - задумайтесь вопросом - а на что он будет влиять? И как поведут себя движения?
15. SP17081992 5 07.09.22 16:35 Сейчас в теме
(14)
1. Тебе не кажется, что если написано "Нужно добавить новый статус к уже имеющимся статусам", то это не "булевый флаг"?
2. А где ты выдел, что я предлагал править перечисление? я же предлагал добавить новое перечисление "СтатусыСПрекращением" , чтобы не влияло не на что в типовом решении.
user1839716; +1 Ответить
16. user1831019 07.09.22 16:39 Сейчас в теме
(15)
Тебе не кажется, что если написано "Нужно добавить новый статус к уже имеющимся статусам", то это не "булевый флаг"?
Тебе не кажется, что это новичок-ламер решил "добавить статус"? Он принял неверное решение по архитектуре. А задача у него - просто закрыть форму для редактирования. Для этого не надо изменять статус производственного документа, потому что он не понимает того, где и как это вылезет!
А где ты выдел, что я предлагал править перечисление? я же предлагал добавить новое перечисление "СтатусыСПрекращением" , чтобы не влияло не на что в типовом решении.
Это еще хуже. Ты еще предложи сразу новый документ рядом нарисовать.
17. user1839716 07.09.22 16:43 Сейчас в теме
(16)

Я не скрываю, что я новичок-ламер, но это отнюдь не я решил добавить новый статус - так поставили задачу, исходя из хотелок конечных пользователей, кто работает с этими документами. Им типа очень нужен еще один такой статус "Прекращен", помимо основных, чтоб удобнее было. Вот и вся история, я это не из башки взял :)
18. user1831019 07.09.22 16:48 Сейчас в теме
(17)
так поставили задачу, исходя из хотелок конечных пользователей, кто работает с этими документами.
Кто постановщик задачи? Архитектор? Консультант? Бизнес-аналитик? или МарьИванна из бухгалтерии? Кто из постановщиков задачи разбирается во внутренней кухне работы ERP?
21. user1839716 07.09.22 16:55 Сейчас в теме
(18) Ну, как тебе сказать, друг...По сути, МарьИванна с бухгалтерии. Этот запрос был передан моему начальнику, который совсем не программист 1С, а просто обслуживает систему + шарит за бухгалтерию. А от начальника, собственно, был передан мне. Тут очень фигово все со специалистами. Тот, кто реально шарил и что-то умел - ушел прямо перед моим устройством
23. user1831019 07.09.22 16:59 Сейчас в теме
(21) Ясно.
Значит ты остаешься главным по архитектуре.
И значит, ты должен получать задачи не в виде конкретного "добавить статус в системную логику", а в виде формализованного "нам необходим инструмент для за блокирования прекращенных заказов".
И уже, будешь решать, как это сделать на уровне метаданных и архитектуры.
А вот такие предложения "добавьте нам статус" - надо сразу посылать.

Это был бесплатный совет.
26. user1839716 07.09.22 17:05 Сейчас в теме
(23) Я пока тут буквально неделю работаю, к тому же на стажировке. Сидя и копаясь в коде, понимая, как там жестко все связано, все же подумал, что посылать пока не имею права, а так было бы неплохо :) Поэтому надо попытаться как-то сделать все это, но спасибо за совет, конечно
28. user1831019 07.09.22 17:07 Сейчас в теме
(26) Ты не сможешь. Такие задачи решают только сеньоры с участием архитекторов. Даже миддлам не доверяют.
Даже не пытайся.
19. SP17081992 5 07.09.22 16:49 Сейчас в теме
(16)
1. Добавление нового статуса не может быть неверное решение по архитектуре. Ты наверное тоже новичок-ламер (может быть и "опытный" новичок-ламер).
2. Мне кажется, что добавление одного реквизита в форме, и новый документ рядом нарисовать вполне другие понятия.
20. user1831019 07.09.22 16:51 Сейчас в теме
(19)
Добавление нового статуса не может быть неверное решение по архитектуре. Ты наверное тоже новичок-ламер (может быть и "опытный" новичок-ламер).

ДА ЛАДНО???
22. SP17081992 5 07.09.22 16:58 Сейчас в теме
(20) Поверь, но по моему опыту, в реальной жизни есть такие моменты, когда можно и даже нужна добавить статусы документов (даже имеющую отдельную логику).
user1839716; +1 Ответить
24. user1831019 07.09.22 17:01 Сейчас в теме
(22) Поверь моему 29-летнему опыту - изменять логику статусов нужно только тогда, когда они влияют на проведение документов, и ты готов и умеешь переписать эту логику!
А для установки "Форма.ТолькоПросмотр = Истина" - никаких статусов изменять не требуется!!! Не надо пытаться в салонах мерседесов возить баранов на курбан-байрам!
25. Ali_q 1 07.09.22 17:01 Сейчас в теме
(24) Тут походу сейчас ссора начнется

upd. Немного проглядел, она уже началась -_- Ребята, давайте жить дружно :-)
user1839716; +1 Ответить
27. user1839716 07.09.22 17:06 Сейчас в теме
(25) в спорах рождается истина) Главное, чтобы это, скорее, была культурная дискуссия...
30. user1831019 07.09.22 17:10 Сейчас в теме
(27)
в спорах рождается истина)
Заблуждение. В спорах рождается только конфликт. Истина может (или не может) родиться только в дискуссиях.
29. SP17081992 5 07.09.22 17:10 Сейчас в теме
(24)
Поверь моему 29-летнему опыту


Мне кажется вы имеете не 29-летный опыт, а 59. Наверное и программу 1с вы написали и даже компьютер вы создали.
31. user1831019 07.09.22 17:13 Сейчас в теме
(29) Мне пофиг на твой сарказм. Но в 1994 году я уже имел дело с 1С. http://old-dos.ru/files/file_1899.html
Ты, кстати, родился тогда уже?
32. Ali_q 1 07.09.22 17:18 Сейчас в теме
(31) Ребята, это не дискуссия, а ссора. Давайте не засорять тред
user1839716; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот