|
Переменная не определена (Контрагенты) Запрос.УстановитьПараметр("Контрагенты",Контрагенты | ☑ | ||
---|---|---|---|---|
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) ... плохо все
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |