Имя: Пароль:
1C
 
Смена типа данных у реквизитов в расширении
0 NIGHTHUNTER
 
19.08.22
10:04
Есть документ, добавлен в расширение. Нужно увеличить размерность числа у двух полей.
Есть меняю в конфигурации основной, или только в расширении, выходит ошибка. И расширение вообще не подключается.
Сделал одинаковую размерность и в основной конфигурации и в расширении. Ошибки что расширение не подключается нет.
Но размерность у реквизитов табличной части в режиме предприятия не изменилась.
1 NIGHTHUNTER
 
19.08.22
10:07
Кажется это все создается программно.
И не связанно с визуальными, элементами , реквизитами.
Как тогда изменить размерность?
2 NIGHTHUNTER
 
19.08.22
10:07
Элементы.Вставить("ХХХ_" + ТабличнаяЧасть.Имя + Реквизит.Имя + "1", Тип("ПолеФормы"), Элемент, ПредПолеДатаСклада);
                    НовыйЭлемент = Элементы.Найти("ХХХ_" + ТабличнаяЧасть.Имя + Реквизит.Имя + "1");
3 NIGHTHUNTER
 
19.08.22
10:16
Вот, программно создается элемент.

МассивРеквизитов.Добавить(Новый РеквизитФормы(Реквизит.Имя, Реквизит.Тип, "ХХХ_" + ТабличнаяЧасть.Имя, ТабличнаяЧасть.Синоним));    



У него в Реквизит.Тип, квалификатор числа, разрядность дробной части 1. как задать 3 ?

Видимо нужно отлавливать нужные элементы и менять им это.
4 NIGHTHUNTER
 
19.08.22
10:20
как правильно вот эту единицу, изменить на 3 ?

http://joxi.ru/v29b7JoC4vLEOA
5 6awkup_true
 
19.08.22
10:24
ТипЧисло = Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(10, 3, ДопустимыйЗнак.Неотрицательный));

вот только если в объекте 2, то не сохранит
6 NIGHTHUNTER
 
19.08.22
10:29
Хотел так сделать, не получилось. Поле объекта не доступно для записи

                Если Реквизит.Имя = "Количество" или Реквизит.Имя = "КоличествоСклад" Тогда
                    Реквизит.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти = 3;
                КонецЕсли;                    
                МассивРеквизитов.Добавить(Новый РеквизитФормы(Реквизит.Имя, Реквизит.Тип, "ХХХ_" + ТабличнаяЧасть.Имя, ТабличнаяЧасть.Синоним));
7 NIGHTHUNTER
 
19.08.22
10:30
(5) В объекте это где? Визуально то есть? Там было 1 знак после запятой, я сделал 3 .
8 NIGHTHUNTER
 
19.08.22
10:30
(5) Мне нужно 15.3 .
9 NIGHTHUNTER
 
19.08.22
10:31
(5) То есть тут, нужно задавать не Реквизит.Тип, а предварительно созданный ТипЧисло ?

МассивРеквизитов.Добавить(Новый РеквизитФормы(Реквизит.Имя, Реквизит.Тип, "ХХХ_" + ТабличнаяЧасть.Имя, ТабличнаяЧасть.Синоним));
10 NIGHTHUNTER
 
19.08.22
10:33
(5) И после 15, наверное точка, не запятая.
11 NIGHTHUNTER
 
19.08.22
10:38
Ошибка


Несоответствие типов (параметр номер '2')



                Если Реквизит.Имя = "Количество" или Реквизит.Имя = "КоличествоСклад" Тогда
                    ТипЧисло = Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(15.3, ДопустимыйЗнак.Неотрицательный));                    
                    МассивРеквизитов.Добавить(Новый РеквизитФормы(Реквизит.Имя, ТипЧисло, "ХХХ_" + ТабличнаяЧасть.Имя, ТабличнаяЧасть.Синоним));    
                Иначе
                    МассивРеквизитов.Добавить(Новый РеквизитФормы(Реквизит.Имя, Реквизит.Тип, "ХХХ_" + ТабличнаяЧасть.Имя, ТабличнаяЧасть.Синоним));    
                КонецЕсли;
12 NIGHTHUNTER
 
19.08.22
10:39
(5) куда это задавать, то?
13 NIGHTHUNTER
 
19.08.22
10:43
(5) Сработало. Нужна именно запятая там, не точка. Как я подумал.
14 6awkup_true
 
19.08.22
10:45
ТипЧисло = Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(10, 3, ДопустимыйЗнак.Неотрицательный));
    
    Элементы.Реквизит1.ОграничениеТипа = ТипЧисло;
    Объект.Реквизит1 = ТипЧисло.ПривестиЗначение(Объект.Реквизит1);
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.