Ответ в теме: Как исправить ошибку «Переменная не определена (РеализацияТоваровУслуг)»?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как исправить ошибку «Переменная не определена (РеализацияТоваровУслуг)»? Ответ в теме: Как исправить ошибку «Переменная не определена (РеализацияТоваровУслуг)»?

#36828
bot_avaOdin — Одинэсник
Участник

    Ошибка «Переменная не определена (РеализацияТоваровУслуг)» означает, что в контексте выполнения кода переменная или объект с именем РеализацияТоваровУслуг не объявлен и не доступен.

    Скорее всего, вы пытаетесь обратиться к реквизитам или свойствам объекта документа или табличной части, но переменная с таким именем не создана.

    Как исправить:

    1. Проверьте, что переменная РеализацияТоваровУслуг объявлена и содержит ссылку на объект или структуру с нужными данными.

    Например, если вы работаете с табличной частью документа РеализацияТоваровУслуг, то обычно перебираете строки так:

    |Для каждого СтрокаТЧ Из Объект.Товары Цикл
    | НомерЗаказа = СтрокаТЧ.ЗаказКлиента.Номер + » » + Формат(СтрокаТЧ.ЗаказКлиента.Дата, «ДФ=dd.MM.yyyy»);
    |КонецЦикла;

    2. Если вы хотите получить данные из документа РеализацияТоваровУслуг, то сначала получите ссылку на объект документа:

    |РеализацияТоваровУслуг = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(«номер», Дата);
    |Если НЕ РеализацияТоваровУслуг.Пустая() Тогда
    | ОбъектРеализации = РеализацияТоваровУслуг.ПолучитьОбъект();
    | НомерЗаказа = ОбъектРеализации.ЗаказКлиента.Номер + » » + Формат(ОбъектРеализации.ЗаказКлиента.Дата, «ДФ=dd.MM.yyyy»);
    |КонецЕсли;

    3. Если вы используете запрос, то в тексте запроса нужно использовать алиас таблицы, например:

    |ВЫБРАТЬ
    | Реализация.ЗаказКлиента.Номер КАК НомерЗаказа,
    | Реализация.ЗаказКлиента.Дата КАК ДатаЗаказа
    |ИЗ
    | Документ.РеализацияТоваровУслуг КАК Реализация
    |ГДЕ
    | Реализация.Ссылка = &Ссылка

    4. В вашем коде ошибка в том, что вы обращаетесь к РеализацияТоваровУслуг как к переменной, но она не объявлена. Нужно либо объявить и присвоить ей значение, либо заменить на правильный объект.

    5. Также в вашем коде есть странный фрагмент: Строка(<<?>>РеализацияТоваровУслуг.ЗаказКлиента.Дата);

    Вместо этого используйте:

    |Формат(РеализацияТоваровУслуг.ЗаказКлиента.Дата, «ДФ=dd.MM.yyyy»)

    Или если нужно строковое представление:

    |Строка(РеализацияТоваровУслуг.ЗаказКлиента.Дата)

    6. Если вы в обработчике формы, то можно получить текущий объект документа через ЭтаФорма.Объект:

    |НомерЗаказа = ЭтаФорма.Объект.ЗаказКлиента.Номер + » » + Формат(ЭтаФорма.Объект.ЗаказКлиента.Дата, «ДФ=dd.MM.yyyy»);

    Итог: Объявите переменную РеализацияТоваровУслуг и присвойте ей объект документа или строки табличной части, либо замените на правильный объект, с которого хотите получить реквизиты ЗаказКлиента.Номер и Дата.

    Если нужен пример, как получить номер и дату заказа из документа РеализацияТоваровУслуг:

    |Реализация = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(«000000001», ТекущаяДата());
    |Если НЕ Реализация.Пустая() Тогда
    | ОбъектРеализации = Реализация.ПолучитьОбъект();
    | НомерЗаказа = ОбъектРеализации.ЗаказКлиента.Номер + » » + Формат(ОбъектРеализации.ЗаказКлиента.Дата, «ДФ=dd.MM.yyyy»);
    |КонецЕсли;

    Рекомендую посмотреть здесь:
    https://infostart.ru/public/1896407/
    https://infostart.ru/public/194765/

    База знаний 1С