Имя: Пароль:
1C
1С v8
v8: СКД. Не ВСЕГДА инициализируются доступные настройки компоновщика.
0 GANR
 
29.10.12
12:19
Наболевшая проблема. Продолжение ветки v8: СКД. Не ВСЕГДА инициализируются доступные настройки компоновщика.
Платформа уже 8.2.16.362. Готовлю СКД следующим кодом:

   ИД = СКД.ИсточникиДанных.Добавить();
   ИД.Имя = "ИсточникДанных";
   ИД.ТипИсточникаДанных = "Local";
   
   НаборДанных = СКД.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
   НаборДанных.Имя = "ОсновнойНабор";
   НаборДанных.ИсточникДанных = "ИсточникДанных";
   НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина;
   
   ПолноеИмя = Метаданные[ТипМетаданных][ИмяОбъекта].ПолноеИмя();
   
   НаборДанных.Запрос = "ВЫБРАТЬ
   |    _Таблица_.*
   |ИЗ
   |    " + ПолноеИмя + " КАК _Таблица_";
   
   //затем инициализирую список доступных настроек    

   //компоновки данных

   
   идн = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД);
   КомпоновщикНастроек.Инициализировать(идн);


Почему список доступных полей выбора, отбора и пр. КомпоновщикНастроек инициализируется НЕ КАЖДЫЙ раз?

Иной раз - всё нормально, а иной - все списки доступных полей просто пусты, хотя текст запроса синтаксически правилен.

ПолноеИмя - это имя произвольного объекта в базе (справочник, документ, регистр сведений или их табличные части)

P.S. Отчеты сделанные "вручную" в консоли СКД или в конфигураторе также не работают.
1 GANR
 
29.10.12
12:29
Кто-нибудь знает с чем и как это хотя-бы теоретически может быть связано: синонимы, роли или ещё что ????
2 Cube
 
29.10.12
12:30
Я думаю, что это из той же оперы: v8: Использование нескольких схем в СКД
3 Cube
 
29.10.12
12:30
+(2) К слову, 1С ничего не ответила...
4 GANR
 
29.10.12
12:51
(2) Немного не то. Видимо, ещё один баг (((.
5 GANR
 
29.10.12
15:57
+ Вспомнил... Сортировка по дате некорректно проходит в одном отчете. То есть, алгоритм сортировки в недрах процессора компоновки данных кривой, что ли ???
6 GANR
 
29.10.12
16:17
(5) Это уже явный саботаж. Алгоритмы сортировки несколькими 10-летиями обкатаны и протестирована.
7 QLgKR
 
29.10.12
17:47
(5) Как правило это результат использования инструмента "кривые руки"
8 GANR
 
30.10.12
12:52
(7) Слава Богу. Так оно и было в этом случае.
9 Kashemir
 
30.10.12
13:33
Права скорее всего
10 GANR
 
30.10.12
13:57
(9) Права на объект, его реквизиты и ТЧ полные, кроме интерактивного удаления, конечно. Делаю набор данных типа "объект" вместо "запрос" с аналогичными полями - всё работает.
11 kabanoff
 
31.10.12
18:00
Что содержится в переменной АдресСКД?

Может все-таки так?
идн = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД);
12 GANR
 
31.10.12
18:03
(11) По статистике, которую я навёл,
идн = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД);
работает надежней, где-то на формуме разработчиков про это говорилось даже
13 kabanoff
 
31.10.12
18:03
+(11) Все ок, я не прочел прошлую ветку.
14 GANR
 
31.10.12
18:04
(13) Да это только с разрабами платформы обсуждать надо
15 kabanoff
 
31.10.12
18:06
(14) Так а ты пробовал заменить? В чем проявляется "ненадежность"?
16 GANR
 
31.10.12
18:09
(15) Пробовал. Уж и не помню (полгода назад было) там то ли настройки не заполнялись то ли просто исключение вызывалось.
17 GANR
 
31.10.12
18:10
(15) Кстати, если по этим-же метаданным отчет в конфигураторе сваять с фиксированной СКД и без форм - доступные настройки и сам отчет в предприятии не выведутся. То же самое в консоли СКД - ничего не выведется. Узнать бы закономерность.
18 GANR
 
31.10.12
18:11
И права полные ставил, и роли удалял, и синонимы крутил - ничего не ясно.
19 kabanoff
 
31.10.12
18:17
(17) Как понять "не выведутся"? У тебя доступные поля в схеме вообще есть (руками либо через автозаполнение)?
20 kabanoff
 
31.10.12
18:19
Попробуй в качестве отладки сохранить свою схему в xml и открой ее в консоли отчетов.


ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("D:\123.xml");

СериализаторXDTO.ЗаписатьXML(ЗаписьXML, СхемаКомпоновкиДанных);
21 GANR
 
31.10.12
18:32
(19) >доступные поля в схеме вообще есть (руками либо через автозаполнение)
Нету последних. Обоими способами пробовал - не получается.
(20) и это пробовал - то же самое
И вложенные запросы к объектам метаданных создавал в СКД и соединял с другими таблицами (по которым доступные поля заполнялись). По одной таблице поля доступные выводятся, по другой - нет. Писали в ЗАО 1С как я, так и другие люди - так проблема и не снялась.
22 GANR
 
15.11.12
13:34
ВСЕМ ! ВСЕМ ! ВСЕМ!
Никакой ошибки (0) и в v8: СКД. Не ВСЕГДА инициализируются доступные настройки компоновщика. нет !!!!

"Возможно, у пользователя нет права просмотра таблицы или таблица отключена по функциональным опциям!".

Ответ [email protected]

В моем случае таблицы были отключены по функциональным опциям.
23 GANR
 
15.11.12
13:38
Но вот

"Если в СКД присутствует набор данных "НаборДанныхОбъектСхемыКомпоновкиДанных", а в нем присутствуют элементы набора данных типа
"ПапкаПолейНабораДанныхСхемыКомпоновкиДанных", то при выгрузке схемы xml из конструктора СКД или кодом

ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("D:\СКД_отчета.xml");  
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, СКД);  

выгружаются в xml-файл 2 раза: первый раз при выгрузке в порядке следования папок в СКД, а второй - ещё и в конце тега dataSource. При загрузке такого xml-файла в конструктор СКД в наборе данных создаются не только папки, но и одноименные поля типа "ПолеНабораДанныхСхемыКомпоновкиДанных". В списке доступных настроек компоновки данных доступные поля визуально отображаются вложенными не в папки, а в одноименные элементы, созданные на этапе выгрузки – сами папки не видны."

это признано ошибкой 10116875
Программист всегда исправляет последнюю ошибку.