Имя: Пароль:
1C
 
Как добавить Вычисляемое поле СКД на Тонком Клиенте?
0 H A D G E H O G s
 
27.05.10
09:32
День добрый.
Собственно, тема уже обсуждалась
v8: СКД + 8.2 - не работает изменение СхемыКомпоновки

Но решение найдено не было.
1 H A D G E H O G s
 
27.05.10
09:32
Есть СКД и ТонкийКлиент.

В СКД программно добавляю ВычисляемоеПоле, и Ресурс для него.
Переинициирую КомпоновщикНастроек.
В КомпоновкеНастроек добавляю ВыбранноеПоле.
Проблема:
В Отчете, при нажатии меню "Изменить вариант", в доступных полях не появляется новый Ресурс из ВычисляемогоПоля, а В выбранных полях - добавленное поле не связано в данными (имеет вид красного крестика).

Вот код:

   ЭтотОтчет=РеквизитФормыВЗначение("Отчет");
   СхемаКомпоновки=ЭтотОтчет.СхемаКомпоновкиДанных;
   ВычисляемыеПоля=СхемаКомпоновки.ВычисляемыеПоля;
   ВычисляемоеПоле=ВычисляемыеПоля.Добавить();
   ВычисляемоеПоле.Выражение=
   "ВЫБОР КОГДА &ЕдиницыКоличестваВОтчете = 0 ТОГДА
   |КоличествоНачальныйОстаток
   |ИНАЧЕ ВЫБОР КОГДА &ЕдиницыКоличестваВОтчете = 1 ТОГДА
   |КоличествоНачальныйОстаток*Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
   |ИНАЧЕ
   |КоличествоНачальныйОстаток*Номенклатура.ЕдиницаХраненияОстатков.Коэффициент/Номенклатура.ЕдиницаДляОтчетов.Коэффициент
   |КОНЕЦ
   |КОНЕЦ";
   ВычисляемоеПоле.Заголовок="Количество (в упаковках)";
   ВычисляемоеПоле.ПутьКДанным="КоличествоУпаковок";
   ПолеИтога=СхемаКомпоновки.ПоляИтога.Добавить();
   ПолеИтога.Выражение="Сумма(КоличествоУпаковок)";
   ПолеИтога.ПутьКДанным ="КоличествоУпаковок";
   ИсточникНастроек=Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки);
   Отчет.КомпоновщикНастроек.Инициализировать(ИсточникНастроек);
   Отчет.КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность);
   НовоеПоле=ЭтотОтчет.КомпоновщикНастроек.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
   НовоеПоле.Поле=Новый ПолеКомпоновкиДанных("КоличествоУпаковок");
   НовоеПоле.Заголовок="Количество (в упаковках)";
2 H A D G E H O G s
 
27.05.10
09:34
Даже делал так:
   АдресСхемыКомпоновки=ПоместитьВоВременноеХранилище(СхемаКомпоновки,ЭтаФорма.УникальныйИдентификатор);
ИсточникНастроек=Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемыКомпоновки);

Не помогает.
4 H A D G E H O G s
 
27.05.10
09:36
(3) Даже если я делаю
ЗначениеВРеквизитФормы(ЭтотОбъект,"Объект");

тоже не получается.
6 H A D G E H O G s
 
27.05.10
09:38
И так пробовал
&НаСервере
..........
ЗначениеВРеквизитФормы(ЭтотОтчет,"Отчет");
Отчет.КомпоновщикНастроек.Инициализировать(ИсточникНастроек);

И так:

&НаСервере
..........
Отчет.КомпоновщикНастроек.Инициализировать(ИсточникНастроек);
ЗначениеВРеквизитФормы(ЭтотОтчет,"Отчет");

И так:


&НаСервере
..........
ЭтотОтчет.КомпоновщикНастроек.Инициализировать(ИсточникНастроек);
ЗначениеВРеквизитФормы(ЭтотОтчет,"Отчет");
7 H A D G E H O G s
 
27.05.10
09:39
Такое очучение, что он СхемуКомпоновки каждый раз берет из Метаданных отчета.
8 Aprobator
 
27.05.10
09:52
а может потому, что коллекция вычисляемых полей на тонком клиенте вообще недоступна? По крайней мере, если покопаться в СП по вычисляемым полям - там тока
сервер, толстый клиент и внешнее соединение (круть это то нафига?).
9 Aprobator
 
27.05.10
09:55
+(8) хотя чушь с наборам данных та же хрень.
10 H A D G E H O G s
 
27.05.10
10:10
(8) Это вряд ли.
11 Aprobator
 
27.05.10
10:18
С фиксированными настройками играться не пробовал?

ФиксированныеНастройки (FixedSettings)
Использование:
Только чтение.
Описание:
Тип: НастройкиКомпоновкиДанных. Содержит настройки, которые дополнительно применяются к основным настройкам, при использовании метода ПолучитьНастройки.

Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Также у формы отчета есть расширение ФиксированныеНастройки.
12 Aprobator
 
27.05.10
10:20
+(11) может как-нибудь этим можно будет воспользоваться. Событие ПриЗагрузкеВариантаНаСервере не вызывается при изменении варианта?
13 H A D G E H O G s
 
