|   |   | 
| 
 | v7: Ругается "Недопустимое значение индекса параметра" | ☑ | ||
|---|---|---|---|---|
| 0
    
        zenon46 28.09.21✎ 16:27 | 
        Доброго дня!
 Почему ругается при выполнении скалярного : сам запрос |@Товар = ? |SELECT | Рег.КоличествоОстаток AS Резервы |FROM | $РегистрОстатки.РезервыТМЦ(:ВыбДата~,,Фирма = :ВбрФирма AND Номенклатура = @Товар,(Номенклатура),(Количество)) AS Рег |"; RS_1.УстановитьТекстовыйПараметр("ВбрФирма",глКонстанта("ФирмаОсновногоСклада")); RS_1.УстановитьТекстовыйПараметр("ДатаТА",ПолучитьДатуТА()); RS_1.Подготовить(ТекстЗапроса); RS_1.ПостроитьПараметры(); Далее в функции вызываю : Товар - ссылка на элемент справочника "Номенклатура" RS_1.УстПараметр(1,Товар); КолРез = RS_1.ВыполнитьСкалярный(); | |||
| 1
    
        ДенисЧ 28.09.21✎ 16:36 | ||||
| 2
    
        zenon46 28.09.21✎ 16:43 | 
        (1)     так тоже не стартует
 |SET NoCount ON |DECLARE @Товар Char(9) |Set @Товар = ? |SELECT | Рег.КоличествоОстаток AS Резервы |FROM | $РегистрОстатки.РезервыТМЦ(:ВыбДата~,,Фирма = :ВбрФирма AND Номенклатура = @Товар,(Номенклатура),(Количество)) AS Рег |"; RS_1.Подготовить(ТекстЗапроса); RS_1.ПостроитьПараметры(); RS_1.УстановитьТекстовыйПараметр("ВбрФирма",глКонстанта("ФирмаОсновногоСклада")); RS_1.УстановитьТекстовыйПараметр("ВыбДата",ПолучитьДатуТА()); | |||
| 3
    
        Chai Nic 28.09.21✎ 16:46 | 
        Не выеживайся и делай через текстовый параметр.     | |||
| 4
    
        zenon46 28.09.21✎ 16:46 | 
        Раньше был такой, он работал, а вот с ВТ что-то не получается запустить
 |SELECT | SUM($Рег.Количество) as Количество |FROM | $РегистрИтоги.РезервыТМЦ as Рег |WHERE | Рег.PERIOD = cast($НачалоПериода.Месяц(:ДатаТА,Строка) as datetime) AND | $Рег.Номенклатура = ? AND | $Рег.Фирма = :ВбрФирма |"; | |||
| 5
    
        trad 28.09.21✎ 18:02 | 
        вместо ПостроитьПараметры() попробуй явно ДобПараметр(1, 14, 9, 0)     | |||
| 6
    
        zenon46 28.09.21✎ 18:10 | 
        (5) как понимать эту запись ? "ДобПараметр(1, 14, 9, 0)"     | |||
| 7
    
        Mikeware 28.09.21✎ 18:21 | 
        (6) ДобПараметр / AddParam
 Синтаксис: ДобПараметр(IOType, DBType, Len, Prec) Параметры: IOType - тип: Число. Направления параметра: 1 - DBPARAMIO_INPUT; 2 - DBPARAMIO_OUTPUT; 3 - DBPARAMIO_INPUT | DBPARAMIO_OUTPUT. DBType - тип: Число. DBTYPE-тип параметра. Len - тип: Число. Длина параметра. Prec - тип: Число. Точность параметра. Описание: добавляет описание параметра для параметризированного запроса. | |||
| 8
    
        trad 28.09.21✎ 18:33 | 
        миста - внештатная справка     | |||
| 9
    
        Ёпрст гуру 28.09.21✎ 18:51 | 
        нахрена только ТС параметизированный запрос - загадка..
 Или он это чудо в цикле выполнять собрался ? ))) | |||
| 10
    
        zenon46 28.09.21✎ 18:53 | 
        (9) да отображение резерва в ТЧ документа     | |||
| 11
    
        Ёпрст гуру 28.09.21✎ 19:00 | 
        (10) получай для всех строк тч один раз останки и потом ищи их в итз     | |||
| 12
    
        Ёпрст гуру 28.09.21✎ 19:01 | 
        + или по кнопке или по таймеру обновление итз     | |||
| 13
    
        zenon46 28.09.21✎ 19:17 | 
        Запрос запустился, вот только на выходе 0, что не правильно ?
 |Set NOCOUNT ON |Declare @Товар VarChar(9) |Set @Товар = ? |SELECT | Рег.КоличествоОстаток AS Резервы |FROM | $РегистрОстатки.РезервыТМЦ(:ВыбДата~,,Фирма = :ВбрФирма AND Номенклатура = @Товар,(Номенклатура),(Количество)) AS Рег |"; RS_1.УстановитьТекстовыйПараметр("ВыбДата",ПолучитьДатуТА()); RS_1.УстановитьТекстовыйПараметр("ВбрФирма",глКонстанта("ФирмаОсновногоСклада")); RS_1.ДобПараметр(1,10,17,0); RS_1.ДобПараметр(1,14,9,0); RS_1.ДобПараметр(1,14,9,0); RS_1.Подготовить(ТекстЗапроса); RS_1.УстПараметр(1,ПолучитьДатуТА()); RS_1.УстПараметр(2,глКонстанта("ФирмаОсновногоСклада")); RS_1.УстПараметр(3,Товар); КолРез = RS_1.ВыполнитьСкалярный(); | |||
| 14
    
        zenon46 28.09.21✎ 19:26 | 
        Последние 2 строки, вызываются через функцию, я для удобства чтения объединил.     | |||
| 15
    
        zenon46 28.09.21✎ 19:46 | 
        Все ребзо, разобрался, спасибо за наводку!     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |