У кого-нибудь получилось записать во внешние источники когда они необъектные данные? 8.3.5.1119
Всю голову сломал. Пишу в sql через внешние источники (8.3.5.1119)
Объектные даннные все ОК.
Не объектные данные:
Выдает ошибку:
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: 42000
Номер ошибки: 102
Описание: [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около конструкции "T1".
PS пробовал и с "_" и без. всё одно. Может чего не так делаю.
Пробовал через СоздатьНаборЗаписи() Всё тож самое.
Объектные даннные все ОК.
НоваяЗапись = ВнешниеИсточникиДанных.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 пробовал и с "_" и без. всё одно. Может чего не так делаю.
Пробовал через СоздатьНаборЗаписи() Всё тож самое.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(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
Показать
Вот строка подключения. (Так ведь объектные данные пишутся норм и все норм читается)
Соединение = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;
Соединение.СтрокаСоединения = "Driver={SQL Server};DSN=bd-srv.srv.local;Server=bd-srv.srv.local;Database=Holding_Exchange";
ВнешниеИсточникиДанных.Holding_Exchange.УстановитьПараметрыСоединенияСеанса(Соединение);
ВнешниеИсточникиДанных.Holding_Exchange.УстановитьСоединение();
ПараметрыСоединенияВнешнегоИсточникаДанных (ExternalDataSourceConnectionParameters)
Свойства:
АутентификацияОС (OSAuthentication)
АутентификацияСтандартная (StandardAuthentication)
ИмяПользователя (UserName)
Пароль (Password)
ПарольУстановлен (PasswordIsSet)
СтрокаСоединения (ConnectionString)
СУБД (DBMS) - вот это надо указывать явно - парсили на уровне сиквела - без указания запросы почему то в формате мускула от 1с приходили
хотя в строке соединения было указано MSSQL
и если есть в таблице ключевое поле с автоинкрементом - то его из объявления таблицы надо исключить
Свойства:
АутентификацияОС (OSAuthentication)
АутентификацияСтандартная (StandardAuthentication)
ИмяПользователя (UserName)
Пароль (Password)
ПарольУстановлен (PasswordIsSet)
СтрокаСоединения (ConnectionString)
СУБД (DBMS) - вот это надо указывать явно - парсили на уровне сиквела - без указания запросы почему то в формате мускула от 1с приходили
хотя в строке соединения было указано MSSQL
и если есть в таблице ключевое поле с автоинкрементом - то его из объявления таблицы надо исключить
Соед = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;
Соед.СтрокаСоединения = "Тут строку соединения";
Соед.СУБД = "MSSQLServer"; //Явно указываем, потому что тот тип, что указали в строке соединения, игнорируется;
Источник = ВнешниеИсточникиДанных[НазваниеИсточника];
Источник.УстановитьПараметрыСоединенияСеанса(Соед);
Источник.УстановитьСоединение();
Ага, разобрался с помощью Profiler'а: дело, действительно, просто в незаполненном поле: я думал, что если у поля есть признак РазрешитьNull, то оно автоматически Null и заполнится, а 1С отправила запрос на вставку, где вместо значения поля стояло <bad type>. Она так реагирует, причем, на незаполненные поля не только со ссылочным типом (т.е., не только на пустые ссылки на др. таблицы, а на любые неуказанные значения).
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот