У кого-нибудь получилось записать во внешние источники когда они необъектные данные? 8.3.5.1119

1. TimofeySin 166 05.09.14 14:41 Сейчас в теме
Всю голову сломал. Пишу в sql через внешние источники (8.3.5.1119)
Объектные даннные все ОК.
	НоваяЗапись = ВнешниеИсточникиДанных.Holding_Exchange.Таблицы.dbo_Brand.СоздатьОбъект();
        НоваяЗапись.Description = НаборЗап.Менеджер.Подразделение.Марка.Наименование;
	НоваяЗапись._IDRef = НаборЗап.Менеджер.Подразделение.Марка.УникальныйИдентификатор();
	НоваяЗапись.Записать();

Не объектные данные:
НоваяЗап = ВнешниеИсточникиДанных.Holding_Exchange.Таблицы.dbo_CurrentStatus.СоздатьМенеджерЗаписи();
        НоваяЗап._Person     = Строка(НаборЗап.Менеджер.УникальныйИдентификатор());
	НоваяЗап._DateEvent  = НаборЗап.ДатаСостояния;
	НоваяЗап.Записать();	

Выдает ошибку:
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: 42000
Номер ошибки: 102
Описание: [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около конструкции "T1".
PS пробовал и с "_" и без. всё одно. Может чего не так делаю.
Пробовал через СоздатьНаборЗаписи() Всё тож самое.
kaaasteeen; Blagin; +2
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Zixxx 05.09.14 15:06 Сейчас в теме
А "НоваяЗап._Person" там тип string в таблице?
+
3. TimofeySin 166 05.09.14 15:18 Сейчас в теме
(2) Zixxx, Вот таблица:
USE [Holding_Exchange]
GO

/****** Object:  Table [dbo].[CurrentStatus]    Script Date: 09/05/2014 13:07:40 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CRE ATE   TABLE [dbo].[CurrentStatus](
	[_Person] [nvarchar](50) NOT NULL,
	[_DateEvent] [datetime] NOT NULL,
 CONSTRAINT [PK_CurrentStatus] PRIMARY KEY CLUSTERED 
(
	[_Person] ASC,
	[_DateEvent] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO


Показать
+
4. caponid 05.09.14 15:44 Сейчас в теме
каким образом инициализировал соединение? плз весь код.
если явно не укажешь тип сервера, то будут проблемы.
+
5. TimofeySin 166 05.09.14 16:13 Сейчас в теме
Вот строка подключения. (Так ведь объектные данные пишутся норм и все норм читается)
	Соединение = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;
	Соединение.СтрокаСоединения = "Driver={SQL Server};DSN=bd-srv.srv.local;Server=bd-srv.srv.local;Database=Holding_Exchange";
ВнешниеИсточникиДанных.Holding_Exchange.УстановитьПараметрыСоединенияСеанса(Соединение);
		ВнешниеИсточникиДанных.Holding_Exchange.УстановитьСоединение();
+
6. caponid 05.09.14 16:26 Сейчас в теме
ПараметрыСоединенияВнешнегоИсточникаДанных (ExternalDataSourceConnectionParameters)
Свойства:

АутентификацияОС (OSAuthentication)
АутентификацияСтандартная (StandardAuthentication)
ИмяПользователя (UserName)
Пароль (Password)
ПарольУстановлен (PasswordIsSet)
СтрокаСоединения (ConnectionString)


СУБД (DBMS) - вот это надо указывать явно - парсили на уровне сиквела - без указания запросы почему то в формате мускула от 1с приходили

хотя в строке соединения было указано MSSQL

и если есть в таблице ключевое поле с автоинкрементом - то его из объявления таблицы надо исключить
kaaasteeen; Blagin; fieryfist; msergeev79; kazak; vova814; Synoecium; afanasko; +8
7. TimofeySin 166 05.09.14 16:30 Сейчас в теме
Получилось!!! СПасибо спасибо спасибо!!!
kaaasteeen; +1
8. demon_infernal 40 20.06.16 19:42 Сейчас в теме
Такая же проблема, приведите плиз рабочую строку соединения
+
9. makfromkz 35 21.06.16 08:23 Сейчас в теме
СУБД (DBMS) - вот это надо указывать явно

Плииз, покажите пример явного объявления
+
10. caponid 21.06.16 10:14 Сейчас в теме
Соед = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;
Соед.СтрокаСоединения = "Тут строку соединения";
Соед.СУБД = "MSSQLServer"; //Явно указываем, потому что тот тип, что указали в строке соединения, игнорируется;

Источник = ВнешниеИсточникиДанных[НазваниеИсточника];
Источник.УстановитьПараметрыСоединенияСеанса(Соед);
Источник.УстановитьСоединение();
kaaasteeen; Blagin; user728106; msergeev79; +4
16. Kvitka_ru 07.06.18 15:23 Сейчас в теме
Спасибо, очень помогли!!!
+
11. demon_infernal 40 21.06.16 21:54 Сейчас в теме
Спасибо, получилось
+
12. Synoecium 779 01.03.17 07:45 Сейчас в теме
Тип СУБД можно задать интерактивно в форме настройки общих параметров источников данных. После задания типа СУБД стало нормально записываться, платформа 8.3.7.2027
Прикрепленные файлы:
kaaasteeen; +1
13. TheU 11.12.17 07:58 Сейчас в теме
Доброго времени суток.
Тип СУБД указываю, но при записи в таблицу с "необъектными" данными все равно ошибка:

[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '<'.

Подскажите, что еще м.б. не так
+
14. TimofeySin 166 11.12.17 11:12 Сейчас в теме
(13)
syntax
Какое-то поле не заполнил с ссылочным типом, оно не понимает пустую ссылку, надо туда NULL передавать.
kaaasteeen; simgo83; user728106; +3
15. TheU 11.12.17 15:10 Сейчас в теме
Ага, разобрался с помощью Profiler'а: дело, действительно, просто в незаполненном поле: я думал, что если у поля есть признак РазрешитьNull, то оно автоматически Null и заполнится, а 1С отправила запрос на вставку, где вместо значения поля стояло <bad type>. Она так реагирует, причем, на незаполненные поля не только со ссылочным типом (т.е., не только на пустые ссылки на др. таблицы, а на любые неуказанные значения).
DeniroDen; kaaasteeen; kawaietz; +3
Внимание! Тема сдана в архив

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