Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
30 сен 2026, 01:22

запросы sql на прямую к базе

Автор Funt432286, 26 сен 2026, 15:01

0 Пользователей и 1 гость просматривают эту тему.

Funt432286

всем доброго времени суток!

есть такая проблемка:
работаю с данными, со сторонней сапописной конфигурации. через запросы sql (чтение и запись)
С чтением данных вроде проблем не возникло, а вот запись - крах.
Необходимо записать данные в регистр Накопления. в нем есть Измерение типа СправочникСсылка.
Вот реквизиты Регистра:
SELECT
АСклад._Period AS Период,
АСклад._RecorderTRef AS _RecorderTRef,
АСклад._RecorderRRef AS _RecorderRRef,
АСклад._LineNo AS НомерСтроки,
АСклад._Active AS Активность,
АСклад._RecordKind AS _RecordKind,
АСклад._Fld33617 AS НомерТЗ,
АСклад._Fld33618RRef AS _Fld33618RRef,
АСклад._Fld33619 AS НомерПартии,
АСклад._Fld33620 AS Количество
FROM
dbo._AccumRg33616 АСклад
WHERE
АСклад._Fld33619 = '435/2'

Когда пытаюсь создать новую запись, выдается ошибка на измерение, что нужно указать обязательные параметры измерения.
У меня ссылки на него нет! Как в команде sql седлать вложенный запрос на получение ссылки?
Вот код команды на создание записи:
INSERT INTO dbo._AccumRg33616
( _Period,
_RecorderTRef,
_RecorderRRef,
_LineNo,
_Active,
_RecordKind,
_Fld33617,
_Fld33618RRef,
_Fld33619,
_Fld33620
)
VALUES
( '12.08.2026',
'1297-26',
'435/2',
'7850')

Funt432286

Просто при запуске команды запроса, выдается ошибка

Ошибка при вызове метода контекста (Execute)
{Обработка.КонструкторЗапросаДляSQL.Форма.Форма.Форма(527)}:RecordSet = СоединениеSQL.Execute(ТекстЗапроса);
{Обработка.КонструкторЗапросаДляSQL.Форма.Форма.Форма(609)}:ТЗ = ПолучитьТаблицуИзВД( Соединение, ТекстЗапроса);
{Обработка.КонструкторЗапросаДляSQL.Форма.Форма.Форма(596)}:ТабличныйДокументРезультат = ПолучитьТаблицуНаСервере(ТекущиеДанныеТекстЗапроса);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Не удалось вставить значение NULL в столбец "_RecorderTRef", таблицы "Poligraf.dbo._AccumRg33616"; в столбце запрещены значения NULL. Ошибка в INSERT.
[ОшибкаИспользованияВстроенногоЯзыка]

LexaK

вроде есть вариант, подготовить временную таблицу
Select into
а затем уже вставлять из нее данные, командой
INSERT  ... FROM

а ваша самописка вообще может поддерживать работу с СОМ объектами?
запускаете базу 1С как ком объект, и работаете с ней обычными 1С-ми запросами.
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск