![]() |
![]() |
![]() |
|
уф. не видит реквизит ТЧ хранилище значений. | ☑ | ||
---|---|---|---|---|
0
zladenuw
14.06.13
✎
14:45
|
&НаСервере
Процедура ПолучитьТекстДоговора(ТекСтрокаФирма) ТЧПоФирмам = Объект.ПоФирмам; НайденныеСтроки = ТЧПоФирмам.НайтиСтроки(Новый Структура("Фирма",ТекСтрокаФирма)); Если НайденныеСтроки.количество()=0 Тогда новСтр = ТЧПоФирмам.Добавить(); новСтр.Фирма = ТекСтрокаФирма; МакетДоговора = новСтр.Текст.Получить(); ТекФирма = ТекСтрокаФирма; Записать(); Иначе МакетДоговора = НайденныеСтроки[0].Текст.Получить(); КонецЕсли; {Справочник.ШаблонДоговора.Форма.ФормаЭлемента.Форма(44)}: Поле объекта не обнаружено (ТекстДоговора) МакетДоговора = новСтр.ТекстДоговора.Получить(); http://www.ximage.ru/index.php?id=1371206718 |
|||
1
MSII
14.06.13
✎
14:50
|
А где строка 44?
|
|||
2
zladenuw
14.06.13
✎
14:50
|
(0) хм. пробую при созданиенасервере получить. но и там его нету. почему ?
|
|||
3
zladenuw
14.06.13
✎
14:51
|
(1) да не видит реквизит хранилище значений. как его получить ?
НовСтр = Объект.ПоФирмам.Добавить(); НовСтр.ТекстДоговора - нету такого реквизита. |
|||
4
acsent
14.06.13
✎
14:52
|
в уф нет хранилица
|
|||
5
zladenuw
14.06.13
✎
14:54
|
(4) вообще даже на сервере ? :)
а чего пример вот тут http://infostart.ru/public/74958/. и все работает, а я хочу такое же. только через табличную часть |
|||
6
MSII
14.06.13
✎
14:56
|
Да есть, просто в данных формы недоступен - написано же. Делай так:
РеквизитОбъект = РеквизитФормыВЗначение("Объект"); ХЗ = РеквизитОбъект.ТекстДоговора.Получить(); |
|||
7
zladenuw
14.06.13
✎
14:57
|
(6) да но.
&НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) ТекущийОбъект.ПоФирмам[0].ТекстДоговора КонецПроцедуры я его вижу в отладчике!!!! почему тогда при создание он не доступен ? |
|||
8
acsent
14.06.13
✎
14:58
|
(5) нужно хранить коллекцию адресов во временном хранилище
|
|||
9
MSII
14.06.13
✎
14:59
|
(7) А ТекущийОбъект в ПриЧтенииНаСервере у тебя - какой тип?
|
|||
10
zladenuw
14.06.13
✎
14:59
|
(9) объект
|
|||
11
MSII
14.06.13
✎
15:01
|
(10) Ну. И чего глупые вопросы-то задаешь?
|
|||
12
zladenuw
14.06.13
✎
15:02
|
(11) а еж ты кот. спасибо
|
|||
13
MSII
14.06.13
✎
15:03
|
(12) Да не за что.
|
|||
14
zladenuw
14.06.13
✎
15:10
|
а почему не сохраняет ? :)
добавил команду вызываю на сервере &НаСервере Процедура СохранитьТекстДоговораСервер() РеквизитОбъект = РеквизитФормыВЗначение("Объект"); НайденныеСтроки = РеквизитОбъект.ПоФирмам.НайтиСтроки(Новый Структура("Фирма",ТекФирма)); Если НайденныеСтроки.количество()=0 Тогда новСтр = РеквизитОбъект.ПоФирмам.Добавить(); новСтр.Фирма = ТекФирма; новСтр.ТекстДоговора = Новый ХранилищеЗначения(МакетДоговора); Иначе НайденныеСтроки[0].ТекстДоговора = Новый ХранилищеЗначения(МакетДоговора); КонецЕсли; Записать(); КонецПроцедуры |
|||
15
acsent
14.06.13
✎
15:12
|
Записываешь совсем другой объект ))
|
|||
16
zladenuw
14.06.13
✎
15:13
|
(15) добавил
ЗначениеВРеквизитФормы(РеквизитОбъект,"Объект"); Сохраняет. но форматированный документ все равно пустой, то есть другой объект ? |
|||
17
zladenuw
14.06.13
✎
15:34
|
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) ТекущийОбъект.ПоФирмам[0].ТекстДоговора = Новый ХранилищеЗначения(МакетДоговора); КонецПроцедуры &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) ТекФирма = ТекущийОбъект.ПоФирмам[0].Фирма; МакетДоговора = ТекущийОбъект.ПоФирмам[0].ТекстДоговора.Получить(); КонецПроцедуры делаю так и все равно пусто. |
|||
18
Defender aka LINN
14.06.13
✎
15:41
|
(6) Не надо так делать
|
|||
19
MSII
14.06.13
✎
15:43
|
(18) Ага. ДанныеФормыВЗначение.
|
|||
20
Defender aka LINN
14.06.13
✎
15:45
|
(19) Че ага? Не взлетит один хрен.
В (17) правильные процедуры выбраны |
|||
21
MSII
14.06.13
✎
15:46
|
(20) Уже вижу. Только непонятно, почему. После десериализации хранилище очищается, что-ли?
|
|||
22
zladenuw
14.06.13
✎
15:48
|
(20) я уже себе сломал мозг. решил удалить форму и сделать по новой.
У меня есть справочник у него тч, два реквизита фирма и текстдоговора. как мне при активизации строки заполнить форматированный документ ? (17) код работает, хз чего. но по началу глючил. может кеш. |
|||
23
zladenuw
14.06.13
✎
15:49
|
(22) ПриЧтенииНаСервере, помещать во временное хранилище ? и уже при активизации строки получать из него ?
|
|||
24
Defender aka LINN
14.06.13
✎
15:50
|
(21) Хранилище не отображается в данные формы, потому и очищается, видимо.
(22) Сложить данные во временное хранилище формы, например |
|||
25
zladenuw
14.06.13
✎
15:51
|
(24) спасибо. буду пробовать.
|
|||
26
zladenuw
14.06.13
✎
16:18
|
сделал так.
&НаКлиенте Процедура ФирмаВыбораПриИзменении(Элемент) НайденСтроки = Объект.ПоФирмам.НайтиСтроки(Новый Структура("Фирма",ФирмаВыбора)); Если НайденСтроки.Количество()=0 Тогда НовСтр = Объект.ПоФирмам.Добавить(); НовСтр.Фирма = ФирмаВыбора; НовСтр.УИ = Новый УникальныйИдентификатор; ПоместитьВоВременноеХранилище(МакетДоговора, НовСтр.УИ); иначе МакетДоговора = ПолучитьИзВременногоХранилища(НайденСтроки[0].УИ).Получить(); КонецЕсли; КонецПроцедуры &НаСервере Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Для каждого ТекСтр Из ТекущийОбъект.Пофирмам Цикл ТекСтр.ТекстДоговора = ПолучитьИзВременногоХранилища(ТекСтр.УИ); КонецЦикла; КонецПроцедуры &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) Для каждого ТекСтр Из ТекущийОбъект.Пофирмам Цикл ПоместитьВоВременноеХранилище(ТекСтр.ТекстДоговора, ТекСтр.УИ); КонецЦикла; КонецПроцедуры пишет ошибку ТекСтр.ТекстДоговора = ПолучитьИзВременногоХранилища(ТекСтр.УИ); по причине: Ошибка получения значение из временного хранилища по причине: Неправильный путь к файлу 'e67da86d-693e-407c-a8df-edc07db4e493' что делаю не так ? |
|||
27
zladenuw
14.06.13
✎
16:48
|
и даже если так
&НаКлиенте Процедура ФирмаВыбораПриИзменении(Элемент) НайденСтроки = Объект.ПоФирмам.НайтиСтроки(Новый Структура("Фирма",ФирмаВыбора)); Если НайденСтроки.Количество()=0 Тогда НовСтр = Объект.ПоФирмам.Добавить(); НовСтр.Фирма = ФирмаВыбора; НовСтр.УИ = ПоместитьВоВременноеХранилище(МакетДоговора); Сообщить(НовСтр.УИ); иначе МакетДоговора = ПолучитьИзВременногоХранилища(НайденСтроки[0].УИ).Получить(); КонецЕсли; КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Для каждого ТекСтр Из ТекущийОбъект.Пофирмам Цикл ТекСтр.ТекстДоговора = ПолучитьИзВременногоХранилища(ТекСтр.УИ); КонецЦикла; КонецПроцедуры &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) Для каждого ТекСтр Из ТекущийОбъект.Пофирмам Цикл ТекСтр.УИ = ПоместитьВоВременноеХранилище(ТекСтр.ТекстДоговора.Получить()); КонецЦикла; КонецПроцедуры получаю ошибку {Справочник.ШаблонДоговора.Форма.ФормаЭлемента1.Форма(19)}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища) ТекСтр.ТекстДоговора = ПолучитьИзВременногоХранилища(ТекСтр.УИ); по причине: Ошибка получения значение из временного хранилища по причине: Неправильный путь к файлу 'e1cib/tempstorage/4207e482-d4f0-11e2-a986-001e6702', в процедуре передзаписью. что делаю не так ? |
|||
28
Defender aka LINN
14.06.13
✎
16:53
|
Может все же прочитаешь про метод ПоместитьВоВременноеХранилище хоть что-нибудь?
|
|||
29
zladenuw
14.06.13
✎
17:00
|
(28) читал
|
|||
30
zladenuw
14.06.13
✎
17:05
|
(28) сказал бы лучше, что не так делаю. вроде все правильно. не понимаю что ей не нравится.
|
|||
31
Поросенок Петр
14.06.13
✎
17:08
|
(29) Перечитай ещё раз.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |