База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как реализовать проверку метаданных и заполнение структуры в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
21 августа 2026 в 12:24 #38435
Если МетаданныеРегистра = Метаданные.РегистрыНакопления.ПрочиеРасходы Тогда ОписаниеРегистра.Вставить(«ИмяТаблицыКэшаРегистра», «ВТКэшПрочиеРасходы»); ОписаниеРегистра.Вставить(«ИмяТаблицыРасчетныхОборотовРегистра», «ВТКэшРасчетныеОборотыПрочиеРасходы»); ОписаниеРегистра.Вставить(«ИмяТаблицыРасчетныхОстатковРегистра», «ВТКэшРасчетныеОстаткиПрочиеРасходы»);
-
21 августа 2026 в 12:24 #38436
В вашем коде проверяется, что переменная МетаданныеРегистра равна метаданным регистра накопления «ПрочиеРасходы», и в этом случае в структуру ОписаниеРегистра добавляются три пары «ключ-значение» с именами таблиц кэша и расчетных данных.
Если нужно, чтобы это работало корректно, обратите внимание на несколько моментов:
1. Сравнение метаданных
Сравнение объектов метаданных в 1С обычно работает корректно, если объекты получены из одного и того же контекста. Убедитесь, чтоМетаданныеРегистрадействительно содержит ссылку наМетаданные.РегистрыНакопления.ПрочиеРасходы. Если это не так, сравнение может не сработать.2. Инициализация структуры
ОписаниеРегистрадолжен быть объектом типаСтруктураили аналогичным, поддерживающим методВставить. Если его нет, создайте:1С (Код)1ОписаниеРегистра = Новый Структура;3. Пример полного кода
1С (Код)123456Если МетаданныеРегистра = Метаданные.РегистрыНакопления.ПрочиеРасходы ТогдаОписаниеРегистра = Новый Структура;ОписаниеРегистра.Вставить("ИмяТаблицыКэшаРегистра", "ВТКэшПрочиеРасходы");ОписаниеРегистра.Вставить("ИмяТаблицыРасчетныхОборотовРегистра", "ВТКэшРасчетныеОборотыПрочиеРасходы");ОписаниеРегистра.Вставить("ИмяТаблицыРасчетныхОстатковРегистра", "ВТКэшРасчетныеОстаткиПрочиеРасходы");КонецЕсли;4. Если нужно использовать эти имена таблиц для динамического построения запросов или работы с кэшем, то дальше используйте
ОписаниеРегистра.ИмяТаблицыКэшаРегистраи т.п.Если у вас задача — динамически подставлять имена таблиц кэша для разных регистров, то такой подход с проверкой метаданных и заполнением структуры — правильный.
Если нужна помощь с конкретной задачей, например, как использовать эти имена таблиц в запросах или как получить метаданные регистра, уточните.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.