Получение формы элемента справочника "Характеристики номенклатуры" с заполненными данными
По теме из базы знаний
- Всякие полезности
- Генератор кода 8.x (Управляемые и обычные формы) Версия от 02.10.2024
- Ведение учета услуг в разрезе характеристик для УТ 10.3
- Конфигурация "Весовая ред. 3.0" для Платформы 8.3
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
У меня вот такая пачка кода:
Соль проблемы в процедуре формирование значения. Если характеристика.ссылка = ничего (лезем сюда без записи характеристики) получаем ошибку:
"запись не верна значение поля объект не может быть пустым"
У меня вот такая пачка кода:
Процедура КнопкаВыполнитьНажатие(Кнопка)
Номенклатура = //формируется название
//Характеристика = ПолучитьФорму("Справочник.ХарактеристикиНоменклатуры.Форма.ФормаЭлемента");
Характеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
Характеристика.Владелец = КарточкаНоменклатуры;
Характеристика.Наименование = Номенклатура;
Характеристика.Активная = Истина;
//Характеристика.Записать();
//ШиринаКровати
Реквизит1 = Справочники.эл_СвойстваИзделия.НайтиПоНаименованию(ШиринаКровати,Истина,Справочники.эл_СвойстваИзделия.ШиринаКровати);
ФормированиеЗначения(Реквизит1,"12357",Характеристика);
Характеристика.ПолучитьФорму("ФормаЭлемента",Характеристика.Владелец);
СвойстваХарактеристики = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
СвойстваХарактеристики.Отбор.Объект.Значение = Характеристика.Ссылка;
СвойстваХарактеристики.Отбор.Объект.Использование = Истина;
Характеристика.СформироватьНаименование(СвойстваХарактеристики.Выгрузить());
КонецПроцедуры
Процедура ФормированиеЗначения(Реквизит,Код,Характеристика)
Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
Запись.Объект = Характеристика.Ссылка;
Запись.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду(Код);
Запись.Значение = Реквизит;
Запись.Записать();
КонецПроцедуры
ПоказатьСоль проблемы в процедуре формирование значения. Если характеристика.ссылка = ничего (лезем сюда без записи характеристики) получаем ошибку:
"запись не верна значение поля объект не может быть пустым"
(6)
Есть обработка: в ней выбираются определенные характеристики для кровати. После выбора характеристик жмем "Выполнить", и у нас должна открыться форма с заполненными полями ТЧ, а ее уже пытаемся записать.
Но как я понял - такое не провернуть.
Т.е. цель - программное создание характеристик. И как бы в целом оно работает - но вот проблему дублей не решает.
т.е. я могу создать пачку одинаковых характеристик, а по ТЗ такого быть не должно. вот и думаю над какими нибудь костылями
Есть обработка: в ней выбираются определенные характеристики для кровати. После выбора характеристик жмем "Выполнить", и у нас должна открыться форма с заполненными полями ТЧ, а ее уже пытаемся записать.
Но как я понял - такое не провернуть.
Т.е. цель - программное создание характеристик. И как бы в целом оно работает - но вот проблему дублей не решает.
т.е. я могу создать пачку одинаковых характеристик, а по ТЗ такого быть не должно. вот и думаю над какими нибудь костылями
(5) может так ?
&НаКлиенте
Процедура Команда4(Команда)
Характеристика = ПолучитьФорму("Справочник.ХарактеристикиНоменклатуры.Форма.ФормаЭлемента");
Характеристика.Объект.Владелец = КарточкаНоменклатуры;
Характеристика.Объект.Наименование = Номенклатура;
ОБ = Характеристика.Объект.ДополнительныеРеквизиты.Добавить();
ОБ.Свойство = ПланВиды(Код);
ОБ.Значение = эл_СвойстваИзделия(ШиринаКровати);
Характеристика.Открыть();
КонецПроцедуры
&НаСервере
Функция ПланВиды(Код)
Возврат ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду(Код)
КонецФункции
&НаСервере
Функция эл_СвойстваИзделия(ШиринаКровати)
Возврат Справочники.эл_СвойстваИзделия.НайтиПоНаименованию(ШиринаКровати,Истина,Справочники.эл_СвойстваИзделия.ШиринаКровати);
КонецФункции
Показать
Если одинаковое наименование означает дубль, делай проверку
Если проверка идет по всем реквизитам характеристики можно создать функцию, в функции запрос по справочнику характеристики с условиямия на нужные реквизиты. Результат запроса обходить не нужно:
Вызываем эту функцию перед созданием характеристики
Если Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("НазваниеСоздаваемойХарактеристики") = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка Тогда
//Создаем новую характеристику
КонецЕсли;
Если проверка идет по всем реквизитам характеристики можно создать функцию, в функции запрос по справочнику характеристики с условиямия на нужные реквизиты. Результат запроса обходить не нужно:
Если Выборка.Количество > 0 Тогда
//ТакаяХарактеристика уже существует
Возврат ОтказОтСоздания = Истина;
Иначе
Возврат ОтказОтСоздания = Ложь;
КонецЕсли;
Вызываем эту функцию перед созданием характеристики
ОтказОтСоздания = ПроверитьХарактеристику(необходимы условия для проверки);
Если Не ОтказОтСоздания Тогда
//Создаем характеристику
КонецЕсли;
(16) Ну по факту название формируется на основании шаблона. так что технически неплохой костыль.
Но по уму получается что просто нужно запрос лепить с проверками всех характеристик, т.к. в случае корректировки название сменится (ну или дописывать пару строк в формировании названия)
Но по уму получается что просто нужно запрос лепить с проверками всех характеристик, т.к. в случае корректировки название сменится (ну или дописывать пару строк в формировании названия)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот