Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

УТ 11.4 программно заполнить свойство

УТ 11.4 программно заполнить свойство
Я
   MAPATNK2
 
23.04.21 - 15:11
Всем доброго дня. Есть свойство в Ут 11.4 (Дополнительные реквизиты). Как программно найти свойство нужное у необходимой номенклатуры и добавить в него занчение? Может примеры есть?
   lubitelxml
 
1 - 23.04.21 - 15:13
(0) справа от темы есть буква "Я" - можешь не благодарить ))
   Kassern
 
2 - 23.04.21 - 15:14
(0) это же обычная табличная часть, добавляй нужное значение для свойства
   acht
 
3 - 23.04.21 - 15:15
   программистище
 
4 - 23.04.21 - 15:18
Ну примерно вот так:

                ДопРекв = ОбъектНоменклатуры.ДополнительныеРеквизиты;
                МассивДР = ДопРекв.НайтиСтроки(Новый Структура("Свойство", СтрокаТЗ.Свойство));
                НовыйДР = Неопределено;
                Если Не МассивДР.Количество() = 0 Тогда
                    НовыйДР = МассивДР[0];
                Иначе
                    Если ВходитВНаборДР(ОбъектНоменклатуры.ВидНоменклатуры.НаборСвойств, СтрокаТЗ.Свойство) Тогда
                        НовыйДР = ДопРекв.Добавить();
                        НовыйДР.Свойство = СтрокаТЗ.Свойство;
                    КонецЕсли;
                КонецЕсли;
                Если Не НовыйДР = Неопределено Тогда
                    МенеджерСправочника = Справочники.ЗначенияСвойствОбъектов;
                    Если СокрЛП(СтрЗамена) = "" Тогда
                        ИскомоеЗначениеСвойства = МенеджерСправочника.НайтиПоНаименованию("не заполнено", Истина,, СтрокаТЗ.Свойство);
                    Иначе
                        ИскомоеЗначениеСвойства = МенеджерСправочника.НайтиПоНаименованию(СтрЗамена, Истина,, СтрокаТЗ.Свойство);
                    КонецЕсли;
                    Если ИскомоеЗначениеСвойства.Пустая() Тогда
                        ИскомоеЗначениеСвойства = МенеджерСправочника.СоздатьЭлемент();
                        ИскомоеЗначениеСвойства.Владелец = СтрокаТЗ.Свойство;
                        ИскомоеЗначениеСвойства.Наименование = СтрЗамена;
                        Попытка
                            ИскомоеЗначениеСвойства.Записать();
                        Исключение
                            Сообщить(ОписаниеОшибки());
                        КонецПопытки; 
                    КонецЕсли;
                    НовыйДР.Значение = ИскомоеЗначениеСвойства;
                    НовыйДР.ТекстоваяСтрока = ИскомоеЗначениеСвойства;
                КонецЕсли;


где ВходитВНаборДР(

&НаСервере
Функция ВходитВНаборДР(НаборСвойств, СвойствоНабора)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.Ссылка
                   |ИЗ
                   |    Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты
                   |ГДЕ
                   |    НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.Ссылка = &Ссылка
                   |    И НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.Свойство = &Свойство";
    Запрос.УстановитьПараметр("Ссылка", НаборСвойств);
    Запрос.УстановитьПараметр("Свойство", СвойствоНабора);
    Возврат Не Запрос.Выполнить().Пустой();
КонецФункции
   Garykom
 
5 - 23.04.21 - 15:19
(4) сложновато
ты случаем не из китая?
   kobzon2
 
6 - 23.04.21 - 15:30

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

СвойствоДопРеквизита=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("НазваниеНашегоДопРеквизита"); 
ДопРеквизит=ТекущийОбъект.ДополнительныеРеквизиты.Найти(СвойствоДопРеквизита, "Свойство");

Если ДопРеквизит=Неопределено Тогда        
        
мНовыйРеквизит = ТекущийОбъект.ДополнительныеРеквизиты.Добавить();
мНовыйРеквизит.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("НазваниеНашегоДопРеквизита");
мНовыйРеквизит.Значение = 123456789;

Иначе
ДопРеквизит.Значение = 123456789; 
КонецЕсли;

КонецПроцедуры


   Timon1405
 
7 - 23.04.21 - 15:33
(3) +1 все уже написано за нас, с (блекджеком) блокировками и транзакциями
   программистище
 
8 - 23.04.21 - 15:36
(5) из индии
   acht
 
9 - 23.04.21 - 15:37
(8) Вытанцовываешь?
   программистище
 
10 - 23.04.21 - 15:39
(8) ай, Кришна, дай мне красивый код, как цветы лотоса
   Timon1405
 
11 - 23.04.21 - 15:49
(10) уже дали же, код состоит из одной строки УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(ВладелецСвойств, ТаблицаСвойствИЗначений)
   программистище
 
12 - 23.04.21 - 15:50
(11) а ну если БСП, тогда не нужен Кришна
   Timon1405
 
13 - 23.04.21 - 15:51
(12) Ут 11.4 в теме и в первом сообщении подразумевает его наличие
   программистище
 
14 - 23.04.21 - 15:52
(13) простите, индиец не читатель,
ждем новую тему, как создать ТаблицаСвойствИЗначений
   MAPATNK2
 
15 - 26.04.21 - 09:34
(6) ТекущийОбъект.ДополнительныеРеквизиты.Найти при использовании Найти лезет ошибка.
   MAPATNK2
 
16 - 26.04.21 - 09:35
(11) т.е сначала нужно сформировать программно эту таблицу, а потом вызывать УправлениеСвойствами.ЗаписатьСвойстваУОбъекта?
   MAPATNK2
 
17 - 26.04.21 - 09:35
(3) У меня нет доступа к ИТС.
   kobzon2
 
18 - 26.04.21 - 09:41
(15) Значит смотри, что у тебя за параметр взамен ТекущемуОбъекту:
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
   MAPATNK2
 
19 - 26.04.21 - 13:41
всем спасибо.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.