Выгружаем из 1С в EXCEL с помощью ADO. Часть III. Решаем проблему с кавычками.
Многие читатели предыдущих статей, посвященных выгрузке из 1С в EXCEL с помощью технологии ADO, столкнулись с проблемой, которая возникает когда в значении поля, которое подставляется в запрос к базе данных, встречается апостроф(одинарная кавычка). В данной статье будет приведено простое и элегантное решение данной проблемы, которое сообщил один из посетителей сайта.
Рассмотрим фрагмент кода из первой статьи «Выгружаем из 1С в EXCEL с помощью ADO. Часть I»
Ошибка возникает если Выборка.Код или Выборка.Наименование содержат апостроф. Чтобы избежать этого я предлагал либо экранировать, либо заменять этот символ другим. Но более правильное решение этой проблемы заключается в использовании параметров:
// Заполняем таблицу данными выборки
Пока Выборка.Следующий() Цикл
Command.CommandText = "
|INSERT INTO [Table] VALUES ('"+Выборка.Код+"','"
+Выборка.Наименование+"')";
Command.Execute();
КонецЦикла;
Command.CommandText = "INSERT INTO [Table] VALUES (@Код, @Наименование)";
Пока Выборка.Следующий() Цикл
Command.Parameters("@Код").Value = Выборка.Код;
Command.Parameters("@Наименование").Value = Выборка.Наименование;
Command.Execute();
КонецЦикла;
Если публикация показалась Вам полезной и интересной не забывайте оставлять свои отзывы и комментарии, так же Вы можете выразить свою благодарность материально.
Комментарии:
Скажите, как можно задать имя нового листа, если оно (имя) содержит пробел? Например, “Лист 1″ или “Таблица товаров и цен”