1.
user658743_shevado
210.07.18 09:42 Сейчас в теме
Думаю, многие из нас в своей практике сталкивались с проблемой, когда необходимо запретить использовать тот или иной элемент справочника в документах.
Вы его и помечали на удаление, и переназывали, но пользователи упорно продолжали использовать его. Эта проблема постигла и меня. В долгих раздумьях родился вариант, который благополучно был внедрен на нескольких предприятиях.
По первой, я долго думал «как запретить выбирать элементы», но все идеи не подходили (либо не универсальны, либо трудозатратны).
В один момент я подумал «ок, пусть выбирают, но смогу ли контролировать элементы в документах и когда это делать?». Самый большой вред носят помеченные на удаление элементы (задвоенные) которые отобразились в движениях. Поэтому, ответ на вопрос «Когда контролировать» был дан «При проведении документа». То есть, пусть элементы выбирают, но не могут провести документы где они указаны. Хорошо, как теперь контролировать элементы, прописывать контроль при проведении всех документов?
Как сделать контроль при проведении всех документов? Самым оптимальным вариантом решением данного вопроса с моей точки зрения было создание подписки на событие «обработчика проведения» где в качестве источника были выбраны все документы.
Теперь вопрос где взять данные для проверки? Долго думая над этим вопросом решение было найдено – «в регистре», только в каком? - «Во всех регистрах накопления и бухгалтерии» .
После чего, возник вопрос, а как настраивать запреты? Ответ – через специальный регистр сведений.
Исходя из всех заданных себе вопросов и полученных на них ответов родилась такая архитектура.
1. Подписка на событие – обработчик провидения всех документов
2. Регистр сведений – служит для настройки запретов. Указывается объект, который контролируется, дата начала запрета, приход, расход или оборот по регистру.
Теперь при проведении документа программа просматривает есть ли среди регистров, по которым проводится документ. Регистр, на который установлено ограничение. Если есть, тогда анализируем элементы участвующие в движениях, есть ли они среди запрещенных, если есть тогда отказ = истина и сообщаем пользователю о запрете.
Вот как то так, да, нагрузка на систему, но порядок в базе тоже необходимо обеспечить
(3) понятно
есть такая проблема с дублями . для себя решили так
сделали папку Корзина и вся ненужная номенклатура закидывается в нее
регламентом с помощью вот этого костыля она
превращается в НЕ_Выбирать_НазваниеНоменклатуры
ть такая проблема с дублями . для себя решили так
сделали папку Корзина и вся ненужная номенклатура закидывается в нее
регламентом с помощью вот этого костыля она
превращается в НЕ_Выбирать_НазваниеНоменклатуры
В моей практике название "Не выбирать_Номенклатура" не всегда останавливала самых "продвинутых и умных" пользователей
7.
user633533_encantado
1110.07.18 11:08 Сейчас в теме
И этот код теперь будет вызываться при проведении каждого документа ? Слышали такое слово "производительность" ?
Просто нужно вовремя мониторить дубли объектов и использовать обработку "поиск и замена значений".
Если цель ограничить дубли в каком-то одном справочнике, то проще и нужнее сделать подписку, которая будет вовремя отслеживать дубли там, еще в момент создания.
8.
user658743_shevado
210.07.18 11:15 Сейчас в теме
(7) Слышал, о чем и писал в сообщении, надеюсь дочитали.
Не всегда необходимо удалять / заменять элементы. элементы должны остаться, но не использоваться более.
Вопрос не в одном справочнике, и проверку организовать не всегда получается = нет идентификатора объекта (не у всех справочников есть ИНН или Гос. Номер).
9.
user633533_encantado
1110.07.18 11:17 Сейчас в теме
(8) "Самым оптимальным вариантом решением данного вопроса с моей точки зрения было создание подписки на событие «обработчика проведения» где в качестве источника были выбраны все документы. "
10.
user658743_shevado
210.07.18 11:23 Сейчас в теме
(9) Да с моей точки зрения оптимальное. Потому что я могу запрещать использовать объекты и наводить порядок в базе не создавая "казино" подписок и кода под каждый справочник и документ.
Если у Вас есть рабочий вариант который может решить данную проблему тогда готов рассмотреть и подискутировать с Вами.
14.
user658743_shevado
210.07.18 11:43 Сейчас в теме
(11)
Можно и так, но тогда вопрос с тем что бы пользователю отправлять список документов которые он должен исправить, и тут уже на откуп пользователя, "захочет ли он исправлять", будет ли воля руководства на то что бы заставить это сделать и наложить штрафные санкции за невыполнение. И как показывает практика не всегда это срабатывает, особенно в пылу внедрения, когда постоянно вводятся остатки.
А так пользователь ставиться перед фактом "Этот элемент выбирать нельзя"!
12.
user633533_encantado
1110.07.18 11:30 Сейчас в теме
(10) Рабочий вариант есть в каждой типовой , называется "поиск и удаление дублей".
У вас проверка идет только на определенные справочники, а вы в подписку все метаданные засунули, которые их может даже(наверняка) не используют, это нифига не оптимально.
нт есть в каждой типовой , называется "поиск и удаление дублей".
Как я писал выше это не совсем дубли.
Например статьи затрат, или номенклатурные группы и т. д.
С определенного момента они стали не актуальны, но должны остаться в данных, для анализа прошлых периодов. но больше не использоваться в новых (с определенной даты) документов. Вот тогда я смогу с помощью быстрой настройки запретить их использование.