Имя: Пароль:
1C
1С v8
Расширения. Реквизиты и элементы формы.
,
0 LavSug
 
23.01.20
13:02
Ткните носом, что-то туплю.
1. Перенес справочник в расширение.
2. Добавил реквизит справочника.
3. Перенес форму элемента в расширение.
4. Добавил на форму в расширении поле ввода и указал путь к новому реквизиту.
5. Повесил на форму в расширении событие ПриСозданииНаСервере_После. Не могу обратиться через ЭтаФорма ни к своему элементу, ни к своему реквизиту.
6. Повесил на форму в расширении событие ПриОткрытии_После. Не могу обратиться через ЭтаФорма ни к своему элементу, ни к своему реквизиту.

Где я туплю? Как мне использовать на форме необходимое мне поле.
ПыСы: программно тоже добавлял, не видит и все тут...
1 LavSug
 
23.01.20
17:27
1. Поставил последнюю платформу 8.3.16.1148
2. Добавил реквизит Объект для заимствованной формы.
Не получается обратиться к добавленному элементу....

Что не так-то?!?!
2 pechkin
 
23.01.20
17:28
что значит "не могу" ?
3 LavSug
 
23.01.20
17:30
(2) В обработчике событий формы не могу обратиться к Элементы.МоеПолеРеквизита...
4 LavSug
 
23.01.20
17:30
(2) Моего поля нет в списке элементов формы:(
5 LavSug
 
23.01.20
17:32
В обработчике ПриОткрытииПеред нет элемента формы Элементы.МоеПолеРеквизита...
6 LavSug
 
23.01.20
17:33
Явно где-то я туплю... Режим совместимости конфигурации и расширения 8.3.12...
7 LavSug
 
23.01.20
17:45
Если программно пытаюсь добавить 2 раза Элемент с одинаковым именем, оно дает ошибку...
8 pechkin
 
23.01.20
17:47
реквизит добавил, а элемент добавил?
9 pechkin
 
23.01.20
17:47
имя элемента совпадает с именем реквизита?
10 LavSug
 
23.01.20
17:50
(8) да (9) пробовал и так, и так...
В какой момент формируется список элементов?
11 LavSug
 
23.01.20
17:51
Он видит все элементы конфигурации и не видит элементы расширения (только поля ввода), группы полей расширения видит...
12 Фрэнки
 
23.01.20
18:38
(11) имхо, первая ошибка - режим совместимости блокирует тебе возможности более продвинутых платформ.

Но, принципиальная ошибка в том, что реквизит непосредственно добавляется к элементу! Не надо так делать. Создай свой объект. Свяжи свой объект по ссылке с типовым объектом и делай с ним всякую фигню.

А разбираться, что там не там расширилось, где какая форма не перешла в форму - оно можно, конечно, только бесперспективно. имхо.
13 Сияющий в темноте
 
23.01.20
18:46
проще или программно добавлять при создании или использовать доп.реквтзиты.
14 LavSug
 
23.01.20
21:44
(13) В какой процедуре? ПриСозданииНаСервере?
15 LavSug
 
23.01.20
22:22
(11) Декорации тоже показывает
16 LavSug
 
23.01.20
22:27
Если реквизит добавить к форме в расширении и привязать к нему элемент, то обращение проходит. Не работает когда путькданным вида "Объект.Реквизит"... из-за чего это может быть?
17 KoZuB
 
24.01.20
02:27
(1) Что значит "добавил реквизит Объект"? Вручную ввел? Или заимствовал?
18 Сергиус
 
24.01.20
02:52
(0)В структуре реквизитов формы в Объект, если раскрыть его состав, твой реквизит присутствует?
19 Сергиус
 
24.01.20
02:53
+(18) Скорее всего его там нет, судя по (16). Попробуй тогда на Объект, правой клавишей мыши, Добавить в расширение.
20 LavSug
 
24.01.20
08:56
(18) Есть... Более того, в отладчике к реквизиту обратиться можно. А к элементу нельзя...
21 Фрэнки
 
24.01.20
09:02
(20) то, что в отладчике можно - это ни разу не показательно. Отладчик работает в контексте исполнения.
А тебя работа просто в толстом клиенте в конфигураторе, средствами конфигуратора и конструкторами конфигуратора - что-то эти конструкторы видят, что-то не видят.

Что там выше о режимах совместимости установленных для основной базы и для расширения было? 8.3.12 - вроде нормально. Может оно в своих версиях формы запуталось.
Если совсем ничего не понятно, то воспроизвести можно всю нужную последовательность в чистой базе "с нуля".
Т.е. чтоб ошибку диагностировать, нужно ее попытаться воспроизвести. Зачастую в этом воспроизведении выявляются какие-то глюки или фичи неочевидные
22 LavSug
 
24.01.20
09:11
(21) Не, ну к моим добавленным элементам формы и в отладчике обратиться не дает... А к реквизитам моим же дает...
Пока диагностировал, что проблема проявляется, когда ПутьКДанным содержит обращение к реквизитам объекта, которые добавлены в расширении... То есть с добавленными реквизитами самой формы проблем нет... А вот как только ПутьКДанным = "Объект.НовыйРеквизит", так сразу мимо... Объект добавлял через "Добавить в расширение". Форму удалял, добавлял заново, потом объект... Не помогает... Оно контекст объекта при заполнении элементов расширенной формы похоже берет оригинальный, а не из расширения...
23 LavSug
 
24.01.20
09:13
(22) Единственное, что не пробовал, так это полностью удалить справочник из расширения и заново добавить... Так как изначально добавлял на платформе 8.3.13, а потом перешел на 8.3.16. Может какие связи не дописались.
24 Фрэнки
 
24.01.20
09:17
(23) А ты вообще наслышан о ситуации, что если на такую базу, в которой есть Расширение с добавленными к типовыми объектам реквизитам, натравить ТИИ, то она похерит всю внесенную в реквизитах инфу?
25 LavSug
 
24.01.20
09:18
(24) Наслышан... Сам не пробовал пока. Но при желании...
26 Фрэнки
 
24.01.20
09:27
(25) Вот я про себя так скажу - использую Расширения в разработке в приоритете. Но при необходимости внесения в базу новой информации, даже к уже существующим объектам, либо использую типовые возможности (допсведения и допреквизиты (которые в табчастях справочников сидят)), либо новые объекты в расширении делаю со ссылками на существующие типовые объекты базы. Состав реквизитов у типовых объектов непосредственно не расширяю.
27 LavSug
 
24.01.20
09:48
(26) То есть делаешь типа РасшСправочник... У него реквизит РасшСправочник.ОригинальныйСправочникСсылка ? И на форме ОригинальныйСправочник.ФормаЭлемента, например, в расширении обыгрываешь это все?
28 LavSug
 
24.01.20
11:33
Продолжение истории...
В расширении формы ПриСозданииНаСервере программно добавил реквизиты и элементы. Назначил им обработчик действия. Они появились на форме. Но когда срабатывает обработчик, то в элементах опять нет моих элементов...
29 LavSug
 
24.01.20
11:37
(28) Смущает то, что элементы формы я добавляю на сервере, а не видно их на клиенте...
30 PowerBoy
 
24.01.20
12:23
(0)Права на справочник дал по роли расширения?
31 Фрэнки
 
24.01.20
12:32
(27) как-то так. Или не справочник, а регистр сведений в расширении. Но это при условии, что у него нет готовой таб части Дополнительные реквизиты.
У самых нужных в разработке справочников подобные табчасти в типовых уже указаны.
32 LavSug
 
24.01.20
12:41
(30) Права дал...
33 LavSug
 
24.01.20
12:42
(31) Дополнительные реквизиты использую... А как их в нужные места формы доставать? Как раз в расширении?
34 Жан Пердежон
 
24.01.20
12:50
через ЭтотОбъект тоже не катит?
35 LavSug
 
24.01.20
13:16
(34) В каком смысле? Не понял... ЭтотОбъект.Форма?
36 LavSug
 
24.01.20
13:34
Еще раз убедился... Элемент создается в заимствованной форме расширения только если он не ссылается на добавленный в расширении реквизит объекта...
То есть, если ПутьКДанным = "МойРеквизит", то элемент создается автоматически. Если ПутьКДанным = "Объект.МойРеквизит", то элемент НЕ создается автоматически.
Этому есть какое-нибудь логическое объяснение?
37 LavSug
 
24.01.20
13:35
(34) (35) ЭтотОбъект.Элементы тоже не содержит требуемого элемента...
38 LavSug
 
24.01.20
14:24
(31) Пойду по этому пути...
39 LavSug
 
27.01.20
18:56
Все-таки не понимаю... Почему в расширениях даже при программном добавлении элементов на заимствованную форму в серверной процедуре ПриОткрытииНаСервере эти элементы не попадают в список элементов формы в процедуре ПриОткрытии?
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.