|
Создать глобальную ТЗ в УТ11 | ☑ | ||
---|---|---|---|---|
0
Umka2008
23.05.12
✎
13:35
|
Раньше в 8.1 модуле приложения создавал глТаблица = Новый ТаблицаЗначений. А в УФ не катит, ругается, что ТаблицаЗначений на сервере не катит ... Где мне ее иницировать? Чтобы затем из разных мест программы обращаться?
|
|||
1
Wobland
23.05.12
✎
13:36
|
(0) она ж на клиенте "не катит", не? подход неверный
|
|||
2
Umka2008
23.05.12
✎
13:38
|
мне она нужна на клиенте
|
|||
3
1C-band
23.05.12
✎
13:40
|
(0) Инициализировать, разумеется, на сервере.
|
|||
4
Umka2008
23.05.12
✎
13:41
|
(3) вот в каком модуле?
|
|||
5
Ranger_83
23.05.12
✎
13:42
|
говорят временное хранилище помогает,но доступно вроде как на сервере
|
|||
6
Wobland
23.05.12
✎
13:43
|
&НаКлиенте
Процедура СоздатьТЗ(Команда) ИнициализироватьТЗ(); КонецПроцедуры &НаСервере Процедура ИнициализироватьТЗ() ТЗ=РеквизитФормыВЗначение("Объект.ТЗ", Тип("ТаблицаЗначений")); ТЗ = Запрос.Выполнить().Выгрузить(); КонецПроцедуры тут что-то недописано.. |
|||
7
aristar
23.05.12
✎
13:44
|
(0) а можно поинтересоваться с какой целью нужна глобальная ТЗ?
|
|||
8
арах
23.05.12
✎
13:46
|
судя по всему тут опять пресловутое не понимание что нельзя предавать тз с клиента на сервер и обратно:)
|
|||
9
Ranger_83
23.05.12
✎
13:48
|
(8)а ты можешь объяснить почему?
|
|||
10
арах
23.05.12
✎
13:50
|
нужно глобальную тз на клиент делай в общем модуле используемом на клиенте если надо на сервере соответственно делай серверный общий модуль
ну или попробуй сделать КлиентСерверный общий модуль (может прокатит не тестил:)) |
|||
11
aristar
23.05.12
✎
13:50
|
(9) Она просто недоступна. Вот тут уже обсуждалось v8: ТаблицаЗначений недоступна на Тонком Клиенте?
|
|||
12
Buster007
23.05.12
✎
13:51
|
(9) а что тут объяснять? кому надо тот попробует и ему платформа скажет почему нельзя ) и хоть ты через временное хранилище, хоть ещё через любое свое хранилище, но ТЗ на клиенте ты не увидишь.
|
|||
13
Ranger_83
23.05.12
✎
13:58
|
То,что она не доступна я знаю.Также знаю,что при необходимости можно передать на клиента массив.
Но с точки зрения логики платформы,т.е.чем это обусловлено нигде так и не могу найти. А обращаться к ТЗ можно и на сервере.Тс так и не объяснил для чего ему глТЗ |
|||
14
zak555
23.05.12
✎
13:59
|
(2) параметтры сеанса
|
|||
15
MadHead
23.05.12
✎
14:00
|
(14) там фиксированная таблица значений.
|
|||
16
MadHead
23.05.12
✎
14:02
|
(14) вернее и там нет таблица значения
|
|||
17
zak555
23.05.12
✎
14:16
|
(15) (16) хранилище значений отменили ?
|
|||
18
zak555
23.05.12
✎
14:17
|
только это всё ерунда, ибо никакх ТЗ автору не нужно
просто нужно переделать алгоритм |
|||
19
Ranger_83
23.05.12
✎
14:18
|
(18)нужно в голове сломать стереотипы 8.1
|
|||
20
Umka2008
23.05.12
✎
14:30
|
19 - а кто против? Таблица является таблицей кодировки. Содержит много строк (100-150), заполнять ее хочу один раз, а затем обращаться. Если можно через хранилище - как сделать?
|
|||
21
zak555
23.05.12
✎
14:30
|
(20) что за таблиц кодировок - подробнее
и как часто она правится |
|||
22
Umka2008
23.05.12
✎
14:40
|
документ в EAN-128 кодирует. Каждую букву номера дока в код. И это соответствие хранится в ТЗ
|
|||
23
Ranger_83
23.05.12
✎
14:43
|
(22)И часто тебе нужно эту таблицу инициировать?
|
|||
24
aristar
23.05.12
✎
14:57
|
(20) использоваться она должна на клиенте или на сервере?
|
|||
25
Umka2008
23.05.12
✎
15:00
|
24 - на сервере, там процедурки будут к ней обращаться (глобальные тоже)
|
|||
26
zak555
23.05.12
✎
15:02
|
(25) ты будешь отвечать на все вопросы или нет ?
|
|||
27
Umka2008
23.05.12
✎
15:04
|
21 - она постоянная, инициируется 1 раз при открытии программы
|
|||
28
программистище
23.05.12
✎
15:06
|
чем список значений не устраивает?
или массив структур |
|||
29
kotletka
23.05.12
✎
15:08
|
(28)+1, хотя к 1с аналогичный вопрос, чем их тз неустроило
|
|||
30
Umka2008
23.05.12
✎
15:10
|
мне нужен поиск по 2 полям в разных случаях. Таблица имеет структуру
глКодировка128 = Новый ТаблицаЗначений; глКодировка128.Колонки.Добавить("Код"); глКодировка128.Колонки.Добавить("Символ"); НоваяСтрока = глКодировка128.Добавить();НоваяСтрока.Код = 13;НоваяСтрока.Символ = "-"; НоваяСтрока = глКодировка128.Добавить();НоваяСтрока.Код = 16;НоваяСтрока.Символ = "0"; И нужно либо по коду, либо по символу. Список значений никак |
|||
31
zak555
23.05.12
✎
15:11
|
засунь всё в РС
|
|||
32
Umka2008
23.05.12
✎
15:13
|
31 - а может в Справочник? )))))) Править конфу - добавляя объекты - нет возмости
|
|||
33
Ranger_83
23.05.12
✎
15:14
|
(32)ХранилищеОбщихНастроек попробуй использовать
|
|||
34
Stepa86
23.05.12
✎
15:17
|
модуль с кешем на сеанс, в нем 4 функции:
ПолучитьСоответствиеКодаПоСимволу() - возвращает наполненное соответствие ПолучитьСоответствиеСимволПоКоду() - возвращает наполненное соответствие на основе первого КодСимвола(пСимвол) в котором Возврат ПолучитьСоответствиеКодаПоСимволу()[пСимвол]; СимволКода(пКод) Возврат ПолучитьСоответствиеСимволПоКоду()[пКод]; |
|||
35
zak555
23.05.12
✎
15:22
|
> нет возмости
почему же ? а код ты где сейчас пишешь ? |
|||
36
Ranger_83
23.05.12
✎
15:25
|
В демо-базе наверное ))
|
|||
37
Umka2008
23.05.12
✎
15:26
|
(35) ну просто легче наверное модуль править, чем метаданные добавлять? Из за ТЗ создавать РС ...
|
|||
38
Ахиллес
23.05.12
✎
15:35
|
(37) Сделай две ТЗ одну на сервере, другую на клиенте.
|
|||
39
zak555
23.05.12
✎
15:36
|
(37) легче ?
ты просто ... по уму - делай РС и обращайся на сервере к нему |
|||
40
Stepa86
23.05.12
✎
15:38
|
(39) нафик запросы к базе, если данные статичны на 146% ?
|
|||
41
Umka2008
23.05.12
✎
15:50
|
Так никто и не сказал - в каком месте создать один раз эту ТЗ ...
|
|||
42
rutony
23.05.12
✎
15:53
|
(41) Это утопия, это противоречет клиент-серверному 1с
|
|||
43
MRAK
23.05.12
✎
15:54
|
(41) чем не нравится (34)?
|
|||
44
Umka2008
23.05.12
✎
15:56
|
у меня кодировка иная - не равна кодам символов стандартным
|
|||
45
MRAK
23.05.12
✎
15:58
|
(44) ну и в чем проблема?
|
|||
46
Goggy
23.05.12
✎
16:01
|
Засунь в макет и не парь себе моСк
|
|||
47
Goggy
23.05.12
✎
16:01
|
(46)->(41)
|
|||
48
Ranger_83
23.05.12
✎
16:11
|
самый лучший вариант думаю РС,ибо обращаться ко всяким макетам-шмакетам и временным хранилищам для поиска соответствий будет долго и громоздко
|
|||
49
vvp91
23.05.12
✎
16:17
|
Сделай константу с типом ХранилищеЗначение, в которое пиши данные типа Соответствие.
Примеры использования констант есть в УТ - ПараметрыАдминистрированияИБ, НастройкиВыполненияРегламентныхЗаданий, НастройкиПроксиСервера. В метод СтандартныеПодсистемыВызовСервераПереопределяемый.ПараметрыРаботыКлиента вставляешь код получения данных своей константы (там даже место под это определено) и работаешь на клиенте со структурой, возвращаемой методом СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента(). На сервере просто обращаешься Константы.МояКонстанта.Получить().Получить() Для поиска по "2-м полям в разных случаях" лучше использовать тип Соответствие - на порядок быстрее будет искать по коду (ключу). Поиск среди 150 символов (значений) через итерацию <Для каждого … Из … Цикл> вообще плевое дело. |
|||
50
Umka2008
23.05.12
✎
16:59
|
Кому интересно - получилось вот так:
Создал ПараметрыСеанса.глХранилище128 с типом ХранилищеЗначений. Затем при НачалеРаботы туда загоняю ТЗ, а потом в процедурах вытаскиваю ее глКодировка128 = ПараметрыСеанса.глХранилище128.Получить(); |
|||
51
Stepa86
23.05.12
✎
17:01
|
еси чо с помощью общего модуля с кешем можно хранить ссылку на тз. Естесственно на клиенте она доступна не будет, так как тз на клиенте и не может существовать... зато соответствие прекрасно работает и на клиенте и на сервере
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |