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

29.10.20

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

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

Вводные

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

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

Реализация

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

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

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

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

 

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

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

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

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

 

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

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

 

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

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

 

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

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

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

 

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

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

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

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

 
 Скриншот

 

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

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

 

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

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

 

Итог

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

 

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

См. также

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

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

24.10.2024    1088    PROSTO-1C    0    

12

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

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

08.10.2024    978    PROSTO-1C    4    

10

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

В статье рассмотрим пошаговую инструкцию создания дополнительного отчета с фоновым формированием результата.

04.10.2024    1830    MadRave    11    

24

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

Пример отслеживания прогресса фонового выполнения дополнительной обработки с использованием программного интерфейса длительных операций БСП.

10.09.2024    1818    MadRave    1    

17

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

А что, если долгожданная реализация Паузы в 1С смутно напоминает старую, проверенную? А?!

06.09.2024    1254    n_mezentsev    10    

8

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

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

02.09.2024    4105    John_d    10    

52

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

Всё больше организаций выбирает для серверов под 1С операционные системы Linux. Одним из отличий систем Windows и Linux является отсутствие COM объектов, которые зачастую использовались для формирования печатных форм офисных документов (Word). Конечно, можно выполнять печать и на клиенте, но есть риск импортозамещения. В работе у меня случались проблемы с зависанием процесса Word, поэтому я не люблю его использовать.

29.07.2024    5354    PROSTO-1C    12    

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

Что за задачу решаете? Пример приведите пож-та.
2. malikov_pro 1324 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 1324 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%
Оставьте свое сообщение