![]() |
|
ПолучитьИзВременногоХранилища | ☑ | ||
---|---|---|---|---|
0
Diademal
08.04.17
✎
00:44
|
Здраствуйте!!! Помогите пожалуйста!!!Проблема вот вчем. Есть 8.3 Сам пишу. Начинающий!! В общем модуле Прописал Функцию:С Возврат ПоместитьВоВременноеХранилище(ТабЗнач, Новый УникальныйИдентификатор);
Куда попадает Несколько значений. На Общей Форме НаКлинте я Получаю Данные с помощью ПолучитьИзВременногоХранилища. Когда я работаю на сервере База прикрасно раьотает и данные которые я передал получает, но на клиенте Выдает ошибку "Ошибка отображения типов: Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'. Не знаю что делать.Если какой то выход. Спасибо |
|||
1
Franchiser
гуру
08.04.17
✎
00:54
|
1. Вызывайте эту функцию из серверной процедуры
2 создайте реквизит формы типа таблица значений - это будет псевдоним таблица значений 3 чтобы записать тз в реквизит формы используйте значениевреквизитформы() |
|||
2
МихаилМ
08.04.17
✎
00:55
|
тонкий клиент не умеет работать с ТЗ
|
|||
3
Franchiser
гуру
08.04.17
✎
00:57
|
На клиенте может быть только псевдотаблицазначений в фигурных скобках {таблицазначений}
|
|||
4
Diademal
08.04.17
✎
17:39
|
Если я првильно понял, то сначало в Общем Моделе методом "ЗначениеВРеквизитФормы" я создаю таблицу, а потом В общей форме в реквехите со свойством "ТаблцаЗначений" в процедуре на сервере методом "РеквизитФормыВЗначение" Вытаскиваю Таблицу и передаю её уже дальше. Правильно Понял???
|
|||
5
Diademal
08.04.17
✎
20:34
|
ЗначениеВРеквизитФормы в Общем Моделе не работает.
значит я В Общем Моделе прописал НоваяСтрока.Dat = Выборка.Date; НоваяСтрока.Регистратор = Выборка.Регистратор; НоваяСтрока.Customer =Выборка.Регистратор.Customer; Возврат ПоместитьВоВременноеХранилище(ТабЗнач, Новый УникальныйИдентификатор); а на форме создал НаСервере обработку при открытиии: АдресДанных = Общиймодуль.ПолучитьСписокNotesDate(); СписокNotesDate =ПолучитьИзВременногоХранилища(АдресДанных); значениевреквизитформы(СписокNotesDate,???); Вот тут я остоновился. Как дальше эти данные передать на клиента. Не знаю правильное моё направление или нет? |
|||
6
h-sp
09.04.17
✎
06:14
|
(5) вот так сделай
Возврат ТабЗнач; конечно пока для тебя это невероятное колдунство |
|||
7
Diademal
10.04.17
✎
18:27
|
Спасибо за ответы. Значит я не использую метод ПоместитьВоВременноеХранилище а Возвращаю Просто Возврат ТабЗнач; а В общейФорме Получаю методом "ЗначениеВРеквизитФормы" правильно понял?
Спасибо!!! |
|||
8
Diademal
11.04.17
✎
18:14
|
Привет!!! Помогите мозг уже плавиться!!! А очень хочу доделать!!!
Общий модуль: &НаСервере Функция ПолучитьСписокNotesDate() Экспорт ТД_Дата= НачалоДня(ТекущаяДата()); Массив = Новый Массив; Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | Ссылка Как Регистратор, | Пользователь, | Customer, | ПометкаУдаления | Поместить Notes | ИЗ | Задача.Notes Как Notes ; | ВЫБРАТЬ | Регистратор, | Пользователь, | Customer, | ПометкаУдаления, | ЗадачаNotes.Done, | ЗадачаNotes.Date | | ИЗ Notes | | Левое Соединение Задача.Notes.Notes Как ЗадачаNotes | По Notes.Регистратор= ЗадачаNotes.Ссылка | Где Done= Ложь и Date <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)и ПометкаУдаления=Ложь"; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Имя=ПараметрыСеанса.ТекущийПользователь.Наименование; ТабЗнач = Новый ТаблицаЗначений; ТабЗнач.Колонки.Добавить("Dat"); ТабЗнач.Колонки.Добавить("Регистратор"); ТабЗнач.Колонки.Добавить("Customer"); Пока Выборка.Следующий() Цикл Если Имя ="Leny" Тогда Массив.Добавить(Выборка.Date); //Массив.Добавить(Выборка.Регистратор); НоваяСтрока = ТабЗнач.Добавить(); НоваяСтрока.Dat = Выборка.Date; НоваяСтрока.Регистратор = Выборка.Регистратор; НоваяСтрока.Customer =Выборка.Регистратор.Customer; Иначе Если Строка(Выборка.Пользователь)=Имя Тогда НоваяСтрока.Dat = Дата(Выборка.Date); НоваяСтрока.Регистратор = Выборка.Регистратор; НоваяСтрока.Customer =Выборка.Регистратор.Customer; КонецЕсли; КонецЕсли; КонецЦикла; Возврат ТабЗнач; // Возврат ПоместитьВоВременноеХранилище(ТабЗнач, Новый УникальныйИдентификатор); КонецФункции |
|||
9
Diademal
11.04.17
✎
18:16
|
Общая Форма В ней есть Элемент Date -Поле календаря
и процедура при открытии на Клиенте &НаКлиенте Процедура ПриОткрытии(Отказ) АдресДанных = Общиймодуль.ПолучитьСписокNotesDate(); СписокNotesDate = ПолучитьИзВременногоХранилища(АдресДанных); Для Каждого ЭлементМассива Из СписокNotesDate Цикл Элементы.Date.ОтображатьТекущуюДату = Истина; Элементы.Date.НачалоПериодаОтображения =НачалоГода(ТекущаяДата()); Элементы.Date.КонецПериодаОтображения =КонецМесяца(ТекущаяДата()); Элементы.Date.ВыделенныеДаты.Добавить(ТекущаяДата()); Элементы.Date.Обновить(); КонецЦикла; КонецПроцедуры Как мне в эту процедуру закинуть даные С общего модуля????? |
|||
10
Diademal
11.04.17
✎
18:18
|
&НаСервере
Процедура ПриОткрытииНаСервере() АдресДанных =Общиймодуль.ПолучитьСписокNotesDate(); ЗначениеВРеквизитФормы(АдресДанных,"Test"); КонецПроцедуры Но что то не идет. Кучу вариантоа перепробывал. Идей больше нет!!! Help!!!Help!!!Help!!!Help!!!Help!!! |
|||
11
Diademal
11.04.17
✎
18:21
|
Где тест это
|
|||
12
Diademal
11.04.17
✎
18:21
|
рек на форме с свойством таблицаЗначений
|
|||
13
Diademal
11.04.17
✎
18:23
|
Рекв на форме с свойством таблицаЗначений
|
|||
14
Йохохо
11.04.17
✎
18:46
|
в (8) ошибка
Если Строка(Выборка.Пользователь)=Имя Тогда НоваяСтрока = ТабЗнач.Добавить(); // это надо НоваяСтрока.Dat = Дата(Выборка.Date); НоваяСтрока.Регистратор = Выборка.Регистратор; НоваяСтрока.Customer =Выборка.Регистратор.Customer; КонецЕсли; |
|||
15
Йохохо
11.04.17
✎
18:49
|
Процедура ПриОткрытии(Отказ)
АдресДанных = Общиймодуль.ПолучитьСписокNotesDate(); // не надо СписокNotesDate = ПолучитьИзВременногоХранилища(АдресДанных); Элементы.Date.ОтображатьТекущуюДату = Истина; Элементы.Date.НачалоПериодаОтображения =НачалоГода(ТекущаяДата()); Элементы.Date.КонецПериодаОтображения =КонецМесяца(ТекущаяДата()); Для Каждого ЭлементМассива Из СписокNotesDate Цикл Элементы.Date.ВыделенныеДаты.Добавить(АдресДанных.Dat); Элементы.Date.Обновить(); КонецЦикла; КонецПроцедуры |
|||
16
Йохохо
11.04.17
✎
18:50
|
(15) ойойой
Для Каждого СтрокаДанных Из АдресДанных Цикл Элементы.Date.ВыделенныеДаты.Добавить(СтрокаДанных.Dat); |
|||
17
Diademal
11.04.17
✎
20:25
|
Спасибо!!! Попробывал!! Вроде бы получилось!!
|
|||
18
Diademal
11.04.17
✎
20:45
|
Попробывал по этому принципу пойти дальше по форме и столкнулся с проблемой
&НаКлиенте Процедура ДатаПриВыводеПериода(Элемент, ОформлениеПериода) Для Каждого Дат Из ОформлениеПериода.Даты Цикл Если Дат.Дата = Дата(СтрокаДанных.Dat)Тогда Дат.ЦветТекста = WebЦвета.Бирюзовый; Дат.ЦветФона = WebЦвета.Васильковый; КонецЕсли; КонецЦикла; ОформлениеПериода работает только на клиенте, а СтрокаДанных я вытягиваю с сервера. Я так понимаю что я должен серверной процедурой получить СтрокиДанных и как то передать их на Клиент и уже на клиенте работать с ОформлениеПериода. Но вот с передачей с Сервера на Клиент Проблема!!! И DateПриВыводеПериода работает только на клиенте и на сервереБезКонтекста, а ЗначениеВРеквизитФормы не работает не на клиенте и сервереБезКонтекста Сделал Вот так: &НаКлиенте Процедура DateПриВыводеПериода(Элемент, ОформлениеПериода) DateПриВыводеПериодаНаСервере(); Для Каждого СтрокаДанных Из ??????Цикл Calendar=ТекущаяДата(); Для Каждого Дат Из ОформлениеПериода.Даты Цикл Если Дат.Дата = Дата(СтрокаДанных.Dat)Тогда Дат.ЦветТекста = WebЦвета.Бирюзовый; Дат.ЦветФона = WebЦвета.Васильковый; КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры &НаСервере Процедура DateПриВыводеПериодаНаСервере() АдресДанных =Общиймодуль.ПолучитьСписокNotesDate(); ЗначениеВРеквизитФормы(АдресДанных,"Test"); КонецПроцедуры |
|||
19
Diademal
11.04.17
✎
23:49
|
Решил Проблему для этой процедуры другим путем.Я отправил с Общего модуля Массив с датой и обработал её на Клиенской процедуре!! Просто для этой процедуре нужна лишь дата и массив как раз подошел. Всем спасибо большое за помощь!!!!!
Но все равно хотелось бы знать есть ли решение как ДАнные С Рекв Таблицызначений на форме с процедуры Насервере перекенуть на Процедуру Наклиенте на той же форме. Спасибо!!! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |