Метод Metadata не обнаружен

1. user705522_constantin_h 37 14.07.20 18:11 Сейчас в теме
Переношу документы из БП 3.0.76.77 в УНФ 1.6.
НовСтрока.СтавкаНДС = Справочники.СтавкиНДС.НайтиПоНаименованию(База.Metadata.Перечисления.СтавкиНДС.EnumValues.Get(База.Перечисления.СтавкиНДС.IndexOf(ТекСтрокаКомТаблицы.СтавкаНДС)).Synonym, Истина);

Сначала выдавалась ошибка метод Metadata не обнаружен. Код был такой:
НовСтрока.СтавкаНДС = Справочники.СтавкиНДС.НайтиПоНаименованию(База.Metadata().Перечисления.СтавкиНДС.EnumValues.Get(База.Перечисления.СтавкиНДС.IndexOf(ТекСтрокаКомТаблицы.СтавкаНДС)).Synonym, Истина);

Также выдавалась ошибка метод Индекс не обнаружен( пришлось заменить на IndexOf). Было так:
НовСтрока.СтавкаНДС = Справочники.СтавкиНДС.НайтиПоНаименованию(База.Metadata().Перечисления.СтавкиНДС.EnumValues.Get(База.Перечисления.СтавкиНДС.Индекс(ТекСтрокаКомТаблицы.СтавкаНДС)).Synonym, Истина);


При переносе из УНФ 1.6 в УНФ 1.6 всё работает и с методом Metadata, и с методом Индекс. В чём разница?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ipoloskov 164 15.07.20 08:51 Сейчас в теме
Странно, что работало.
Метаданные (свойство) - свойство глобального контекста.
Метаданные() (функция) - метод объектов метаданных конфигурации (СправочникСсылка, ДокументОбъект и т.д)
Так как вы обращаетесь к базе, то нужно использовать свойство - База.Metadata.Перечисления

При подключении по COM лучше использовать англоязычные синонимы свойств и методов 1С. Русские часто не работают. Вы же используете Metadata, EnumValues - зачем для IndexOf() делать исключение?
3. user705522_constantin_h 37 15.07.20 10:10 Сейчас в теме
(2)
зачем для IndexOf() делать исключение

Раньше всё работало. Первый раз пришлось заменить.

Обработка, которая переносит данные из УНФ 1.6.1.84 в УНФ 1.6.19.215, использует код:
ТекущийДокумент.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС[База.Metadata().Перечисления.ТипыНалогообложенияНДС.EnumValues.Get(База.Перечисления.ТипыНалогообложенияНДС.Индекс(ПереносимыйДокумент.НалогообложениеНДС)).Name];

Всё работает. Проверял.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот