Имя: Пароль:
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
Есть идеи. Откуда ты берешь ИсточникНастроек? Я сам столкнулся с похожей проблемой, когда пытался программно изменить одну СКД на другую. Лейбович Максим объяснял мне, что измененную (или новую) СКД необходимо прогонять через хранилище данных. В подробностях, к сожелению, я в этом вопросе не разобрался, но тот же Максим сказал что пример можно найти на ИТС.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn