|   |   | 
| 
 | РеквизитФормыВЗначение ошибка параметр 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) И Реквизит какой формы вы пытаетесь загнать в значение? Формы списка?     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |