Имя: Пароль:
1C
1С v8
Дополнительные реквизиты справочника характеристики не показываются на форме?
,
0 AnisaL
 
21.05.18
15:54
Добрый день!

Подскажите, пожалуйста, 1С Розница 2.2, создаю программно дополнительные реквизиты справочника характеристики, через Справочники.Характеристики.ДополнительныеРеквизиты, почему они не отображаются на форме элемента справочника Характеристики? Если доп реквизиты заполняю вручную через Предприятие, то они сохраняются на форме. Получается доп реквизиты в табличной части Характеристик есть, а на форме их нет?

ОбъектХарактеристика = ЕстьХарактеристика.ПолучитьОбъект();                    
                    ДопРеквизиты = ОбъектХарактеристика.ДополнительныеРеквизиты;
                    СтрокаДопРеквизитов = ДопРеквизиты.Добавить();
                    СтрокаДопРеквизитов.Значение = Материал;
                    СтрокаДопРеквизитов.Свойство = ВидСвойства;
                    ОбъектХарактеристика.Записать();
1 DrShad
 
21.05.18
15:56
что-то не доделала
2 AnisaL
 
21.05.18
15:57
(1) а что именно? уже второй день бьюсь с этими характеристиками..
3 DrShad
 
21.05.18
15:58
свойство правильное?
4 AnisaL
 
21.05.18
15:59
(3) свойство - да
5 DrShad
 
21.05.18
15:59
пройтись отладчиком по вручную созданному документу и сравнить что там в ТЧ и что у вас
6 AnisaL
 
21.05.18
15:59
(5)                     ВидСвойства = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Материал");
7 AnisaL
 
21.05.18
16:00
(5) это не документ, а справочник, характеристики ном-ры
8 AnisaL
 
21.05.18
16:00
(5) и у него есть табл часть Доп реквизиты
9 Леха Дум
 
21.05.18
16:02
(0) Посмотри в справочник "Наборы дополнительных реквизитов и сведений". Кроме того, чтобы создать элемент в плане видов характеристик, нужно еще его и привязать к виду объектов
10 AnisaL
 
21.05.18
16:09
(9) там заполнено все
11 AnisaL
 
21.05.18
16:11
самое интересное, что прохожусь отладчиком, и вижу что таб часть заполнена, а на форме все равно нет
12 AnisaL
 
21.05.18
16:16
А можно на самой форме заполнить как то эти доп реквизиты?
13 AnisaL
 
21.05.18
16:16
(12) я имею в виду программно
14 AnisaL
 
21.05.18
16:20
http://pixs.ru/showimage/Noviytoche_2062109_30238570.jpg
вот реквизиты на форме
15 Леха Дум
 
21.05.18
16:27
а заполняешь в какой момент? Когда форма открыта и командой из формы?
16 Леха Дум
 
21.05.18
16:30
Я писал в свое время процедуру обновления реквизитов формы для БСП 2.1.9, код такой:

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

Вызов процедуры следующий:

УправлениеСвойствамиПереопределяемый.УстановитьЗначениеДополнительногоРеквизитаВФорме(ЭтаФорма, ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ИмяРеквизита, ЗначениеРеквизита);
17 AnisaL
 
21.05.18
16:33
(15) вот например, заполнила значение - Пластик у доп реквизита "Материал", и отладчиком посмотрела, как он записывается:
1 фото - как заполнила
2 фото - что видит отладчик у формы

http://www.fotolink.su/v.php?id=87ca6cc9c88d07634e2194b5600f89b9

http://www.fotolink.su/v.php?id=2ee80898f1a8590d39b02936b1476503
18 AnisaL
 
21.05.18
16:35
(16) а функция где должна выполняться - на сервере или клиенте?
19 AnisaL
 
21.05.18
16:37
(15) нет, заполняю вот так, не через форму:

        ОбъектХарактеристика = ЕстьХарактеристика.ПолучитьОбъект();                    
                    ДопРеквизиты = ОбъектХарактеристика.ДополнительныеРеквизиты;
                    СтрокаДопРеквизитов = ДопРеквизиты.Добавить();
                    СтрокаДопРеквизитов.Значение = Материал;
                    СтрокаДопРеквизитов.Свойство = ВидСвойства;
                    ОбъектХарактеристика.Записать();
20 AnisaL
 
21.05.18
16:39
(15) форму вообще не могу получить, ошибку выдает:

{ВнешняяОбработка.ЗагрузкаДанныхИзТабличногоДокумента_УФ.Форма.Форма.Форма(891)}: Ошибка при установке значения атрибута контекста (Объект)
                    Объект = ЕстьХарактеристика.ПолучитьОбъект();
по причине:
Нельзя изменять поле, содержащее объект данных формы
21 AnisaL
 
21.05.18
16:40
(15) вот пытаюсь форму получить:

Объект = ЕстьХарактеристика.ПолучитьОбъект();
                    ФормаЭлемента = Объект.ПолучитьФорму("ФормаЭлемента");
и ошибку выдает, как в предыдущем посте
22 AnisaL
 
21.05.18
16:42
(16) а что получается, что можно только из самой формы вызвать процедуру?
23 Леха Дум
 
21.05.18
17:23
(22) для процедуры форма - это один из параметров, а откуда вы его возьмете - процедуре все равно
24 Вафель
 
21.05.18
17:53
в отладчике вид свойства чему равен.
Скорее всего нужно искать по полю "Заголовок" а не по наименованию
25 AnisaL
 
21.05.18
18:33
(24)                     ВидСвойства = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Материал");
26 AnisaL
 
21.05.18
18:34
(24) он его находит
27 Вафель
 
21.05.18
18:35
(26) а точно с таким наименование только 1 свойство правильное?
28 AnisaL
 
21.05.18
18:35
(27) да
29 AnisaL
 
21.05.18
18:36
(23) в том то и дело, что я из внешней обработки не могу получить доступ к форме элемента справочника
30 Вафель
 
21.05.18
18:37
(29) тогда все должно работать
31 AnisaL
 
21.05.18
18:37
(29) а у меня не работает(
32 Вафель
 
21.05.18
18:40
посмотри отладциком что после записи объекта там остается
33 AnisaL
 
21.05.18
18:42
(32) в смысле в табличной части ДопРеквизиты ? там все записано, могу фото скинуть
34 AnisaL
 
21.05.18
21:17
(30) Ура, ура, ура! Нашла свою ошибку: я в значение доп реквизита записывала просто строку, а нужно было Справочник.ЗначенияСвойствОбъектов. Спасибо всем откликнувшимся, день прошел не зря! :)
вот здесь: СтрокаДопРеквизитов.Значение = Материал;