Имя: Пароль:
1C
 
Блокировка проведения уже проведенного документа но разрешение записи
0 AlexSandra
 
28.03.24
09:42
Добрый день. Подскажите пожалуйста, как реализовать:
Блокировку проведения уже проведенного документа по признаку выключенного реквизита "Согласовано" но разрешить его запись.
Пока реквизит "Согласован" опять не включится.
Заранее спасибо)
1 d4rkmesa
 
28.03.24
09:45
(0) ПередЗаписью проверить РежимЗаписи, например, с условием по Согласован.
2 Ёпрст
 
28.03.24
09:45
(0) Чудесное решение, когда данные документа не совпадают с движениями документа. Всегда так делайте, так ошибки искать веселее!
3 AlexSandra
 
28.03.24
09:49
1d4rkmesa - После проведения режимЗаписи всегда "Проведен" даже если нажимаешь "Запись".
2Ёпрст - Так может отменить проведение в таком случае? я так понимаю по другому это не решается?
4 Ёпрст
 
28.03.24
09:51
(3)
Нет. Нужно где-то хранить список реквизитов, которые не участвуют в движениях документа и которые можно безболезненно редактировать. Например, Комментарий.
И в ПередЗаписью ужо проверять, что если поменялись только реквизиты из этого списка, то просто запись, иначе - оповещение, что изменились реквизиты, при которых док нужно перепроводить и тогда в сад. т.е отказ = истина.
5 YFedor
 
28.03.24
09:52
А можно по-подробнее про саму задачу, ибо не понятна вся ее гениальность.
6 AlexSandra
 
28.03.24
10:07
4Ёпрст - спасибо)
5YFedor - Это обучабельная задача из курса, нужно блокировать проведение если не стоит флаг согласовано. Но поскольку, вероятно, я сильно не до конца поняла принцип и смысл проведения, мне показалось хорошей идеей оставить возможность записи после проведения, запрещая проведение.
Но судя, по посту 4Ёпрст мне стоит внимательно почитать по проведению в целом)
7 Волшебник
 
28.03.24
10:19
(6) Не надо додумывать.

Процедура ОбработкаПроведения(Отказ, РежимПроведения)

   Если НЕ Согласовано Тогда
      Отказ = Истина;
   КонецЕсли;
   // ...
КонецПроцедуры
8 AlexSandra
 
28.03.24
10:24
Волшебник - Так мне показалось не полным решением, но похоже вы правы, спасибо)
9 d4rkmesa
 
28.03.24
10:25
(3) Разумеется, там же наверняка стоит ПриЗаписиПерепроводить в свойствах формы документа. Значит, надо это как-то обрабатывать (своя команда проведения). Возможно, в задаче в принципе имеется в виду нечто иное, например, решить это через доступность кнопок команд или обработку проверки заполнения.
10 Волшебник
 
28.03.24
10:25
(8) Если спросят больше, допишите ещё строчек. Например, неплохо бы добавить сообщение об ошибке, вынести флаг на форму, дать доступ к установке и снятию флага определённым лицам по крутой бизнес-логике.
11 mikecool
 
28.03.24
10:27
(6) сначала нужно понять - что делать, а потом уже - делать
не понятно - задавай постановщику вопросы
12 mikecool
 
28.03.24
10:29
13 Волшебник
 
28.03.24
10:30
А можно ещё замутить бизнес-процесс согласования, где подцеплять документ или сразу список документов. Результат согласования отражать в регистре. Всё это в 1С Документооборот. При открытии документа коннектиться к другой базе (брать уже открытый коннект из кэша) и отражать результат согласования. По щелчку открывать историю согласования (конечно, отчётом на СКД). Учесть при этом язык текущего пользователя, переводить комментарии на язык пользователя.
14 AlexSandra
 
28.03.24
10:45
d4rkmesa - Отправила как поняла, будем ждать результата, спасибо)
Волшебник - это уже полноценная дипломная будет)
mikecool - шикарная картинка)
15 Волшебник
 
28.03.24
10:53
(14) Мы такие дипломные каждую неделю делаем.
16 AlexSandra
 
28.03.24
11:44
(15) Мне до такого расти и расти)
Основная теорема систематики: Новые системы плодят новые проблемы.