УП 2.1 При вызове команды печати ошибка - поле объекта не обнаружено
Добрый день. Возникла странная ошибка. Помогите решить, пожалуйста.
Часть кода модуля команды, в котором возникает ошибка:
Напомню, что это часть кода. В клиенте при нажатии на кнопку, вылезает ошибка "Поле объекта не обнаружно Номер) -> ТаблЧасть.УстановитьПараметр("Номер", СсылкаНаДокумент.Номер);
Часть кода модуля команды, в котором возникает ошибка:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ТабДок = Новый ТабличныйДокумент;
Печать(ТабДок, ПараметрКоманды);
ТабДок.Показать("Счет на оплату");
КонецПроцедуры
&НаСервере
Процедура Печать(ТабДок, СсылкаНаДокумент)
Макет = Документы.КоммерческоеПредложениеКлиенту.ПолучитьМакет("МакетСчетНаОплату");
БанкОрги = Справочники.БанковскиеСчетаОрганизаций.НайтиПоНаименованию("БанкОрганизации").Ссылка;
КонтактнаяИнформацияОрганизации = новый Запрос();
КонтактнаяИнформацияОрганизации.Текст = "выбрать
|орг.представление
|поместить телефонорги
|из
|справочник.организации.контактнаяинформация как орг
|где
|орг.ссылка.наименование =""Организация"" и
|орг.вид.ссылка.наименование = ""телефон""
|;
|//
|выбрать
|орг.представление
|поместить адресорги
|из
|справочник.организации.контактнаяинформация как орг
|где
|орг.ссылка.наименование = ""Организация"" и
|орг.вид.ссылка.наименование = ""юридический адрес""
|;
|//
|выбрать
|адресорги.представление как АдресОрганизации,
|телефонорги.представление как ТелефонОрганизации
|из
|адресорги как адресорги,
|телефонорги как телефонорги";
РезультатКонтактнаяИнформацияОрганизации = КонтактнаяИнформацияОрганизации.Выполнить();
ВыборкаКонтактнаяИнформацияОрганизации = РезультатКонтактнаяИнформацияОрганизации.Выбрать();
БанкОрганизации = Новый Запрос();
БанкОрганизации.Текст = "выбрать
|банкорги.номерсчета как НомерСчетаБанкаОрганизации,
|банкорги.бикбанка как БикБанкаОрганизации,
|банкорги.наименованиебанка как НаименованиеБанкаОрганизации,
|банкорги.городбанка как ГородБанкаОрганизации,
|банкорги.банк.коррсчет как СчетБанкаПолучателяПредставление
|из
|справочник.банковскиесчетаорганизаций как банкорги
|где
|банкорги.наименование = &БанкОрганизации";
БанкОрганизации.УстановитьПараметр("БанкОрганизации", БанкОрги.Наименование);
РезультатБанкОрганизации = БанкОрганизации.Выполнить();
ВыборкаБанкОрганизации = РезультатБанкОрганизации.Выбрать();
ТаблЧасть = новый Запрос();
ТаблЧасть.Текст = "выбрать
|кп.ссылка,
|кп.номерстроки,
|кп.номенклатура,
|кп.количество,
|кп.единицаизмерения,
|кп.цена,
|кп.сумма,
|кп.суммандс,
|кп.суммасндс
|поместить таблица
|из
|документ.коммерческоепредложениеклиенту.товары как кп
|где
|кп.ссылка.номер = &Номер и
|кп.ссылка.дата = &дата
|;
|///
|выбрать
|сумма(итоги.сумма) как Итого,
|количество(итоги.номерстроки) как КоличествоСтрок
|поместить Итог
|из
|документ.коммерческоепредложениеклиенту.товары как итоги
|где
|итоги.ссылка.номер = &Номер и
|итоги.ссылка.дата = &дата
|;
|///
|выбрать *
|из
|таблица как таблица,
|итог как итог";
ТаблЧасть.УстановитьПараметр("Номер", СсылкаНаДокумент.Номер);
ТаблЧасть.УстановитьПараметр("Дата", СсылкаНаДокумент.Дата);
РезультатТаблЧасть = ТаблЧасть.Выполнить();
ВыборкаТаблЧасть = РезультатТаблЧасть.Выбрать();
КонецПроцедуры
ПоказатьНапомню, что это часть кода. В клиенте при нажатии на кнопку, вылезает ошибка "Поле объекта не обнаружно Номер) -> ТаблЧасть.УстановитьПараметр("Номер", СсылкаНаДокумент.Номер);
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)
1. Значит в другом документе в этот параметр что-то, все же передается, может быть в процедуре на клиенте, например.
2. Если номер есть на форме, откуда вызывается процедура, не проще ли номер тащить оттуда?
Просто получается, для помощи маловато информации в топике)))
1. Значит в другом документе в этот параметр что-то, все же передается, может быть в процедуре на клиенте, например.
2. Если номер есть на форме, откуда вызывается процедура, не проще ли номер тащить оттуда?
Просто получается, для помощи маловато информации в топике)))
(4) Да, передается. Но эти две процедуры ничем не отличаются, кроме самих запросов. А кнопка печати в форме у меня почему-то не получилась, ни ошибок, ничего не выводится. Попытаюсь объяснить поподробнее. Вот есть типовой документ. На поддержке, но с возможностью редактирования. Я полезла туда, удалила из формы 2 поля. Добавила 2 других, одно из которых было в числе удаленных. Поле не появилось на форме, хотя я полностью восстановила события и путь идентичный. После была написана вот эта процедура. И всё бы ничего, но эта же самая процедура работает в базе-копии. Могу предоставить любые данные, какие только смогу/пойму. Долго писала код, получилось и тут вот эта ересь с формой меня просто ввели в ступор.
(5)
Тут такой момент.
Запрос может и не отличается, но в запросе есть параметры (&тыры-пыты), и в вашем случае этот параметр вот тут: "|итоги.ссылка.номер = &Номер"
так вот. Для того что бы этот запрос отработал, программа ищет что передать в этот параметр и идет в строку:
"ТаблЧасть.УстановитьПараметр("Номер", СсылкаНаДокумент.Номер);"
и....
Не может получить значение так как передается ничего...
А там где это все отрабатывает, как вы сами написали, что-то предеается в параметр процедуры "СсылкаНаДокумент", и когда программа доходит до исполнения запроса, все параметры наполняются нужной информацией.
Что бы ваша процедура исполнилась или прошла до следующей ошибки, вам нужно в параметр "СсылкаНаДокумент", передать какое-то значение)))
На форму добавили 2 поля, но они не появились.
А вы на саму форму в конфигураторе вытянули эти поля?
Тут такой момент.
Запрос может и не отличается, но в запросе есть параметры (&тыры-пыты), и в вашем случае этот параметр вот тут: "|итоги.ссылка.номер = &Номер"
так вот. Для того что бы этот запрос отработал, программа ищет что передать в этот параметр и идет в строку:
"ТаблЧасть.УстановитьПараметр("Номер", СсылкаНаДокумент.Номер);"
и....
Не может получить значение так как передается ничего...
А там где это все отрабатывает, как вы сами написали, что-то предеается в параметр процедуры "СсылкаНаДокумент", и когда программа доходит до исполнения запроса, все параметры наполняются нужной информацией.
Что бы ваша процедура исполнилась или прошла до следующей ошибки, вам нужно в параметр "СсылкаНаДокумент", передать какое-то значение)))
На форму добавили 2 поля, но они не появились.
А вы на саму форму в конфигураторе вытянули эти поля?
(7)Я не говорил про процедуру СсылкаНаДокумент.
ПАРАМЕТР...
У вас есть:
Так вот всю эту процедуру в параметр СсылкаНаДокумент ничего не передается...
Если эта процедура вызывается из документа, то можно попробовать что-то типа:
тогда, в этот параметр улетит ссылка на текущий документ из которого вызывается процедура, и запрос должен будет отработать.
ПАРАМЕТР...
У вас есть:
&НаСервере
Процедура Печать(ТабДок, СсылкаНаДокумент)
Так вот всю эту процедуру в параметр СсылкаНаДокумент ничего не передается...
Если эта процедура вызывается из документа, то можно попробовать что-то типа:
СсылкаНаДокумент=Объект.Ссылка;
тогда, в этот параметр улетит ссылка на текущий документ из которого вызывается процедура, и запрос должен будет отработать.
(14)
Да это-то как раз понятно.
Я не понимаю в каком ОБЪЕКТЕ конфигурации вы пишите эту процедуру....
например:
Есть Справочники
Есть Документы
У этих элементов конфигурации есть:
Справочники.Номенклатура
Документы.ПоступлениеТоваровУслуг
Это на пример...
Так вот, есть куча объектов, есть общие команды, так вот где, в каком объекте вы пишите свою процедуру...
Проблема в том, что процедура исполняет все запросы, но когда для исполнения запроса тынет "СсылкаНаДокумент.Номер", она тянет эти данные из "ПараметрыКоманды", в которые не передается ни какое значение, очевиждно.
Что бы хоть как-то вам ответить, нужно понимать, что где откуда, но ответа на "Где", ни как не получается выяснить.
Просто, судя по тому, что "Объект.Ссылка" не сработало, вы находитесь не в документе, а где-то в другом месте....
Да это-то как раз понятно.
Я не понимаю в каком ОБЪЕКТЕ конфигурации вы пишите эту процедуру....
например:
Есть Справочники
Есть Документы
У этих элементов конфигурации есть:
Справочники.Номенклатура
Документы.ПоступлениеТоваровУслуг
Это на пример...
Так вот, есть куча объектов, есть общие команды, так вот где, в каком объекте вы пишите свою процедуру...
Проблема в том, что процедура исполняет все запросы, но когда для исполнения запроса тынет "СсылкаНаДокумент.Номер", она тянет эти данные из "ПараметрыКоманды", в которые не передается ни какое значение, очевиждно.
Что бы хоть как-то вам ответить, нужно понимать, что где откуда, но ответа на "Где", ни как не получается выяснить.
Просто, судя по тому, что "Объект.Ссылка" не сработало, вы находитесь не в документе, а где-то в другом месте....
(20)
Попробуйте пройтись либо отладчиком, либо попробуйте в процедуре, до исполнения запроса с ошибкой вставить:
И исполните процедуру. Если выберете второй вариант, то при исполнении должны будете увидеть сообщение с документом из которого вызываете процедуру.
Попробуйте пройтись либо отладчиком, либо попробуйте в процедуре, до исполнения запроса с ошибкой вставить:
Сообщить(ЭтотОбъект);
И исполните процедуру. Если выберете второй вариант, то при исполнении должны будете увидеть сообщение с документом из которого вызываете процедуру.
(21) Сообщить(ЭтотОбъект) {<Неизвестный модуль>(1,1)}: Обращение к процедуре как к функции (Сообщить)
Также при присвоении переменным данных в них не записываются значения, в отличии от той же процедуры в модуле команды. Макет = ... - значение пустое, тип не определено. Переменная = справочники. .... - правая часть кода вычислилась, переменная пустая
Также при присвоении переменным данных в них не записываются значения, в отличии от той же процедуры в модуле команды. Макет = ... - значение пустое, тип не определено. Переменная = справочники. .... - правая часть кода вычислилась, переменная пустая
(23) эм... не понял...
Координаты этой процедуры 1,1
Вы должны были это вставить в процедуру на сервере перед запросом "ТаблЧасть"...
Простите, пожалуйста, но думаю вы очень зря полезли ковырять код... обратитесь к программисту с хорошим ТЗ, вам сделают все быстро и безболезненно...
Координаты этой процедуры 1,1
Вы должны были это вставить в процедуру на сервере перед запросом "ТаблЧасть"...
Простите, пожалуйста, но думаю вы очень зря полезли ковырять код... обратитесь к программисту с хорошим ТЗ, вам сделают все быстро и безболезненно...
(30)единственное, есть одна проблема в данном случае, т.к. это массив, в нем может быть больше одной записи.
А значение в квадратных скобках это индекс элемента(строки) с информацией, к которой идет обращение.
Если процедура будет вызываться по СПИСКУ документов, например выделили кучу документов, тогда нужно оборачивать все в цикл, что бы индексы перебирались и отработаны были все строки.
А значение в квадратных скобках это индекс элемента(строки) с информацией, к которой идет обращение.
Если процедура будет вызываться по СПИСКУ документов, например выделили кучу документов, тогда нужно оборачивать все в цикл, что бы индексы перебирались и отработаны были все строки.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот