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

записать данные в объект.

записать данные в объект.
Я
   userqwerty
 
04.11.19 - 16:08
Всем привет. Подскажите как записать данные в объект, Я в 1с относительно недавно, новенькая так сказать.
&НаКлиенте
Процедура ДалееНачало(Команда)
    
    Если Объект.СвойстваДвери.Количество() = 0 Тогда
        КонструктивПриИзмененииНаСервере();
        Если Объект.СвойстваДвери.Количество() = 0 Тогда
            Возврат;
        КонецЕсли;    
    КонецЕсли;    
    Элементы.Начало.Видимость = Ложь;
    
    ПолучитьБазу();
    
    ПолучитьНазваниеПоМатериалам();
    ДалееНачалоНаСервере();
    Объект.Записать();

КонецПроцедуры

&НаСервере
Процедура ДалееНачалоНаСервере()
    
    ДокОбъект = РеквизитФормыВЗначение("Объект");
    ДокОбъект.ШиринаПолотна = ДокОбъект.База.Ширина;
    ДокОбъект.ВысотаПолотна = ДокОбъект.База.Высота;

нужно записать ДокОбъект.ШиринаПолотна и ДокОбъект.ВысотаПолотна
в режиме отладки там значения есть, а в пользовательском там пусто.

    
    

КонецПроцедуры
 
 
   hhhh
 
1 - 04.11.19 - 16:16
&НаСервере 
Процедура ДалееНачалоНаСервере() 
     
    Объект.ШиринаПолотна = Объект.База.Ширина; 
    Объект.ВысотаПолотна = Объект.База.Высота; 


КонецПроцедуры
   userqwerty
 
2 - 04.11.19 - 16:26
(1) значения в отладке есть, а в пользовательском нет, мне кажется гдето надо обновить форму, или я не права:?
   rozer76
 
3 - 04.11.19 - 16:28
(2) ну так обратно значениевреквизит формы надо еще
   userqwerty
 
4 - 04.11.19 - 16:29
(3) это как?
   rozer76
 
5 - 04.11.19 - 16:32
ЗначениеВРеквизитФормы(ДокОбъект, "Объект");
   Фрэнки
 
6 - 04.11.19 - 16:33
(4) Когда пишется 
ДокОбъект = РеквизитФормыВЗначение("Объект");

Это получается отдельный экземпляр, который возникает из данных, находившихся в реквизите "Объект"
Дальше с этими полученными данными происходят всякие манипуляции, а вот обратно (в клиентскую форму) ничего не передается.
   userqwerty
 
7 - 04.11.19 - 16:36
(6) поняла, спасибо. и как в клиентскую форму потом получить с сервера?
   rozer76
 
8 - 04.11.19 - 16:36
(4) да и не надо тебе так - см(1), как ты делаешь это когда надо метод объекта вызвать и надо сам объект получить
   userqwerty
 
9 - 04.11.19 - 16:37
я же на клиенте вызвала процедуру , которая мне все считает на сервере.
   userqwerty
 
10 - 04.11.19 - 16:39
(8) скажите пример, как должно быть, а то я уже как блондинка три часа перед компом сижу))
   hhhh
 
11 - 04.11.19 - 16:40
(9) там всё автоматически, всё должно высветиться и так. Объект виден и на клиенте и на сервере. В этом вся и фишка.
   hhhh
 
12 - 04.11.19 - 16:40
(10) как в (1)

и еще Объект.Записать();  выкинь.
   userqwerty
 
13 - 04.11.19 - 16:42
(12) обновить отображение данных на клиенте надо?
   hhhh
 
14 - 04.11.19 - 16:43
(13) не надо.
   Фрэнки
 
15 - 04.11.19 - 16:45
(7) перед завершением процедуры на сервере сделать вызов из (5)
т.е. этот вызов работает парно

&НаСервере
Процедура ДалееНачалоНаСервере()
    
    ДокОбъект = РеквизитФормыВЗначение("Объект");
.
.
.
    ЗначениеВРеквизитФормы(ДокОбъект, "Объект");
КонецПроцедуры


з.ы. Лично я часто использую версию как в (1), т.к. нормальных развернутых причин, которые запрещают так делать, нигде не нашел.
   RomanYS
 
16 - 04.11.19 - 17:00
(15) Таких причин нет и быть не может. Причины нужны как раз для конвертации данных формы в объект и обратно и они указаны (8).
   rozer76
 
17 - 04.11.19 - 17:02
(10) "скажите, напишите за меня" так не правильно- нужно отличать когда тебе нужны данные ФОРМЫ на сервере а когда нужен ОБЪЕКТ. В данном случае тебе не нужен объект т.к. не нужны экспортные методы и вся обработка в форме
   rozer76
 
18 - 04.11.19 - 17:06
Проще тебе заполнить что  РеквизитФормыВЗначение это как ПолучитьОбъект() но заполнить его не данныии из базы а данными формы.
   userqwerty
 
19 - 04.11.19 - 17:34
Опять то же самое

&НаКлиенте
Процедура ДалееНачало(Команда)
    
    Если Объект.СвойстваДвери.Количество() = 0 Тогда 
        КонструктивПриИзмененииНаСервере();
        Если Объект.СвойстваДвери.Количество() = 0 Тогда
            Возврат;
        КонецЕсли;    
    КонецЕсли;    
    Элементы.Начало.Видимость = Ложь;
    ПолучитьБазу();
    ПолучитьНазваниеПоМатериалам();
    ДалееНачалоНаСервере();
    
КонецПроцедуры

&НаСервере
Процедура ДалееНачалоНаСервере()
    
    ДокОбъект = РеквизитФормыВЗначение("Объект");
    ДокОбъект.ШиринаПолотна = ДокОбъект.База.Ширина;
    ДокОбъект.ВысотаПолотна = ДокОбъект.База.Высота;
   ЗначениеВРеквизитФормы(ДокОбъект, "Объект");

КонецПроцедуры

вот код, ДокОбъект.ШиринаПолотна и ДокОбъект.ВысотаПолотна данные при отладке есть, а в пользовательском режиме нет.
   userqwerty
 
20 - 04.11.19 - 17:34
(18)
ДокОбъект.ШиринаПолотна = ЭтаФорма.Ширина?
   Сияющий в темноте
 
21 - 04.11.19 - 17:37
обновить отображение данных?
   userqwerty
 
22 - 04.11.19 - 17:57
(21) как?
   userqwerty
 
23 - 04.11.19 - 17:58
ЭтаФорма.ОбновитьОтображениеДанных();? на клиенте не работает.
   userqwerty
 
24 - 04.11.19 - 18:08
ДЖЕНТЛЬМЕНЫ??? ПОМОГИТЕ ПОЖАЛУЙСТА.
   RomanYS
 
25 - 04.11.19 - 18:18
(24) сделай как в (1) и проверь, что элементы формы привязаны к данным
   userqwerty
 
26 - 04.11.19 - 18:22
(25) проверила, привязаны, а дальше что делать то?(((
   RomanYS
 
27 - 04.11.19 - 18:40
(26) конфигурация учебная? Выложи на файлопомойку
   catena
 
28 - 05.11.19 - 05:49
(26)А (1) игнорируется намеренно или есть какие-то религиозные причины?


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