Программное создание характеристик с дополнительными реквизитами в УНФ 1.6

29.10.20

Разработка - БСП (Библиотека стандартных подсистем)

В статье опишу порядок создания объектов и вариант их заполнения.

Вводные

  • Управление небольшой фирмой 1.6.23.61
  • Нужно создать категорию номенклатуры
    • Для категории номенклатуры создать доп реквизиты характеристик
    • Для категории номенклатуры создать характеристики
  • Создать номенклатуру с характеристиками

В статье описан блок анализа, как демонстрация решения данного типа задач. Для просмотра данных в объекте использую http://www.infostart.ru/public/100967/

Реализация

Категории номенклатуры

Иерархический справочник, минимально пользователем определяется

  • Наименование
  • Тип номенклатуры по умолчанию
 
Скриншот формы элемента 

 

При записи нового элемента дополнительно формируются наборы доп реквизитов для

  • спр. Номенклатура
  • спр. ХарактеристикиНоменклатуры
  • спр. СпецификацииНоменклатуры
 
 Скриншот данных

 

Заполняются наборы при записи элемента

 
 МодульОбъекта

 

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

 
 Код создания категории

 

Дополнительные реквизиты

Хранятся в "ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения". 

В элементе указывается набор "НаборСвойств" в от которого был создан. При использовании информация о принадлежности берется из ТЧ "ДополнительныеРеквизиты" спр. "НаборыДополнительныхРеквизитовИСведений".

На форме пользователь видит "Наименование", по факту заполняется "Заголовок"

 
 Скриншот формы из конфигуратора

 

Для коррекной работы кроме наименования нужно заполнить

  • тип данных
  • идентификатор для формул
  • Имя (Требуется для программного обращения к дополнительным реквизитам и сведениям. Аналог имени обычного реквизита.)

Заполнение идентификатора происходит на форме

 
 Модуль формы элемента

 

"Имя" заполняется в модуле объекта в процедуре "ПередЗаписью()"

 
 Модуль объекта

 

Пример создания с типом "Дополнительное значение". Реквизиты "Доступен", "Виден" используются для управлением отображением в форме элемента спр. "Характерисики".

 
 Код создания доп реквизита

 

Значения дополнительных реквизитов

Хранятся в справочнике "ЗначенияСвойствОбъектов" с владельцем "ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения"

 
 Код создания значения доп реквизита

 

Характеристики номенклатуры

Характеристики могут быть привязаны к:

  • спр. КатегорииНоменклатуры, можно выбирать в документах для любой номенклатцры в рамках категории.
  • спр. Номенклатура, можно выбирать в документах для номенклатуры владельца

Выбор харктеристик сделан через "нестандартную" форму выбора с фильтром, относительно неудобная для пользователей.

 
 Скриншот

 

Создаем характеристику общую для категории, добавляем в нее значение доп реквизита

 
 Код создания характеристики

 

Для формирования наимменования из значений доп. реквизитов можно использовать функцию

ШаблоныНаименований.СформироватьНаименования(ЭтотОбъект, КатегорияНоменклатуры);

 

Итог

В структуре данных по доп реквизитам в УНФ есть своя специфика, учитывая которую можно программно создавать элементы для последующего использования.

 

Благодарю за внимание.

См. также

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотекам стандартных подсистем и электронных документов. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП и БЭД.

1800 руб.

21.11.2024    4662    19    15    

24

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

Добавим метки в новый документ средствами БСП.

10.02.2025    4378    John_d    24    

48

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

Расскажу, как использовать полезный функционал - инструментарий разработчика «1С:Библиотека стандартных подсистем» (БСП) в своих объектах метаданных. Статья будет полезна как шпаргалка при написании собственных объектов метаданных.

27.12.2024    4763    PROSTO-1C    16    

49

БСП (Библиотека стандартных подсистем) Программист Бесплатно (free)

Синтакс-помощник БСП - справочник по Библиотеке Стандартных Подсистем, профессиональный инструмент разработчика с интуитивно понятным интерфейсом. Читайте в статье как использовать все возможности справочника и сделать работу с БСП более комфортной и эффективной.

11.12.2024    4556    gorenski    0    

8

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

Некоторые нюансы, если вы захотите создавать свои расширения. Доработка отчета "Связанные документы" для отражения документов расширения. Печатные формы с шаблоном Word.

20.11.2024    3929    milkers    3    

14

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    2237    PROSTO-1C    0    

19

БСП (Библиотека стандартных подсистем) Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

В материале описан универсальный механизм работы с добавленными элементами на общую форму «ФормаОтчета». Думаю, облегчит работу многим разработчикам.

08.10.2024    1646    PROSTO-1C    4    

14
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1837 30.10.20 06:48 Сейчас в теме
(0) в первой картинке - в схеме - укажите, пож-та, что есть "справочник", а что есть "регистр сведений" и "план видов характеристик"?

Что за задачу решаете? Пример приведите пож-та.
2. malikov_pro 1330 30.10.20 07:59 Сейчас в теме
(1) по схеме хорошо, поправлю, может получится в UML отрисовать.

"Что за задачу решаете?" - сам загружаю номенклатуру поставщика, в обработках состыковка, развернул чуть глубже
https://infostart.ru/1c/articles/1307929/
https://infostart.ru/1c/articles/1311264/

+ Вопрос на форуме был, https://forum.infostart.ru/forum9/topic250030/
3. malikov_pro 1330 30.10.20 09:56 Сейчас в теме
(1) Схему обновил. Отрисовал ассоциациями, пока не силен в применениии связей между классами.
4. user958873 11.04.21 16:54 Сейчас в теме
~`На форме пользователь видит "Наименование", по факту заполняется "Заголовок"`- не понятно где найти эту форму, если я делаю обработку создания характеристик
5. user958873 11.04.21 19:00 Сейчас в теме
(4)С формой "Наименование" разобрался .
Процедура или функция с указанным именем не определена (ЗаголовокДляФормированияИдентификатора) - подскажите где находится эта процедура?
6. user958873 14.05.21 11:46 Сейчас в теме
Спасибо, у меня заработало.
7. Slipper 18.10.21 17:18 Сейчас в теме
Спасибо тебе, золотой ты человек! Статья очень ускорила процесс создания обработки!
8. user20151998 15.11.22 15:14 Сейчас в теме
А я немного по другому сделал, но половина кода взята у Вас. Но у меня не заполняются реквизиты. То есть заходя в номенклатуру, я вижу свою созданную программно характеристику, открываю ее снизу есть поле "Свойства и значения". Вот это поле пустое. А снизу пишется - "Состав свойств изменяется в карточке Категории номенклатуры".

Иду опять в номенклатуру и перехожу из нее в её категорию. Внизу на форме категории тоже есть поля "Свойства хар-к" и "Свойства ном-ры" - оба пустые..То есть харакетристика создалась, но она без моих значений.

Код получился такой: https://dropmefiles.com/IefDb

Подскажите, что я забыл? На других форумах подсказали, что я просто забыл заполнить какой то реквизит. А какой?
10. user20151998 15.11.22 15:33 Сейчас в теме
(8) Но в категории по прежнему пусто..в таблице свойств - ничего нет. какую то ТЧ еще не заполнил?(
9. user20151998 15.11.22 15:19 Сейчас в теме
Разобрался, вот этого не хватает:
СтрДопРеквизит = НоваяХарактеристика.ДополнительныеРеквизиты.Добавить();
СтрДопРеквизит.Свойство = Суффикс;
СтрДопРеквизит.Значение = ЗначениеРеквизита.Ссылка;
11. Maslov1990 3 26.03.24 17:14 Сейчас в теме
Добрый день. Проверьте 14 этап, остатки не загружаются.
12. Maslov1990 3 26.03.24 17:27 Сейчас в теме
И при загрузке номенклатуры падает после загрузки 15%
Оставьте свое сообщение