Имя: Пароль:
1C
 
Запись в скл
0 Мисти
 
22.08.14
14:18
Ругань -
//по причине:
//Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server):
//    Параметризированный запрос "(@P1 nvarchar(27),@P2 bit,@P3 nvarchar(250),@P4 nvarchar(50),@P5" ожидает параметр "@P11", который не был указан.
     На запрос -

            ТекстЗапроса = "update gtw_ContractImport set ModifiedOn1C= ?,  DoDelete = ?, Number = ?,ContractType = ?, ContractDate = ?, StartDate = ?,DueDate = ?,AccountId = ?,
            |TerminationContractDate= ?,TerminationReason= ?,PrimaryContractId= ? WHERE UI1C = ?";
            Cmd.CommandText = ТекстЗапроса;
            //Если СокрЛП(СтрДоговорСКЛ.ID)=""  Тогда
            //Иначе
            //    Cmd.Parameters(0).Value = СтрДоговорСКЛ.ID;
            //КонецЕсли;
            Cmd.Parameters(0).Value = СтрДоговорСКЛ.ModifiedOn1C;
            Cmd.Parameters(1).Value = СтрДоговорСКЛ.DoDelete;
            Cmd.Parameters(2).Value = СтрДоговорСКЛ.Number;
            Cmd.Parameters(3).Value = СтрДоговорСКЛ.ContractType;
            Если СтрДоговорСКЛ.ContractDate  > '17530101' Тогда
                Cmd.Parameters(4).Value = СтрДоговорСКЛ.ContractDate;
            Иначе
                Cmd.Parameters(4).Value = '17530102';
            КонецЕсли;
            
            Если СтрДоговорСКЛ.StartDate  > '17530101' Тогда
                Cmd.Parameters(5).Value = СтрДоговорСКЛ.StartDate;;
            Иначе
                Cmd.Parameters(5).Value = '17530102';
            КонецЕсли;
            Если СтрДоговорСКЛ.DueDate  > '17530101' Тогда
                Cmd.Parameters(6).Value = СтрДоговорСКЛ.DueDate;
            Иначе
                Cmd.Parameters(6).Value = '17530102';
            КонецЕсли;
            Если   СокрЛП(СтрДоговорСКЛ.AccountId)  = ""  Тогда
            Иначе
                Cmd.Parameters(7).Value = СтрДоговорСКЛ.AccountId;
            КонецЕсли;
            Если СтрДоговорСКЛ.TerminationContractDate  > '17530101' Тогда
                Cmd.Parameters(8).Value = СтрДоговорСКЛ.TerminationContractDate;
            Иначе
                Cmd.Parameters(8).Value = '17530102';
            КонецЕсли;
            Cmd.Parameters(9).Value = СтрДоговорСКЛ.TerminationReason;
            Если СокрЛП(СтрДоговорСКЛ.PrimaryContractId)=""  Тогда
            Иначе
                Cmd.Parameters(10).Value = СтрДоговорСКЛ.PrimaryContractId;
            КонецЕсли;
            Cmd.Parameters(11).Value = СтрДоговорСКЛ.UI1C;
1 Мисти
 
22.08.14
14:19
По-моему - в огороде бузина, а в Киеве дядька. Не может быть такого, чтоб внутри базы была навешана какая-то доп. процедура и ругалась бы уже она?
2 Awreli
 
22.08.14
14:28
привет от динамического обновления
3 Мисти
 
22.08.14
14:37
От какого такого динамического обновления??
4 Franchiser
 
гуру
22.08.14
14:41
я запросы к скулю пишу без параметров, м.б. потому что параметров больше 10?
5 Ненавижу 1С
 
гуру
22.08.14
14:42
тип какой?
6 Мисти
 
22.08.14
14:43
Тип чего?
7 Мисти
 
22.08.14
14:44
(4) У меня и 27 параметров было.
Меня удивляет, почему в ругани перечислена только часит параметров.
8 Franchiser
 
гуру
22.08.14
14:45
я так понял ругань относится к 11-му параметру
9 Мисти
 
22.08.14
15:01
Если СокрЛП(СтрДоговорСКЛ.PrimaryContractId)=""  Тогда
            Иначе
                Cmd.Parameters(10).Value = СтрДоговорСКЛ.PrimaryContractId;
            КонецЕсли;
  
Ну вот этот, наверное, но он же может быть нулл, значит, могу не задавать.
10 МихаилМ
 
22.08.14
15:08
(0)
в коде ошибка . мб случаи незаполнения параметров.
11 Мисти
 
22.08.14
15:14
Ну и что? У меня не заполняются только те, которые по умлочанию нулл. И, к тому же - раньше-то работало!
12 Ненавижу 1С
 
гуру
22.08.14
15:16
(6) СтрДоговорСКЛ.UI1C
13 Мисти
 
22.08.14
15:24
Тип строка
//[Id] [uniqueidentifier] NULL,               1
            //    [UI1C] [nvarchar](50) NULL,               2
            //    [ModifiedOn1C] [datetime2](7) NULL,       3
            //    [DoDelete] [bit] NOT NULL,                4
            //    [Number] [nvarchar](250) NOT NULL,        5
            //    [ContractType] [nvarchar](50) NULL,       6
            //    [ContractDate] [datetime2](7) NULL,       7
            //    [StartDate] [datetime2](7) NULL,          8
            //    [DueDate] [datetime2](7) NULL,             9
            //    [AccountId] [nvarchar](50) NULL,           10
            //    [TerminationContractDate] [datetime2](7) NULL,  11
            //    [TerminationReason] [nvarchar](250) NOT NULL,   12
            //    [PrimaryContractId] [uniqueidentifier] NUL        13
14 Мисти
 
22.08.14
15:58
ау?
15 Мисти
 
22.08.14
18:26
ау!
16 Мисти
 
22.08.14
19:02
все пьют?
17 Мисти
 
22.08.14
19:50
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Параметризированный запрос "(@P1 nvarchar(27),@P2 bit,@P3 nvarchar(250),@P4 nvarchar(50),@P5" ожидает параметр "@P10", который не был указан.

Путем исключений понятно, что не нравится вот это:
            Если СокрЛП(СтрДоговорСКЛ.PrimaryContractId)=""  Тогда
            Иначе
                Cmd.Parameters(8).Value = СтрДоговорСКЛ.PrimaryContractId;
            КонецЕсли;
,хотя в таблице описано, чт он может быть нулл. Как тогда быть: это идентификатор их, если у меня его нет - я его не рожу!
18 Мисти
 
22.08.14
19:58
Смешно!
Тпкой вариант ее устроил!
            Если СокрЛП(СтрДоговорСКЛ.PrimaryContractId)=""  Тогда
                 Cmd.Parameters(8).Value = null;
            Иначе
                Cmd.Parameters(8).Value = СтрДоговорСКЛ.PrimaryContractId;
            КонецЕсли;
19 mistеr
 
22.08.14
20:01
(9) С чего это вдруг можно не задавать? Если параметр есть в тексте запроса, должно быть установлено значение.
20 mistеr
 
22.08.14
20:04
(18) Что за дурная привычка - сначала поднять панику на форуме, а потом пытаться разобраться самому.
21 ДенисЧ
 
22.08.14
20:31
(20) Это Миста^Hи
Оно такое....
22 Мисти
 
22.08.14
20:44
(20) А я делаю это параллельно.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.