[УТ 10.3, УПП, КА] Редактор свойств номенклатуры (в режиме одного окна)

Вводная: есть произвольный справочник номенклатуры. Требуется: максимально быстро и удобно задать (изменить) значения свойств у товаров

 

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

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

Поэтому, собственно, и родилась обработка, которую можно скачать из данной публикации. Скачиваем обработку, открываем её в своей информационной базе (все тесты желательно проводить на копии базы или на какой-нибудь тестовой).

При запуске, обработка проверит существующую структуру регистров свойств номенклатуры, и, если необходимо, предложит немного подправить её.


Суть исправлений заключается в следующем:

Если есть свойства, у которых не указано назначение (т.е. в табличной части «Назначения свойства» нет строк), то, как известно, это свойство будет относиться ко всем элементам справочника «Номенклатура»

 

Обработка найдёт такие свойства и заполнит табличную часть «Назначения свойства» всеми элементами справочника «Номенклатура»:


Если есть свойства, у которых в табличной части «Назначения свойства» есть элементы, являющимися группами, то обработка удалит эти элементы:


и вместо них добавит все элементы справочника «Номенклатура», которые «лежат» в этой группе:


Т.е., по сути, всё останется, как и было, но обраобтка сможет корректно работать.

После того, как обработка выполнит необходимые преобразования (только с согласия пользователя), откроется главная форма обработки, на которой:

Левая часть — «Дерево номенклатуры» — содержит все элементы справочника «Номенклатура», представленные в виде дерева. В этой области мы выделяем нужную номенклатуру (возможно множественное выделение), для которой будем править свойства. Тут стоит отметить, что, если выбран(ы) элемент(ы) справочника «Номенклатура», то все дальнейшие изменения будут затрагивать только выбранные элементы. Если выбрана(ы) группа(ы), то все дальнейшие изменения будут затрагивать все элементы справочника «Номенклатуры», которые у этих групп находятся в иерархии.


Правая-верхняя часть — «Список свойств» — Содержит список всех свойств. Тут же можно добавить новое свойство или изменить существующее. Галочками отмечаются свойства, которые есть у выбранных в «Дереве номенклатуры» элементов (если галочка «мутная», то значит, что данное свойство есть, но не у всех выбранных элементов). Если галочка убирается, то свойство убирается из выбранных элементов номенклатуры.


Правая-нижняя часть — «Список значений свойств» — показывает все возможные варианты выбранного в «Списке свойств» свойства. Тут же можно добавить или изменить существующее значение. Если свойство имеет тип значения отличный от «Значение свойств объектов», то «Список значений свойств» не отображается, т.к. подразумевается, что пользователь вводит произвольное значение вручную, а не выбирает его из заранее предопределённого списка.


Собственно и вся обработка: маленькая, но довольно функциональная.

P.S.: модуль закрыт от посторонних глаз.

