Имя: Пароль:
1C
 
Создание документа по наименованию из заданного списка
0 podkovka_
udachi
 
02.05.15
12:54
У документа личное дело есть реквизит "наименования документов" и  кнопка добавить на форме. При нажатии на эту кнопку должна открываться форма нового документа, наименование которого выбрано пользователем.
Как обратиться к этому списку программно?
Пока реализовано так, но способ не является универсальным, потому что наименования документов - это справочник, пользователь может внести новые наименования документов, а код к ним прописан уже не будет:

Процедура ДобавитьНажатие(Элемент)
новДок = Документы.СправкаОСуммахПлатежейЗаЖКУ.СоздатьДокумент();
новДок.Заполнить(ДокументОбъект.Ссылка);
новдок.ПолучитьФорму("ФормаДокумента").ОткрытьМодально();        
КонецПроцедуры
1 RomanYS
 
02.05.15
13:05
непонятна

можно так
Документы["СправкаОСуммахПлатежейЗаЖКУ"].СоздатьДокумент();
или
Документы[ИмяДокумента].СоздатьДокумент();
2 podkovka_
udachi
 
02.05.15
13:09
Какая функция квадратных скобок?
3 ДенисЧ
 
02.05.15
13:13
(2) А зачем тебе знать это? Пиши именно так...
4 podkovka_
udachi
 
02.05.15
13:15
(3) Затем чтобы разобраться и возможно применять в будущем, первый раз сталкиваюсь.
5 DrShad
 
02.05.15
13:16
(4) *рукалицо*
вообще-то это итератор коллекции
6 ДенисЧ
 
02.05.15
13:16
(4) Чтобы разобраться - нужно прочитать документацию по используемому продукту
7 ДенисЧ
 
02.05.15
13:16
(5) шта?
8 DrShad
 
02.05.15
13:23
(7)  не угадал? ну ты же мне СП так и не вернул
9 podkovka_
udachi
 
02.05.15
13:23
Документы["СправкаОСуммахПлатежейЗаЖКУ"].СоздатьДокумент();
Создание документа происходит находясь на форме документа "личное дело". В коде нужно как то универсально обратиться к полю ввода  с типом справочникСсылка.видыДокументов, а не прописывать в коде наименования документов   типа этого: "СправкаОСуммахПлатежейЗаЖКУ"
10 podkovka_
udachi
 
02.05.15
13:27
{Документ.ЛичноеДело.Форма.ФормаДокумента(83)}: Получение элемента по индексу для значения не определено
новДок = Документы[ИмяДокумента].СоздатьДокумент();



Вот такая ошибка у меня
11 ДенисЧ
 
02.05.15
13:27
А дай-ка угадаю....
Управляемые формы, наверняка?
Ну тут точно без документации не обойтись...
12 podkovka_
udachi
 
02.05.15
13:31
(11) у меня 8.1
13 jsmith82
 
02.05.15
13:32
Царь Леонид орущий
14 jsmith82
 
02.05.15
13:32
Я поражаюсь некоторым персонам. Если вы кодеры, ёмаё, нельзя вопрос грамотно сформулировать?
15 ДенисЧ
 
02.05.15
13:33
Во мне медленно, но неотвратимо просыпается Станиславский...
16 podkovka_
udachi
 
02.05.15
13:36
я студентка, далеко не профессионал...
17 podkovka_
udachi
 
02.05.15
13:36
и уж тем более не кодер
18 DrShad
 
02.05.15
13:38
(17) срочно замуж, да и забудьте уже про 8.1
19 ДенисЧ
 
02.05.15
13:39
(16) (17) Тогда зачем тебе это всё, раз не кодер?
20 podkovka_
udachi
 
02.05.15
13:41
(19) диплом пишу=(
21 DrShad
 
02.05.15
13:45
а почему на 8.1?
22 ДенисЧ
 
02.05.15
13:45
Узнаю студентов...
Начать писать диплом в мае... Это по-нашему...
А ничего, что его надо было начинать минимум в январе, если не в октябре? ))))))))
23 podkovka_
udachi
 
02.05.15
13:46
Попробую описать проблему еще раз. Есть форма документа личное дело. На ней расположены поле "наименование документа" (со ссылкой на соответствующий справочник) и кнопка добавить, по нажатию на которую должна открываться форма нового документа, которую выбрал пользователь.
то есть в моем коде:
Процедура ДобавитьНажатие(Элемент)
новДок = Документы.СправкаОСуммахПлатежейЗаЖКУ.СоздатьДокумент();
новДок.Заполнить(ДокументОбъект.Ссылка);
новдок.ПолучитьФорму("ФормаДокумента").ОткрытьМодально();        
КонецПроцедуры


СправкаОСуммахПлатежейЗаЖКУ - нужно заменить обращением на это поле "наименование документа".
24 podkovka_
udachi
 
02.05.15
13:48
(21) потому что всю универскую жизнь пользовались только этой версией, в дальнейших возникают проблемы с клиентом и сервером.  не научились , увы.
(22) Начала давно сейчас села завершать
25 jsmith82
 
02.05.15
13:58
подковка удачи, если хошь, сделаю всё по тим вью
26 jsmith82
 
02.05.15
13:58
пиши в асю
27 RomanYS
 
02.05.15
14:03
попробуй
новДок = новый("ДокументОбъект."+ИмяДокумента);
28 ДенисЧ
 
02.05.15
14:04
(27) Шта??
29 RomanYS
 
02.05.15
14:05
(28) проверь
30 RomanYS
 
02.05.15
14:06
+(29) на 8.3 тоже должно работать)
31 RomanYS
 
02.05.15
14:07
(28) сам я так никогда не делаю ))
32 RomanYS
 
02.05.15
14:09
(28) и в твоем любимом СП это задокументировано)))
33 ДенисЧ
 
02.05.15
14:10
34 jsmith82
 
02.05.15
14:11
пестец. чо, новый конструктор появился?
35 podkovka_
udachi
 
02.05.15
14:11
{Документ.ЛичноеДело.Форма.ФормаДокумента(83)}: Тип не определен (ДокументОбъектСправкаОСуммахПлатжейЗаЖКУ)
новДок = новый("ДокументОбъект"+ИмяДокумента);
36 jsmith82
 
02.05.15
14:12
(35) я те говорю, пиши мне в асю. всё сделаю.
37 RomanYS
 
02.05.15
14:12
(33) ты кавычки криво поставил
(34)всегда был
(35) точку забыла
38 ДенисЧ
 
02.05.15
14:13
(35) Ты меньше слушай советчиков разных, лучше документацию читай...
39 ДенисЧ
 
02.05.15
14:14
У меня, кстати, и через [] работает
40 RomanYS
 
02.05.15
14:16
(39) у меня 8.1 нет под рукой, но мне кажется должно было работать. Но (10) она же не придумала
41 RomanYS
 
02.05.15
14:21
(39) может у нее в контексте есть реквизит с именем "Документы"
42 DrShad
 
02.05.15
14:37
(35) не слушай их они все пьяные, а ты забыла точку между словами поставить
43 Drac0
 
02.05.15
14:37
(23) и чем механизм ввода на основании не устраивает?
44 podkovka_
udachi
 
02.05.15
15:03
Все спасибо, мне помогли уже
45 podkovka_
udachi
 
02.05.15
15:04
ИмяДокумента = ЭлементыФормы.НаименованиеДокументов.Значение.Наименование;
    новДок = Документы[ИмяДокумента].СоздатьДокумент();
    новДок.Заполнить(ДокументОбъект.Ссылка);
    новдок.ПолучитьФорму("ФормаДокумента").ОткрытьМодально();
46 Otkr
 
02.05.15
17:52
(45) Ай, замуж выходишь за помошника?
47 НП
 
02.05.15
19:18
Вообще-то, вопрос странный. Документы между собой сильно отличаются, для каждого нужна отдельная процедура заполнения.
48 podkovka_
udachi
 
03.05.15
15:51
(46) быстрые вы какие)