![]() |
![]() |
![]() |
|
Как обратиться к константе из расширения конфигурации? | ☑ | ||
---|---|---|---|---|
0
crazyara
26.06.25
✎
20:06
|
Управляемые формы.
В расширении задана константа. В расширении поменял несколько функций, поставил &Вместо и в них обращаюсь к константе из расширения конфигурация ("МОЕ"). ВводимаяСтрока=Константы.ДополнительнаяИнформацияКвитанцийСадоводов1.Получить(); Так не работает ВводимаяСтрока=МОЕ.Константы.ДополнительнаяИнформацияКвитанцийСадоводов1.Получить(); тоже не работаает Что делать? Спасибо |
|||
1
Волшебник
26.06.25
✎
20:08
|
Не пользуйтесь расширениями.
|
|||
2
Волшебник
26.06.25
✎
20:09
|
Перестаньте писать программный код наугад. Откуда Вы взяли это "МОЕ"? К какому свойства какого объекта Вы обращаетесь?
|
|||
3
Волшебник
26.06.25
✎
20:10
|
Заимствуйте объект в расширение
|
|||
4
crazyara
26.06.25
✎
20:13
|
МОЕ - это я сделал расширении конффигурации, переместил туда обработку и константу, но константу не видит
|
|||
5
crazyara
26.06.25
✎
20:15
|
ВводимаяСтрока=Константы.ДополнительнаяИнформацияКвитанцийСадоводов.Получить()
без единицы есть в основной конфигурации, так все работает... Как обратиться к расширению? |
|||
6
Волшебник
26.06.25
✎
20:24
|
Используйте контекст сервера
|
|||
7
Ильф
26.06.25
✎
20:41
|
(0) не рекомендуется добавлять метаданные в расширения
расширения - они для распространяемых неограниченному кругу лиц дополнений - т.е. из основной конфы к ним не обращаются (она о них ничего не знает) а так МетаданныеКонстаны = Константы; МетаданныеКонстаны.ДополнительнаяИнформацияКвитанцийСадоводов1.Получить(); либо не обращать внимание на ругань СП - в (0) врете - оно работает, просто ругается на синтаксис |
|||
8
crazyara
26.06.25
✎
20:46
|
&НаСервереБезКонтекста
Функция МояКонстантаПолучить() возврат Константы.ДополнительнаяИнформацияКвитанцийСадоводов1.Получить(); конецфункции теперь он функции не видит |
|||
9
crazyara
26.06.25
✎
20:57
|
Ильф, тоже не работает - не видит она константу
В отладке все константы из основной конфигурации.. &Вместо("НаименованиеВзносаПД4") Функция МОЕ_НаименованиеВзносаПД4(КвитанцияПД4) Перем ВводимаяСтрока; // ВводимаяСтрока=ЭтотОбъект.Метаданные().Константы.ДополнительнаяИнформацияКвитанцийСадоводов1.Получить(); // ВводимаяСтрока=Константы.ДополнительнаяИнформацияКвитанцийСадоводов1.Получить(); // ВводимаяСтрока=МОЕ.Константы.ДополнительнаяИнформацияКвитанцийСадоводов1.Получить(); // ВводимаяСтрока=МояКонстантаПолучить() ; МетаданныеКонстаны = Константы; ВводимаяСтрока=МетаданныеКонстаны.ДополнительнаяИнформацияКвитанцийСадоводов1.Получить(); // взноса этот взнос. Если задолженность есть по нескольким взносам - то выводим слово "Взносы". Если КвитанцияПД4.ВладелецЧленСНТ Тогда // НаименованиеДляНесколькихВзносов = НСтр("ru = 'Взносы'") +" 1 квартал 2025 и задолженность прошлых лет"; // НаименованиеДляНесколькихВзносов = НСтр("ru = 'Взносы'") +" 2 квартал 2025 "; НаименованиеДляНесколькихВзносов = НСтр("ru = 'Взносы '") + ВводимаяСтрока; Иначе // НаименованиеДляНесколькихВзносов = НСтр("ru = 'Членский взнос'")+" 1 квартал 2025 г. и задолженность прошлых лет"; НаименованиеДляНесколькихВзносов = НСтр("ru = 'Членский взнос '")+ ВводимаяСтрока; КонецЕсли; Если КвитанцияПД4.Взносы.Количество() > 1 Или КвитанцияПД4.ВзносыПоСчетчикам.Количество() > 1 Или КвитанцияПД4.Пени.Количество() > 1 Тогда Возврат НаименованиеДляНесколькихВзносов; КонецЕсли; // Теперь в каждой таблице либо один взнос, либо она пуста. // Нужно проверить, что во всех таблицах указан только один взнос. ЕстьТолькоВзносыПоСчетчикам = КвитанцияПД4.ВзносыПоСчетчикам.Количество() > 0 И КвитанцияПД4.Взносы.Количество() = 0 И КвитанцияПД4.Пени.Количество() = 0; ВзносыТаблиц = Новый ТаблицаЗначений; ВзносыТаблиц.Колонки.Добавить("Взнос"); ВзносыТаблиц.Колонки.Добавить("Наименование"); Если КвитанцияПД4.Взносы.Количество() > 0 Тогда ЗаполнитьЗначенияСвойств(ВзносыТаблиц.Добавить(), КвитанцияПД4.Взносы[0]); КонецЕсли; Если КвитанцияПД4.ВзносыПоСчетчикам.Количество() > 0 И (КвитанцияПД4.ВзносыПоСчетчикам.Итог("КОплате") > 0 Или ЕстьТолькоВзносыПоСчетчикам) Тогда ЗаполнитьЗначенияСвойств(ВзносыТаблиц.Добавить(), КвитанцияПД4.ВзносыПоСчетчикам[0]); КонецЕсли; Если КвитанцияПД4.Пени.Количество() > 0 Тогда ЗаполнитьЗначенияСвойств(ВзносыТаблиц.Добавить(), КвитанцияПД4.Пени[0]); КонецЕсли; ВзносыТаблиц.Свернуть("Взнос,Наименование"); Если ВзносыТаблиц.Количество() = 1 Тогда Возврат СокрЛП(ВзносыТаблиц[0].Наименование); Иначе Возврат НаименованиеДляНесколькихВзносов; КонецЕсли; // Теперь в каждой таблице либо один взнос, либо она пуста. // Нужно проверить, что во всех таблицах указан только один взнос. КонецФункции Функция помдменяет функцию из основной конфигурации, а оттуда она не видит константу из расширения конфигурации |
|||
10
Ильф
26.06.25
✎
21:20
|
что значит не видит?
|
|||
11
crazyara
26.06.25
✎
22:04
|
Нет, все увидел, извиняюсь, спасибо большое !!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |