Отбор в ПостроительЗапроса или ОтобратьСтрокиПоКритериям... по НЕТИПИЗИРОВАННОЙ колонке?

1. sanfoto 502 27.01.15 11:08 Сейчас в теме
Подобное http://www.forum.mista.ru/topic.php?id=685265&all=1
При попытке добавить отбор в ПостроительЗапроса : Ошибка при вызове метода контекста (Добавить)
ЭлемОтбораЗапроса = Запрос.Отбор.Добавить(ЭлементОтбора.ПутьКДанным);
по причине:
Недопустимое значение параметра (параметр номер '1')
////////////////////////////////
Столкнулся с такой же ошибкой, Оказалось, что несмотря на то что в "ПостроительЗапроса" можно Запихать ТаблицуЗначений с колонками без жесткой типизации (в отличии от МенеджерВиртуальныхТаблиц Запроса)
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(Источник);


НО при использользовании отбора по НЕТИПИЗИРОВАННОЙ колонке - система будет выдовать Ошибку(((
=>
пока Решение только одно изначально в "Источник" жестко задавать тип колонки, например: ТЗ_Источник.Колонки.Добавить("Статус",Новый ОписаниеТипов ("ПеречислениеСсылка.СтатусыМаршрутныхЛистов"));

/////////////// Хотелось бы без предварительно ЖЕСТКОЙ типизации ИСТОЧНИК.. у кого какие идеи? ))) ///////////////////////////////

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

	Перем ВидСравненияСложный;

	Если СтруктураСложныхКритериев = Неопределено Тогда
		СтруктураСложныхКритериев = Новый Структура;
	КонецЕсли;

	ПостроительЗапроса = Новый ПостроительЗапроса;
	ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(Источник);
	///=> В случае ошибки с Отбором по полю без ОписанияТипа
	Попытка
		Для Каждого Критерий Из СтруктураКритериев Цикл
			НовыйОтбор = ПостроительЗапроса.Отбор.Добавить(Критерий.Ключ);
			
			СтруктураСложныхКритериев.Свойство(Критерий.Ключ, ВидСравненияСложный);
			
			Если ВидСравненияСложный = Неопределено Тогда
				НовыйОтбор.Установить(Критерий.Значение);
			Иначе
				НовыйОтбор.Использование = Истина;
				НовыйОтбор.ВидСравнения = ВидСравненияСложный;
				НовыйОтбор.Значение = Критерий.Значение;
			КонецЕсли;
		КонецЦикла;
	Исключение
		СообщениеПользователю = новый СообщениеПользователю;
		СообщениеПользователю.Текст=("<ОтобратьСтрокиПоКритериям(..), для отбора В самой <ТЗ_Источник> для ИмяПоля = "+Критерий.Ключ+", необходимо жестко указать <Новый ОписаниеТипов(..)>> "+ОписаниеОшибки());
СообщениеПользователю.Сообщить();
		ВызватьИсключение "<ОтобратьСтрокиПоКритериям(..), для отбора В самой <ТЗ_Источник> для ИмяПоля = "+Критерий.Ключ+", необходимо жестко указать <Новый ОписаниеТипов(..)>> "+ОписаниеОшибки();
	КонецПопытки;
	///<= В случае ошибки с Отбором по полю без ОписанияТипа
	Возврат ПостроительЗапроса.Результат;

КонецФункции // ОтобратьСтрокиПоКритериям()
Показать
+
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. пользователь 27.01.15 11:12
Сообщение было скрыто модератором.
...
3. AllexSoft 27.01.15 11:14 Сейчас в теме
идея одна: выкинуть хлам на построителе и написать тоже самое на СКД.. вообще зачем этот построитель 1С вовсе не выкинул не понятно, тянет хлам какой-то древний.. хотя построитель не развивался тысячу лет и уже почти официально заброшен
+
4. sanfoto 502 27.01.15 11:30 Сейчас в теме
(3) AllexSoft,
сам об об СКД подумывал.. думаеш взлетит? ))
у меня даже где-то функция валялась для конвертации "ВидСравнения" от построителя в "ВидСравнения" от СКД.
+
7. sanfoto 502 27.01.15 12:05 Сейчас в теме
(3) AllexSoft,

Думаю в моем случае СКД не взлетит((( из за сложности создания произвольного объекта "СхемаКомпоновкиДанных" для произвольных таблиц источников ((
+
8. AllexSoft 27.01.15 12:54 Сейчас в теме
(7) sanfoto, да ну) какие сложности то) делаешь свой общий макет с типом макет СКД, конструктором ваяешь туда твой источник-объект, внешнюю таблицу.. далее в твоем модуле получаешь этот макет, вот тебе готовая схема, ничего программно компановать не надо.. все очень просто на самом деле
+
9. sanfoto 502 27.01.15 14:12 Сейчас в теме
(8) AllexSoft,

это прикол я так понял? )))

-------------------------- "ТЗ" - далеее это ТаблицаЗначений

если нет мне предлагается под каждую "ТЗ" (ЕСТЕСТВЕННО отличные по Количиству и Типам колонок) делать ОБЩИЙ макет ? ню ню
+
10. AllexSoft 27.01.15 18:05 Сейчас в теме
(9) sanfoto, ну раз структура ТЗ разная и нельзя ее унифицировать то только программно компоновать, как вы правильно заметили в (7) sanfoto, только это уже сложнее)
+
11. sanfoto 502 28.01.15 05:19 Сейчас в теме
(10) AllexSoft,

вот я и написал что СКД не взлетит...для сложного отбора в ПРОИЗВОЛЬНОЙ "ТЗ" ))
-----------------------------------------
эх... до вечерка подожду и крою наверное тему... похоже никто не решал этот вопрос на практике(((

ПС:
Кстати ранее я работал со сложными отборами путем помещения ТЗ в МенеджерВиртуальныхТаблиц и выборка запросом... так вот другой метод через ПОСТРОИТЕЛЬЗАПРОСА значительно быстрей отрабатывает.
+
12. AllexSoft 28.01.15 09:33 Сейчас в теме
(11) sanfoto, у тебя кстати платформа какая? если 8.3.5 есть выход ) Объектная схема запроса!
http://v8.1c.ru/o7/201401query/index.htm
sanfoto; +1
13. sanfoto 502 28.01.15 13:50 Сейчас в теме
(12) AllexSoft,
прикольно))
не знал...ща поковыряю.

пс:
Хотя может и не взлететь... движок то 8.3.5 но в режиме совместимости с 8.2.13 Конфа
+
14. AllexSoft 28.01.15 14:12 Сейчас в теме
(13) sanfoto, взлетает с режимом совместимости 8.2.* ;)
+
15. sanfoto 502 28.01.15 14:31 Сейчас в теме
(14) AllexSoft,
чет мне кажется это сложноватый путь ПРОГРАММНО создавать запрос))
пример:
//Создание схемы запроса
СхемаЗапроса = Новый СхемаЗапроса;
ЗапросВыбораИзИБ = СхемаЗапроса.ПакетЗапросов[0];
//Установка свойств запроса
ЗапросВыбораИзИБ.ТаблицаДляПомещения = "ТаблицаОбороты";
ЗапросВыбораИзИБ.ВыбиратьРазрешенные = Истина;
//Добавляем операторы выбора первого запроса пакета
ОператорВыбораЗакупок = ЗапросВыбораИзИБ.Операторы[0];
ИсточникНоменклатура = ОператорВыбораЗакупок.Источники.Добавить("Справочник.Номенклатура","Товары");
//Добавляем запрос выбора из регистра закупок
ИсточникЗакупки = ОператорВыбораЗакупок.Источники.Добавить("РегистрНакопления.Закупки.Обороты","Закупки");
ИсточникЗакупки.Источник.Параметры[0].Выражение = Новый ВыражениеСхемыЗапроса("&Начало") ;
ИсточникЗакупки.Источник.Параметры[1].Выражение = Новый ВыражениеСхемыЗапроса("&Окончание") ;
ИсточникЗакупки.Источник.Параметры[2].Выражение = Новый ВыражениеСхемыЗапроса("Месяц") ;
//Меняем тип соединения
ИсточникЗакупки.Соединения[0].ТипСоединения = ТипСоединенияСхемыЗапроса.ПравоеВнешнее;
//Указываем выбираемые поля
ОператорВыбораЗакупок.ВыбираемыеПоля.Добавить("Товары.Ссылка");
ОператорВыбораЗакупок.ВыбираемыеПоля.Добавить("Закупки.Период");
ОператорВыбораЗакупок.ВыбираемыеПоля.Добавить("ЕСТЬNULL(Закупки.СуммаОборот, 0)");
ОператорВыбораЗакупок.ВыбираемыеПоля.Добавить("0");
//Указываем спевдонимы для выбранных полей
ЗапросВыбораИзИБ.Колонки[0].Псевдоним = "Номенклатура";
ЗапросВыбораИзИБ.Колонки[1].Псевдоним = "Период";
ЗапросВыбораИзИБ.Колонки[2].Псевдоним = "СуммаЗакупок";
ЗапросВыбораИзИБ.Колонки[3].Псевдоним = "СуммаПродаж";
//Добавляем отбор
ОператорВыбораЗакупок.Отбор.Добавить("НЕ Товары.ЭтоГруппа");

///////////////////////
//Выбираем данные о продажах
ОператорВыбораПродаж = ЗапросВыбораИзИБ.Операторы.Добавить();
ИсточникНоменклатура = ОператорВыбораПродаж.Источники.Добавить("Справочник.Номенклатура","Товары");
ОператорВыбораПродаж.ВыбираемыеПоля.Добавить("Товары.Ссылка");
//Добавляем источник РН и устанавливаем параметры
ИсточникПродажи =ОператорВыбораПродаж.Источники.Добавить("РегистрНакопления.Продажи.Обороты","Продажи");
ИсточникПродажи.Источник.Параметры[0].Выражение = Новый ВыражениеСхемыЗапроса("&Начало") ;
ИсточникПродажи.Источник.Параметры[1].Выражение = Новый ВыражениеСхемыЗапроса("&Окончание") ;
ИсточникПродажи.Источник.Параметры[2].Выражение = Новый ВыражениеСхемыЗапроса("Месяц") ;
ИсточникПродажи.Соединения[0].ТипСоединения = ТипСоединенияСхемыЗапроса.ПравоеВнешнее;
//Указываем отбираемые поля и устанавливаем для числовых полей соответствие с полями первого запроса
ОператорВыбораПродаж.ВыбираемыеПоля.Добавить("Продажи.Период");
ВыражениеЗакупки = ОператорВыбораПродаж.ВыбираемыеПоля.Добавить("0");
ВыражениеПродажи = ОператорВыбораПродаж.ВыбираемыеПоля.Добавить("ЕСТЬNULL(Продажи.СуммаОборот, 0)");
ЗапросВыбораИзИБ.Колонки[2].Поля.Установить(1,ВыражениеЗакупки);
ЗапросВыбораИзИБ.Колонки[3].Поля.Установить(1,ВыражениеПродажи);
//Добавляем отбор
ОператорВыбораПродаж.Отбор.Добавить("НЕ Товары.ЭтоГруппа");
//Индексируем данные
ЗапросВыбораИзИБ.Индекс.Добавить(ЗапросВыбораИзИБ.Колонки[0]);
ЗапросВыбораИзИБ.Индекс.Добавить(ЗапросВыбораИзИБ.Колонки[1]);
//Устанавливаем параметры выбора данных
ОператорВыбораПродаж.ВыбиратьРазличные = Истина;
ОператорВыбораПродаж.КоличествоПолучаемыхЗаписей = 100;


////////////////
//Второй пакет запроса
ЗапросВыбораИзВТ = СхемаЗапроса.ПакетЗапросов.Добавить();
ОператорВыбрать = ЗапросВыбораИзВТ.Операторы[0];
//Устанавливаем сформированную в прошлом запросе временную таблицу как источник
Источник = ОператорВыбрать.Источники.Добавить("ТаблицаОбороты","ТаблицаОбороты");
ОператорВыбрать.ВыбираемыеПоля.Добавить("ТаблицаОбороты.Номенклатура");
ОператорВыбрать.ВыбираемыеПоля.Добавить("ТаблицаОбороты.Период");
ОператорВыбрать.ВыбираемыеПоля.Добавить("СУММА(ТаблицаОбороты.СуммаЗакупок)");
ОператорВыбрать.ВыбираемыеПоля.Добавить("СУММА(ТаблицаОбороты.СуммаПродаж)");
//Условие отбора
ОператорВыбрать.Отбор.Добавить("СУММА(ТаблицаОбороты.СуммаЗакупок) > 0");
//Устанавливаем псевдонимы колонок
ЗапросВыбораИзВТ.Колонки[0].Псевдоним = "Номенклатура";
ЗапросВыбораИзВТ.Колонки[1].Псевдоним = "Период";
ЗапросВыбораИзВТ.Колонки[2].Псевдоним = "СуммаЗакупок";
ЗапросВыбораИзВТ.Колонки[3].Псевдоним = "СуммаПродаж";
//Порядок сортировки данных
ЗапросВыбораИзВТ.Порядок.Добавить(ЗапросВыбораИзВТ.Операторы[0].Источники[0].Источник.ДоступныеПоля[0].Поля[6]);
ЗапросВыбораИзВТ.Порядок.Добавить(ЗапросВыбораИзВТ.Колонки[1]);
//Итоги запроса
ИтогНоменклатура = ЗапросВыбораИзВТ.КонтрольныеТочкиИтогов.Добавить(ЗапросВыбораИзВТ.Колонки[0]);
ИтогНоменклатура.ТипКонтрольнойТочки = ТипКонтрольнойТочкиСхемыЗапроса.ТолькоИерархия; 
ЗапросВыбораИзВТ.ОбщиеИтоги =Истина;
ЗапросВыбораИзВТ.ВыраженияИтогов.Добавить(ЗапросВыбораИзВТ.Колонки[2]);
ЗапросВыбораИзВТ.ВыраженияИтогов.Добавить(ЗапросВыбораИзВТ.Колонки[3]);
////////////////
//Последний запрос пакета - удаление временной таблицы
ЗапросУничтоженияВТ = СхемаЗапроса.ПакетЗапросов.Добавить(Тип("ЗапросУничтоженияТаблицыСхемыЗапроса"));
ЗапросУничтоженияВТ.ИмяТаблицы = "ТаблицаОбороты";
Показать

Явно видно, что программное создание гораздо сложнее, чем текстовое.
Возникает вопрос, в чем смылс морочиться с программным создание вместо удобного конструирования.
Если этот запрос больше не изменится, то смысла нет никакого.

Плюшки появляются только в случае, если нам необходимо этот запрос модифицировать дальше в зависимости от настроек.


а вот исходный текстовый созданный Конструктором
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Товары.Ссылка КАК Номенклатура,
    Закупки.Период КАК Период,
    ЕСТЬNULL(Закупки.СуммаОборот, 0) КАК СуммаЗакупок,
    0 КАК СуммаПродаж
ПОМЕСТИТЬ ТаблицаОбороты
ИЗ
    Справочник.Номенклатура КАК Товары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Закупки.Обороты(&Начало, &Окончание, Месяц) КАК Закупки
        ПО Закупки.Номенклатура = Товары.Ссылка
ГДЕ
    НЕ Товары.ЭтоГруппа

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 100
    Товары.Ссылка,
    Продажи.Период,
    0,
    ЕСТЬNULL(Продажи.СуммаОборот, 0)
ИЗ
    Справочник.Номенклатура КАК Товары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&Начало, &Окончание, Месяц) КАК Продажи
        ПО Продажи.Номенклатура = Товары.Ссылка
ГДЕ
    НЕ Товары.ЭтоГруппа

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Период
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ТаблицаОбороты.Номенклатура КАК Номенклатура,
    ТаблицаОбороты.Период КАК Период,
    СУММА(ТаблицаОбороты.СуммаЗакупок) КАК СуммаЗакупок,
    СУММА(ТаблицаОбороты.СуммаПродаж) КАК СуммаПродаж
ИЗ
    ТаблицаОбороты КАК ТаблицаОбороты

СГРУППИРОВАТЬ ПО
    ТаблицаОбороты.Номенклатура,
    ТаблицаОбороты.Период

ИМЕЮЩИЕ
    СУММА(ТаблицаОбороты.СуммаЗакупок) > 0

УПОРЯДОЧИТЬ ПО
    ТаблицаОбороты.Номенклатура.Наименование,
    Период
ИТОГИ
    СУММА(СуммаЗакупок),
    СУММА(СуммаПродаж)
ПО
    ОБЩИЕ,
    Номенклатура ТОЛЬКО ИЕРАРХИЯ
;

////////////////////////////////////////////////////////////­////////////////////
УНИЧТОЖИТЬ ТаблицаОбороты
Показать
+
16. AllexSoft 28.01.15 14:53 Сейчас в теме
(15) sanfoto,
чет мне кажется это сложноватый путь ПРОГРАММНО создавать запрос))

ну это тебе решать сложно или нет) все же зависит от конкретных твоих задач которые знаешь только ты) я тебе просто говорю какие варианты есть ) ну а выбирать как делать тебе
+
17. sanfoto 502 28.01.15 16:11 Сейчас в теме
(16) AllexSoft,
у меня уже возникает безумная идея получить "объеткОписаниеВсехТипов"
и как то так всегда в ТЗ создавать колонки )))

ТЗ_Источник_Нетипизированная.Колонки.Добавить("НекаяКолонка", объеткОписаниеВсехТипов );


вопрос в том как получить быстро объеткОписаниеВсехТипов ))
+
18. Allexe8.1 28.01.15 19:42 Сейчас в теме
(17) sanfoto, думается, не в ту сторону копаешь. Первоначальная задача в чем состоит?
при использользовании отбора по НЕТИПИЗИРОВАННОЙ колонке - система будет выдовать Ошибку

Возможно, это потому что нетипизированная колонка может содержать любые данные - например ссылку на другую таблицу значений, или саму таблицу значений, или хранилище значений..
+
19. sanfoto 502 29.01.15 05:24 Сейчас в теме
(18) Allexe8.1,
это все так ЛЮБЫЕ ДАННЫЕ, но допустим отбор стоит: "Колонка1"=НЕОПРЕДЕЛЕНО .... что мешает его сделать ПЛАТФОРМЕ без ТИПИЗАЦИИ КОЛОНКИ?

Вот код выдаст ОШИБКУ
	ТЗ_Источник_Нетипизированная =Новый ТаблицаЗначений;
	ТЗ_Источник_Нетипизированная.Колонки.Добавить("НекийОбъект" );
	ТЗ_Источник_Нетипизированная.Колонки.Добавить("Сумма");
	
	НовСтр = ТЗ_Источник_Нетипизированная.Добавить();
	//НовСтр.НекийОбъект=Перечисления.СтавкиНДС.НДС10;
	НовСтр.Сумма=150;
	
	НовСтр = ТЗ_Источник_Нетипизированная.Добавить();
	НовСтр.НекийОбъект=Перечисления.СтавкиНДС.НДС10;
	НовСтр.Сумма=200;
	
		НовСтр = ТЗ_Источник_Нетипизированная.Добавить();
	НовСтр.НекийОбъект="некая фигня";
	НовСтр.Сумма=300;

	
		ОбщегоНазначения.ОтобратьСтрокиПоКритериям(ТЗ_Источник_Нетипизированная,Новый Структура("НекийОбъект",Неопределено)).Выгрузить();
Показать

------------------------------
вот код НЕ ВЫДАСТ Ошибку..
	ТЗ_Источник_типизированная =Новый ТаблицаЗначений;
	Массив = Новый Массив;  
	Массив.Добавить(Тип("Неопределено"));
	Массив.Добавить(Тип("ПеречислениеСсылка.СтавкиНДС"));
	
	ТЗ_Источник_типизированная.Колонки.Добавить("НекийОбъект", Новый ОписаниеТипов(Массив) );
	ТЗ_Источник_типизированная.Колонки.Добавить("Сумма");
	
	НовСтр = ТЗ_Источник_типизированная.Добавить();
	//НовСтр.НекийОбъект=Перечисления.СтавкиНДС.НДС10;
	НовСтр.Сумма=150;
	
	НовСтр = ТЗ_Источник_типизированная.Добавить();
	НовСтр.НекийОбъект=Перечисления.СтавкиНДС.НДС10;
	НовСтр.Сумма=200;
	
		НовСтр = ТЗ_Источник_типизированная.Добавить();
	НовСтр.НекийОбъект="некая фигня";
	НовСтр.Сумма=300;

		ОбщегоНазначения.ОтобратьСтрокиПоКритериям(ТЗ_Источник_типизированная,Новый Структура("НекийОбъект",Неопределено)).Выгрузить();
Показать
+
20. sanfoto 502 29.01.15 09:39 Сейчас в теме
(16) AllexSoft, (18) Allexe8.1,

пока нарыл, но это ЕЩЕ не все типы ((

	ЧтениеXML = Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(
	"<TypeDescription xmlns=""http://v8.1c.ru/8.1/data/core"">
	|      <TypeSet xmlns:cc=""http://v8.1c.ru/8.1/data/enterprise/current-config"">cc:AnyRef</TypeSet>
	|</TypeDescription>");
	ОписаниеТипов = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
+
21. AllexSoft 29.01.15 09:46 Сейчас в теме
(20) sanfoto, ну кстати да, осталось только добавить побольше пространств имен туда и все) вот тебе список, добавь в твой список и будет счастье)
http://v8.1c.ru/8.1/data-composition-system/appearance-template,
http://v8.1c.ru/8.1/data-composition-system/area-template,
http://v8.1c.ru/8.1/data-composition-system/common,
http://v8.1c.ru/8.1/data-composition-system/composition-template,
http://v8.1c.ru/8.1/data-composition-system/core,
http://v8.1c.ru/8.1/data-composition-system/details,
http://v8.1c.ru/8.1/data-composition-system/result,
http://v8.1c.ru/8.1/data-composition-system/schema,
http://v8.1c.ru/8.1/data-composition-system/settings,
http://v8.1c.ru/8.1/data/core,
http://v8.1c.ru/8.1/data/enterprise,
http://v8.1c.ru/8.1/data/enterprise/current-config,
http://v8.1c.ru/8.1/data/txtedt,
http://v8.1c.ru/8.1/data/ui,
http://v8.1c.ru/8.1/xdto,
http://v8.1c.ru/8.2/bsl,
http://v8.1c.ru/8.2/data/bsl,
http://v8.1c.ru/8.2/data/chart,
http://v8.1c.ru/8.2/data/data-analysis,
http://v8.1c.ru/8.2/data/formatted-document,
http://v8.1c.ru/8.2/data/geo,
http://v8.1c.ru/8.2/data/graphscheme,
http://v8.1c.ru/8.2/data/spreadsheet,
http://v8.1c.ru/8.2/managed-application/cmi,
http://v8.1c.ru/8.2/managed-application/core,
http://v8.1c.ru/8.2/managed-application/debuggerWebClient,
http://v8.1c.ru/8.2/managed-application/edbexception,
http://v8.1c.ru/8.2/managed-application/logform,
http://v8.1c.ru/8.2/managed-application/logform/layouter,
http://v8.1c.ru/8.2/managed-application/logformexception,
http://v8.1c.ru/8.2/managed-application/modules,
http://v8.1c.ru/8.2/managed-application/seancecontextexception,
http://v8.1c.ru/8.2/managed-application/user-settings,
http://v8.1c.ru/8.2/uobjects,
http://v8.1c.ru/8.2/virtual-resource-system
+
22. sanfoto 502 29.01.15 09:55 Сейчас в теме
(21) AllexSoft,
эээ думаю нифига... они и так есть в "http://v8.1c.ru/8.1/data/enterprise/current-config"
+
23. AllexSoft 29.01.15 09:58 Сейчас в теме
(22) sanfoto, с чего ты взял ?) это разные пространства имен и в них разные типы
ПС: http://v8.1c.ru/8.1/data/enterprise/current-config - в этом например описываются объекты текущей конфигурации.. но мы же говорим о типах, а они есть платформенные) к твоим метаданным никак не относящиеся, они вот в других пространствах имен..
+
24. sanfoto 502 29.01.15 10:06 Сейчас в теме
(23) AllexSoft,
ладно малехо по другому пути пошел - ДопТипы ))
	ЧтениеXML = Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(
	"<TypeDescription xmlns=""http://v8.1c.ru/8.1/data/core"">
	|      <TypeSet xmlns:cc=""http://v8.1c.ru/8.1/data/enterprise/current-config"">cc:AnyRef</TypeSet>
	|</TypeDescription>");
	
	ОписаниеТипов = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
	ДополнительныеТипы = Новый Массив();
	ДополнительныеТипы.Добавить(Тип("Строка"));
	ДополнительныеТипы.Добавить(Тип("Число"));
	ДополнительныеТипы.Добавить(Тип("Дата"));
	ДополнительныеТипы.Добавить(Тип("Булево"));
	ДополнительныеТипы.Добавить(Тип("СписокЗначений"));
	ДополнительныеТипы.Добавить(Тип("Массив"));
	ДополнительныеТипы.Добавить(Тип("ОписаниеТипов"));
	ДополнительныеТипы.Добавить(Тип("МоментВремени"));
	ДополнительныеТипы.Добавить(Тип("Граница"));
	ДополнительныеТипы.Добавить(Тип("СтандартнаяДатаНачала"));
	ДополнительныеТипы.Добавить(Тип("СтандартныйПериод"));
	ДополнительныеТипы.Добавить(Тип("ТаблицаЗначений"));
	ДополнительныеТипы.Добавить(Тип("ДеревоЗначений"));
	ДополнительныеТипы.Добавить(Тип("ВидДвиженияНакопления"));
	ДополнительныеТипы.Добавить(Тип("ВидДвиженияБухгалтерии"));
	ДополнительныеТипы.Добавить(Тип("ВидСчета"));
	ДополнительныеТипы.Добавить(Тип("Тип"));
	ДополнительныеТипы.Добавить(Тип("Null"));
	ДополнительныеТипы.Добавить(Тип("ПолеКомпоновкиДанных"));
 ///	ДополнительныеТипы.Добавить(Тип("Неопределено"));
	ДополнительныеТипы.Добавить(Тип("УникальныйИдентификатор"));
	КвалификаторыЧисла = Новый КвалификаторыЧисла; 
	ОписаниеТипов = Новый ОписаниеТипов(ОписаниеТипов, ДополнительныеТипы, , КвалификаторыЧисла);
Показать


проблема с
///	ДополнительныеТипы.Добавить(Тип("Неопределено"));


как бе должОн добавится но фигу кажит при Отборе потом(((


я ошибся там все норм с ТИП("НЕОПРЕДЕЛЕНО").... там нехватало Тип("ПеречислениеСсылка.СтавкиНДС")
+
25. AllexSoft 29.01.15 10:13 Сейчас в теме
(24) sanfoto, вместо этого мог бы просто добавить пространство имен
http://www.w3.org/2001/XMLSchema
там все примитивные типы содержатся, в том числе неопределено )
+
26. sanfoto 502 29.01.15 10:18 Сейчас в теме
(25) AllexSoft,
дык мне нетолько примитивные, а все типы нужны ))

пордон в прошлом сообщении я ошибся там все норм с ТИП("НЕОПРЕДЕЛЕНО").... там нехватало Тип("ПеречислениеСсылка.СтавкиНДС")

пс
или всетаки тип там был этот.. все завязываю временно с этой фигней.. уже мозг колом))

Вот так прописал...
		Массив.Добавить(Тип("ПеречислениеСсылка.СтавкиНДС"));
	//ОписаниеВсехТипов=ПолучитьОписаниеВсехТипов();
	ТЗ_Источник_Нетипизированная.Колонки.Добавить("НекийОбъект",Новый ОписаниеТипов(Массив) );



Заработало с НЕОПРЕДЕЛЕНО тоже
ОбщегоНазначения.ОтобратьСтрокиПоКритериям(ТЗ_Источник_Нетипизированная,Новый Структура("НекийОбъект",Неопределено)).Выгрузить()


нифига непонимаю чем
ОписаниеВсехТипов
неугодило(((
+
27. AllexSoft 29.01.15 11:31 Сейчас в теме
(26) sanfoto, а мне все таки нравится твой вариант из (20), я бы просто создал фабрику XDTO и экспортировал туда пакеты по пространствам имен типа такого:
фабрика = Новый ФабрикаXDTO;
фабрика.ЭкспортСхемыXML("http://v8.1c.ru/8.1/data/core");

в переменной фабрика появилась бы коллекция пакетов, а там в КорневыеСвойства и типы которые включены в пакет) таким образом простым циклом получаем массив наименований свойств в пакетах.. потом еще 1 небольшой цикл чтобы сформировать текст записи XML по аналогии с
 "<TypeDescription xmlns=""http://v8.1c.ru/8.1/data/core""> | <TypeSet xmlns:cc=""http://v8.1c.ru/8.1/data/enterprise/current-config"">cc:AnyRef</TypeSet> |</TypeDescription>");

тут ты добавляешь только тип AnyRef (ЛюбаяСсылка по 1С-ному) из пакета http://v8.1c.ru/8.1/data/enterprise/current-config
, тоже самое просто циклом сделать для всех пакетов из "фабрика" и вуаля! описание всех типов готово и универсально!
+
5. AllexSoft 27.01.15 11:38 Сейчас в теме
я о том чтоб весь отчет на СКД переписать, без построителя вообще
+
6. sanfoto 502 27.01.15 11:48 Сейчас в теме
(5) AllexSoft,
дело в том что это не отчет и вообще код исполняется НаСервере ((

суть в следующем есть ТаблицыЗначений их нужно фильтровать по сложным критериям...
+
28. artemka 09.02.15 16:37 Сейчас в теме
А в чем смысл нетипизированного поля?
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот