Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

РеквизитФормыВЗначение ошибка параметр 1

РеквизитФормыВЗначение ошибка параметр 1
Я
   margo_irkutsk
 
19.04.19 - 09:49
Доброго времени суток всем.

Обращаюсь к экспортной процедуре, находящейся в модуле объекта, из модуля формы списка документов через метод РеквизитФормыВЗначение.
Программа ругается: {Документ.ЛГ_ЖдНакладная.Форма.ФормаСпискаЛогистика.Форма(297)}: Ошибка при вызове метода контекста (РеквизитФормыВЗначение)
    ДокОбъект = РеквизитФормыВЗначение("Объект");
по причине:
Недопустимое значение параметра (параметр номер '1')

В чем может быть ошибка?

Вот текст процедуры обращения:
&НаСервере
Процедура СпецификацияЗаполнитьПриложенияСервер()
    
    Объект = Элементы.Ссылка;

    ДокОбъект = ("Объект");
    Объект. ЗаполнитьИРасценитьПоВнутреннимЦенам();
        
    ДокОбъект.ЗначениеВРеквизитФормы("Объект");
    Объект.Обработано = Истина;
    
КонецПроцедуры
 
 
   Mankubus
 
1 - 19.04.19 - 09:52
(0) в тексте процедуры нет той строки на которой происходит ошибка
   margo_irkutsk
 
2 - 19.04.19 - 09:55
криво скрпировала))
&НаСервере
Процедура СпецификацияЗаполнитьПриложенияСервер()
    
    Объект = Элементы.Ссылка;

    ДокОбъект = РеквизитФормыВЗначение("Объект");
    Объект. ЗаполнитьИРасценитьПоВнутреннимЦенам();
        
    ДокОбъект.ЗначениеВРеквизитФормы("Объект");
    Объект.Обработано = Истина;
    
КонецПроцедуры
   hhhh
 
3 - 19.04.19 - 09:56
(0) посмотрите на форме, справа, где список реквизитов, есть там такой реквизит "Объект"?
   hhhh
 
4 - 19.04.19 - 09:57
(2) тут у вас получается, что Объект это вообще не реквизит, а какие-то Элементы.Ссылка
   margo_irkutsk
 
5 - 19.04.19 - 09:58
на форме списка документов нужно обработать выделенные документы через процедуру вызываемую из модуля объекта:
&НаКлиенте
Процедура ЗаполнитьПриложениями(Команда)
    
    ВыделенныеСтроки = ПроверитьПолучитьВыделенныеВСпискеСсылки(Элементы.СписокПиломат);
    Если ВыделенныеСтроки.Количество() = 0 Тогда
        Возврат;
    КонецЕсли;

    ТекстВопроса = НСтр("ru='К выделенным в списке документам будут заполнены приложения. Продолжить?'");
    Ответ = Вопрос(ТекстВопроса,РежимДиалогаВопрос.ДаНет);
    
    Если Ответ = КодВозвратаДиалога.Нет Тогда
        Возврат;
    КонецЕсли;
    
    ОчиститьСообщения();
    Объект = Элементы.Ссылка;
    Для каждого Объект из ВыделенныеСтроки Цикл
     Если  НЕ Объект.СпецификацияКатВ.Количество()= 0    Тогда
        ТекстОшибки = НСтр("ru = 'Заполнена спецификация кат.В (необходимо предварительно очистить!'");
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
        Возврат;
    КонецЕсли;
    СпецификацияЗаполнитьПриложенияСервер();    
    
    КонецЦикла;
    
КонецПроцедуры
   НЕА123
 
6 - 19.04.19 - 10:00
(4) похоже на попытку "редактировать в списке"
   НЕА123
 
7 - 19.04.19 - 10:02
(0)
что оно должно сделать?
   margo_irkutsk
 
8 - 19.04.19 - 10:03
перебирать выделенные документы и в каждом заполнять табличную часть
   Eg0rkas
 
9 - 19.04.19 - 10:07
покажите теперь код процедуры "ЗаполнитьИРасценитьПоВнутреннимЦенам()"
   Darych
 
10 - 19.04.19 - 10:13
в (2) в коде беда
 
 Рекламное место пустует
   margo_irkutsk
 
11 - 19.04.19 - 11:15
немного подправила код, но ошибка осталась та же:
&НаКлиенте
Процедура ЗаполнитьПриложениями(Команда)
    
    ВыделенныеСтроки = ПроверитьПолучитьВыделенныеВСпискеСсылки(Элементы.СписокПиломат);
    Если ВыделенныеСтроки.Количество() = 0 Тогда
        Возврат;
    КонецЕсли;

    ТекстВопроса = НСтр("ru='К выделенным в списке документам будут заполнены приложения. Продолжить?'");
    Ответ = Вопрос(ТекстВопроса,РежимДиалогаВопрос.ДаНет);
    
    Если Ответ = КодВозвратаДиалога.Нет Тогда
        Возврат;
    КонецЕсли;
    
    ОчиститьСообщения();
    Для каждого Объект из ВыделенныеСтроки Цикл
     Если  НЕ Объект.СпецификацияКатВ.Количество()= 0    Тогда
        ТекстОшибки = НСтр("ru = 'Заполнена спецификация кат.В (необходимо предварительно очистить!'");
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
        Возврат;
    КонецЕсли;
    СпецификацияЗаполнитьПриложенияСервер();    
    
    КонецЦикла;
    
