1. user658743_shevado 2 10.07.18 09:42 Сейчас в теме

Запрет использования элементов в проводках

Думаю, многие из нас в своей практике сталкивались с проблемой, когда необходимо запретить использовать тот или иной элемент справочника в документах.
Вы его и помечали на удаление, и переназывали, но пользователи упорно продолжали использовать его. Эта проблема постигла и меня. В долгих раздумьях родился вариант, который благополучно был внедрен на нескольких предприятиях.
По первой, я долго думал «как запретить выбирать элементы», но все идеи не подходили (либо не универсальны, либо трудозатратны).
В один момент я подумал «ок, пусть выбирают, но смогу ли контролировать элементы в документах и когда это делать?». Самый большой вред носят помеченные на удаление элементы (задвоенные) которые отобразились в движениях. Поэтому, ответ на вопрос «Когда контролировать» был дан «При проведении документа». То есть, пусть элементы выбирают, но не могут провести документы где они указаны. Хорошо, как теперь контролировать элементы, прописывать контроль при проведении всех документов?
Как сделать контроль при проведении всех документов? Самым оптимальным вариантом решением данного вопроса с моей точки зрения было создание подписки на событие «обработчика проведения» где в качестве источника были выбраны все документы.

Теперь вопрос где взять данные для проверки? Долго думая над этим вопросом решение было найдено – «в регистре», только в каком? - «Во всех регистрах накопления и бухгалтерии» .
После чего, возник вопрос, а как настраивать запреты? Ответ – через специальный регистр сведений.
Исходя из всех заданных себе вопросов и полученных на них ответов родилась такая архитектура.
1. Подписка на событие – обработчик провидения всех документов

2. Регистр сведений – служит для настройки запретов. Указывается объект, который контролируется, дата начала запрета, приход, расход или оборот по регистру.

Теперь при проведении документа программа просматривает есть ли среди регистров, по которым проводится документ. Регистр, на который установлено ограничение. Если есть, тогда анализируем элементы участвующие в движениях, есть ли они среди запрещенных, если есть тогда отказ = истина и сообщаем пользователю о запрете.
Вот как то так, да, нагрузка на систему, но порядок в базе тоже необходимо обеспечить
Прикрепленные файлы:
Ответы
Сортировка: Древо
2. pm74 126 10.07.18 09:49 Сейчас в теме
теперь новая мода статьи в форуме писать ?
3. user658743_shevado 2 10.07.18 10:05 Сейчас в теме
(2) Нет, по незнанию, не там создал сообщение / публикацию
4. pm74 126 10.07.18 10:13 Сейчас в теме
(3) понятно
есть такая проблема с дублями . для себя решили так
сделали папку Корзина и вся ненужная номенклатура закидывается в нее
регламентом с помощью вот этого костыля она
превращается в НЕ_Выбирать_НазваниеНоменклатуры
Прикрепленные файлы:
5. user658743_shevado 2 10.07.18 10:16 Сейчас в теме
(4)
ть такая проблема с дублями . для себя решили так
сделали папку Корзина и вся ненужная номенклатура закидывается в нее
регламентом с помощью вот этого костыля она
превращается в НЕ_Выбирать_НазваниеНоменклатуры


В моей практике название "Не выбирать_Номенклатура" не всегда останавливала самых "продвинутых и умных" пользователей
6. pm74 126 10.07.18 10:21 Сейчас в теме
(5)
не всегда останавливала

может быть , каждый выбирает для себя в зависимости от "туполобости" пользователей
7. user633533_encantado 2 10.07.18 11:08 Сейчас в теме
И этот код теперь будет вызываться при проведении каждого документа ? Слышали такое слово "производительность" ?

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

Если цель ограничить дубли в каком-то одном справочнике, то проще и нужнее сделать подписку, которая будет вовремя отслеживать дубли там, еще в момент создания.
8. user658743_shevado 2 10.07.18 11:15 Сейчас в теме
(7) Слышал, о чем и писал в сообщении, надеюсь дочитали.
Не всегда необходимо удалять / заменять элементы. элементы должны остаться, но не использоваться более.
Вопрос не в одном справочнике, и проверку организовать не всегда получается = нет идентификатора объекта (не у всех справочников есть ИНН или Гос. Номер).
9. user633533_encantado 2 10.07.18 11:17 Сейчас в теме
(8) "Самым оптимальным вариантом решением данного вопроса с моей точки зрения было создание подписки на событие «обработчика проведения» где в качестве источника были выбраны все документы. "

Нифига се "самое оптимальное".
10. user658743_shevado 2 10.07.18 11:23 Сейчас в теме
(9) Да с моей точки зрения оптимальное. Потому что я могу запрещать использовать объекты и наводить порядок в базе не создавая "казино" подписок и кода под каждый справочник и документ.
Если у Вас есть рабочий вариант который может решить данную проблему тогда готов рассмотреть и подискутировать с Вами.
11. pm74 126 10.07.18 11:29 Сейчас в теме
(10) как насчет всяких проверяторов по регламенту ?
14. user658743_shevado 2 10.07.18 11:43 Сейчас в теме
(11)
Можно и так, но тогда вопрос с тем что бы пользователю отправлять список документов которые он должен исправить, и тут уже на откуп пользователя, "захочет ли он исправлять", будет ли воля руководства на то что бы заставить это сделать и наложить штрафные санкции за невыполнение. И как показывает практика не всегда это срабатывает, особенно в пылу внедрения, когда постоянно вводятся остатки.
А так пользователь ставиться перед фактом "Этот элемент выбирать нельзя"!
12. user633533_encantado 2 10.07.18 11:30 Сейчас в теме
(10) Рабочий вариант есть в каждой типовой , называется "поиск и удаление дублей".
У вас проверка идет только на определенные справочники, а вы в подписку все метаданные засунули, которые их может даже(наверняка) не используют, это нифига не оптимально.
13. user658743_shevado 2 10.07.18 11:39 Сейчас в теме
(12)
нт есть в каждой типовой , называется "поиск и удаление дублей".

Как я писал выше это не совсем дубли.
Например статьи затрат, или номенклатурные группы и т. д.
С определенного момента они стали не актуальны, но должны остаться в данных, для анализа прошлых периодов. но больше не использоваться в новых (с определенной даты) документов. Вот тогда я смогу с помощью быстрой настройки запретить их использование.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Удаленный консультант-разработчик 1С
Краснодар
зарплата от 60 000 руб. до 60 000 руб.
Полный день



Ведущий программист 1С
Москва
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Руководитель проектов 1С
Москва
Полный день