|   |   | 
| 
 | Переменная не определена (Контрагенты) Запрос.УстановитьПараметр("Контрагенты",Контрагенты | ☑ | ||
|---|---|---|---|---|
| 0
    
        Repinovich 21.11.22✎ 21:57 | 
        Помогите решить данную проблему. Не понимаю почему чего хочет 1с-предприятие, точнее зачем параметр определять на сервер.
 1. без параметра 2. сам код документа 3. ошибка параметра Ошибка при вызове метода контекста (Выполнить) {Документ.РеализацияТоваров.МодульОбъекта(70)}: РезультатЗапроса = Запрос.Выполнить(); по причине: {(37, 22)}: Не задано значение параметра "Контрагенты" НЕ Контрагенты = <<?>>&Контрагенты по причине: {(37, 22)}: Не задано значение параметра "Контрагенты" НЕ Контрагенты = <<?>>&Контрагенты Процедура ОбработкаПроведения(Отказ, Режим) Движения.ОстаткиТоваров.Записать(); Движения.БронированиеТоваров.Записать(); // регистр ОстаткиТоваров Приход Запрос = Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | РеализацияТоваровСписокНоменклатуры.Номенклатура КАК Номенклатура, | СУММА(РеализацияТоваровСписокНоменклатуры.Количество) КАК Количество |ПОМЕСТИТЬ ВТДок |ИЗ | Документ.РеализацияТоваров.СписокНоменклатуры КАК РеализацияТоваровСписокНоменклатуры |ГДЕ | РеализацияТоваровСписокНоменклатуры.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | РеализацияТоваровСписокНоменклатуры.Номенклатура | |ИНДЕКСИРОВАТЬ ПО | Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТДок.Номенклатура КАК Номенклатура, | ПРЕДСТАВЛЕНИЕ(ВТДок.Номенклатура) КАК НоменклатураП, | ВТДок.Количество КАК Количество, | ЕСТЬNULL(ОстаткиТоваровОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, | ЕСТЬNULL(БронированиеТоваровОстатки.КоличествоЗабронированногоОстаток, 0) КАК ЧужаяБронь, | ЕСТЬNULL(БронированиеКонтрагента.КоличествоЗабронированногоОстаток, 0) КАК БроньКонтрагента |ИЗ | ВТДок КАК ВТДок | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки( | &Момент, | Номенклатура В | (ВЫБРАТЬ | ВТДок.Номенклатура КАК Номенклатура | ИЗ | ВТДок КАК ВТДок)) КАК ОстаткиТоваровОстатки | ПО ВТДок.Номенклатура = ОстаткиТоваровОстатки.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.БронированиеТоваров.Остатки( | &Момент, | НЕ Контрагенты = &Контрагенты | И Номенклатура В | (ВЫБРАТЬ | ВТДок.Номенклатура КАК Номенклатура | ИЗ | ВТДок КАК ВТДок)) КАК БронированиеТоваровОстатки | ПО ВТДок.Номенклатура = БронированиеТоваровОстатки.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.БронированиеТоваров.Остатки( | &Момент, | Контрагенты = &Контрагенты | И Номенклатура В | (ВЫБРАТЬ | ВТДок.Номенклатура КАК Номенклатура | ИЗ | ВТДок КАК ВТДок)) КАК БронированиеКонтрагента | ПО ВТДок.Номенклатура = БронированиеКонтрагента.Номенклатура"; Запрос.УстановитьПараметр("Ссылка",Ссылка); Запрос.УстановитьПараметр("Момент",Неопределено); Запрос.УстановитьПараметр("Контрагенты",Контрагенты); Движения.ОстаткиТоваров.Записывать = Истина; Движения.БронированиеТоваров.Записывать = Истина; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.КоличествоОстаток - ВыборкаДетальныеЗаписи.ЧужаяБронь < ВыборкаДетальныеЗаписи.КоличествоОстаток Тогда Нехватка = ВыборкаДетальныеЗаписи.Количество - (ВыборкаДетальныеЗаписи.КоличествоОстаток - ВыборкаДетальныеЗаписи.ЧужаяБронь ); Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не хватает " + (Нехватка)+ " шт. товара " + ВыборкаДетальныеЗаписи.НоменклатураП + " в Продажа товаров " + Номер + " от " + Дата; Сообщение.Сообщить(); Отказ = Истина; Продолжить; Иначе Движение = Движения.ОстаткиТоваров.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; Движение.Количество = ВыборкаДетальныеЗаписи.Количество; Движение = Движения.БронированиеТоваров.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Контрагенты = ВыборкаДетальныеЗаписи.Контрагенты; Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; Движение.КоличествоЗабронированного = ВыборкаДетальныеЗаписи.БроньКонтрагента; КонецЕсли; КонецЦикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры {Документ.РеализацияТоваров.МодульОбъекта(63,42)}: Переменная не определена (Контрагенты) Запрос.УстановитьПараметр("Контрагенты",<<?>>Контрагенты); (Проверка: Сервер) | |||
| 1
    
        Гипервизор 21.11.22✎ 22:02 | 
        Что есть "Контрагенты"?     | |||
| 2
    
        hockeyist 21.11.22✎ 22:16 | 
        (0) Если в запросе указан параметр, то для выполнения запроса нужно указать значение этого параметра.
 Я ответил на вопрос "почему чего хочет 1С"? | |||
| 3
    
        НафНаф 21.11.22✎ 22:38 | 
        Устанавливать остатки на момент времени или дату равным неопределено это как? Возможно я не всё понимаю в 1с     | |||
| 4
    
        hockeyist 21.11.22✎ 22:41 | 
        (3) Это на конец дня 31.12.3999     | |||
| 5
    
        Repinovich 21.11.22✎ 22:42 | 
        (1) контрагенты - измерение из БронированиеТоваров  регистра накопления     | |||
| 6
    
        Repinovich 21.11.22✎ 22:43 | 
        (2) Понял. Но я укстановил параметр и при этом выдаёт ошибку, что он не определен     | |||
| 7
    
        Гипервизор 21.11.22✎ 22:46 | 
        (6) В параметр передаёте измерение регистра?     | |||
| 8
    
        hockeyist 21.11.22✎ 22:46 | 
        (6) Нет. Сообщение об ошибке говорит о невозможности установить параметр. Впрочем...
 в этом коде плохо, и эта ошибка не последняя. | |||
| 9
    
        salvator 21.11.22✎ 22:49 | 
        (6) Написано же: "переменная не определена (Контрагенты)".     | |||
| 10
    
        hockeyist 21.11.22✎ 22:51 | 
        (8) ... плохо все     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |