Имя: Пароль:
1C
1С v8
Создание кнопки с изменяющимся названием
, ,
0 Me-chtatel
 
04.12.15
23:32
Добрый день!
Подскажите пожалуйста по такому вопросу.
Во всех стандартных конфах 1с есть кнопка "ввести счет фактуру" на формах документов. При этом после создания счета-фактуры там уже отображается ссылка на сам документ.
Как получить ссылку я понял:
создал на форме поле, указал вид: "Поле надписи", поставил галочку "гиперссылку", прописал в событиях по нажатию процедуру создания договора.
В результате никак не пойму, как добиться отображения фразы "ввести документ" на форме, когда нет еще документа?

Что я не так сделал? ((( Обыскал все форумы, но нигде не могу найти хотя бы намека
1 oslokot
 
04.12.15
23:38
надо не форумы штудировать, а глянуть хотя бы модуль формы РТиУ в бп-шке
2 Me-chtatel
 
04.12.15
23:45
Я догадался. Но ничего там не понял ((( Можете разъяснить на пальцах?
3 Записьдампа
 
04.12.15
23:47
А кстати - "все форумы", это какие?
4 Me-chtatel
 
04.12.15
23:50
Гугл и яндекс )))
5 Записьдампа
 
04.12.15
23:51
Понятно. Я думал и правда, народ куда-то еще ходит и что-то читает.

Ну, если на пальцах, тогда средний )))
6 Записьдампа
 
04.12.15
23:53
Про метод "Заголовок" форумы читай...
7 RomanYS
 
04.12.15
23:53
поставь точку останова и посмотри какие поля есть у ЭлементыФормы.ТвояКнопка, далее смотришь описание в СП и меняешь нужное.
8 Me-chtatel
 
04.12.15
23:53
Очень смешно. Спасибо.
9 Me-chtatel
 
04.12.15
23:54
это было к (5)
10 Записьдампа
 
04.12.15
23:54
Тьфу, метод... Свойство же
11 Записьдампа
 
04.12.15
23:54
(8) Ну ты первый начал
12 Me-chtatel
 
04.12.15
23:57
Про метод ничего не понял.
С точкой останова сейчас попробую, спасибо.

А с точки зрения "правильного программирования" верно, что я использую реквизит формы "поле", а не "кнопка"?
13 RomanYS
 
05.12.15
00:04
(12) с точки зрения "правильного программирования" это вопрос не принципиальный.

про метод:
Чтото.УстановитьЗаголовок("Заголовок");//это метод
Чтото.Заголовок = "Заголовок";//это свойство
14 Me-chtatel
 
05.12.15
00:13
Или я дурак, или лыжи не едут....
В отладке показало:
ЭлементыФормы    {(1,1)}: Переменная не определена (ЭлементыФормы)
15 Записьдампа
 
05.12.15
00:16
А, у тя УФ. Все проще. Поле с видом "Поле надписи", которое ты добавил на форму, связано с данными. С какими?
16 RomanYS
 
05.12.15
00:17
(14) Если УФ - то Элементы.
В общем случае можно начать с ЭтаФорма.
17 Me-chtatel
 
05.12.15
00:18
Да УФ. на обычных все работает, а я как раз пытаюсь форму на УФ перенести.
Поле надписи связано с реквизитом документа, который соответственно ссылается на на объект конфигурации Документ Услуги оказанные
18 Me-chtatel
 
05.12.15
00:20
Да. нашел, через Элементы, но пройдя по адресу:

ДокументАктВыполненыхРабот    ПолеФормы    ПолеФормы,
не нашел никакого внутри поля типа "Значение" или тому подобное. А получается, раз оно Неопределено, у меня ничего на форму и не выводится
19 Записьдампа
 
05.12.15
00:21
Отвяжи от реквизита документа, привяжи к строковому реквизиту формы. При создании и при изменении присваивай реквизиту формы нужное
20 Me-chtatel
 
05.12.15
00:23
Есть поле "Реквизит1" созданное как строковое.
Но его не вижу через Элементы.Реквизит1
21 Записьдампа
 
05.12.15
00:27
Эхбля...

Элементы - это элементы управления, который отображают данные. Там указывается как отображать.
Элементы привязаны к данным. Данные - это реквизиты объекта, связанные с данными в базе или реквизиты формы, не связанные с данными базы. К ним можно обращаться в контексте формы как к обычным переменным. В них указывается что отображать.

Все форумы он перечитал, трепло... =)
22 RomanYS
 
05.12.15
00:29
всё работает

    Элементы.Декорация1.Заголовок = "Декорация1";
    Элементы.Реквизит1.Заголовок = "ЗаголовокРеквизит1";
    Реквизит1 = "_Реквизит1";
    //получается "ЗаголовокРеквизит1:_Реквизит1"
23 Me-chtatel
 
05.12.15
00:29
Нет читать я читал. Только я не говорил что я понял...

Форма.ФормаДокумента1.Форма(388)}: Поле объекта недоступно для записи (Поле1)
    Элементы.Поле1 = "вывести форму";

Я то, что ты описал понима... но
24 Me-chtatel
 
05.12.15
00:30
Кажется я начинаю догадываться. Я мог обратиться к реквизиту напрямую? и написать туда что угодно?
25 RomanYS
 
05.12.15
00:30
(24) бинго
26 Записьдампа
 
05.12.15
00:32
(22) В УФ через Заголовок не надо, это внезапное лишнее обращение к серверу будет.
27 RomanYS
 
05.12.15
00:33
(26) почему?
28 Записьдампа
 
05.12.15
00:33
ПолеФормы (FormField)
Заголовок (Title)
Использование:

Чтение и запись.
Описание:

Тип: Строка.
Заголовок к полю. Пустая строка означает автоматическое определение. Для отключения вывода заголовка следует установить свойство ПоложениеЗаголовка в значение Нет.

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

Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер).
Изменение свойства на клиенте требует обращения к серверу.
29 Me-chtatel
 
05.12.15
00:33
Вооот! Именно этого я никак не мог и понять...

Ура, процедура запускается. С кучей правда новых ошибок, но это надеюсь будет уже проще.

Спасибо всем за оперативность. Я честное слово весь день сегодня над этим голову ломал ((((
30 Me-chtatel
 
05.12.15
00:35
Да нет, мне нужно только:

Реквизит1 = "вывести форму";


Но вот еще момент которого я не понимаю:
Я смогу к этим реквизитам из других документов запросом обратиться?
31 RomanYS
 
05.12.15
00:38
(28) да уж... теперь возник вопрос: зачем они так сделали ;)? (30) Запросом только к реквизитам записанного документа, реквизиты формы в БД не сохраняются
32 Записьдампа
 
05.12.15
00:40
(30) Нет, так как они не связаны с данными базы. Они существуют только в текущей форме.

У тебя должны быть два места хранения в форме - реквизит, связанный с данными (как ты делал в начале) и реквизит формы типа строка, не связанный с базой. Первый хранит значение - ссылку, которое записывается и хранится. Второй содержит "представление", которое должно формироваться программно при создании формы и при изменении ссылки.
33 Записьдампа
 
05.12.15
00:42
(31) Чужая голова - потемки =)

В тестовой 8.3.7, где они лайаутер новый прикрутили, hippo который, вроде поправлено.
34 Me-chtatel
 
05.12.15
00:42
А значит нормально, если создав документ я его буду писать и в реквизит формы и в реквизит документа?
Я решил в начале, что это некорректно.
35 Me-chtatel
 
05.12.15
00:43
Еще раз огромное спасибо.
36 Записьдампа
 
05.12.15
00:45
(34) Нормально. В реквизит формы ты будешь писать представление документа. При присвоении ссылки он автоматом приведет тебе ее строке. Но никто не мешает написать туда свое - в частности "Ввести документ", если документа еще нет.