Имя: Пароль:
1C
 
СКД + 8.2 - не работает изменение СхемыКомпоновки
0 H A D G E H O G s
 
23.03.10
12:48
День добрый.
Ситуация:
Есть СКД и ТонкийКлиент.

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

Вот код:

   ЭтотОтчет=РеквизитФормыВЗначение("Отчет");
   СхемаКомпоновки=ЭтотОтчет.СхемаКомпоновкиДанных;
   ВычисляемыеПоля=СхемаКомпоновки.ВычисляемыеПоля;
   ВычисляемоеПоле=ВычисляемыеПоля.Добавить();
   ВычисляемоеПоле.Выражение=
   "ВЫБОР КОГДА &ЕдиницыКоличестваВОтчете = 0 ТОГДА
   |КоличествоНачальныйОстаток
   |ИНАЧЕ ВЫБОР КОГДА &ЕдиницыКоличестваВОтчете = 1 ТОГДА
   |КоличествоНачальныйОстаток*Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
   |ИНАЧЕ
   |КоличествоНачальныйОстаток*Номенклатура.ЕдиницаХраненияОстатков.Коэффициент/Номенклатура.ЕдиницаДляОтчетов.Коэффициент
   |КОНЕЦ
   |КОНЕЦ";
   ВычисляемоеПоле.Заголовок="Количество (в упаковках)";
   ВычисляемоеПоле.ПутьКДанным="КоличествоУпаковок";
   ПолеИтога=СхемаКомпоновки.ПоляИтога.Добавить();
   ПолеИтога.Выражение="Сумма(КоличествоУпаковок)";
   ПолеИтога.ПутьКДанным ="КоличествоУпаковок";
   ИсточникНастроек=Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки);
   Отчет.КомпоновщикНастроек.Инициализировать(ИсточникНастроек);
   Отчет.КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность);
   НовоеПоле=ЭтотОтчет.КомпоновщикНастроек.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
   НовоеПоле.Поле=Новый ПолеКомпоновкиДанных("КоличествоУпаковок");
   НовоеПоле.Заголовок="Количество (в упаковках)";
1 H A D G E H O G s
 
23.03.10
12:48
Примечание 1:
В ТолстомКлиенте все работает
2 H A D G E H O G s
 
23.03.10
12:49
Примечание 2:
Если добавляешь все поля в режиме правки СхемыКомпоновки - все работает
3 H A D G E H O G s
 
23.03.10
12:50
Примечание 3:
Выгрузка СхемыКомпоновки после правки руками и СхемыКомпоновки после правки программно в XML показала их идентичность.
4 H A D G E H O G s
 
23.03.10
12:50
ЧЯДНТ?
5 acsent
 
23.03.10
12:53
Притворись симпотишной девочкой, тогда может быть ответят ))
6 Defender aka LINN
 
23.03.10
12:55
ЭтотОтчет=РеквизитФормыВЗначение("Отчет");

А обратное преобразование где?
7 H A D G E H O G s
 
23.03.10
13:04
(6) Зачем?
Я прямое использую для получения СхемыКомпоновки.
А Компоновщик доступен и на клиенте -
Отчет.КомпоновщикНастроек

Или я не прав?
8 H A D G E H O G s
 
23.03.10
13:07
Попробовал варианты:
1 ВАРИАНТ:
   Отчет.КомпоновщикНастроек.Инициализировать(ИсточникНастроек);
   Отчет.КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность);
   НовоеПоле=Отчет.КомпоновщикНастроек.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
   НовоеПоле.Поле=Новый ПолеКомпоновкиДанных("КоличествоУпаковок");
   НовоеПоле.Заголовок="Количество (в упаковках)";
   ЗначениеВРеквизитФормы(ЭтотОтчет,"Отчет" );


2 ВАРИАНТ:
   ЭтотОтчет.КомпоновщикНастроек.Инициализировать(ИсточникНастроек);
   ЭтотОтчет.КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность);
   НовоеПоле=ЭтотОтчет.КомпоновщикНастроек.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
   НовоеПоле.Поле=Новый ПолеКомпоновкиДанных("КоличествоУпаковок");
   НовоеПоле.Заголовок="Количество (в упаковках)";
   ЗначениеВРеквизитФормы(ЭтотОтчет,"Отчет" );


Монопенисуально.
9 H A D G E H O G s
 
23.03.10
13:08
Вообще это типовой отчет
ТоварыНаСкладах
для УПП 1.3, если кому интересно - могу скинуть.
10 H A D G E H O G s
 
23.03.10
13:19
up
11 acsent
 
23.03.10
13:20
Всетаки попробуй (5)
12 Господин ПЖ
 
23.03.10
13:23
вписать в косяки и выслать в 1С... тут один посетитель вроде имел отношение к баголовам одной малоизвесной фирмы...
13 H A D G E H O G s
 
23.03.10
13:42
(12) Куды писать то?
14 H A D G E H O G s
 
23.03.10
14:17
вверх.
Есть у кого еще идеи?
Мне проблему решать надо, ибо бледный лисиц на меня смотрит. И облизывается.
15 sima
 
21.04.10
13:47
Есть идеи. Откуда ты берешь ИсточникНастроек? Я сам столкнулся с похожей проблемой, когда пытался программно изменить одну СКД на другую. Лейбович Максим объяснял мне, что измененную (или новую) СКД необходимо прогонять через хранилище данных. В подробностях, к сожелению, я в этом вопросе не разобрался, но тот же Максим сказал что пример можно найти на ИТС.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой