Дубли контрагентов. Жесткий запрет на запись дублей [Расширение]

Опубликовал Яковлевич Никита (mrXoxot) в раздел Обработки - Обработка справочников

В типовой конфигурации БП3 можно записывать одинаковых контрагентов, достаточно только нажать "ОК". Исправим эту несправедливость. Запретим бухгалтерам плодить дубли контрагентов. Для этого используем возможность платформы 8.3.6 - Расширения.

Добрый день, коллеги.

В данной публикации содержится расширение для жесткого запрета на запись дублей контрагентов для Бухгалтерии предприятия 3.0.

Суть расширения:

В типовой:

При записи элемента справочника контрагента с одинаковым ИНН и КПП выдается вопрос:

 ВопросДубля

Но бухгалтера - люди занятые и им некогда читать, что им говорит программа - им работать надо. Поэтому в большинстве случаев по умолчанию нажимается кнопка "ОК" и продолжается работа.

В расширении:

При записи элемента справочника контрагента с одинаковым ИНН и КПП выдается предупреждение:

 ПредупреждениеДубля

И элемент не записывается. Надеюсь, это остановит бухгалтера и он сможет осознано принять решение.

Для тех случаев, когда все равно необходимо записать дубль, добавлена команда в "Еще" - "Записать дубль".

Эта команда записывает контрагента без проверки на дубли.

Как подключить расширение:

Для того, чтобы подключить расширение можно воспользоваться этой инструкцией.

Итог:

Расширения - очень крутая вещь, позволяюшая быстро и просто модифицировать типовую конфигурацию с возможностью дальнейшего обновления.

Дополнение:

Данное расширение Вы можете забрать с github'а - https://github.com/Oxotka/NotADouble.git.

Хочешь еще больше возможностей для БП3?

Прокачай её!

Скачать файлы

Наименование Файл Версия Размер
Расширение - Жесткий запрет на запись дублей контрагентов
.cfe 38,79Kb
13.09.16
112
.cfe 1.1 38,79Kb 112 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Айрат (Craig) 177 15.05.15 21:12 Сейчас в теме
"+" за оперативное освоение новых технологий (возможность 8.3.6.)
inanity; mrXoxot; PowerBoy; +3 Ответить
2. Анянов Михаил (insurgut) 156 15.05.15 21:47 Сейчас в теме
3. logdog (logdog) 15.05.15 22:02 Сейчас в теме
Для БП 3.0.40.24 ошибка при старте.

Ошибка подключения расширения: ЖесткийЗапретНаЗаписьДублейКонтрагентов (1.0) - Ошибка свойства РежимСовместимостиИнтерфейса у объекта

Режим совместимости - Не использовать
4. Evgeny Goryachev (gorevg) 7 15.05.15 22:24 Сейчас в теме
Интересно, а как расширения сказываются на скорости работы в программе. Ведь, как я понимаю, платформа применяет расширение "на лету". Был у кого-нибудь опыт?
5. Яковлевич Никита (mrXoxot) 1298 15.05.15 22:25 Сейчас в теме
(3) logdog,
Да, необходимо снять совместимость с 8.3.5 - это можно сделать в конфигураторе или дождаться когда разработчики БП3 снимут это в типовой конфигурации.
6. logdog (logdog) 15.05.15 22:31 Сейчас в теме
(5) mrXoxot, Я написал, что снято. Прикладываю картинку. http://joxi.ru/zANp9ypS0ZRpm9

Может есть какое-то отличие в коде для БП КОРП и БП?
7. Сергей Ожерельев (Поручик) 3471 15.05.15 22:39 Сейчас в теме
Ух ты, супер. Расширения - это то, что я так долго ждал.
cleaner_it; +1 Ответить
8. Яковлевич Никита (mrXoxot) 1298 15.05.15 22:56 Сейчас в теме
(6) logdog,
Проверил на ПРОФ 3.0.40.24 . Работает, подключается.
Проверял на платформе 8.3.6.1977. Какая у Вас?
9. logdog (logdog) 15.05.15 23:47 Сейчас в теме
(8) mrXoxot, и на 8.3.6.1977 и на 8.3.6.1999 выдает ошибку =( http://joxi.ru/12M79B7TQ1M8rJ
10. Яковлевич Никита (mrXoxot) 1298 16.05.15 00:14 Сейчас в теме
Проблема в режиме совместимости интерфейса. Должно стоять - Такси. Разрешить 8.2, как в типовой. У Вас стоит просто Такси.(9) logdog,
11. logdog (logdog) 16.05.15 00:25 Сейчас в теме
(10) mrXoxot, Да, проблема была в этом. Спасибо.
12. Денис Акимкин (planar74) 16.05.15 13:25 Сейчас в теме
И как они с РИБ работают? Надо каждому узлу отправлять или достаточно в ЦБ загрузить?
13. Павел Алексеенко (qwinter) 470 16.05.15 14:05 Сейчас в теме
Пока в расширениях нельзя будет добавлять свои справочники, документы, регистры надобности в них нет. Разве что поудобнее будет внешние отчеты цеплять.
Anchoret; AlchiPL; babys; galich; VasMart; 1cmax; Yashazz; +7 Ответить 2
14. Денис Акимкин (planar74) 16.05.15 16:35 Сейчас в теме
(13) qwinter,
"Дополнительных отчетов и обработок" больше не будет?
15. Алексей Ермилов (Alex_E) 1457 16.05.15 16:52 Сейчас в теме
(14) planar74, Почему? Одно другому никак не мешает. Вот возможность в расширении изменить поведение формы хоть того же документа - это проще в расширении сделать. Можно добавить раздел в командный интерфейс и включить туда какой то свой набор данных (из имеющихся в типовой, если её не менять), плюс отчеты и пр., в общем много чего уже можно, но хотелось бы больше :-).
16. Денис Акимкин (planar74) 16.05.15 17:06 Сейчас в теме
(15) Alex_E,
Раздел в командный интерфейс добавить в конфигурации или расширении? Насколько я понял, в расширение нельзя добавлять новые объекты конфигурации. В ряде случаев, конечно, может помочь, но не сильно. Я крайне редко сталкивался с ситуацией, когда форму или обработку проведения приходилось менять без (например) добавления реквизита в конфигурацию.
17. Алексей Ермилов (Alex_E) 1457 16.05.15 17:11 Сейчас в теме
(16) planar74, Подсистему в расширение ввести можно, сейчас пишу настройку, добавил - работает... Вообще проверить, что можно что нельзя достаточно просто - в дереве расширения правой кнопкой на то, что хочется добавить, если активно - то можно.
Про обработку проведения - без подписки на событие не получится, а то, что без изменения данных - давно использую дополнительные реквизиты, в зависимости от которых меняется проведение в подписке.
18. Павел Алексеенко (qwinter) 470 16.05.15 23:09 Сейчас в теме
(15) Alex_E, одно другое заменяет. На текущий момент именно так. Только внешние печатные формы остаются. Все остальное гораздо удобнее и правильнее делать в расширениях.
19. Алексей Ермилов (Alex_E) 1457 16.05.15 23:15 Сейчас в теме
(18) qwinter,
одно другое заменяет. На текущий момент именно так.
- на текущий момент расширения с типовыми пока ничего не заменяют - чтобы их использовать надо снять конфу с поддержки (совместимости, чтоб их), так что пока типовые с внешими обработками заполнения и пр. остаются актуальными, а жаль - расширения - то чего давно хотелось...
С другой стороны, что в 8.3.6.* понравилось - это режим объединения, то, что можно текст модулей поменять как захочешь в момент объединения - уже много значит, для настроенных...
20. Денис Акимкин (planar74) 17.05.15 07:26 Сейчас в теме
(17) Alex_E,
И как вы эти дополнительные реквизиты в запросах используете? Через левое соединение с проверкой по коду вида характеристики?
21. Алексей Ермилов (Alex_E) 1457 17.05.15 09:06 Сейчас в теме
(20) planar74, По разному, в зависимости от ситуации, иногда через http://infostart.ru/public/288722/, иногда в запросе, "по коду" никогда не использую - доп.реквизиты или сведения создаю программно в любом случае. В запросе через левое соединение, нужный доп.реквизит определяется, чаще всего, по заголовку свойства плана видов характеристик, т.е. пользователю "полета для творчества" оставляю минимум. Пока проблем с этим не было ...
22. Павел Алексеенко (qwinter) 470 17.05.15 10:11 Сейчас в теме
(19) Alex_E, не думаю что типовые будут долго еще на 8.3.5
23. Алексей Ермилов (Alex_E) 1457 17.05.15 10:59 Сейчас в теме
24. Михаил Зотов (ZOMI) 391 18.05.15 18:57 Сейчас в теме
Дополнительный вопрос это "жесткий запрет" ?
25. Яков Коган (Yashazz) 1957 18.05.15 19:09 Сейчас в теме
Как показывает опыт, нововведения такого рода энное время лютейшим образом косячат. Я б поостерёгся кидаться ставить это сразу в рабочие механизмы.
veyron21; VasMart; wolfsoft; planar74; +4 Ответить
26. Яковлевич Никита (mrXoxot) 1298 18.05.15 21:40 Сейчас в теме
(24) ZOMI,
Вопрос был в типовом решении.
В расширении никаких вопросов нет. Если есть дубль, то выдается предупреждение. То есть обычным способом записать нельзя.
Но если очень хочется, то можно записать через "Еще"
27. Яковлевич Никита (mrXoxot) 1298 18.05.15 21:41 Сейчас в теме
(22) qwinter,
В опубликованных планах сказано, что 3.0.41 будет без режима совместимости с 8.3.5
То есть, да здравствует 8.3.6.
28. Яковлевич Никита (mrXoxot) 1298 19.05.15 09:27 Сейчас в теме
(12) planar74,
Не проверял как работает в РИБ. Но вот, что удалось найти в документации:

Доступный пользователю набор расширений зависит от набора используемых разделителей в момент старта сеанса. При сохранении расширения в информационную базу, оно будет записано со значениями разделителей, которые установлены в текущем сеансе. В дальнейшем расширение используется только в тех сеансах, которые имеют точно такой же набор разделителей. В связи с этим, к сеансу одного и тот же пользователя, подключающегося к одной и той же разделенной информационной базе с разным набором разделителей, может быть подключен разный набор расширений.

Более подробно здесь.

То есть, кажется, что нужно будет подключать для каждого узла своё расширение.
29. Яковлевич Никита (mrXoxot) 1298 19.05.15 09:29 Сейчас в теме
(4) gorevg,
Расширение применяется один раз вначале.
Подключение расширения к сеансу пользователя выполняется перед вызовом обработчика события УстановкаПараметровСеанса и остается подключенным до завершения сеанса


То есть будет просто дольше запускаться программа. На скорость работы, наверное, не должно значимо сказаться.
30. Maximilian Alekseevich (1cmax) 151 20.05.15 09:47 Сейчас в теме
(13) qwinter, абсолютно поддерживаю, это как в мобильной платформе запросов не было сначала, ждемс
31. Александр Загребельный (hobi) 468 21.05.15 09:04 Сейчас в теме
Пока в расширениях нельзя будет добавлять свои справочники, документы, регистры надобности в них нет. Разве что поудобнее будет внешние отчеты цеплять.

(18) qwinter, мне кажется, самое существенное в расширениях сейчас -
возможность переопределить типы реквизитов объектов метаданных.
Можно добавить новый тип в составной в критериях отбора, в определяемых типах, в реквизит "Основание", в план видов характеристик.

Еще можно добавлять свои предопределенные значения, определять свои группы команд...
32. Яковлевич Никита (mrXoxot) 1298 21.05.15 22:48 Сейчас в теме
(31) hobi,
Как говорится : "В руках специалиста и табуретка является оружием массового уничтожения".
33. Павел Алексеенко (qwinter) 470 21.05.15 23:21 Сейчас в теме
(32) mrXoxot, а толку? Не будете же вы добавлять реквизиты отдельно, а форму и типы переделывать в расширении? И как это впоследствии поддерживать?
34. Денис Акимкин (planar74) 22.05.15 01:16 Сейчас в теме
(28) mrXoxot, по ходу, не только каждому узлу, но и каждому пользователю на узле. Весело, ничего не скажешь.
35. Павел Знайкин (PavelZnaikin) 127 28.05.15 16:22 Сейчас в теме
Народ скажите правильно я понял, что с помощью расширений можно добавлять будет свои Документы, Справочники. Так и изменять форму существующих документов и справочников?
36. Алексей Ермилов (Alex_E) 1457 29.05.15 09:57 Сейчас в теме
(35) PavelZnaikin,
добавлять будет свои Документы, Справочники.
- нет
изменять форму существующих документов и справочников?
- да
37. Алексей Драчков (Bassgood) 516 11.06.15 18:01 Сейчас в теме
(34) planar74, не каждому пользователю, а для каждого разделителя, если база использует механизм разделения данных, т.е. совсем жестко будет сочетание РИБ + разделение данных.
38. Марина Чирина (chmv) 06.07.15 11:52 Сейчас в теме
39. Андрей Суханцов (&rew) 6 17.08.15 12:39 Сейчас в теме
Вот тоже осваиваю данный механизм в плане выноса "дописок" для облегчения обновления. Наткнулся на ПВХ. В расширении дает менять составной тип ПВХ, а в режиме предприятия шлет напрочь. Т.е. вопрос - предполагается такая возможность в будущем или просто вследствие сырости не запретили еще менять тип ПВХ в расширении? (вопрос риторический. Время покажет)
40. Евгения Карук (ekaruk) 2607 17.08.15 15:30 Сейчас в теме
(39) &rew, По логике не должно быть такой возможности.
Изменение типа ПВХ физически это изменение структуры БД (добавление новых физических колонок на SQL сервере)
А такой возможности у расширений сейчас нет.
41. Андрей Суханцов (&rew) 6 19.08.15 11:21 Сейчас в теме
(40) ekaruk, Это все понятно, про таблицы, типы и прочие ограничения, но речь идет о ПВХ. Это некий "хамелеон" от 1С, который как бы сам по себе уникальный вид, но может "притворяться" кем угодно. Понятно что в рамках определенных типов, но всё же. Почему тогда не создать Универсальное ПВХ, и назначить ему в типы все типы (как бы масломаслянно это не звучало), и тащить через все конфы а то и вообще в БСП включить. Это, конечно, я утрирую, но только дабы четче донести свою мыслЮ.
42. Ильшат (shatt) 36 26.08.15 09:59 Сейчас в теме
Доброго дня! Как обстоит дело с отладкой при создании расширений?
Приходится каждый раз закрывать конфигурацию расширения в конфигураторе, чтобы запустить его в пользовательском режиме.
43. Андрей Суханцов (&rew) 6 28.08.15 11:44 Сейчас в теме
(42) shatt, Эээ. Да всё нормально вроде как с отладкой. На 8.3.6.1999 (да и выше пробовал) работает стандартно. Работаю на win 7 и server 2008, 2012.
44. Андрей Суханцов (&rew) 6 28.08.15 14:32 Сейчас в теме
(42) shatt, С ИТСа
В связи с тем, что список расширений является единым и для доступа из конфигуратора и для доступа из «1С:Предприятия», система не позволяет выполнять взаимоисключающие действия. Другими словами, если в Конфигураторе открыто окно с расширением, то его невозможно удалить из списка расширений в режиме «1С:Предприятия». Расширение, во время записи в информационную базу в режиме «1С:Предприятия», в конфигураторе является недоступным для любых операций с ним.
45. Алексей Папанов (El_Loco) 80 22.09.15 09:45 Сейчас в теме
//правка
я писал пост ниже, а позже сам разобрался.
поясните для танкистов. вот скачал расширение, пытаюсь понять как это работает.
у вас в модуле формы объекта "спр.Контрагенты" две процедуры:
- Процедура ДублиКонтрагентовПередЗаписью()
- Процедура ДублиКонтрагентовЗаписатьДубль()

я только не пойму где они вызываются.

вот допустим стоит задача проверить определенный реквизит и в зависимости от этого разрешить запись элемента или запретить, т.е. поставить Отказ=Истина.
но процедуры ПередЗаписью или ПриЗаписи находятся же в модуле объекта, а не формы.
а в расширение попадает только форма.

поясните, как быть?

я нашел, что, если мы добавляем форму в расширение, то для формы можно также писать обработчики событий формы, среди которых есть ПередЗаписью.
вот простой пример
&НаКлиенте
Процедура Р_ПередЗаписью(Отказ, ПараметрыЗаписи)
	Если НЕ ЗначениеЗаполнено(Объект.НоменклатурнаяГруппа) И НЕ Объект.ЭтоГруппа Тогда
		Отказ = Истина;
		Сообщить("Не заполнен реквизит ""НоменклатурнаяГруппа""!");
	КонецЕсли;
КонецПроцедуры
...Показать Скрыть
46. Яковлевич Никита (mrXoxot) 1298 22.11.15 11:03 Сейчас в теме
(45) El_Loco,

Не совсем верно. Сначала выполняется код из расширения, затем код типового обработчика. Но этот порядок можно изменить.
47. Михаил Сибирёв (SkyHunter) 17.02.16 17:06 Сейчас в теме
Господа, а подскажите, чем может быть чревато отключение режима совместимости в Бух 3.0?
48. Яковлевич Никита (mrXoxot) 1298 17.02.16 19:29 Сейчас в теме
(47) SkyHunter,
На текущий момент ничего отключать не нужно.
На актуальном релизе данное расширение работает корректно.

Совместимость с 8.3.5 была снята в 3.0.41
49. Яковлевич Никита (mrXoxot) 1298 29.07.16 09:01 Сейчас в теме
Обновил расширения для Бухгалтерия 3.0.44