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

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

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

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

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

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

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

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

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

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день

Специалист техподдержки
Санкт-Петербург
зарплата от 100 руб. до 150 руб.
Полный день