Вход | Регистрация

1С:Предприятие ::

Метки: 

Передача данных между модулем объекта и модулем формы

Я
   Svetlana_Kazan
 
06.10.17 - 14:35
Подскажите, пожалуйста, как можно организовать передачу данных из модуля объекта в модуль формы? В модуле формы идет проверка соответствия номенклатуры определенным условиям и формируется текст сообщения по номенклатуре, если условие отбора не удовлетворяется. На форме документа есть дерево значений, куда необходимо в соответствующее поле соответствующей номенклатуры записать сообщение. Попыталась через ПараметрыСеанса.ПараметрСеансаДляПечати:

СообщенияТЗ = Новый ТаблицаЗначений;
СообщенияТЗ.Колонки.Добавить("ОР");
СообщенияТЗ.Колонки.Добавить("ТекстыСообщений");
НоваяСтрока = СообщенияТЗ.Добавить();
НоваяСтрока.ОР = ОР;
НоваяСтрока.ТекстыСообщений = ТекстыСообщений;
Структура = Новый ФиксированнаяСтруктура("СообщенияТЗ", СообщенияТЗ);
ПараметрыСеанса.ПараметрСеансаДляПечати = Структура;
    
Выходит ошибка:
 Ошибка при установке значения атрибута контекста (ПараметрСеансаДляПечати)
        ПараметрыСеанса.ПараметрСеансаДляПечати = СтруктураСообщений;    
по причине:
Фиксированный массив, фиксированное соответствие или фиксированная структура содержит значение(я) недопустимого типа
 
 
   h-sp
 
1 - 06.10.17 - 14:55
(0) ну значит нельзя таблицу значений туда пихать. Попробуйте через сериализацию. Типа

Структура = Новый ФиксированнаяСтруктура("СообщенияТЗ", ОбщегоНазначения.ЗначениеВСтрокуXML(СообщенияТЗ));
   Ненавижу 1С
 
2 - 06.10.17 - 15:17
почему нельзя так?

&НаСервере
Процедура ЗаполнитьТЗНаСервере()
    ТекстЗапроса = 
    "ВЫБРАТЬ
    |    ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
    |    ХозрасчетныйОстатки.КоличествоОстатокДт КАК КоличествоОстатокДт
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет В ИЕРАРХИИ (&Счет), &Субконто, ) КАК ХозрасчетныйОстатки";
    
    Запрос = Новый Запрос(ТекстЗапроса);
    Запрос.УстановитьПараметр("Счет",ПланыСчетов.Хозрасчетный.ТоварыНаСкладах);
    Запрос.УстановитьПараметр("Субконто",ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
    
    ТЗЗ = Запрос.Выполнить().Выгрузить();
    
    ЗначениеВДанныеФормы(ТЗЗ,ТЗ);
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьТЗ(Команда)
    ЗаполнитьТЗНаСервере();
КонецПроцедуры
   Svetlana_Kazan
 
3 - 06.10.17 - 16:07
(1) Спасибо! Все получилось.
ТЗ = ОбщегоНазначения.ЗначениеИзСтрокиXML(ПараметрыСеанса.ПараметрСеансаДляПечати.СообщенияТЗ);


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