Добрый день. Возникла странная ошибка. Помогите решить, пожалуйста.

Часть кода модуля команды, в котором возникает ошибка:

```1c
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

    ТабДок = Новый ТабличныйДокумент;
    Печать(ТабДок, ПараметрКоманды);
    ТабДок.Показать("Счет на оплату");

    КонецПроцедуры

    &НаСервере
    Процедура Печать(ТабДок, СсылкаНаДокумент)

    Макет = Документы.КоммерческоеПредложениеКлиенту.ПолучитьМакет("МакетСчетНаОплату");

    БанкОрги = Справочники.БанковскиеСчетаОрганизаций.НайтиПоНаименованию("БанкОрганизации").Ссылка;

    КонтактнаяИнформацияОрганизации = новый Запрос();
    КонтактнаяИнформацияОрганизации.Текст = "выбрать
    |орг.представление
    |поместить телефонорги
    |из
    |справочник.организации.контактнаяинформация как орг
    |где
    |орг.ссылка.наименование ="Организация" и
    |орг.вид.ссылка.наименование = "телефон"
    |;
    |//
    |выбрать
    |орг.представление
    |поместить адресорги
    |из
    |справочник.организации.контактнаяинформация как орг
    |где
    |орг.ссылка.наименование = "Организация" и
    |орг.вид.ссылка.наименование = "юридический адрес"
    |;
    |//
    |выбрать
    |адресорги.представление как АдресОрганизации,
    |телефонорги.представление как ТелефонОрганизации
    |из
    |адресорги как адресорги,
    |телефонорги как телефонорги";

    РезультатКонтактнаяИнформацияОрганизации = КонтактнаяИнформацияОрганизации.Выполнить();
    ВыборкаКонтактнаяИнформацияОрганизации = РезультатКонтактнаяИнформацияОрганизации.Выбрать();

    БанкОрганизации = Новый Запрос();
    БанкОрганизации.Текст = "выбрать
    |банкорги.номерсчета как НомерСчетаБанкаОрганизации,
    |банкорги.бикбанка как БикБанкаОрганизации,
    |банкорги.наименованиебанка как НаименованиеБанкаОрганизации,
    |банкорги.городбанка как ГородБанкаОрганизации,
    |банкорги.банк.коррсчет как СчетБанкаПолучателяПредставление
    |из
    |справочник.банковскиесчетаорганизаций как банкорги
    |где
    |банкорги.наименование = &БанкОрганизации";

    БанкОрганизации.УстановитьПараметр("БанкОрганизации", БанкОрги.Наименование);
    РезультатБанкОрганизации = БанкОрганизации.Выполнить();
    ВыборкаБанкОрганизации = РезультатБанкОрганизации.Выбрать();

    ТаблЧасть = новый Запрос();
    ТаблЧасть.Текст = "выбрать
    |кп.ссылка,
    |кп.номерстроки,
    |кп.номенклатура,
    |кп.количество,
    |кп.единицаизмерения,
    |кп.цена,
    |кп.сумма,
    |кп.суммандс,
    |кп.суммасндс
    |поместить таблица
    |из
    |документ.коммерческоепредложениеклиенту.товары как кп
    |где
    |кп.ссылка.номер = &Номер и
    |кп.ссылка.дата = &дата
    |;
    |///
    |выбрать
    |сумма(итоги.сумма) как Итого,
    |количество(итоги.номерстроки) как КоличествоСтрок
    |поместить Итог
    |из
    |документ.коммерческоепредложениеклиенту.товары как итоги
    |где
    |итоги.ссылка.номер = &Номер и
    |итоги.ссылка.дата = &дата
    |;
    |///
    |выбрать *
    |из
    |таблица как таблица,
    |итог как итог";

    ТаблЧасть.УстановитьПараметр("Номер", СсылкаНаДокумент.Номер);
    ТаблЧасть.УстановитьПараметр("Дата", СсылкаНаДокумент.Дата);

    РезультатТаблЧасть = ТаблЧасть.Выполнить();
    ВыборкаТаблЧасть = РезультатТаблЧасть.Выбрать();

    КонецПроцедуры
```

Напомню, что это часть кода. В клиенте при нажатии на кнопку, вылезает ошибка "Поле объекта не обнаружно Номер) -> ТаблЧасть.УстановитьПараметр("Номер", СсылкаНаДокумент.Номер);
---
если все же выводит поле "сообщение" и в нем содержится слово Массив, значит в ЭтотОбъект "прилетает" массив, можно попробовать сделать такое:
Сообщить(ЭтотОбъект[0].Ссылка);

По идее должен вывести значение а не слово Массив.
---
Отладчиком проходился?
В этой "части кода", не видно передается ли какое-то значение в параметр "СсылкаНаОбъект".
Есть мысль, что этот параметр пустой, потому-то и не может найти "Номер".
---
Да пустой, очевидно. При этом аналогичный код в другом документе работает идеально. А здесь ошибки тянутся из моей предыдущей темы. Т.е. были убраны и добавлены заново реквизиты формы (причем не номер), и всё полетело
---
1. Значит в другом документе в этот параметр что-то, все же передается, может быть в процедуре на клиенте, например.
2. Если номер есть на форме, откуда вызывается процедура, не проще ли номер тащить оттуда?

Просто получается, для помощи маловато информации в топике)))
---
Да, передается. Но эти две процедуры ничем не отличаются, кроме самих запросов. А кнопка печати в форме у меня почему-то не получилась, ни ошибок, ничего не выводится. Попытаюсь объяснить поподробнее. Вот есть типовой документ. На поддержке, но с возможностью редактирования. Я полезла туда, удалила из формы 2 поля. Добавила 2 других, одно из которых было в числе удаленных. Поле не появилось на форме, хотя я полностью восстановила события и путь идентичный. После была написана вот эта процедура. И всё бы ничего, но эта же самая процедура работает в базе-копии. Могу предоставить любые данные, какие только смогу/пойму. Долго писала код, получилось и тут вот эта ересь с формой меня просто ввели в ступор.
---
Тут такой момент.
Запрос может и не отличается, но в запросе есть параметры (&тыры-пыты), и в вашем случае этот параметр вот тут: "|итоги.ссылка.номер = &Номер"
так вот. Для того что бы этот запрос отработал, программа ищет что передать в этот параметр и идет в строку:
"ТаблЧасть.УстановитьПараметр("Номер", СсылкаНаДокумент.Номер);"
и....
Не может получить значение так как передается ничего...

А там где это все отрабатывает, как вы сами написали, что-то предеается в параметр процедуры "СсылкаНаДокумент", и когда программа доходит до исполнения запроса, все параметры наполняются нужной информацией.

Что бы ваша процедура исполнилась или прошла до следующей ошибки, вам нужно в параметр "СсылкаНаДокумент", передать какое-то значение)))

На форму добавили 2 поля, но они не появились.
А вы на саму форму в конфигураторе вытянули эти поля?
---
Процедуры "СсылкаНаДокумент" не существует и там, и там. Да, конечно, только так я и создаю поля. События поля также были возвращены. Как вариант, я так понимаю, создать в модуле объекта процедуру "СНД", состоящей из запроса?
---
Я не говорил про процедуру СсылкаНаДокумент.
ПАРАМЕТР...

У вас есть:

```1c
    &НаСервере
    Процедура Печать(ТабДок, СсылкаНаДокумент)
```

Так вот всю эту процедуру в параметр СсылкаНаДокумент ничего не передается...
Если эта процедура вызывается из документа, то можно попробовать что-то типа:

```1c
    СсылкаНаДокумент=Объект.Ссылка;
```

тогда, в этот параметр улетит ссылка на текущий документ из которого вызывается процедура, и запрос должен будет отработать.
---
Переменная неопределена "Объект"
---
откуда вызывается процедура?
Из формы документа, из обработки, или еще откуда-то?
---
модуль команды, сейчас через менеджер пытаюсь сделать
---
через предлагаемый конструктором печати параметр "Ссылка" так же ничего не передается в модуле менеджера :/ - Поле объекта не обнаружено
---
Я так и не понимаю в каком объекте конфигурации пишется данная процедура?
Из контекста сделал догадку, что это общая команда, но у нее нет модуля менеджера....
---
Я сделала процедуру и в модуле менеджера, там возникла ошибка "Поле объекта не обнаружено"
---
Да это-то как раз понятно.
Я не понимаю в каком ОБЪЕКТЕ конфигурации вы пишите эту процедуру....
например:
Есть Справочники
Есть Документы
У этих элементов конфигурации есть:
Справочники.Номенклатура
Документы.ПоступлениеТоваровУслуг

Это на пример...

Так вот, есть куча объектов, есть общие команды, так вот где, в каком объекте вы пишите свою процедуру...

Проблема в том, что процедура исполняет все запросы, но когда для исполнения запроса тынет "СсылкаНаДокумент.Номер", она тянет эти данные из "ПараметрыКоманды", в которые не передается ни какое значение, очевиждно.
Что бы хоть как-то вам ответить, нужно понимать, что где откуда, но ответа на "Где", ни как не получается выяснить.

Просто, судя по тому, что "Объект.Ссылка" не сработало, вы находитесь не в документе, а где-то в другом месте....
---
в документе, ком. предложения клиентам
---
отлично.
Следующий вопрос.
Редактируется форма документа?
Или сам документ?
---
документ
---
попробуйде
```1c
    ЭтотОбъект.Номер
```

либо в параметр процедуры передайте его, либо сразу в запрос, и попробуйте исполнить
---
без объявления в параметрах не работает, при объявлении та же ошибка (поле объекта не обнаружено). Поле точно есть, так как это стандартный реквизит. При выборке в консоли оно также есть и оно заполнено
---
Попробуйте пройтись либо отладчиком, либо попробуйте в процедуре, до исполнения запроса с ошибкой вставить:

```1c
    Сообщить(ЭтотОбъект);
```

И исполните процедуру. Если выберете второй вариант, то при исполнении должны будете увидеть сообщение с документом из которого вызываете процедуру.
---
Сообщить(ЭтотОбъект) {<Неизвестный модуль>(1,1)}: Обращение к процедуре как к функции (Сообщить)

Также при присвоении переменным данных в них не записываются значения, в отличии от той же процедуры в модуле команды. Макет = ... - значение пустое, тип не определено. Переменная = справочники. .... - правая часть кода вычислилась, переменная пустая
---
результат Сообщить - Массив
---
эм... не понял...
Координаты этой процедуры 1,1
Вы должны были это вставить в процедуру на сервере перед запросом "ТаблЧасть"...

Простите, пожалуйста, но думаю вы очень зря полезли ковырять код... обратитесь к программисту с хорошим ТЗ, вам сделают все быстро и безболезненно...
---
я всё это время пробовала разные вариации, "сообщить" было и перед запросом, результат один и тот же. В код мне так или иначе лезть, больше не к кому обращаться
---
т.е. если вы вставляете Сообщить перез запросом, пишет "Обращение к процедуре как к функции (Сообщить) "?
---
отладчик просто выводит на строку, в которой указывается параметр запроса - на данный момент это Объект.Номер. Второй вариант попробую
---
это в конфигураторе, да. В клиенте в окне пишет "Массив". всё
---
если все же выводит поле "сообщение" и в нем содержится слово Массив, значит в ЭтотОбъект "прилетает" массив, можно попробовать сделать такое:
Сообщить(ЭтотОбъект[0].Ссылка);

По идее должен вывести значение а не слово Массив.
---
да, действительно выводит. и к реквизитам так же можно обращаться. Вы волшебник!
---
единственное, есть одна проблема в данном случае, т.к. это массив, в нем может быть больше одной записи.
А значение в квадратных скобках это индекс элемента(строки) с информацией, к которой идет обращение.
Если процедура будет вызываться по СПИСКУ документов, например выделили кучу документов, тогда нужно оборачивать все в цикл, что бы индексы перебирались и отработаны были все строки.