24 Comments

  1. 1psspam

    Если есть какие-то вопросы, то готов ответить.

    Reply
  2. zlogistik

    (1) обработка отличная! Автору однозначно плюс! Спасибо!

    Reply
  3. zlogistik

    (1) вот почему фирма 1С не сделает подобный механизм в своих конфигурациях!? Вроде, как возможность сделают, а методы работы с ней — крайне не удобные.

    Reply
  4. Ёпрст

    А занафига Назначение свойств заполнять вообще ?

    Тем более, всем справочником ?

    Reply
  5. 1psspam

    (4) Ёпрст, обработка судит о присутствии того или иного свойства у номенклатуры по наличию этой номенклатуры в табличной части «Назначение свойства». Если табличная часть пуста, то обработка считает, что это свойство не относится ни к одной номенклатуре, хотя на самом деле это свойство относится ко всем элементам справочника номенклатуры. Поэтому «Назначение свойства» и подгоняется под «удобство» работы с ним обработке.

    Reply
  6. 1psspam

    (3) zlogistik, потому что, если фирма 1С внедрит все «фишечки», которые размещены на ИнфоСтарте в свои конфигурации, то сначала закроется сам ИнфоСтарт, а потом половина всех разработчиков 1С сменят род деятельности.

    Reply
  7. Ёпрст

    (5) это не есть гуд, при добавлении новой номенклатуры, назначения свойств .. дырка от бублика.

    Или ваша поделка каждый раз проверяет это соответствие ?

    Reply
  8. 1psspam

    (7) Ёпрст, «дырка от бублика» будет в любом случае. В вашем — будут свойства, но их значения не будут заполнены. В случае моей обработки: добавили номенклатуру, поставили у неё галки для нужных свойств (галку можно даже не ставить, достаточно заполнить значение свойства и оно автоматически «прикрепится» к этой номенклатуре).

    Reply
  9. 1psspam

    (7) Ёпрст, соответствие обработка проверяет при каждом запуске. Если найдены «косяки» с точки зрения обработки, то она предлагает их исправить.

    Reply
  10. kapustinag

    (5) Думаю, такое решение (насчет заполнения «Назначения свойства» всеми элементами номенклатуры), мягко говоря, не слишком удачное. По следующим причинам:

    1. Если «Назначение свойства» пустое, то свойство (в типовой функциональности) относится не только ко всем СУЩЕСТВУЮЩИМ элементам справочника Номенклатура, но и ко всем, которые будут созданы впоследствии. Аналогично, если в «Назначении свойства» указана папка справочника — свойство относится не только ко всем существующим элементам, входящим в иерархию этой папки, но и ко всем, которые будут созданы здесь в будущем, либо перемещены сюда из других папок справочника. Ваша обработка, чтобы работали ее алгоритмы, ломает эту типовую функциональность. В результате придется за такими свойствами постоянно следить — перезаполнять назначение свойств после каждого добавления/перемещения элементов номенклатуры.

    2. (На самом деле, это продолжение п.1) Те базы, где реально могла бы помочь Ваша обработка, будут иметь очень большой справочник номенклатуры. И очень интенсивно меняющийся. Соответственно, количества строк «Назначение свойства» будут порядка тысяч, десятков тысяч. Чтобы следить за этим хозяйством, придется либо подписки на события делать, либо регламентным заданием перезаполнять, либо что-то еще придумывать.

    3. Кроме того, открытие свойств в типовых формах хоть немного, но замедлится — т.к. будут постоянные проверки на вхождение данной ссылки в перечень, содержащий тысячи или более ссылок.

    Предлагаю обдумать все это. Может быть, Вашей обработке не так уж необходимо именно такое заполнение «Назначений свойств»?

    Reply
  11. 1psspam

    (10) kapustinag, спасибо за подробный комментарий, но не убедили.

    Единственное с чем согласен — это «открытие свойств в типовых формах хоть немного, но замедлится» — «немного» будет не заметное, но будет.

    Моя обработка «не ломает» типовую функциональность, она улучшает механизм работы с этой «типовой функциональностью» и попросту не использует часть этого «типового функционала».

    Про подписки на события я, в принципе тоже согласен, но делать их нужно не для моей обработки, а для «типового функционала». Что будет с заполненными свойствами номенклатуры, если её (номенклатуру) перенести в другую группу (к которой эти свойства не относятся)? Правильно — свойства всё равно будут отображаться в форме номенклатуры, хотя в «Назначении свойств» не будет ни этой номенклатуры, ни её родителей. Тогда да, «В результате придется за такими свойствами постоянно следить — перезаполнять назначение свойств после каждого добавления/перемещения элементов номенклатуры».

    Поэтому всё, что Вы описали, с теоретической точки зрения, возможно, верно. С практической — нет. Именно поэтому я выложил данную обработку.

    Reply
  12. V.Nikonov
    Если свойство имеет тип значения отличный от «Значение свойств объектов», то «Список значений свойств» не отображается, т.к. подразумевается, что пользователь вводит произвольное значение вручную, а не выбирает его из заранее предопределённого списка.

    А если в качестве свойства указывается элемент из другого справочника? Почему Априори запрещается изменять состав допустимых значений свойства?

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

    Reply
  13. 1psspam

    (12) V.Nikonov,

    А если в качестве свойства указывается элемент из другого справочника?

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

    Reply
  14. V.Nikonov

    (13) Я имел в виду Нижнюю часть формы со списком допустимых значений.

    Reply
  15. 1psspam

    (14) V.Nikonov, т.е. предлагаете выводить в нижнюю часть, например, список элементов справочников?

    Reply
  16. V.Nikonov

    (15) Да. Видеть список допустимых значений облегчает задачу выбора правильного значения. Уменьшает вероятность образования Дублей…

    Т.к. в качестве значения Свойства может быть не только Справочник.СвойстваОбъектов но и другие справочники, то желательно попытаться вывести эти справочники… (сложнее будет если справочник значений окажется иерархическим!)

    Reply
  17. 1psspam

    (16) V.Nikonov, теперь понял, о чём речь. Спасибо за комментарий — конструктивно, но, думаю, реализация этого — лишнее пока.

    Reply
  18. V.Nikonov

    В поддержку (10) kapustinag, Регистр сведений Назначение свойств — носит ограничительный характер. Его есть смысл использовать только когда действительно надо спрятать некоторые свойства. Но если не ошибаюсь, при открытии элемента справочника в типовых конфигурациях не включается проверка на иерархическое вхождение, как следствие Свойство становится недоступным для ввода у Новых элементов (Однозначно, если в регистре перечислены Элементы)!!!

    Reply
  19. Zdan

    Будьте внимательны и не пренебрегайте советом разработчика делать бекап. После преобразования свойств обработкой перестала работать «обмен с сайтом». Просто виснет на первом этапе даже до формирования xml файлов.

    Reply
  20. sobeyko2008

    (19) Zdan, Огромное спасибо за предупреждение!

    Reply
  21. sergo48ru

    обработка устарела, рекомендуем скачать обновление.!!!?????

    Reply
  22. БольшойЧайник

    При запуске обработки выдается предупреждение. Обработка устарела, скачайте обновление с сайта разработчика.

    Обработка скачанная с сайта обработчика выдает такое же предупреждение

    автор, исправьте пожта ситуацию

    Reply
  23. 1psspam

    (21) sergo48ru, (22) БольшойЧайник, обработка исправлена.

    Reply
  24. Drizer2000

    Обработка то рабочая? А то люди ругались выше, а ответа автора нет.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *