Имя: Пароль:
1C
 
Как изменить заголовок реквизита в форме документа?
,
0 RustamAliev
 
30.03.24
15:02
Я новичок в 1с! В документе есть реквизит "Заказ". Нужен код который при выборе документа ЗаказПокупателю изменит заголовок реквизита на ЗаказПокупателю, а если выбран документ ЗаказПоставщику то заголовок ЗаказПоставщику.
1 Волшебник
 
30.03.24
15:09
Оставьте "Заказ"
2 RustamAliev
 
30.03.24
15:34
как понять?
3 Новый1сник2
 
30.03.24
15:36
(2) Заголовок "Заказ" у реквизита
4 RustamAliev
 
30.03.24
15:38
(3) Да
5 RustamAliev
 
30.03.24
15:40
(1) Да, я могу оставить так, но хочется по эстетичнее
6 Волшебник
 
30.03.24
15:59
(5) "Заказ" нормально
7 Новый1сник2
 
30.03.24
16:00
(5) Элементы.Заказ.Заголовок = "Заказ покупателя"; попробуй так,
в процедуре при изменения твоего реквизита.
8 Новый1сник2
 
30.03.24
16:05
+ еще условие нужно добавить на тип реквизита
9 Dmitrii
 
гуру
30.03.24
16:12
(0) А зачем?...

Когда пользователь выбрал/изменил значение реквизита, он и так видит что там в этом поле выбрано - Заказ покупателя или Заказ поставщику.

Если уж так сильно хочется, то в обработчиках событий ПриИзменении для элемента формы Заказ, ПриСозданииНаСервере и ПриЧтенииНаСервере для формы пропишите что-то вроде такого


Если ЗначениеЗаполнено(Обект.Заказ) Тогда
  Если ТипЗнч(Обект.Заказ) = Тип("ДокументСсылка.ЗаказПоставщику") Тогда
    Элементы.Заказ.Заголовок = "Заказ поставщику";
  ИначеЕсли ТипЗнч(Обект.Заказ) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
    Элементы.Заказ.Заголовок = "Заказ покупателя";
  Иначе
    Элементы.Заказ.Заголовок = "Заказ";
  КонецЕсли;
Иначе
  Элементы.Заказ.Заголовок = "Заказ";
КонецЕсли;


Всё это можно сделать в расширении для соответствующих событий @После.

В приведённом коде могут быть ошибки.
10 Новый1сник2
 
30.03.24
16:16
(9) ТС при изменении заказа нужно менять заголовок, а не ПриСозданииНаСервере. хотя проще оставить просто "Заказ".
11 RustamAliev
 
30.03.24
16:16
(7) Спасибо что ответил. Мог бы помочь с написанием условия?
12 RustamAliev
 
30.03.24
16:21
(9) Спасибо, ваш код сработал
13 RustamAliev
 
30.03.24
16:22
(10) Вам тоже спасибо
14 Новый1сник2
 
30.03.24
16:23
(11) условие в (9). нужно этот код добавить в процедуру при изменении твоего реквизита
15 Dmitrii
 
гуру
30.03.24
16:25
(10) А что будет в заголовке при открытии уже заполненного документа, если прописать код только в ПриИзменении?
16 Новый1сник2
 
30.03.24
16:29
(15) согласен, при открытии тоже нужно добавить, или при создании на сервере
17 Волшебник
 
30.03.24
17:19
(9) Я же говорил, что просто "Заказ" нормально. Зачем столько бессмысленного программного кода?

Теперь там будет дважды "Заказ поставщику: Заказ поставщику №35566". Некрасиво получится. Много программного кода. Много места на форме. И зачем всё это?
18 Dmitrii
 
гуру
30.03.24
17:23
(16) В ПриСозданииНаСервере - для нового, еще на записанного объекта (заполненного на основании, например). Можно добавить условие, чтобы код выполнялся только для нового объекта (Объект.Ссылка = Документы.МойДокумент.Пустаяссылка()).
В ПриЧтенииНаСервере - для уже существующего записанного объекта, когда форма открывается или обновляется/перечитывается (по кнопке "Обновить").
19 Волшебник
 
30.03.24
18:37
А ещё название документа может оказаться длинным, например, "Заказ на производство" и в надпись не влезет. Было же нормальное "Заказ"... 🤦
20 Garykom
 
гуру
30.03.24
21:00
(0) >В документе есть реквизит "Заказ"

Неправильный реквизит
Переименовать в Основание... или ДокументОснование
2 + 2 = 3.9999999999999999999999999999999...