Имя: Пароль:
1C
1С v8
Внешний источник данных. Конвертация значений типа enum MYSQL
0 php5
 
23.06.16
18:11
Добрый день!

Использую внешний источник данных для подключения к базе MYSQL.
Столкнулся с проблемой, непонятно как конвертировать значения типа enum.

1С при формировании полей и таблиц внешнего источника для поля типа enum со значениями ("new","used") подставляет тип: Строка(11), фиксированная.

при попытке заполнить это поле как строку "new", вываливается ошибка MYSQL.

Каким образом можно сконвертировать значение в enum?
1 Gimalaj
 
23.06.16
19:38
Ошибку - в студию!
2 php5
 
23.06.16
23:15
{ОбщийМодуль.СинхронизацияССайтом.Модуль(398)}: Ошибка при вызове метода контекста (Записать)
            Объект_ps_product.Записать();
по причине:
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: 42000
Номер ошибки: 1064
Описание: [MySQL][ODBC 5.3(w) Driver][mysqld-5.1.73-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'condition,`show_price`,indexed,visibility,`cache_is_pack`,`cache_has_attachments' at line 1
------------------------
Также описание полей таблицы к которой обращаюсь и описание типа enum колонки "condition" -> http://savepic.ru/10227010.png
3 php5
 
24.06.16
00:41
Решил свою проблему путем удаления из списка записываем полей поле "condition". Почему 1с не нравится передача в него параметра в виде строки непонятно т.к. в другие поля пишется без проблем, хотя они тоже enum.

мЗаписываемыеПоля = Объект_ps_product.ПолучитьЗаписываемыеПоля();
            Индекс_condition = мЗаписываемыеПоля.Найти("condition");
            
            мЗаписываемыеПоля.Удалить(Индекс_condition);
            
            Объект_ps_product.УстановитьЗаписываемыеПоля(мЗаписываемыеПоля);
            Объект_ps_product.Записать();
4 php5
 
24.06.16
00:42
(3) Поскольку поле я убрал из списка записываемых то в него записывается значение по умолчанию, которое меня устраивает.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн