|
РеквизитФормыВЗначение ошибка параметр 1 | ☑ | ||
---|---|---|---|---|
0
margo_irkutsk
19.04.19
✎
09:49
|
Доброго времени суток всем.
Обращаюсь к экспортной процедуре, находящейся в модуле объекта, из модуля формы списка документов через метод РеквизитФормыВЗначение. Программа ругается: {Документ.ЛГ_ЖдНакладная.Форма.ФормаСпискаЛогистика.Форма(297)}: Ошибка при вызове метода контекста (РеквизитФормыВЗначение) ДокОбъект = РеквизитФормыВЗначение("Объект"); по причине: Недопустимое значение параметра (параметр номер '1') В чем может быть ошибка? Вот текст процедуры обращения: &НаСервере Процедура СпецификацияЗаполнитьПриложенияСервер() Объект = Элементы.Ссылка; ДокОбъект = ("Объект"); Объект. ЗаполнитьИРасценитьПоВнутреннимЦенам(); ДокОбъект.ЗначениеВРеквизитФормы("Объект"); Объект.Обработано = Истина; КонецПроцедуры |
|||
1
Mankubus
19.04.19
✎
09:52
|
(0) в тексте процедуры нет той строки на которой происходит ошибка
|
|||
2
margo_irkutsk
19.04.19
✎
09:55
|
криво скрпировала))
&НаСервере Процедура СпецификацияЗаполнитьПриложенияСервер() Объект = Элементы.Ссылка; ДокОбъект = РеквизитФормыВЗначение("Объект"); Объект. ЗаполнитьИРасценитьПоВнутреннимЦенам(); ДокОбъект.ЗначениеВРеквизитФормы("Объект"); Объект.Обработано = Истина; КонецПроцедуры |
|||
3
hhhh
19.04.19
✎
09:56
|
(0) посмотрите на форме, справа, где список реквизитов, есть там такой реквизит "Объект"?
|
|||
4
hhhh
19.04.19
✎
09:57
|
(2) тут у вас получается, что Объект это вообще не реквизит, а какие-то Элементы.Ссылка
|
|||
5
margo_irkutsk
19.04.19
✎
09:58
|
на форме списка документов нужно обработать выделенные документы через процедуру вызываемую из модуля объекта:
&НаКлиенте Процедура ЗаполнитьПриложениями(Команда) ВыделенныеСтроки = ПроверитьПолучитьВыделенныеВСпискеСсылки(Элементы.СписокПиломат); Если ВыделенныеСтроки.Количество() = 0 Тогда Возврат; КонецЕсли; ТекстВопроса = НСтр("ru='К выделенным в списке документам будут заполнены приложения. Продолжить?'"); Ответ = Вопрос(ТекстВопроса,РежимДиалогаВопрос.ДаНет); Если Ответ = КодВозвратаДиалога.Нет Тогда Возврат; КонецЕсли; ОчиститьСообщения(); Объект = Элементы.Ссылка; Для каждого Объект из ВыделенныеСтроки Цикл Если НЕ Объект.СпецификацияКатВ.Количество()= 0 Тогда ТекстОшибки = НСтр("ru = 'Заполнена спецификация кат.В (необходимо предварительно очистить!'"); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки); Возврат; КонецЕсли; СпецификацияЗаполнитьПриложенияСервер(); КонецЦикла; КонецПроцедуры |
|||
6
НЕА123
19.04.19
✎
10:00
|
(4) похоже на попытку "редактировать в списке"
|
|||
7
НЕА123
19.04.19
✎
10:02
|
(0)
что оно должно сделать? |
|||
8
margo_irkutsk
19.04.19
✎
10:03
|
перебирать выделенные документы и в каждом заполнять табличную часть
|
|||
9
Eg0rkas
19.04.19
✎
10:07
|
покажите теперь код процедуры "ЗаполнитьИРасценитьПоВнутреннимЦенам()"
|
|||
10
Darych
19.04.19
✎
10:13
|
в (2) в коде беда
|
|||
11
margo_irkutsk
19.04.19
✎
11:15
|
немного подправила код, но ошибка осталась та же:
&НаКлиенте Процедура ЗаполнитьПриложениями(Команда) ВыделенныеСтроки = ПроверитьПолучитьВыделенныеВСпискеСсылки(Элементы.СписокПиломат); Если ВыделенныеСтроки.Количество() = 0 Тогда Возврат; КонецЕсли; ТекстВопроса = НСтр("ru='К выделенным в списке документам будут заполнены приложения. Продолжить?'"); Ответ = Вопрос(ТекстВопроса,РежимДиалогаВопрос.ДаНет); Если Ответ = КодВозвратаДиалога.Нет Тогда Возврат; КонецЕсли; ОчиститьСообщения(); Для каждого Объект из ВыделенныеСтроки Цикл Если НЕ Объект.СпецификацияКатВ.Количество()= 0 Тогда ТекстОшибки = НСтр("ru = 'Заполнена спецификация кат.В (необходимо предварительно очистить!'"); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки); Возврат; КонецЕсли; СпецификацияЗаполнитьПриложенияСервер(); КонецЦикла; КонецПроцедуры Процедура СпецификацияЗаполнитьПриложенияСервер() ДокОбъект = РеквизитФормыВЗначение("Объект",Тип("ДокументОбъект.ЛГ_ЖдНакладная")); ДокОбъект. ЗаполнитьИРасценитьПоВнутреннимЦенам(); ДокОбъект.ЗначениеВРеквизитФормы("Объект"); ДокОбъект.Обработано = Истина; КонецПроцедуры |
|||
12
margo_irkutsk
19.04.19
✎
11:17
|
Пробовала через ДанныеФормыВЗначение, но ошибка та же.
|
|||
13
Darych
19.04.19
✎
11:18
|
объект - это что?
|
|||
14
Darych
19.04.19
✎
11:18
|
если данные формы - то беда
|
|||
15
margo_irkutsk
19.04.19
✎
11:19
|
объект-это документ
|
|||
16
Mankubus
19.04.19
✎
11:19
|
(11) >>Для каждого Объект из ВыделенныеСтроки Цикл
нельзя использовать слово "объект" в качестве переменных! |
|||
17
margo_irkutsk
19.04.19
✎
11:29
|
Хорошо,изменила код, ошибка та же(. В параметрах метода также пробовала менять. Ошибка не уходит.
Наименование п &НаКлиенте Процедура ЗаполнитьПриложениями(Команда) ВыделенныеСтроки = ПроверитьПолучитьВыделенныеВСпискеСсылки(Элементы.СписокПиломат); Если ВыделенныеСтроки.Количество() = 0 Тогда Возврат; КонецЕсли; ТекстВопроса = НСтр("ru='К выделенным в списке документам будут заполнены приложения. Продолжить?'"); Ответ = Вопрос(ТекстВопроса,РежимДиалогаВопрос.ДаНет); Если Ответ = КодВозвратаДиалога.Нет Тогда Возврат; КонецЕсли; ОчиститьСообщения(); Для каждого Элемент из ВыделенныеСтроки Цикл Если НЕ Элемент.СпецификацияКатВ.Количество()= 0 Тогда ТекстОшибки = НСтр("ru = 'Заполнена спецификация кат.В (необходимо предварительно очистить!'"); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки); Возврат; КонецЕсли; СпецификацияЗаполнитьПриложенияСервер(); КонецЦикла; КонецПроцедуры Процедура СпецификацияЗаполнитьПриложенияСервер() ДокОбъект = РеквизитФормыВЗначение("Объект",Тип("ДокументОбъект.ЛГ_ЖдНакладная")); ДокОбъект. ЗаполнитьИРасценитьПоВнутреннимЦенам(); ДокОбъект.ЗначениеВРеквизитФормы("Объект"); ДокОбъект.Обработано = Истина; КонецПроцедуры |
|||
18
Darych
19.04.19
✎
11:32
|
она не читает ответы
|
|||
19
hhhh
19.04.19
✎
11:41
|
(17) ДокОбъект = РеквизитФормыВЗначение("Объект",Тип("ДокументОбъект.ЛГ_ЖдНакладная")); - это для формы документа
для формы списка так писать - это полный дебилизм. поэтому пробуйте Процедура СпецификацияЗаполнитьПриложенияСервер(Элемент) ДокОбъект = Элемент.Ссылка.ПолучитьОбъект(); ДокОбъект. ЗаполнитьИРасценитьПоВнутреннимЦенам(); ДокОбъект.Обработано = Истина; ДокОбъект.Записать(); КонецПроцедуры |
|||
20
margo_irkutsk
19.04.19
✎
11:57
|
Ответы читаю.
Задача стоит так: в списке документов накладных пользователь выделяет несколько документов для групповой обработки. цель обработки проставить стоимость товаров в табличных частях выделенных документов. в процедуре Заполнить приложениями (команда) получаю список выделенных и в цикле забираю каждый. И для каждого выбранного документа вызываю процедуру заполнения (ЗаполнитьИРасценитьПоВнутреннимЦенам). Процедура заполнения цен товаров прописана в модуле объекта документа, поэтому обращаюсь через метод РеквизитФормыВЗначение. Мои извинения, если чего-то не понимаю. |
|||
21
SSSSS_AAAAA
19.04.19
✎
11:59
|
(20) И Реквизит какой формы вы пытаетесь загнать в значение? Формы списка?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |