|
Не сохраняется реквизит, добавленный в расширении. | ☑ | ||
---|---|---|---|---|
0
vv2304
18.03.23
✎
19:49
|
Платформа 8.2.22.1750
Создал расширение, добавил туда спр.НоменклатурныеГруппы. Добавил реквизит ПолноеНаименование, тип строка. Только для групп. В расширении добавил общий модуль (заимствовал) где прописал программный вывод на форму ПолноеНаименование. Выводится на форму, вбиваю в ПолноеНаименование, а оно не сохраняется. |
|||
1
AlvlSpb
18.03.23
✎
20:12
|
(0) А Записать() не забыл?
|
|||
2
AlvlSpb
18.03.23
✎
20:14
|
Ну и если справочник Номенклатурные группы создан и имеет свою форму, смысл выводить реквизит на форму в общем модуле? Проще и быстрее сразу на созданной форме.
|
|||
3
vv2304
18.03.23
✎
20:27
|
Форму в расширение не добавлял
|
|||
4
eddy_n
18.03.23
✎
20:27
|
(0) Сам реквизит ПолноеНаименование добавил, надеюсь, не в расширении?
|
|||
5
vv2304
18.03.23
✎
20:28
|
(4) Именно в расширение
|
|||
6
eddy_n
18.03.23
✎
20:32
|
(5) Зачем? Новый реквизит у тебя никто не отберёт и не затрёт. Обновишься тоже без проблем в будущем.
|
|||
7
eddy_n
18.03.23
✎
20:39
|
(5) Как это? И как это будет работать? Директивы процедур в форме хранятся. А реквизит - одиноко стоящий получается? Как до него в расширении достучаться?
|
|||
8
vv2304
18.03.23
✎
20:44
|
(7) Директив там нет. Обычные проверки.
|
|||
9
vv2304
18.03.23
✎
20:45
|
Даже если полностью очистить модуль объекта, все равно ведь запишется изменение наименования.
И в модуле объекта мой добавленный реквизит видно,но он NULL |
|||
10
AlvlSpb
18.03.23
✎
21:52
|
(5) Как добавил? Реквизит формы или реквизит объекта?
|
|||
11
vv2304
18.03.23
✎
22:11
|
(10) В расширение добавил как реквизит объекта.
похоже, нашел причину в общем модуле УправлениеСвойствами Если Проверка.ЭтоГруппа Тогда Возврат; // Для групп дополнительные реквизиты не подключаются. КонецЕсли; А у меня как раз группа. Если бы для элемента, я бы и в самом режиме Предприятия добавил реквизит. |
|||
12
AlvlSpb
18.03.23
✎
22:14
|
(11) Объясняй корректно. Добавил реквизит объекта или дополнительный реквизит? "// Для групп дополнительные реквизиты не подключаются."©
|
|||
13
vv2304
18.03.23
✎
22:21
|
(12) Добавил реквизит объекта, я же писал.
Просто при записи попадает в процедуру ДополнительныеРеквизитыОбработкаПроверкиЗаполнения а там этот реквизит объекта видится как дополнительный реквизит |
|||
14
AlvlSpb
18.03.23
✎
22:30
|
(13) Это как? Разбирайся как и куда добавил реквизит. Есть уверенность что добавил доп реквизит а не реквизит объекта. Если не заимствовал форму, то создание реквизита тоже должно быть в общем модуле. КАК создал?
|
|||
15
vv2304
18.03.23
✎
22:39
|
(14) Нет, именно реквизит объекта.
https://s1.hostingkartinok.com/uploads/images/2023/03/f86c2079840462c90d3e07cbbfa20af0.jpg Я сначала программно выводил на форму в общем модуле. Затем добавил в расширение форму, реквизит на форму вывел из модуля формы. Все равно не сохранялся. Тогда в расширении в модуле формы дописал в ПриСозданииНаСервере НовыйЭлемент.УстановитьДействие("ПриИзменении", "Подключаемый_ПриЗаписи"); и там же &НаКлиенте Процедура Подключаемый_ПриЗаписи(Элемент) Объект.вв_ПолноеНаименование = Элемент.ТекстРедактирования; Записать(); КонецПроцедуры Так вот отладчиком попадаю в процедуру ДополнительныеРеквизитыОбработкаПроверкиЗаполнения А там мой реквизит видится как дополнительный |
|||
16
vv2304
18.03.23
✎
22:46
|
В принципе, да и фиг с тем, что видит как доп. реквизит. Главное, что не пропускает ГРУППУ.
Там условие Если Проверка.ЭтоГруппа Тогда Возврат; // Для групп дополнительные реквизиты не подключаются. КонецЕсли; |
|||
17
AlvlSpb
18.03.23
✎
22:49
|
Код полная хрень. Он не нужен. Заимствуй в расширение Объект и все сохранится. https://postimg.cc/jWtPpY8L
|
|||
18
AlvlSpb
18.03.23
✎
22:55
|
Да и покажи как вывел реквизит на форму. А то может элементарно Путь не прописан?
|
|||
19
Сергиус
18.03.23
✎
23:56
|
(0)Может неправильно прописал соот-вие на форме? т.е. реквизит добавил, но он не связан с объектом.
|
|||
20
Сергиус
18.03.23
✎
23:58
|
+(19)Объект.вв_ПолноеНаименование = Элемент.ТекстРедактирования; - В отладчике проверял, в ТекстРедактирования что-то есть?
|
|||
21
Сергиус
19.03.23
✎
00:02
|
Вообще в идеале надо делать не через код, который используется для вывода доп.реквизитов, а дописать свой в процедуре , которая вызывается при открытии формы элемента.
|
|||
22
vv2304
19.03.23
✎
00:12
|
(18) Если бы я путь не прописал, то и реквизита на форме не было бы.
Реквизит программно. Я вначале даже форму в расширение не добавлял, она там и не нужна. Код в общем модуле писал. Но т.к. не получалось, добавил форму в расширение. И там в модуле формы код &НаСервере Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) // Массив для новых реквизитов ДобавляемыеРеквизиты = Новый Массив; // Опишем ревизиты формы вв_ПолноеНаименование = Новый РеквизитФормы("вв_ПолноеНаименование", Новый ОписаниеТипов("Строка", , , Новый КвалификаторыСтроки(300)), , "Полное наименование"); // Заполним массив после описания реквизитов формы ДобавляемыеРеквизиты.Добавить(вв_ПолноеНаименование); ЭтаФорма.ИзменитьРеквизиты(ДобавляемыеРеквизиты); НовыйЭлемент = Элементы.Добавить("вв_ПолноеНаименование", Тип("ПолеФормы")); НовыйЭлемент.ПутьКДанным = "вв_ПолноеНаименование"; НовыйЭлемент.Заголовок = "Полное наименование"; НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ТолькоПросмотр = Ложь; НовыйЭлемент.Видимость = Истина; НовыйЭлемент.Доступность = Истина; НовыйЭлемент.УстановитьДействие("ПриИзменении", "Подключаемый_ПриЗаписи"); КонецПроцедуры (20) Да, ТекстРедактирования есть. |
|||
23
Сергиус
19.03.23
✎
03:24
|
(22)Попробуйте вместо НовыйЭлемент.ПутьКДанным = "вв_ПолноеНаименование"; поставить НовыйЭлемент.ПутьКДанным = "Объект.вв_ПолноеНаименование";
|
|||
24
eddy_n
19.03.23
✎
07:29
|
Скажи главное, почему ты не хочешь этот реквизит объекта прицепить СРАЗУ в конфу?
|
|||
25
vv2304
19.03.23
✎
08:55
|
(23) Спасибо. Именно это помогло.
(24) У меня штук 8 одинаковых баз, постоянно приходится "на лету" дописывать. Поэтому большинство задач решаю через расширения, в т.ч. и доп. реквизиты. И как правило, без добавления форм в расширение. |
|||
26
vv2304
19.03.23
✎
08:59
|
На лету-это значит, что не всем нужны эти дописки, люди продолжают сидеть в базах. А те кому нужно, выходят-заходят в базу и видят изменения.
|
|||
27
AlvlSpb
19.03.23
✎
09:08
|
(22) Чтд, путь был указан неверно. Создал реквизит объекта, а путь прописал как к реквизиту формы
|
|||
28
vv2304
19.03.23
✎
09:15
|
(27) Да я вначале так и писал когда размещал код в общем модуле, но вылетала ошибка. Убрал в том модуле "Объект" и ошибка пропала, реквизит на форме появился.
Но не записывался. Тогда перенес код в модуль формы, но уже без "Объект". |
|||
29
AlvlSpb
19.03.23
✎
09:28
|
(28) "Да я вначале так и писал когда размещал код в общем модуле, но вылетала ошибка"© Ошибка вылетала, потому что не заимствовал сам Объект см (17)
|
|||
30
eddy_n
19.03.23
✎
10:31
|
(29) Эта не так давно появившаяся фича всем портит кровь. Ты думаешь, что после добавления формы в расширение объект тоже автоматически туда попадёт. Но это не так. Вендор хочет чтобы ты ещё раз подтвердил, что хочешь, чтобы объект попал в расширение.
|
|||
31
eddy_n
19.03.23
✎
10:35
|
Есть ещё одна фича, про которую не надо всем забывать - это признаки расширения БЕЗОПАСНЫЙ РЕЖИМ и ЗАЩИТА ОТ ОПАСНЫХ ДЕЙСТВИЙ. Вендор взводит эти галочки по умолчанию. И ты, если не натыкался на эти подводные камни, вначале недоумеваешь, почему расширение не работает. НАДО СНЯТЬ ЭТИ ГАЛОЧКИ, если хочешь, чтобы расширение работало.
|
|||
32
eddy_n
19.03.23
✎
10:37
|
К расширениям ещё куча претензий. Видно, что это только начало пути по работе с ними.
|
|||
33
Сергиус
19.03.23
✎
11:16
|
(32)Как там говорилось "8-ка еще сырая" :)
|
|||
34
AlvlSpb
19.03.23
✎
11:40
|
(30) на самом деле не обязательно заимствовать объект. До объектного реквизита можно добраться через этаформа.объект и будет работать без заимствования самого объекта
|
|||
35
eddy_n
19.03.23
✎
12:29
|
(34) До всего можно добраться окружными путями. И до http-ответа сервера тоже, взгромоздив конструкцию из миллион строк.
|
|||
36
Новый1сник2
19.03.23
✎
12:52
|
все не читал, добавить реквизит в основную конфу, не вариант ?
|
|||
37
eddy_n
19.03.23
✎
13:40
|
(36) Было. Начинаем всё сначала?
|
|||
38
Новый1сник2
19.03.23
✎
13:48
|
(37) не доверяю я расширениям. по крайней мере новые реквизиты и объекты, надежнее добавлять в основную конфу. да и добавление на форму можно делать в основной конфе, при обновлении просто объединять с новой формой и норм. иногда правда смещаются реквизиты после обновления, но вручную легко поправить. а вот механизма сравнения при обновлении еще и с расширением, до сих пор нет. что очень не удобно.
|
|||
39
eddy_n
19.03.23
✎
13:52
|
(38) Всё так. Только у ТС железобетонный аргумент - никто не должен покидать пространство 1с ради одного реквизита. Демоническое обновление - не обсуждается. Много чего нет для норм. работы с расширениями. Это начало пути.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |