Имя: Пароль:
1C
1С v8
Доступ к реквизиту формы
0 Просто Царь
 
12.04.14
12:47
Подскажите, имеем форму документа, на которую штатными средствами добавлен дополнительный реквизит, например Реквизит1. Как к нему обратиться именно как к реквизиту формы, собственно ссылку на форму имеем. Обращение как к элементу ТЧ объекта не подходит, так как в этот момент форма еще не записана.
1 NcSteel
 
12.04.14
12:49
Платформа? Конфигурация? Упр или толстые формы?
2 GROOVY
 
12.04.14
12:50
Форма не может быть записана.
3 Просто Царь
 
12.04.14
12:51
УТ 11, 8.3
4 Просто Царь
 
12.04.14
12:53
(2)Нет, записывать не вариант. В этом то случае можно заполнять ТЧ объекта и не париться
5 Просто Царь
 
12.04.14
12:57
Собственно что бы было понятней.
Создаем программно один документ на основе другого

СтруктураПараметров = Новый Структура;
               СтруктураПараметров.Вставить("Основание",Объект.ДокОбъект);
               ФормаАкта = ОткрытьФорму("Документ.АктВыполненныхРабот.Форма.ФормаДокумента",СтруктураПараметров,,Ложь,);


Далее через ФормаАкта.ЛюбойРеквизитФормы можно подставить нужные значения, но вот как тоже сделать с доп реквизитом?
6 Wobland
 
12.04.14
13:01
1. Как к нему обратиться именно как к реквизиту формы
2. Далее через ФормаАкта.ЛюбойРеквизитФормы

а можно повторить вопрос?
7 Просто Царь
 
12.04.14
13:02
Обратиться нужно не к обычному реквизиту а к дополнительному
8 NcSteel
 
12.04.14
13:02
(5)

1. В 1С форму документа/справочник и т.д. записать в принципе невозможно. Так что Вы винимо не понимаете механизмом взаимодействия компонентов платформы.
2. Реквизиты необходимо проставлять не через элементы формы. а непосредственно через реквизиты объекта.
9 Wobland
 
12.04.14
13:03
(7) кто все эти слова?
10 Просто Царь
 
12.04.14
13:03
Имея при этом ссылку на не записанную форму на которую он собственно и выведен
11 NcSteel
 
12.04.14
13:03
(7) Дополнительный хратися в таб части. К нему на прямую и обращайся Объект.ТЧ
12 NcSteel
 
12.04.14
13:03
(10) У формы нет ссылки и форму нельзя записать в принципе.
13 Wobland
 
12.04.14
13:05
предлагаю перестать любить всем мозх и сказать, что хочется иметь на финише
14 Просто Царь
 
12.04.14
13:10
Принцип работы работы платформы понимаю, и прекрасно знаю что записать можно элемент или документ. Попробую объяснить точнее

СтруктураПараметров = Новый Структура;
               СтруктураПараметров.Вставить("Основание",Объект.ДокОбъект);
               ФормаАкта = ОткрытьФорму("Документ.АктВыполненныхРабот.Форма.ФормаДокумента",СтруктураПараметров,,Ложь,);


Далее например
ФормаАкта.Менеджер = ... Можем заменить например менеджера на нужного, а при создании там заполнен текущий пользователь. Так вот в Документе создан штатными средствами конфигурации дополнительный реквизит и вопрос  том, возможно ли его как то заполнить на данном этапе без записи документа, потому как записывать или нет принимает решение пользователь после открытия перед ним этой формы
15 NcSteel
 
12.04.14
13:15
(14) Почему не хотим через объект работать?
16 Просто Царь
 
12.04.14
13:18
(15)А как сработать через объект, если документ не записан?
17 NcSteel
 
12.04.14
13:20
(16) А тут разве есть связь? Вы все же не понимаете взаимосвязи в платформе.
18 Просто Царь
 
12.04.14
13:21
Допустим я что-то и упускаю в этом моменте. Подскажите раз уж так
19 Просто Царь
 
12.04.14
13:28
пробовал и так

НовыйДопРеквизит = ФормаАкта.Объект.ДополнительныеРеквизиты.Добавить();
               НовыйДопРеквизит.Свойство = ВернутьПВХ ("Мастер");
               НовыйДопРеквизит.Значение = Объект.Мастер;


Но поле все равно пустое
20 NcSteel
 
12.04.14
13:33
Посмотри как в УТ 11 закрывается смена. При нажатии кнопки выполняются процедуры по заполнению объекта на сервере. Объект передается на клиента и на клиенте получается форма.
21 Просто Царь
 
12.04.14
13:53
Вот этого то и пытался избежать путем использования стандартной процедуры ввода на основании.
22 Просто Царь
 
12.04.14
13:59
(20) И есть еще одно но, отчет о розничных продажах передается уже записанным
23 Просто Царь
 
12.04.14
15:28
ЛАдно, объект иак объект

НовыйДопРеквизит = ФормаАкта.Объект.ДополнительныеРеквизиты.Добавить();
               НовыйДопРеквизит.Свойство = ВернутьПВХ ("Мастер");
               НовыйДопРеквизит.Значение = Объект.Мастер;


Но как заставить форму отобразить добавленное значение?
24 Просто Царь
 
12.04.14
15:28
&НаСервере
Функция ВернутьПВХ (ИмяПВХ)
    Возврат ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(ИмяПВХ);    
    
КонецФункции
25 Просто Царь
 
15.04.14
09:59
Собственно вопрос решил на половину. Вот код:

Процедура ЗаполнитьАктВРСервер(НовыйДок)
       РеквизитМастер = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Мастер");
       РекМастер = НовыйДок.ДополнительныеРеквизиты.Добавить();
       РекМастер.Свойство = РеквизитМастер;
       РекМастер.Значение = Объект.Мастер;
                        
          НовыйДок.Комментарий = "123654";
КонецПроцедуры

&НаКлиенте
Процедура ВвестиАктВР(Команда)
    СтруктураПараметров = Новый Структура;
            СтруктураПараметров.Вставить("Основание",Объект.ДокОбъект);
            ФормаАкта = ОткрытьФорму("Документ.АктВыполненныхРабот.Форма.ФормаДокумента",СтруктураПараметров,,Ложь,);
            ДанныеФормы = ФормаАкта.Объект;  
            ЗаполнитьАктВРСервер(ДанныеФормы);
            КопироватьДанныеФормы(ДанныеФормы, ФормаАкта.Объект);
            ФормаАкта.ОбновитьОтображениеДанных();
            
    
КонецПроцедуры


Дополнительный реквизит на сервере заполняется, но на форме в дальнейшем поле не заполнено. Как обновить отображение дополнительных реквизитов на форме.
26 Drac0
 
15.04.14
10:03
(25) ОповеститьОбИзменении()
27 Просто Царь
 
15.04.14
10:38
Документ не записан, а туда надо ссылку на измененный объект передавать.
28 Просто Царь
 
15.04.14
11:47
Не уж то никак не обновить?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший