Имя: Пароль:
1C
1С v8
Программное изменение формы документа
0 Gangar
 
29.10.17
16:33
Доброго дня, уважаемые.

Дано:
-некая "нетленка" - в её настройках в пользовательском режиме указывается регистр накопления и вид движений, для определения, формы каких документов надо изменять;
-подписка на событие ОбработкаПолученияФормы, вызывающая форму обработки;
-изменения непосредственно форм и модулей документов запрещены, расширения не подходят.

Как добавить реквизит и элемент в форму нужного документа из обработки?
1 h-sp
 
29.10.17
17:40
(0) синтакс помощником пользуйтесь.
2 Gangar
 
29.10.17
19:04
(1) ткните, пожалуйста, носом
3 h-sp
 
29.10.17
20:17
УправляемаяФорма.ИзменитьРеквизиты (ManagedForm.ChangeAttributes)
УправляемаяФорма (ManagedForm)
ИзменитьРеквизиты (ChangeAttributes)
Синтаксис:

ИзменитьРеквизиты(<ДобавляемыеРеквизиты>, <УдаляемыеРеквизиты>)
Параметры:

<ДобавляемыеРеквизиты> (необязательный)

Тип: Массив.
Массив, содержащий объекты типа РеквизитФормы.
Добавлять можно реквизиты верхнего уровня и вложенные реквизиты, являющиеся колонками.
К добавленным реквизитам верхнего уровня из модуля можно обращаться только с помощью конструкции ЭтотОбъект.<Имя реквизита>.
<УдаляемыеРеквизиты> (необязательный)

Тип: Массив.
Массив, содержащий строки, описывающие пути к удаляемым реквизитам.
Удалять можно только ранее программно добавленные реквизиты.
Описание:

Изменяет структуру реквизитов формы.
Сначала выполняется удаление реквизитов. Таким образом массивы добавляемых и удаляемых реквизитов могут содержать реквизиты с одинаковым путём.
Внимание! Действия добавления и удаления выполняются за один вызов. Следует учитывать, что операция изменения состава реквизитов является ресуркоемкой, поэтому операции изменения состава реквизитов формы выполняются пакетным образом.

Доступность:

Сервер, мобильное приложение(сервер).
--------------------------------------------------------------------------------

     Методическая информация
4 Gangar
 
29.10.17
20:33
(3) это работает в модуле формы. а изменить форму надо из обработки
5 Филиал-msk
 
29.10.17
21:23
(4) Еще один писатель не читатель...

Это - Метод. Управляемой. Формы. Его. Можно. Позвать. Через точку. От. Переменной.

Если тебе так будет понятней.
6 Филиал-msk
 
29.10.17
21:24
Как ты передашь форму на сервер, это уже второй вопрос
7 Филиал-msk
 
29.10.17
21:44
(3) > ресуркоемкой

Хе. Надо будет банде с Дмитровского Шоссе про суркоемкость написать (:
8 Gangar
 
29.10.17
22:09
(6) вопрос именно как передать её на серевер
9 Cyberhawk
 
29.10.17
22:16
"вопрос именно как передать её на серевер" // Кого "ее" и откуда?
10 Gangar
 
29.10.17
22:37
(9) попробую еще раз - возможно не слишком понятно выразился ранее.

1. делаем подписку на событие ОбработкаПолученияФормы, которая будет вызываться для ВСЕХ документов.
2. определяем, вызван ли нужный документ.
3. если вызван нужный - заменяем форму документа на форму внешней обработки.
4. из внешней обработки вызываем форму нужного документа.
5. как-то передаём управляемую форму нужного документа с клиента на сервер, что бы применить метод ИзменитьРеквизиты.

вопрос в том - как обратиться к методу ИзменитьРеквизиты, если управляемую форму передать на сервер нельзя.
11 Kuzen
 
30.10.17
04:39
(10) можно. к примеру в присозданиинасервере сделай вызов серверной процедуры и передай в качестве параметра «этаформа»
12 Cyberhawk
 
30.10.17
08:54
(10) Нигде в перечисленных пунктах у тебя нет объекта формы на сервере, так что держи карман шире
13 h-sp
 
30.10.17
09:31
(10) а зачем вызывать форму документа. Можно ведь создать точно такую же форму во внешней обработке.
14 Segate
 
30.10.17
09:38
(10) Зачем тебе менять реквизиты формы, когда ты ее все равно не открываешь. А если тебе надо менять реквизиты объекта а не формы, то он, !ВНЕЗАПНО!, есть на сервере. так что ты можешь менять его хоть до посинения.
15 Gangar
 
30.10.17
10:22
(11) я писал
-изменения непосредственно форм и модулей документов запрещены, расширения не подходят.

(13) "нетленка" планируется интегрируемой со всеми конфигурациями - рисовать формы всех документов не вариант.

(14) мне надо добавить реквизит формы и добавить элемент формы, привязанный к реквизиту. и обработчики создать. объект мне не нужен, совсем.
16 h-sp
 
30.10.17
10:32
(15) зачем нужно создавать реквизит формы? Можно создать точно такой же реквизит во внешней обработке.
17 FIXXXL
 
30.10.17
10:36
(15) т.е. ты хочешь свой нетленный кусок реквизитов приделать к любой типовой форме?
посмотри в сторону БСП, сейчас в типовых практически все формы ПриСозданииНаСервере "дергают" процедуры общего модуля
может сможешь через какой-нить Переопределяемый "подрубиться"
18 Gangar
 
30.10.17
10:57
(16) и что мне это даст? мне надо заполнять реквизит в форме документа.
19 Gangar
 
30.10.17
10:57
(17) спасибо, посмотрю.
20 h-sp
 
30.10.17
11:07
(18) если у вас полностью типовые формы, то зачем туда лепить свои какие-то реквизиты?
21 Gangar
 
30.10.17
12:46
(20) а зачем вообще дорабатывают 1с под требования заказчика? пусть не выеживается и пользуется типовыми - так?