27.05.10
10:24
(11) Вы не поняли.
Настройки - это настройки, доступные поля, это доступные поля.
У меня не добавляется именно доступное поле.
14 H A D G E H O G s
 
27.05.10
10:24
Которое пользователь потом бы сам смог добавить в выбранные поля.
15 22 см
 
27.05.10
10:31
Вчера только на 2.11 проверял в тонком клиенте. Вычисляемое поле работает. Только я его не программно добавлял, а в схеме. Причем работает на простом отчете. Т.е. без программной инициализации. Вот здесь не совсем понял. То ли это фича, то ли баг. Но мне понравилось
16 Aprobator
 
27.05.10
10:34
(14) хм - че то я туплю что ли? А откуда доступные поля берутся? Не с настроек?
(15) похоже, что вычисляемое поле требуется в зависимости от каких то условий.
Хотя что мешает создать возможные вычисляемые поля сразу, а потом играться с ограничением доступности?
17 H A D G E H O G s
 
27.05.10
10:37
(16)
<<А откуда доступные поля берутся? Не с настроек? >>
Из СхемыКомпоновки, при инициализации КомпоновщикаНастроек, насколько я понял.

<<Хотя что мешает создать возможные вычисляемые поля сразу, а потом играться с ограничением доступности?>>

Мне надо универсально, в каждый типовой отчет добавить свои, фирменные показатели, алкогольные.
18 acsent
 
27.05.10
10:42
Код из (2) однозначно работает
http://infostart.ru/public/69774/
19 H A D G E H O G s
 
27.05.10
10:47
(18) Встречался с этим.
Ты там все сам делаешь.
И источник прописываешь, и отчет выводишь.
Вникни плиз в мою ситуацию.
20 H A D G E H O G s
 
27.05.10
13:21
Будут еще какие мысли у кого?
21 acsent
 
27.05.10
13:29
(19) Ты куда хочешь поле добавить: в схему или настройщик?
22 H A D G E H O G s
 
27.05.10
13:34
(21) В схему.
23 H A D G E H O G s
 
27.05.10
13:38
24 H A D G E H O G s
 
27.05.10
13:49
(23) Вот туда я хочу свое Вычисляемое поле добавить.
25 acsent
 
27.05.10
14:37
С партнерского.

Отчет в управляемой форме не имеет такого реквизита, как схема компоновки данных поэтому преобразование ЗначениеВРеквизитФормы и не приводит т тому, что схема в отчете меняется.

Т.е. родную схему изменить нельзя, и переинициализировать родной компоновщик тоже
26 Господин ПЖ
 
27.05.10
14:44
блин... :(( зачет :((

отчеты в упр. приложении - на СКД, а сделать с ней ничего нельзя
27 H A D G E H O G s
 
27.05.10
14:45
(25)
<<Т.е. родную схему изменить нельзя, и переинициализировать родной компоновщик тоже>>
Точно? Это 1С сказала?
Ну а вот:
ЭтотОтчет.СхемаДанных
Есть же?
Тоесть, НаСервере я могу поменять СхемуДанных.
28 acsent
 
27.05.10
14:45
(27) Ты внимательно прочитал (25) ???
29 acsent
 
27.05.10
14:47
Чтобы обойти нужно добавить свою переменную "КомпоновщикНастроек" и уже с ней играться. Но это все формы переделывать
30 Господин ПЖ
 
27.05.10
14:48
(28) ну схема ведь - часть объекта отчета.
31 H A D G E H O G s
 
27.05.10
14:48
(28) Да.
Я внимательно прочитал (25)
32 acsent
 
27.05.10
14:50
Родной компоновщик видит только родную схему из макета
33 H A D G E H O G s
 
27.05.10
14:50
Схема - только на Сервере
Компоновщик - на сервере и на клиенте (чтобы юзер отчет настраивал).
На основании Схемы заполняется (Инициализировать()) Компоновщик и отобразается на Клиенте.

Что мешает изменить Схему на сервере, и переинициализировать Компоновщик?
34 H A D G E H O G s
 
27.05.10
14:51
(32) Думаешь, он настроен на Схему из Макета, а не на Схему в Объекте Отчета.
35 acsent
 
27.05.10
14:51
(33) Это нужно у 1С спросить. Хотеть мы можем чвсе что угодно, как бы оно логично не было
36 acsent
 
27.05.10
14:53
(34) Прямого ответа конечно такого нет, но все косвенные признаки указывают на это
37 acsent
 
27.05.10
14:54
38 H A D G E H O G s
 
27.05.10
15:00
И чего делать то?
Как с минимальными изменениями добавить показатели в упр. отчеты?
39 H A D G E H O G s
 
27.05.10
15:01
(38) Самому создавать ПроцессорВывода, Компоновщик, Компоновщик макетов, и.т.д. на основании доизменной схемы и выводить?
40 Господин ПЖ
 
27.05.10
15:09
мдя...

Это не ошибка.


Отчет в управляемой форме не имеет такого реквизита, как схема компоновки данных поэтому преобразование ЗначениеВРеквизитФормы и не приводит т тому, что схема в отчете меняется.


Пожелание зарегистрировано.

03.12.2009 11:58