Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вывести из Хранилища Значения текст в базу данных
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
ArturCh
Подскажите, как осуществить. Имеется на форме форматированный документ и реквизит с типом хранилище значения, Вот код:
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
    Вопрос = ТекущийОбъект.Вопрос.Получить();
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    ТекущийОбъект.Вопрос = Новый ХранилищеЗначения(вопрос);
КонецПроцедуры


В базе введенный текст не отображается, сохраняется только в форматированном документе.
sava1
А вопрос-то в чем? - Напишите мне код для сохранения текста форматированного документа в базе?
Petre
Цитата(ArturCh @ 05.08.14, 11:27) необходимо зарегистрироваться для просмотра ссылки
В базе введенный текст не отображается

Расшифруйте.
ArturCh
В том то и дело, что не получается

Цитата(Petre @ 05.08.14, 15:26) необходимо зарегистрироваться для просмотра ссылки
Расшифруйте.


У меня только такой код.
Petre
Цитата(ArturCh @ 05.08.14, 11:27) необходимо зарегистрироваться для просмотра ссылки
В базе введенный текст не отображается

Не понимаю смысл сказанного. Что это значит? В базе не может что-то отображаться. В базе хранятся данные.
ArturCh
Цитата(Petre @ 05.08.14, 15:43) необходимо зарегистрироваться для просмотра ссылки
Не понимаю смысл сказанного. Что это значит? В базе не может что-то отображаться. В базе хранятся данные.


Вот у меня на форме есть Форматированный документ, тот код который в начале он просто сохраняет текст в форматированном документе, а в базу не помещается, подскажите как сделать чтобы в базе введенный текст отобразился.
sava1
в базе хранится Шаблон договора с контрагентом
ТекстДоговора - это Форматированный документ

Функция ОпределитьШаблонПечатнойФормы(ИмяШаблона, ПредставлениеШаблона)        
    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("ИмяФайла", ИмяШаблона);
    //Запрос.УстановитьПараметр("Описание",ПредставлениеШаблона + " (Шаблон)");
    Запрос.УстановитьПараметр("ТОбъект",Справочники.Организации.НайтиПоКоду("000000002"));
    //    
    Запрос.Текст = "
    |ВЫБРАТЬ ПЕРВЫЕ 1
    |    Ссылка, Хранилище КАК ХранилищеФайла,
    |    CASE WHEN ПометкаУдаления THEN 2 ELSE 1 END as Приоритет
    |ИЗ
    |    Справочник.ХранилищеДополнительнойИнформации КАК спр
    |ГДЕ
    |    спр.Объект = &ТОбъект
    |    И спр.ВидДанных = ЗНАЧЕНИЕ(Перечисление.ВидыДополнительнойИнформацииОбъектов.Файл)
//    |    И спр.Наименование = &Описание
    |    И спр.ИмяФайла ПОДОБНО &ИмяФайла
    |УПОРЯДОЧИТЬ ПО Приоритет
    |";    
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    Если Выборка.Следующий() Тогда
        Возврат Выборка;
    Иначе
        Возврат Неопределено;
    КонецЕсли;    
КонецФункции // ОпределитьШаблонПечатнойФормы

&НаСервере
Процедура СохранитьНаСервере()
    ВЫборка = ОпределитьШаблонПечатнойФормы("ДоговорСКонтрагентом", "ДоговорСКонтрагентом");    
    Если Выборка = Неопределено Тогда // Необходимо создать новый элемент справочника
        СправочникОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
        СправочникОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл;
        СправочникОбъект.ИмяФайла = "ДоговорСКонтрагентом";
        СправочникОбъект.Наименование = "ДоговорСКонтрагентом(Шаблон)";
        СправочникОбъект.Объект = Справочники.Организации.НайтиПоКоду("000000002");        
        // Запишем в хранилище выбранный файл
        Попытка
            СправочникОбъект.Хранилище = Новый ХранилищеЗначения(ТекстДоговора);        
        Исключение
            //Предупреждение(ОписаниеОшибки());
        КонецПопытки;
    
    Иначе
        СправочникОбъект = Выборка.Ссылка.ПолучитьОбъект();
        Если Выборка.Приоритет = 2 Тогда // Элемент помечен на удаление
            Попытка
                СправочникОбъект.УстановитьПометкуУдаления(Ложь);
            Исключение
            КонецПопытки;
        КонецЕсли;
        ХранилищеШаблона = Выборка.ХранилищеФайла;
        
                    Попытка
                        СправочникОбъект.Хранилище = Новый ХранилищеЗначения(ТекстДоговора);        
                    Исключение
        //                Предупреждение(ОписаниеОшибки());
                    КонецПопытки;
        
    КонецЕсли;
    
    Попытка
        СправочникОбъект.Записать();
    Исключение
        //Предупреждение(ОписаниеОшибки());
    КонецПопытки;
КонецПроцедуры

&НаКлиенте
Процедура Сохранить(Команда)
    СохранитьНаСервере();
КонецПроцедуры
Petre
Если вопрос в том, что при данном коде текст не сохраняется, то, возможно, данные обработчики не назначены событиям формы?
ArturCh
Цитата(Petre @ 05.08.14, 17:48) необходимо зарегистрироваться для просмотра ссылки
Если вопрос в том, что при данном коде текст не сохраняется, то, возможно, данные обработчики не назначены событиям формы?


На форме в поле форматированный документ текст сохраняется, но не помещается в базу данных, может я не правильно делаю. Подскажите как это можно осуществить.
Petre
Обработчики "ПриЧтенииНаСервере" и "ПередЗаписьюНаСервере" назначены событиям формы или просто скопипастены откуда-то в модуль формы? Приложите скриншот раздела "события" свойств формы.
ArturCh
Цитата(Petre @ 06.08.14, 12:08) необходимо зарегистрироваться для просмотра ссылки
Обработчики "ПриЧтенииНаСервере" и "ПередЗаписьюНаСервере" назначены событиям формы или просто скопипастены откуда-то в модуль формы? Приложите скриншот раздела "события" свойств формы.



 ! 

Правила, пункт 11
 


Цитата(Petre @ 06.08.14, 12:08) необходимо зарегистрироваться для просмотра ссылки
Обработчики "ПриЧтенииНаСервере" и "ПередЗаписьюНаСервере" назначены событиям формы или просто скопипастены откуда-то в модуль формы? Приложите скриншот раздела "события" свойств формы.



 ! 

Правила, п.11
 
Petre
Это снимок модуля.
Тыкаем закладку "Форма". В верхнем левом углу тыкаем правой кнопкой мыши по слову "Форма" и в контекстном меню нажимаем "Свойства". В открывшемся окне ищем раздел "События". Изучаем...
ArturCh
Цитата(Petre @ 06.08.14, 12:08) необходимо зарегистрироваться для просмотра ссылки
Обработчики "ПриЧтенииНаСервере" и "ПередЗаписьюНаСервере" назначены событиям формы или просто скопипастены откуда-то в модуль формы? Приложите скриншот раздела "события" свойств формы.




Petre
Реквизит формы "Вопрос" имеет тип "Форматированный документ"?
ArturCh
Цитата(Petre @ 06.08.14, 12:57) необходимо зарегистрироваться для просмотра ссылки
Реквизит формы "Вопрос" имеет тип "Форматированный документ"?


На самой форме имеет тип форматированный документ, а в документе, где основные реквизиты имеет тип хранилище значения.
Petre
Должно работать. Отладчиком надо пройтись.
ArturCh
Цитата(Petre @ 06.08.14, 14:22) необходимо зарегистрироваться для просмотра ссылки
Должно работать. Отладчиком надо пройтись.


У меня вот в этом поле сейчас сохраняется, а в динамический список не помещается.
Petre
Хм. Новые обстоятельства. В какой динамический список и что должно попадать?
ArturCh
Цитата(Petre @ 06.08.14, 15:05) необходимо зарегистрироваться для просмотра ссылки
Хм. Новые обстоятельства. В какой динамический список и что должно попадать?


Есть две формы документа, одна форма списка, другая форма документа. На форме списка есть тип: динамический список, а на форме документа есть реквизит с типом форматированный документ, вот надо чтобы из форматированного документа еще и помещался в динамический список(форма списка) там где колонка например ВопросОтвет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.