Запрет редактирования после ввода на основании

1. user1218998 11.10.19 13:27 Сейчас в теме
Уважаемые Коллеги!
Возникло ТЗ на запрет редактирования табличной части, если при вводе на основании в документе есть позиции из заказа покупателя из резерва. Немного предыстории. Наши доблестные продажники, дабы ускорить процесс удаляют "из резерва" и документ "заказ покупателя" из табличной части после ввода на основании и ставят списание "со склада" в итоге резерв зависает на долгие годы. дабы они не могли редактировать,поступило ТЗ на запрет.

Пока что не понимаю в какой части документа этот запрет ставить: Из формы или из модуля и как это можно реализовать максимально коротким кодом. Обычные формы КА 1.1
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
19. Ditron 186 15.10.19 11:57 Сейчас в теме +0.09 $m
использовать обработчики ТЧ - "ПриВыводеСтроки" или "ПриполученииДанных" внутри и ставь ТолькоПросмотр для нужных колонок и строк, только лучше "ПриполученииДанных" а перед этим получить запросом данные с заказа о резерве...
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. RustamZz 11.10.19 13:44 Сейчас в теме
(1) Нужно в Форме убрать Доступность на колонках "из резерва" и "заказ покупателя".
Но они смогут удалить строку и заново добавить. Можно убрать менять состав строк, но что делать если не все по заказу отгружается.
8. aezdakov 6 11.10.19 13:49 Сейчас в теме
(7)перед записью получить текущее состояние документа в бд, запомнить их, а при записи эти данные сравнить с записываемыми и если есть разница по тем данным, которые пользователь не имеет право вносить изменения вызвать исключение и показать пользователю кукишь)
10. RustamZz 11.10.19 14:57 Сейчас в теме
(8)А кто мешает пользователю до записи внести изменения? В БД пусто - сверка прошла, а товары остались в резерве. Программист виноват. Все, конечно, решается правильной мотивацией менеджера если он зарезервировал и продал не из резерва бить по самому больному месту. По кошельку.
11. aezdakov 6 11.10.19 15:26 Сейчас в теме
(10)
А кто мешает пользователю до записи внести изменения?

шта? а как, простите, пользователь сможет внести изменения в данные, хранящиеся в бд до записи? Что это за пользователи такие волшебные?
14. RustamZz 14.10.19 09:20 Сейчас в теме
(11) Попробую донести свою мысль еще раз. До записи нового документа в БД ничего нет. При записи с чем сравнивать прикажете?
15. aezdakov 6 14.10.19 09:44 Сейчас в теме
(14)а вам при записи нового документа надо с чем-то сравнивать? а зачем? на дубли проверять? Если это новый, то зачем его сравнивать, если он по логике ничего не нарушает или нарушает? Я вашего ТЗ вообще не знаю, для меня вы тут вообще сторонний человек в этом топике и я не уверен завязан ли ваш вопрос с вопросом тс или вы свою линию гнете. Посмотрите как реализовано в УТ 11 проведение документов, там в регистре накопления весит функционал до и после записи с помещением данных во временную таблицу, а потом в менеджере записи документа осуществляется контроль на основании этих данных. Вы можете и дубли проверять, только грамотно настройте и будет вам счастье. Нет, тогда тут было много предложений по поводу подписки на события, права и так далее. Вариантов масса.
9. Denis_CFO 48 11.10.19 13:59 Сейчас в теме
(1)
ПриОткрытии()
Если ЗначениеЗаполнено(ДокументОснование) Тогда
ТолькоПросмотр = Истина;
КонецЕсли;
20. user5300 1036 15.10.19 16:14 Сейчас в теме
(1) В модуле объекта
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    Если ЗначениеЗаполнено(ДокументОснование) Тогда
        Отказ = истина;
        Сообщить("Запрещено!");
        возврат;
    КонецЕсли;
КонецПроцедуры // ПередЗаписью

Показать
2. Arxxximed 35 11.10.19 13:36 Сейчас в теме
В форме модуля, обработчик приСозданиинаСервере
Проверяйте там заполненость реквизита ДокументОснование . убирайте , если нужно, Доступность у таблицы формы
3. aezdakov 6 11.10.19 13:37 Сейчас в теме
А что им помещает тогда просто распровести документ? Раз у них есть право его редактировать и перепроводить, значит есть право и распровести.
Как по мне можно это сделать на форме в событие при создании на сервере, если идти согласно тз, то проверять это условие и вставлять тз значение толькопросмотр в истину.
А если есть вероятность, что они могут тогда в таком случае распровести документ, тогда я бы посмотрел в сторону ролей доступа и прописал бы условие туда, запретив им изменение документа, если отработает условие. Пусть вводят изменения и ловят ошибку при попытки провести документ, злятся, что потратили время зазря, но хотя бы запомнят, что надо думать, когда что-то подобное собираешься делать. В таком случае надо учесть, что пользователи могут не понять почему не так и могут начать звонить, если хочется это пресечь, то тогда дополнить ошибку описанием, допустим, в процедуре передзаписью.
12. _MavR_ 11.10.19 23:56 Сейчас в теме
(3)
А что им помещает тогда просто распровести документ? Раз у них есть право его редактировать и перепроводить, значит есть право и распровести.

Помешать может та же подписка на событие и роль, не позволяющие распроводить проведенный документ
4. Arxxximed 35 11.10.19 13:37 Сейчас в теме
Только наверное учесть, что нужно оставить полным правам возможность редактировать
5. YanTsys 12 11.10.19 13:39 Сейчас в теме
А почему не старой доброй подпиской на событие при записи?
6. Arxxximed 35 11.10.19 13:43 Сейчас в теме
(5) А вообще и там и там :)... На форме что бы пользователь не тратил время на ввод и сразу видел , что ему что то нельзя делать... И при записи документа, для дополнительной проверки
13. Maxx2008 12.10.19 20:50 Сейчас в теме
Если документ новый, то первоначальную таблицу нужно где-то запомнить при вводе на основании и перед записью сверять с табличной частью документа. Если не новый, то можно перед записью сравнить табличную часть объекта и ссылки. Либо действительно блокировать поля по условию при открытии.
16. AlexandrSmith 69 14.10.19 09:53 Сейчас в теме
Бывало, что ставили запрет при проведении, делая переменные по каждому полю на изменение, с полным описанием для пользователя, что конкретно не нравится программе.
17. scream 33 14.10.19 23:13 Сейчас в теме
я бы сделал подписку на событие записи документа реализация
если строка из реализации совпадает со строкой заказа
и в заказе "резерв"
а в реализации "со склада"
то разрешить только запись
а проведение реализации запрещать
с комментарием (используйте резерв мерзавцы !!!)
18. scream 33 14.10.19 23:16 Сейчас в теме
(0) а еще для упрощения
также после записи можно проверить зависшие резервы
и писать в Регистр Сведений
кто создал реализацию и какой резерв остался

сообщение пользователю с требованием исправить

А вечером письмо боссу с жалобой и требование наказать... если резерв не снят

это конечно побольше писать
но результат будет "сочный"
19. Ditron 186 15.10.19 11:57 Сейчас в теме +0.09 $m
использовать обработчики ТЧ - "ПриВыводеСтроки" или "ПриполученииДанных" внутри и ставь ТолькоПросмотр для нужных колонок и строк, только лучше "ПриполученииДанных" а перед этим получить запросом данные с заказа о резерве...
21. user1947188 12.05.23 17:06 Сейчас в теме
Добрый день! подскажите, пожалуйста, как правильно прописать запрет на редактирование некоторых полей в документе, который создается на основании другого?
Оставьте свое сообщение

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