Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 ноя 2024, 19:03

Вытаскивание Справочники и перечисления через COM

Автор Vasylii, 11 апр 2023, 09:21

0 Пользователей и 2 гостей просматривают эту тему.

Vasylii

antoneus если элементперечисления = 168 коду а т.е наименование тонны
тогда теккдинизмер = такому же наименованию но в справочнике класиффикаторы единц измерения

Vasylii

antoneus, кстати такой изначально вариант был тоже значение не выводило

antoneus

Почему в выборке сразу не написать

|    КаталогОтходов.ЕдиницаИзмерения.Код КАК КодЕдИзм,

и потом в цикле

ТекущийЕдинИзмер = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(Выборка.КодЕдИзм);

Vasylii

antoneus, не понимаю почему выдает ошибку и не могу вытянуть данные

antoneus

Значит, ни одно из условий не выполняется. Надо смотреть, что за внешний_КлассОпасности через метаданные. И, да, Метаданные - это метод, то есть скобочки нужны.

И да, когда я говорил про создание соответствия перечислений - я имел в виду совсем не то, что на скрине. Я имел в виду создание соответствия ВСЕХ перечислений, причем, создание его надо вынести перед циклом по выборке, а в цикле получать так:

ТекущийКлассОпасности = СоответствиеПеречислений.Получить(Выборка.КлассОпасности)
и смысл этого был в том, чтобы избавиться от всех этих если.

Vasylii

antoneus, сделал как вы сказали но проблема, в соответствии подставляются но все равно так же не выводится
V8Com = Новый COMОбъект("V83.COMConnector");
Подключение = V8Com.Connect("srvr="""";Ref="""";Usr="""";pwd=");
Сообщить("Соединение установлено");
ЗапросПрием = Подключение.NewObject("Запрос");
ЗапросПрием.Текст = "ВЫБРАТЬ
| КаталогОтходов.КлассОпасности КАК КлассОпасности,
| КаталогОтходов.Плотность КАК Плотность,
| КаталогОтходов.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| КаталогОтходов.ФизическаяФорма КАК ФизическаяФорма,
| КаталогОтходов.Токсичность КАК Токсичность,
| КаталогОтходов.Пожароопасность КАК Пожароопасность,
| КаталогОтходов.НаличиеМикроорганизмов КАК НаличиеМикроорганизмов,
| КаталогОтходов.Взрывоопасность КАК Взрывоопасность,
| КаталогОтходов.ВысокаяРеакционнаяСпособность КАК ВысокаяРеакционнаяСпособность,
| КаталогОтходов.СодержаниеВозбудителейИнфекционныхБолезней КАК СодержаниеВозбудителейИнфекционныхБолезней,
| КаталогОтходов.ДругиеОпасныеСвойства КАК ДругиеОпасныеСвойства,
| КаталогОтходов.Код КАК Код,
| КаталогОтходов.Наименование КАК Наименование
|ИЗ
| Справочник.КаталогОтходов КАК КаталогОтходов";
Выборка = ЗапросПрием.Выполнить().Выбрать();   ;

СоответствиеПеречислений = Новый Соответствие;
СоответствиеПеречислений.Вставить(Подключение.Перечисления.КлассОпасности.КлассНеЗадан, Перечисления.Систем_КлассОпасности.КлассНеЗадан);
СоответствиеПеречислений.Вставить(Подключение.Перечисления.КлассОпасности.Класс0, Перечисления.Систем_КлассОпасности.Класс0);
СоответствиеПеречислений.Вставить(Подключение.Перечисления.КлассОпасности.Класс1, Перечисления.Систем_КлассОпасности.Класс1);
СоответствиеПеречислений.Вставить(Подключение.Перечисления.КлассОпасности.Класс2, Перечисления.Систем_КлассОпасности.Класс2);
СоответствиеПеречислений.Вставить(Подключение.Перечисления.КлассОпасности.Класс3, Перечисления.Систем_КлассОпасности.Класс3);
СоответствиеПеречислений.Вставить(Подключение.Перечисления.КлассОпасности.Класс4, Перечисления.Систем_КлассОпасности.Класс4);
СоответствиеПеречислений.Вставить(Подключение.Перечисления.КлассОпасности.Класс4э, Перечисления.Систем_КлассОпасности.Класс4э);
СоответствиеПеречислений.Вставить(Подключение.Перечисления.КлассОпасности.Класс5, Перечисления.Систем_КлассОпасности.Класс5);


Пока Выборка.Следующий() Цикл
НовыйДок = МассивНоменклатур.Добавить();
       
НовыйДок.Код          = Выборка.Код;
НовыйДок.Наименование = Выборка.Наименование;

ТекущийКлассОпасности = СоответствиеПеречислений.Получить(Выборка.КлассОпасности);
НовыйДок.КлассОпасности = ТекущийКлассОпасности;
НовыйДок.Плотность = Выборка.Плотность;
НовыйДок.Токсичность = Выборка.Токсичность;
НовыйДок.Пожароопасность = Выборка.Пожароопасность;
НовыйДок.Взрывоопасность = Выборка.Взрывоопасность;
НовыйДок.ВысокаяРеакционнаяСпособность = Выборка.ВысокаяРеакционнаяСпособность;
НовыйДок.СодержаниеВозбудителейИнфекционныхБолезней = Выборка.СодержаниеВозбудителейИнфекционныхБолезней;
НовыйДок.НаличиеМикроорганизмов          = Выборка.НаличиеМикроорганизмов;
НовыйДок.ДругиеОпасныеСвойства          = Выборка.ДругиеОпасныеСвойства;
НовыйДок.ФизическаяФорма          = Выборка.ФизическаяФорма;
КонецЦикла;

Vasylii

antoneus, и оно все равно идет как ком объект может из-за этого?

antoneus

COMОбъект COMОбъекту рознь.

Тип-то хоть тот? Что покажет СоответствиеПеречислений[0].Ключ.Метаданные().Имя ?

Vasylii


Vasylii

antoneus, может попробовать ссылку передавать КлассОпасности в запросе?

Похожие темы (5)

Рейтинг@Mail.ru

Поиск