|
Доступ к реквизитам формы | ☑ | ||
---|---|---|---|---|
0
Aldnepr
22.11.16
✎
10:02
|
В форме документа имеются реквизиты, которые не являются реквизитами документа. Как получить к ним доступ и записать туда нужные значения программно? Неужели через регистры сведений. Конкретно - Документы.ЧекККМ.Форма.ВидОплаты= ?//ТипЗначения= СправочникСсылка.ВидыОплатЧекаККМ
|
|||
1
catena
22.11.16
✎
10:13
|
ЭлементыФормы.ВидОплаты.Значение =
|
|||
2
Defender aka LINN
22.11.16
✎
10:16
|
(0) При открытии формы они откуда-то заполняются. Вот туда и пиши
|
|||
3
Остап Сулейманович
22.11.16
✎
10:16
|
(0) Все просто.
Присвоение значения : ИмяРеквизита = Значение; Чтение точно так же через ИмяРеквизита. |
|||
4
Aldnepr
22.11.16
✎
10:53
|
(1) Немного не поняли меня. Я пишу обработку и хочу записать в форму к обращаемому документу , т.е.
Документы.ЧекККМ.ЭлементыФормы -//нет возможности напрямую к ним обратиться |
|||
5
jurayed
22.11.16
✎
10:57
|
(4) Подробнее и понятнее напиши вопрос...
|
|||
6
Aldnepr
22.11.16
✎
10:57
|
(3) Не понял как просто? К реквизиту документа, согласен, а к реквизиту формы ?
|
|||
7
Nzn
22.11.16
✎
10:58
|
Так форму сначала получить надо... а потом обращаться
|
|||
8
Aldnepr
22.11.16
✎
11:00
|
||||
9
Aldnepr
22.11.16
✎
11:07
|
(7) как получить форму подскажите? Когда задаю так:
Ч=Чек.СоздатьДокумент(); Ч.Метаданные().ОсновнаяФормаОбъекта.Форма. //- после этой точки не выпадает список для выбора, значит доступ к форме не получен я так понимаю? |
|||
10
Nzn
22.11.16
✎
11:09
|
ВидОплаты это реквизит
ВидОплаты=Справочники.ВидыОплатЧекаККМ.НайтиПоРеквизиту("ТипОплаты",Перечисления.ТипыОплатЧекаККМ.ПлатежнаяКарта); ТвойЧек.ВидОплаты=ВидОплаты |
|||
11
catena
22.11.16
✎
11:10
|
(9)>как получить форму подскажите?
ПолучитьФорму() |
|||
12
Nzn
22.11.16
✎
11:11
|
(11)
ТвойЧек = Документы.ЧекККМ.СоздатьДокумент(); ТвойЧек.ПолучитьФорму("ФормаДокумента") |
|||
13
catena
22.11.16
✎
11:11
|
(12)Не мне, это к (9)
|
|||
14
Defender aka LINN
22.11.16
✎
11:12
|
(11) Удачи на сервере
|
|||
15
catena
22.11.16
✎
11:16
|
(14)Каков вопрос - таков ответ. Если автору понадобятся подробности, он же нам расскажет.
|
|||
16
Nzn
22.11.16
✎
11:21
|
(14) А сервер при чем... я думала человек на клиенте форму получает)
|
|||
17
Aldnepr
22.11.16
✎
11:22
|
(15) Толстый клиент , если об этом... вот что придумал, так нет?))
ВидОпл=Ч.ПолучитьФорму("ФормаДокумента").ЭлементыФормы.Найти(ВидОплаты); ВидОпл=Справочники.ВидыОплатЧекаККМ.НайтиПоРеквизиту("ТипОплаты",Перечисления.ТипыОплатЧекаККМ.Наличные); |
|||
18
catena
22.11.16
✎
11:23
|
(17)Не взлетит
|
|||
19
catena
22.11.16
✎
11:24
|
ЭлементыФормы.Найти (Controls.Find)
ЭлементыФормы (Controls) Найти (Find) Синтаксис: Найти(<Наименование>) Параметры: <Наименование> (обязательный) Тип: Строка. Наименование элемента формы. |
|||
20
Nzn
22.11.16
✎
11:25
|
(17) Почему к форме то? Заполняй реквизит... потом если нужно получай форму да и открывай ее
|
|||
21
Serg_1960
22.11.16
✎
11:26
|
+(14) Подробность "управляемая форма" автором будет сообщена после сотого поста :)
|
|||
22
Aldnepr
22.11.16
✎
11:27
|
(21) извините,я ж танцевал как мог- написал РЕКВИЗИТЫ ФОРМЫ, а надо было "реквизиты управляемой формы" ?
|
|||
23
Nzn
22.11.16
✎
11:28
|
(22) судя по (8) форма обычная
|
|||
24
Serg_1960
22.11.16
✎
11:28
|
Автор, озвучь ясно и чётко :) У тебя обычные или управляемы формы?
Для платформы 8.3 и управляемых форм есть http://its.1c.ru/db/pubdevguide83#content:1:hdoc По теме: http://its.1c.ru/db/pubdevguide83#content:549:hdoc |
|||
25
Aldnepr
22.11.16
✎
11:31
|
(23) значит обычная) , для этого скрин и выложил.
(24) Доступа к итс нет |
|||
26
Aldnepr
22.11.16
✎
11:32
|
(19) Тип "Строка"...
ВидОпл=Ч.ПолучитьФорму("ФормаДокумента").ЭлементыФормы.Найти("ВидОплаты"); ВидОпл=Справочники.ВидыОплатЧекаККМ.НайтиПоРеквизиту("ТипОплаты",Перечисления.ТипыОплатЧекаККМ.Наличные); так не летит тоже( |
|||
27
Nzn
22.11.16
✎
11:33
|
(25) Почему форме, а не объекту реквизит устанавливаешь?
|
|||
28
Nzn
22.11.16
✎
11:35
|
(26) И желательно все же конфигурацию озвучить, если желаешь что бы помогли
|
|||
29
Serg_1960
22.11.16
✎
11:36
|
(офф)
(25) Для платформы 8.2 есть аналогичный учебник - "1С:Предприятие 8.2. Практическое пособие разработчика. Примеры и типовые приемы" (авторы Радченко Максим Григорьевич и Хрусталева Елена Юрьевна). Я не могу дать ссылку, но ты сам погугли. Там всё ясно и чётко расписано. |
|||
30
Aldnepr
22.11.16
✎
11:38
|
(27) да путаю педали после 7,7. Вот пытаюсь разобраться в этих "реквизитах". Пока понял только, что Есть реквизиты Объекта (док, справочник) а есть Реквизиты формы (еще и управляемой формы теперь выяснилось). Конфигурация УТП для Украины 1,2 (8,3). тыкните меня в код пжлста- это лучший пример)
|
|||
31
catena
22.11.16
✎
11:41
|
(27)"В форме документа имеются реквизиты, которые не являются реквизитами документа. "
(30)Если все-таки реквизиты обычной формы, то там лишних букв не надо. ДокОбъ = ДОкументы[ИмяДок].СоздатьДокумент(); фДокОбъ = ДокОбъ.ПолучитьФорму(); фДокОбъ[ИмяРекв] = "99999"; фДокОбъ.Открыть(); |
|||
32
Nzn
22.11.16
✎
11:46
|
(30)
ТвойЧек = Документы.ЧекККМ.СоздатьДокумент(); ВидОплаты=Справочники.ВидыОплатЧекаККМ.НайтиПоРеквизиту("ТипОплаты",Перечисления.ТипыОплатЧекаККМ.ПлатежнаяКарта); Оплата=ТвойЧек.Оплата.Добавить(); Оплата.ВидОплаты=ВидОплаты; Оплата.Сумма=111111111; ТвойЧек.Организация="ляляля"; ТвойЧек.ВидОперации=Перечисления.ВидыОперацийЧекККМ.Продажа; ТвойЧек.Склад="ляляля"; ТвойЧек.ПолучитьФорму("ФормаДокумента").Открыть(); |
|||
33
Aldnepr
22.11.16
✎
12:04
|
(31) Ну вот! Как всё просто... никогда б не догадался,строил бы до сих пор 3-х этажный спагетти. Спасибо)
фДокОбъ = ДокОбъ.ПолучитьФорму(); фДокОбъ["ВидОплаты"] = "Наличные"; |
|||
34
Aldnepr
22.11.16
✎
14:29
|
(31) Поспешил радоваться- дело в том, что моя обработка создаёт ряд новых документов (прописан цикл) бывает что и 30 например, и каждый из них открывается, благодаря этой строке
фДокОбъ.Открыть(); А не открыв форму ничего не записывается. Как это обойти? |
|||
35
catena
22.11.16
✎
14:30
|
(34)Реквизиты формы живут только пока жива форма. Вот такой вот косяк платформы...
|
|||
36
Aldnepr
22.11.16
✎
14:49
|
(35) т.е. никак не избежать открытия? А возможно сделать,так:
фДокОбъ.Открыть(); фДокОбъ.Закрыть(); и чтобы во время закрытия формы, когда выскакивает формочка-вопрос "сохранить изменения", чтобы программно "нажалась" кнопка "да" , т.е. "сохранить" и тогда форма закроется... |
|||
37
catena
22.11.16
✎
14:51
|
(36)Смысл? Может от задачи плясать?
|
|||
38
Fish
22.11.16
✎
14:53
|
(36) Уже давно бы посмотрел, куда у тебя пишется этот реквизит формы. Форма тут не нужна. Совсем.
|
|||
39
Nzn
22.11.16
✎
15:26
|
(34) Если бы была озвучена задача, то ответы бы давали соответственно ей, а так гадание на кофейной гуще
|
|||
40
Aldnepr
22.11.16
✎
15:27
|
(38) пока не знаю где и посмотреть. Ни в ПриЗаписи() ни ПередЗаписью() этого реквизита нет
единственно что нашел вот: // Процедура выполняет необходимые действия при изменении реквизита "ВидОплаты". // Процедура ПриИзмененииВидаОплаты() Если Оплата.Количество() = 0 Тогда СтрокаОплаты = Оплата.Добавить(); Иначе СтрокаОплаты = Оплата[0]; КонецЕсли; СтрокаОплаты.ВидОплаты = ВидОплаты; ПересчитатьАвтоматическиеСкидки(); КонецПроцедуры // ПриИзмененииВидаОплаты() |
|||
41
Aldnepr
22.11.16
✎
15:28
|
(39) Задача вроде озвучена и проиллюстрирована (8). При програмном создании документа ЧекККМ необходимо записать "ВидОплаты= Наличные"
|
|||
42
Nzn
22.11.16
✎
15:39
|
Посмотри (32)
|
|||
43
Nzn
22.11.16
✎
15:40
|
измени ПлатежнаяКарта на наличные
|
|||
44
Aldnepr
22.11.16
✎
15:49
|
(42) Я понял, результат будет как и в (31) скорее всего, только длиннее, но опять же- открытая форма 30-и доков....
ТвойЧек.ПолучитьФорму("ФормаДокумента").Открыть(); |
|||
45
Fish
22.11.16
✎
15:51
|
(40) А оплата - это ТЧ? Тогда получается, что у тебя вид оплаты пишется в реквизит ТЧ. Вот сразу туда и пиши.
|
|||
46
Fish
22.11.16
✎
15:52
|
(44) Ну так не открывай форму, а просто записывай документ.
|
|||
47
Nzn
22.11.16
✎
15:56
|
(44) код это пример можно форму не открывать а просто записывать...
|
|||
48
Aldnepr
22.11.16
✎
15:57
|
(45) если ТЧ- табличная часть, то нет см. (8)
(46) если не открывать форму, то ничего не записывается, потому что видимо- (35) |
|||
49
Nzn
22.11.16
✎
16:00
|
у тебя реквизит формы связан с реквизитом таб части. см (40)
|
|||
50
Nzn
22.11.16
✎
16:00
|
СтрокаОплаты = Оплата.Добавить();
|
|||
51
Fish
22.11.16
✎
16:00
|
(48) 1. На картинке в (8) ТЧ не видно.
А чтобы записалось, надо в коде (32) вместо последней строки написать: ТвойЧек.Записать(), т.к. без команды записи ничего не запишешь. Неожиданно, не правда ли? |
|||
52
Nzn
22.11.16
✎
16:02
|
у тебя на к.8 есть выбор списком выбери и будет тебе счастье
|
|||
53
Nzn
22.11.16
✎
16:03
|
если одна строка ТЧ то ТЧ не видно
|
|||
54
Aldnepr
22.11.16
✎
16:08
|
(51) Та ладно вам, не такой уже тупой. Конечно Записать() прописано дальше, но если не открыть перед этим форму, то ничего и не запишется
|
|||
55
Fish
22.11.16
✎
16:16
|
(54) Ну значит, не то заполняешь. Показывай свой код целиком (с учётом (32)).
|
|||
56
Aldnepr
22.11.16
✎
16:37
|
Ч=Чек.СоздатьДокумент();
Ч.Дата=ТекущаяДата(); Ч.ВидОперации=Перечисления.ВидыОперацийЧекККМ.Продажа; Ч.КассаККМ=Справочники.КассыККМ.НайтиПоКоду("23"); Ч.Организация=Справочники.Организации.НайтиПоКоду("2"); Ч.Склад=Справочники.Склады.НайтиПоКоду("000000001"); Ч.Контрагент=Кинц; фДокОбъ = Ч.ПолучитьФорму(); фДокОбъ["ВидОплаты"] = "Наличные"; фДокОбъ.Открыть(); Ч.Записать(); Сообщить("Создан V8 "+Ч); |
|||
57
Fish
22.11.16
✎
16:38
|
(56) Ещё раз смотрим (32).
|
|||
58
Fish
22.11.16
✎
16:39
|
(56) И почему ты в ВидОплаты пихаешь строку, если на картинке в (8) там совсем другой тип?
|
|||
59
Nzn
22.11.16
✎
16:41
|
ТвойЧек = Документы.ЧекККМ.СоздатьДокумент();
ВидОплаты=Справочники.ВидыОплатЧекаККМ.НайтиПоРеквизиту("ТипОплаты",Перечисления.ТипыОплатЧекаККМ.Наличные); Оплата=ТвойЧек.Оплата.Добавить(); Оплата.ВидОплаты=ВидОплаты; Оплата.Сумма=111111111; ТвойЧек.Организация=Справочники.Организации.НайтиПоКоду("2"); ТвойЧек.ВидОперации=Перечисления.ВидыОперацийЧекККМ.Продажа; ТвойЧек.Склад=Справочники.Склады.НайтиПоКоду("000000001"); Попытка ТвойЧек.Записать(); Исключение ТвойЧек.ПолучитьФорму("ФормаДокумента").Открыть(); КонецПопытки |
|||
60
Nzn
22.11.16
✎
16:44
|
и проверяй что заполнилось, а что нет
|
|||
61
Мимохожий Однако
22.11.16
✎
16:46
|
(60) Он отладчиком пользоваться не умеет.
|
|||
62
Aldnepr
22.11.16
✎
16:51
|
(60) Да так и есть, взлетело)). Вот не послушал женщину, и получил всё наоборот!)
|
|||
63
Aldnepr
22.11.16
✎
16:59
|
(60) Спасибо забыл сказать.Не каждый тут готов столько возиться с такими вопросами. То к отладчику норовят послать. а то и вообще
|
|||
64
Мимохожий Однако
22.11.16
✎
17:10
|
(63) К отладчику послать, это лучше чем женщине.
|
|||
65
Nzn
22.11.16
✎
17:42
|
(62) я программист лет 15 и 10 из достаточно высокооплачиваемый)))
|
|||
66
Nzn
22.11.16
✎
17:43
|
(64) )))))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |