Обмен данными через СОМConnector
28.10.14, 9:59
Живет на форуме
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0
28.10.14, 12:05
Ветеран
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(Petre @ 28.10.14, 9:59)
Получить строку его имени, найти соответствующее в базе-клиенте.
Имею вот такой код:
СОМСоединение = Новый COMОбъект("V83.ComConnector" );
Сервер = "***" ;
ИмяБазы = "***" ;
Пользователь = "***" ;
Пароль = "***" ;
СтрокаПодключения = "Srvr = '" + Сервер + "';" + "Ref = '" + ИмяБазы + "';" + "Usr = '" + Пользователь + "';" + "Pwd = '" + Пароль + "';" ;
БазаИсточник = СОМСоединение.Connect(СтрокаПодключения);
БазаИсточник_Запрос = БазаИсточник.Newobject("Запрос" );
ТекстЗапроса = "ВЫБРАТЬ
| ПростойВагона.Период,
| ПростойВагона.НомерВагона,
| ПростойВагона.ПрибытияВагона,
| ПростойВагона.УстановкаПодВыгрузку,
| ПростойВагона.ОкончаниеВыгрузки,
| ПростойВагона.ПрибытиеДокументовПослеДекларирования,
| ПростойВагона.ПрибытиеИнструкцийВОтправкуПОРПВ,
| ПростойВагона.УстановкаПодПогрузку,
| ПростойВагона.ОкончаниеПогрузки,
| ПростойВагона.ПрибытиеДокументовПослеТаможирования,
| ПростойВагона.ВозвратПВст,
| ПростойВагона.ВесПоПрибытию,
| ПростойВагона.Ответственный,
| ПростойВагона.СостояниеВагона,
| ПростойВагона.ПринадлежностьВагона,
| ПростойВагона.НоменклатураПрибытие,
| ПростойВагона.НоменклатураОтправка
|ИЗ
| РегистрСведений.ПростойВагона КАК ПростойВагона" ;
БазаИсточник_Запрос.Текст = ТекстЗапроса;
ТаблицаДанныхИсточникСОМОбъект = БазаИсточник_Запрос.Выполнить().Выгрузить();
СОМСоединение = Неопределено ;
ТЗДанныеИсточник = Новый ТаблицаЗначений;
КЧ = Новый КвалификаторыЧисла(6 ,3 );
ОписаниеТиповЧ = Новый ОписаниеТипов("Число" ,,,КЧ);
ТЗДанныеИсточник.Колонки.Добавить("Период" ,,"Период" ,);
ТЗДанныеИсточник.Колонки.Добавить("НомерВагона" ,,"Номер вагона" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПрибытияВагона" ,,"Прибытие вагона" ,);
ТЗДанныеИсточник.Колонки.Добавить("УстановкаПодВыгрузку" ,,"Установка под выгрузку" ,);
ТЗДанныеИсточник.Колонки.Добавить("ОкончаниеВыгрузки" ,,"Окончание выгрузки" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПрибытиеДокументовПослеДекларирования" ,,"Прибытие документов после декларирования" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПрибытиеИнструкцийВОтправкуПОРПВ" ,,"Прибытие инструкций в отправку ПОР ПВ" ,);
ТЗДанныеИсточник.Колонки.Добавить("УстановкаПодПогрузку" ,,"Установка под погрузку" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПрибытиеДокументовПослеТаможирования" ,,"Прибытие документов после таможирования" ,);
ТЗДанныеИсточник.Колонки.Добавить("ВозвратПВстКраматорск" ,,"Возврат ПВ ст." ,);
ТЗДанныеИсточник.Колонки.Добавить("СостояниеВагона" ,,"Состояние вагона" ,);
ТЗДанныеИсточник.Колонки.Добавить("Ответственный" ,,"Ответственный" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПринадлежностьВагона" ,,"Принадлежность вагона" ,);
ТЗДанныеИсточник.Колонки.Добавить("НоменклатураПрибытие" ,,"Номенклатура прибытие" ,);
ТЗДанныеИсточник.Колонки.Добавить("НоменклатураОтправка" ,,"Номенклатура отправка" ,);
ТЗДанныеИсточник.Колонки.Добавить("ВесПоПрибытию" ,ОписаниеТиповЧ,"Вес по прибытию" );
Для Каждого Строка Из ТаблицаДанныхИсточникСОМОбъект Цикл
СтрокаТЗ = ТЗДанныеИсточник.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЗ,Строка,,);
КонецЦикла ;
Как получить имя? Если можно, то на моем примере
Если написать вот так:
ЭлементПеречисленияИсточникГруженый = БазаИсточник.Перечисления.СостояниеВагонов.Груженый.Метаданные().Имя
, то получаю имя самого перечисления, а не имя его значения
29.10.14, 18:37
Ветеран
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Помогите пожалуйста, никак не получается....(((
Как получить наименование перечисления с базе источнике?
Пишу так:
ЭлементПеречисленияИсточникГруженый = XMLСтрока(БазаИсточник.Перечисления.СостояниеВагонов.Груженый);
ЭлементПеречисленияИсточникПорожний = XMLСтрока(БазаИсточник.Перечисления.СостояниеВагонов.Порожний);
Ошибка!
Пишу так:
ЭлементПеречисленияИсточникГруженый = БазаИсточник.Перечисления.СостояниеВагонов.Груженый.Метаданные().Имя
, то получаю имя самого перечисления, а мне нужно имя его значения.
Плиз! Подскажите...
30.10.14, 10:45
Живет на форуме
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0
ИндексПеречисления = База.Перечисления [ИмяПеречисления] .Индекс(КомОбъект);
ИмяЗначенияПеречисления = База.Метаданные().Перечисления[ИмяПеречисления].EnumValues.Get(ИндексПеречисления).Name;
ЗначениеПеречисления = Перечисления[ИмяПеречисления] [ИмяЗначенияПеречисления];
Сообщение отредактировал Batchir - 30.10.14, 10:46
30.10.14, 13:39
Ветеран
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(Batchir @ 30.10.14, 10:45)
ИндексПеречисления = База.Перечисления [ИмяПеречисления] .Индекс(КомОбъект);
ИмяЗначенияПеречисления = База.Метаданные().Перечисления[ИмяПеречисления].EnumValues.Get(ИндексПеречисления).Name;
ЗначениеПеречисления = Перечисления[ИмяПеречисления] [ИмяЗначенияПеречисления];
Не получается....ппц....куда это вставлять в моем коде? Процедура ЗагрузитьДанныеПростойВагонаСБазыТест() Экспорт ;
СОМСоединение = Новый COMОбъект("V83.ComConnector" );
Сервер = "***" ;
ИмяБазы = "***" ;
Пользователь = "***" ;
Пароль = "***" ;
СтрокаПодключения = "Srvr = '" + Сервер + "';" + "Ref = '" + ИмяБазы + "';" + "Usr = '" + Пользователь + "';" + "Pwd = '" + Пароль + "';" ;
БазаИсточник = СОМСоединение.Connect(СтрокаПодключения);
БазаИсточник_Запрос = БазаИсточник.Newobject("Запрос" );
ТекстЗапроса = "ВЫБРАТЬ
| ПростойВагона.Период,
| ПростойВагона.НомерВагона,
| ПростойВагона.ПрибытияВагона,
| ПростойВагона.УстановкаПодВыгрузку,
| ПростойВагона.ОкончаниеВыгрузки,
| ПростойВагона.ПрибытиеДокументовПослеДекларирования,
| ПростойВагона.ПрибытиеИнструкцийВОтправкуПОРПВ,
| ПростойВагона.УстановкаПодПогрузку,
| ПростойВагона.ОкончаниеПогрузки,
| ПростойВагона.ПрибытиеДокументовПослеТаможирования,
| ПростойВагона.ВозвратПВстКраматорск,
| ПростойВагона.ВесПоПрибытию,
| ПростойВагона.Ответственный,
| ПростойВагона.СостояниеВагона,
| ПростойВагона.ПринадлежностьВагона,
| ПростойВагона.НоменклатураПрибытие,
| ПростойВагона.НоменклатураОтправка
|ИЗ
| РегистрСведений.ПростойВагона КАК ПростойВагона" ;
БазаИсточник_Запрос.Текст = ТекстЗапроса;
ТаблицаДанныхИсточникСОМОбъект = БазаИсточник_Запрос.Выполнить().Выгрузить();
СОМСоединение = Неопределено ;
ТЗДанныеИсточник = Новый ТаблицаЗначений;
КЧ = Новый КвалификаторыЧисла(6 ,3 );
ОписаниеТиповЧ = Новый ОписаниеТипов("Число" ,,,КЧ);
ТЗДанныеИсточник.Колонки.Добавить("Период" ,,"Период" ,);
ТЗДанныеИсточник.Колонки.Добавить("НомерВагона" ,,"Номер вагона" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПрибытияВагона" ,,"Прибытие вагона" ,);
ТЗДанныеИсточник.Колонки.Добавить("УстановкаПодВыгрузку" ,,"Установка под выгрузку" ,);
ТЗДанныеИсточник.Колонки.Добавить("ОкончаниеВыгрузки" ,,"Окончание выгрузки" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПрибытиеДокументовПослеДекларирования" ,,"Прибытие документов после декларирования" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПрибытиеИнструкцийВОтправкуПОРПВ" ,,"Прибытие инструкций в отправку ПОР ПВ" ,);
ТЗДанныеИсточник.Колонки.Добавить("УстановкаПодПогрузку" ,,"Установка под погрузку" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПрибытиеДокументовПослеТаможирования" ,,"Прибытие документов после таможирования" ,);
ТЗДанныеИсточник.Колонки.Добавить("ВозвратПВстКраматорск" ,,"Возврат ПВ ст." ,);
ТЗДанныеИсточник.Колонки.Добавить("СостояниеВагона" ,,"Состояние вагона" ,);
ТЗДанныеИсточник.Колонки.Добавить("Ответственный" ,,"Ответственный" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПринадлежностьВагона" ,,"Принадлежность вагона" ,);
ТЗДанныеИсточник.Колонки.Добавить("НоменклатураПрибытие" ,,"Номенклатура прибытие" ,);
ТЗДанныеИсточник.Колонки.Добавить("НоменклатураОтправка" ,,"Номенклатура отправка" ,);
ТЗДанныеИсточник.Колонки.Добавить("ВесПоПрибытию" ,ОписаниеТиповЧ,"Вес по прибытию" );
Для Каждого Строка Из ТаблицаДанныхИсточникСОМОбъект Цикл
СтрокаТЗ = ТЗДанныеИсточник.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЗ,Строка,,);
КонецЦикла ;
НаборЗаписейПриемник = РегистрыСведений.ПростойВагона.СоздатьНаборЗаписей();
НаборЗаписейПриемник.Записывать = Истина ;
Для Каждого СтрокаДанных Из ТЗДанныеИсточник Цикл
Если СтрокаДанных.ПринадлежностьВагона.Description <> "" Тогда
ПоискПринадлежностьВагона = Справочники.ПринадлежностьВагонов.НайтиПоНаименованию(СтрокаДанных.ПринадлежностьВагона.Description,Истина );
Если Не ПоискПринадлежностьВагона.Пустая() Тогда
СтрокаДанных.ПринадлежностьВагона = ПоискПринадлежностьВагона;
Иначе
обПринадлежностьВагона = Справочники.ПринадлежностьВагонов.СоздатьЭлемент();
обПринадлежностьВагона.Наименование = СтрокаДанных.ПринадлежностьВагона.Description;
обПринадлежностьВагона.Записать();
СтрокаДанных.ПринадлежностьВагона = обПринадлежностьВагона;
КонецЕсли ;
КонецЕсли ;
Если СтрокаДанных.НоменклатураПрибытие.Description <> "" Тогда
ПоискНоменклатураПрибытие = Справочники.Номенклатура.НайтиПоНаименованию(СтрокаДанных.НоменклатураПрибытие.Description,Истина );
Если Не ПоискНоменклатураПрибытие.Пустая() Тогда
СтрокаДанных.НоменклатураПрибытие = ПоискНоменклатураПрибытие;
Иначе
обНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
обНоменклатура.Наименование = СтрокаДанных.НоменклатураПрибытие.Description;
обНоменклатура.Записать();
СтрокаДанных.НоменклатураПрибытие = обНоменклатура;
КонецЕсли ;
КонецЕсли ;
Если СтрокаДанных.НоменклатураОтправка.Description <> "" Тогда
ПоискНоменклатураОтправка = Справочники.Номенклатура.НайтиПоНаименованию(СтрокаДанных.НоменклатураОтправка.Description,Истина );
Если Не ПоискНоменклатураОтправка.Пустая() Тогда
СтрокаДанных.НоменклатураОтправка = ПоискНоменклатураОтправка;
Иначе
обНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
обНоменклатура.Наименование = СтрокаДанных.НоменклатураОтправка;
обНоменклатура.Записать();
СтрокаДанных.НоменклатураОтправка = обНоменклатура;
КонецЕсли ;
КонецЕсли ;
ЗаписьПриемник = НаборЗаписейПриемник.Добавить();
ЗаполнитьЗначенияСвойств(ЗаписьПриемник,СтрокаДанных,,);
НаборЗаписейПриемник.Записать();
КонецЦикла ;
КонецПроцедуры
Получилось прочитать название значения перечисления в базе источнике. Как теперь его сравнивать с тем значением которое я считал? Крыша едет не спеша....
Процедура ЗагрузитьДанныеПростойВагонаСБазыТест() Экспорт ;
СОМСоединение = Новый COMОбъект("V83.ComConnector" );
Сервер = "***" ;
ИмяБазы = "***" ;
Пользователь = "***" ;
Пароль = "***" ;
СтрокаПодключения = "Srvr = '" + Сервер + "';" + "Ref = '" + ИмяБазы + "';" + "Usr = '" + Пользователь + "';" + "Pwd = '" + Пароль + "';" ;
БазаИсточник = СОМСоединение.Connect(СтрокаПодключения);
БазаИсточник_Запрос = БазаИсточник.Newobject("Запрос" );
ТекстЗапроса = "ВЫБРАТЬ
| ПростойВагона.Период,
| ПростойВагона.НомерВагона,
| ПростойВагона.ПрибытияВагона,
| ПростойВагона.УстановкаПодВыгрузку,
| ПростойВагона.ОкончаниеВыгрузки,
| ПростойВагона.ПрибытиеДокументовПослеДекларирования,
| ПростойВагона.ПрибытиеИнструкцийВОтправкуПОРПВ,
| ПростойВагона.УстановкаПодПогрузку,
| ПростойВагона.ОкончаниеПогрузки,
| ПростойВагона.ПрибытиеДокументовПослеТаможирования,
| ПростойВагона.ВозвратПВстКраматорск,
| ПростойВагона.ВесПоПрибытию,
| ПростойВагона.Ответственный,
| ПростойВагона.СостояниеВагона,
| ПростойВагона.ПринадлежностьВагона,
| ПростойВагона.НоменклатураПрибытие,
| ПростойВагона.НоменклатураОтправка
|ИЗ
| РегистрСведений.ПростойВагона КАК ПростойВагона" ;
БазаИсточник_Запрос.Текст = ТекстЗапроса;
ТаблицаДанныхИсточникСОМОбъект = БазаИсточник_Запрос.Выполнить().Выгрузить();
НаименованиеПеречисленияП = БазаИсточник.XMLСтрока(БазаИсточник.Перечисления.СостояниеВагонов.Порожний);
НаименованиеПеречисленияГ = БазаИсточник.XMLСтрока(БазаИсточник.Перечисления.СостояниеВагонов.Груженый);
СОМСоединение = Неопределено ;
ТЗДанныеИсточник = Новый ТаблицаЗначений;
КЧ = Новый КвалификаторыЧисла(6 ,3 );
ОписаниеТиповЧ = Новый ОписаниеТипов("Число" ,,,КЧ);
ТЗДанныеИсточник.Колонки.Добавить("Период" ,,"Период" ,);
ТЗДанныеИсточник.Колонки.Добавить("НомерВагона" ,,"Номер вагона" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПрибытияВагона" ,,"Прибытие вагона" ,);
ТЗДанныеИсточник.Колонки.Добавить("УстановкаПодВыгрузку" ,,"Установка под выгрузку" ,);
ТЗДанныеИсточник.Колонки.Добавить("ОкончаниеВыгрузки" ,,"Окончание выгрузки" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПрибытиеДокументовПослеДекларирования" ,,"Прибытие документов после декларирования" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПрибытиеИнструкцийВОтправкуПОРПВ" ,,"Прибытие инструкций в отправку ПОР ПВ" ,);
ТЗДанныеИсточник.Колонки.Добавить("УстановкаПодПогрузку" ,,"Установка под погрузку" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПрибытиеДокументовПослеТаможирования" ,,"Прибытие документов после таможирования" ,);
ТЗДанныеИсточник.Колонки.Добавить("ВозвратПВстКраматорск" ,,"Возврат ПВ ст." ,);
ТЗДанныеИсточник.Колонки.Добавить("СостояниеВагона" ,,"Состояние вагона" ,);
ТЗДанныеИсточник.Колонки.Добавить("Ответственный" ,,"Ответственный" ,);
ТЗДанныеИсточник.Колонки.Добавить("ПринадлежностьВагона" ,,"Принадлежность вагона" ,);
ТЗДанныеИсточник.Колонки.Добавить("НоменклатураПрибытие" ,,"Номенклатура прибытие" ,);
ТЗДанныеИсточник.Колонки.Добавить("НоменклатураОтправка" ,,"Номенклатура отправка" ,);
ТЗДанныеИсточник.Колонки.Добавить("ВесПоПрибытию" ,ОписаниеТиповЧ,"Вес по прибытию" );
Для Каждого Строка Из ТаблицаДанныхИсточникСОМОбъект Цикл
СтрокаТЗ = ТЗДанныеИсточник.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЗ,Строка,,);
КонецЦикла ;
НаборЗаписейПриемник = РегистрыСведений.ПростойВагона.СоздатьНаборЗаписей();
НаборЗаписейПриемник.Записывать = Истина ;
Для Каждого СтрокаДанных Из ТЗДанныеИсточник Цикл
Если СтрокаДанных.ПринадлежностьВагона.Description <> "" Тогда
ПоискПринадлежностьВагона = Справочники.ПринадлежностьВагонов.НайтиПоНаименованию(СтрокаДанных.ПринадлежностьВагона.Description,Истина );
Если Не ПоискПринадлежностьВагона.Пустая() Тогда
СтрокаДанных.ПринадлежностьВагона = ПоискПринадлежностьВагона;
Иначе
обПринадлежностьВагона = Справочники.ПринадлежностьВагонов.СоздатьЭлемент();
обПринадлежностьВагона.Наименование = СтрокаДанных.ПринадлежностьВагона.Description;
обПринадлежностьВагона.Записать();
СтрокаДанных.ПринадлежностьВагона = обПринадлежностьВагона;
КонецЕсли ;
КонецЕсли ;
Если СтрокаДанных.НоменклатураПрибытие.Description <> "" Тогда
ПоискНоменклатураПрибытие = Справочники.Номенклатура.НайтиПоНаименованию(СтрокаДанных.НоменклатураПрибытие.Description,Истина );
Если Не ПоискНоменклатураПрибытие.Пустая() Тогда
СтрокаДанных.НоменклатураПрибытие = ПоискНоменклатураПрибытие;
Иначе
обНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
обНоменклатура.Наименование = СтрокаДанных.НоменклатураПрибытие.Description;
обНоменклатура.Записать();
СтрокаДанных.НоменклатураПрибытие = обНоменклатура;
КонецЕсли ;
КонецЕсли ;
Если СтрокаДанных.НоменклатураОтправка.Description <> "" Тогда
ПоискНоменклатураОтправка = Справочники.Номенклатура.НайтиПоНаименованию(СтрокаДанных.НоменклатураОтправка.Description,Истина );
Если Не ПоискНоменклатураОтправка.Пустая() Тогда
СтрокаДанных.НоменклатураОтправка = ПоискНоменклатураОтправка;
Иначе
обНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
обНоменклатура.Наименование = СтрокаДанных.НоменклатураОтправка;
обНоменклатура.Записать();
СтрокаДанных.НоменклатураОтправка = обНоменклатура;
КонецЕсли ;
КонецЕсли ;
ЗаписьПриемник = НаборЗаписейПриемник.Добавить();
ЗаполнитьЗначенияСвойств(ЗаписьПриемник,СтрокаДанных,,);
НаборЗаписейПриемник.Записать();
КонецЦикла ;
КонецПроцедуры
30.10.14, 15:11
Ветеран
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(Batchir @ 30.10.14, 14:40)
Для Каждого Строка Из ТаблицаДанныхИсточникСОМОбъект Цикл
СтрокаТЗ = ТЗДанныеИсточник.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЗ,Строка,,);
ИмяПеречисления = "СостояниеВагона" ;
КомОбъект = Строка [ИмяПеречисления];
ИндексПеречисления = БазаИсточник .Перечисления [ИмяПеречисления] .Индекс(КомОбъект);
ИмяЗначенияПеречисления = БазаИсточник .Метаданные().Перечисления[ИмяПеречисления].EnumValues.Get(ИндексПеречисления).Name;
ЗначениеПеречисления = Перечисления[ИмяПеречисления] [ИмяЗначенияПеречисления];
СтрокаТЗ [ИмяПеречисления] = ЗначениеПеречисления;
КонецЦикла ;
Как-то так.
Но я бы дополнительно посоветовал сохранять найденные соответствия в какой-то кэш и если в нем не найдено, то лезть в БазаИсточник за данными
Что делает вот это "КомОбъект = Строка [ИмяПеречисления];" ? /Вылетает ошибка/
Пишу так:
Для Каждого Строка Из ТаблицаДанныхИсточникСОМОбъект Цикл
СтрокаТЗ = ТЗДанныеИсточник.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЗ,Строка,,);
ИмяПеречисления = "СостояниеВагонов" ;
КомОбъект = Строка[ИмяПеречисления];
ИндексПеречисления = БазаИсточник.Перечисления[ИмяПеречисления].Индекс(КомОбъект);
ИмяЗначениеПеречисления = БазаИсточник.Метаданные().Перечисления[ИмяПеречисления].EnumValues.Get(ИндексПеречисления).Name;
ЗначениеПеречисления = Перечисления[ИмяПеречисления][ИмяЗначениеПеречисления];
СтрокаТЗ[ИмяПеречисления] = ЗначениеПеречисления;
КонецЦикла ;
Нашол что не так, вот код:
Для Каждого Строка Из ТаблицаДанныхИсточникСОМОбъект Цикл
СтрокаТЗ = ТЗДанныеИсточник.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЗ,Строка,,);
ИмяПеречисления = "СостояниеВагонов" ;
КомОбъект = Строка.СостояниеВагона;
ИндексПеречисления = БазаИсточник.Перечисления[ИмяПеречисления].Индекс(КомОбъект);
ИмяЗначениеПеречисления = БазаИсточник.Метаданные().Перечисления[ИмяПеречисления].EnumValues.Get(ИндексПеречисления).Name;
ЗначениеПеречисления = Перечисления[ИмяПеречисления][ИмяЗначениеПеречисления];
СтрокаТЗ[ИмяПеречисления] = ЗначениеПеречисления;
КонецЦикла ;
Описание ошики:
ИндексПеречисления = БазаИсточник.Перечисления[ИмяПеречисления].Индекс(КомОбъект);
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.3.4.408): Несоответствие типов (параметр номер '1')
ПОЛУЧИЛОСЬ!СПАСИБО!
Для Каждого Строка Из ТаблицаДанныхИсточникСОМОбъект Цикл
СтрокаТЗ = ТЗДанныеИсточник.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЗ,Строка,,);
ИмяПеречисления = "СостояниеВагонов" ;
КомОбъект = Строка.СостояниеВагона;
Попытка
ИндексПеречисления = БазаИсточник.Перечисления[ИмяПеречисления].Индекс(КомОбъект);
ИмяЗначениеПеречисления = БазаИсточник.Метаданные().Перечисления[ИмяПеречисления].EnumValues.Get(ИндексПеречисления).Name;
ЗначениеПеречисления = Перечисления[ИмяПеречисления][ИмяЗначениеПеречисления];
СтрокаТЗ.СостояниеВагона = ЗначениеПеречисления;
Исключение
Продолжить;
КонецПопытки ;
КонецЦикла ;
Не нашли ответа на свой вопрос?
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!