КонецПроцедуры


Процедура СпецификацияЗаполнитьПриложенияСервер()
    
    
    ДокОбъект = РеквизитФормыВЗначение("Объект",Тип("ДокументОбъект.ЛГ_ЖдНакладная"));
    ДокОбъект. ЗаполнитьИРасценитьПоВнутреннимЦенам();
        
    ДокОбъект.ЗначениеВРеквизитФормы("Объект");
    ДокОбъект.Обработано = Истина;
    
КонецПроцедуры
   margo_irkutsk
 
12 - 19.04.19 - 11:17
Пробовала через ДанныеФормыВЗначение, но ошибка та же.
   Darych
 
13 - 19.04.19 - 11:18
объект - это что?
   Darych
 
14 - 19.04.19 - 11:18
если данные формы - то беда
   margo_irkutsk
 
15 - 19.04.19 - 11:19
объект-это документ
   Mankubus
 
16 - 19.04.19 - 11:19
(11) >>Для каждого Объект из ВыделенныеСтроки Цикл
нельзя использовать слово "объект" в качестве переменных!
   margo_irkutsk
 
17 - 19.04.19 - 11:29
Хорошо,изменила код, ошибка та же(. В параметрах метода также пробовала менять. Ошибка не уходит.

Наименование п
&НаКлиенте
Процедура ЗаполнитьПриложениями(Команда)
    
    ВыделенныеСтроки = ПроверитьПолучитьВыделенныеВСпискеСсылки(Элементы.СписокПиломат);
    Если ВыделенныеСтроки.Количество() = 0 Тогда
        Возврат;
    КонецЕсли;

    ТекстВопроса = НСтр("ru='К выделенным в списке документам будут заполнены приложения. Продолжить?'");
    Ответ = Вопрос(ТекстВопроса,РежимДиалогаВопрос.ДаНет);
    
    Если Ответ = КодВозвратаДиалога.Нет Тогда
        Возврат;
    КонецЕсли;
    
    ОчиститьСообщения();
    Для каждого Элемент из ВыделенныеСтроки Цикл
     Если  НЕ Элемент.СпецификацияКатВ.Количество()= 0    Тогда
        ТекстОшибки = НСтр("ru = 'Заполнена спецификация кат.В (необходимо предварительно очистить!'");
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
        Возврат;
    КонецЕсли;
    СпецификацияЗаполнитьПриложенияСервер();    
    
    КонецЦикла;
    
КонецПроцедуры


Процедура СпецификацияЗаполнитьПриложенияСервер()
    
    
    ДокОбъект = РеквизитФормыВЗначение("Объект",Тип("ДокументОбъект.ЛГ_ЖдНакладная"));
    ДокОбъект. ЗаполнитьИРасценитьПоВнутреннимЦенам();
        
    ДокОбъект.ЗначениеВРеквизитФормы("Объект");
    ДокОбъект.Обработано = Истина;
    
КонецПроцедуры
   Darych
 
18 - 19.04.19 - 11:32
она не читает ответы
   hhhh
 
19 - 19.04.19 - 11:41
(17) ДокОбъект = РеквизитФормыВЗначение("Объект",Тип("ДокументОбъект.ЛГ_ЖдНакладная")); - это для формы документа


для формы списка так писать - это полный дебилизм.

поэтому пробуйте



Процедура СпецификацияЗаполнитьПриложенияСервер(Элемент)
    
    
    ДокОбъект = Элемент.Ссылка.ПолучитьОбъект();
    ДокОбъект. ЗаполнитьИРасценитьПоВнутреннимЦенам();
        
    ДокОбъект.Обработано = Истина;
ДокОбъект.Записать();
    
КонецПроцедуры
   margo_irkutsk
 
20 - 19.04.19 - 11:57
Ответы читаю.

Задача стоит так: в списке документов накладных пользователь выделяет несколько документов для групповой обработки. цель обработки проставить стоимость товаров в табличных частях выделенных документов. в процедуре Заполнить приложениями (команда) получаю список выделенных и в цикле забираю каждый. И для каждого выбранного документа вызываю процедуру заполнения (ЗаполнитьИРасценитьПоВнутреннимЦенам). Процедура заполнения цен товаров прописана в модуле объекта документа, поэтому обращаюсь через метод РеквизитФормыВЗначение.


Мои извинения, если чего-то не понимаю.
   SSSSS_AAAAA
 
21 - 19.04.19 - 11:59
(20) И Реквизит какой формы вы пытаетесь загнать в значение? Формы списка?


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует