Установка значений свойств (дополнительных реквизитов) элементам справочника Номенклатура





Назначение значения свойств к элементам справочника "Номенклатура"
Варианты:
1 — для элементов из одной группы
2 — для элементов содержащих одинаковую часть наименования
Работает в КА (оба интерфейса), УТ10.3, УТ11, Розница2.1 должно работать в БП

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

Было пожелание перед установкой вывести все в ТЗ, где можно флагами дополнительно отобрать где устанавливать значения и где нет — сделано

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

Определение свойств по корневым группам при выборе подчиненных также учтено.

В комплексной автоматизации будет работать в обоих интерфейсах

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

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

Для тех кто с управляемыми формами только начал, посмотрите тут: http://habrahabr.ru/post/134151/

Обработку можно спокойно встраивать в конфигуратор, будет работать без ошибок запуска доп форм, спасибо за процедуру автору: http://forum.aeroion.ru/topic625.html

Еще набор шпаргалок по управляемым формам: //infostart.ru/public/236382/

15 Comments

  1. Sla

    Предложение: сначала делать отбор, выкидывать кго в табличку с возможностью пометки и снятия пометки. А затем уже устанавливать для отмеченных.

    Reply
  2. izidakg

    (1) Sla,

    вариант для установки значений на несколько свойств одновременно.

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

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

    Reply
  3. Sla

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

    Reply
  4. izidakg

    (3) Sla, ну так это и сделано. на форме перед запуском обработки видно наименование свойства, по которому будет устанавливаться значение и само значение. видеть на форме обработки все варианты свойств и их значений считаю лишним. пусть лучше в отдельной форме, а там двойным кликом или через кнопку выбрать. собственно отдельная форма потому и сделана, чтобы не отвлекать — были случаи — дрогнула рука и не там поставили галочку.

    в отдельной же форме можно было бы и через флажки реализовать, но так сделал по 2 причинам: чтобы поставить галочку нужно кликать фактически по ней, а тут в любую чать наименования свойства или значения и 2-я технически мне так было легче

    Reply
  5. maratcom

    Что-то как-то у меня не хочет работать.

    Может кто подскажет.

    у меня 1С:Предприятие 8.2 (8.2.13.205), Управление торговлей, редакция 11.0 (11.0.6.9)

    Вот что выдает при нажатии на кнопку «выбор свойств».

    «{7,2}: Таблица не найдина » РегистрСведений. НазначенияСвойствОбъектов»

    <<?>> РегистрСведений. НазначенияСвойствОбъектов КАК НазначенияСвойствОбъектов»

    Reply
  6. izidakg

    такое сообщение может появиться только если нажато «Найти-Установить», а не при выборе свойства.

    торговлей 11-й касался немного, если не ошибаюсь, то там нет свойств к карточке товара (номенклатуре),

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

    на 10.3 работает, изначально для нее писалось, на КА — комплексной тоже работает, в бухгалтерии (последней тоже)

    Reply
  7. looxxx

    а для 8.1 есть? пишет ..не может быть прочитана текущей версией..

    Reply
  8. izidakg

    добавил, в версии для 8.1 даже печать сделана — пожелание клиента

    Reply
  9. 1977

    К УТ11 не думали сделать?

    Reply
  10. izidakg

    (9) 1977, необходимости пока небыло

    клиенты ну очень не хотят на ут11 переходить)))

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

    Reply
  11. rgrisha

    а для ТИС нет не у кого такой обработки?

    Reply
  12. izidakg

    последние пару лет для 1с7 пишу только под принуждением)))

    Reply
  13. Re:аниматор

    Обработка не видит свойства ВЫБРАННОЙ подгруппы если заданы на корневые группы

    Доработал и все ОК

    Форма.ВыборСвойства

    Функция СписокНазначенийСвойств(ОбъектОтбораНазначений)
    
    СписокНазначенийСвойств = Новый СписокЗначений;
    
    Если ЗначениеЗаполнено(ОбъектОтбораНазначений) Тогда
    ЭтоСправочник = Метаданные.Справочники.Содержит(ОбъектОтбораНазначений.Метаданные());
    КонецЕсли;
    
    Назначение = ОбъектОтбораНазначений;
    
    Пока ЗначениеЗаполнено(Назначение) Цикл
    
    СписокНазначенийСвойств.Добавить(Назначение);
    
    Если ЭтоСправочник Тогда
    Назначение = Назначение.Родитель;
    Иначе
    Прервать;
    КонецЕсли;
    
    КонецЦикла;
    
    Возврат СписокНазначенийСвойств;
    
    КонецФункции
    

    Показать

    Процедура ПриОткрытии()
    
    Если НЕ ЗначениеЗаполнено(ЗначениеГруппаНоменклатуры) и НЕ ЗначениеЗаполнено(ЗначениеПоиска) Тогда
    Предупреждение(«Выберите группу номенклатуры!
    |Или часть наименования Номенклатуры»,60);
    Возврат;
    КонецЕсли;
    
    Запрос = Новый Запрос;
    Если ЗначениеЗаполнено(ЗначениеГруппаНоменклатуры) Тогда
    //Запрос.УстановитьПараметр(«ВыбОбъект»,ЗначениеГруппаНоменклатуры);
    
    Запрос.УстановитьПараметр(«СписокНазначенийСвойств», СписокНазначенийСвойств(ЗначениеГруппаНоменклатуры));
    
    Запрос.Текст = «ВЫБРАТЬ
    | НазначенияСвойствОбъектов.Объект,
    | НазначенияСвойствОбъектов.Свойство,
    | НазначенияСвойствОбъектов.Свойство.Ссылка,
    | НазначенияСвойствОбъектов.Свойство.Наименование
    |ИЗ
    | РегистрСведений.НазначенияСвойствОбъектов КАК НазначенияСвойствОбъектов
    |ГДЕ
    //| НазначенияСвойствОбъектов.Объект = &ВыбОбъект»;
    | НазначенияСвойствОбъектов.Объект В ( &СписокНазначенийСвойств )»;
    
    

    Показать

    Reply
  14. vitaliysv

    не работает для Розницы 2.2

    при попытке выбрать свойство вываливается в ошибку «Таблица не найдена «РегистрСведений.НазначенияСвойствОбъектов»»

    Reply
  15. izidakg

    в ближайшее время планирую доработать и немного расширить обработку

    Reply

Leave a Comment

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