Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Объединение Выборки Результата Запроса

Объединение Выборки  Результата Запроса
Я
   Cоляпсус
 
29.05.18 - 10:39
Добрый день. Подскажите пожалуйста, как можно сделать.
Клиент захотел, чтобы в отчете цена бралась из одного места, сумма из другого. Отчёт уже готовый, работает. Но вот получилась засада, цена берётся не из одного и того же запроса. Она пристыковывается по ходу отчёта в ДанныеПечати.
Есть две выборки Результата Запроса в одной есть цена, но не правильная сумма, в другой правильные данные с суммой,но нет цены. Возможно ли как-то заменить данные первой на вторую, но чтобы цена осталась?
Не знаю как правильнее выразить
Заранее благодарен.
 
 
   RKx
 
1 - 29.05.18 - 10:43
(0) Сделай одну выборку с правильной ценой и суммой.
   МихаилМ
 
2 - 29.05.18 - 10:45
(0)
не объединение (union), а соединение (join)
   Cоляпсус
 
3 - 29.05.18 - 10:48
(2) Соглашусь, но ни разу не делал, затрудняюсь как это сделать
http://prntscr.com/jnxqjc
http://prntscr.com/jnxrue
вот их соединить
   Cоляпсус
 
4 - 29.05.18 - 10:49
(2) Объединение да, просто замещает 1-ю на 2-ю, а в первой нужная цена
   Cоляпсус
 
5 - 29.05.18 - 11:11
Так и не вычитал, как можно соединить две выборки
   Гипервизор
 
6 - 29.05.18 - 11:18
(5) Соединяйте не выборки, а запросы, результатом выполнения которых являются выборки.
   Cоляпсус
 
7 - 29.05.18 - 11:33
Ну уж то никто не подскажет как сделать?
   1Сергей
 
8 - 29.05.18 - 11:34
(7) не уж-то ты так и не покажешь запросы?
   Cоляпсус
 
9 - 29.05.18 - 12:36
(8) почему не покажу, показу, просто один из них большой
   Cоляпсус
 
10 - 29.05.18 - 12:39
на самом деле я нашёл выход объединения. Я данные с ценами выгрузил в ТЗ и передал в запрос как параметр, но тоже никак не справлюсь. Выдаёт ошибку о
http://prntscr.com/jnzaex
 
 Рекламное место пустует
   Cоляпсус
 
11 - 29.05.18 - 12:39
А запрос вот 

ВЫБРАТЬ
    ВыборкаЦен.Документ КАК Документ,
    ВыборкаЦен.Организация КАК Организация,
    ВыборкаЦен.Склад КАК Склад,
    ВыборкаЦен.Номенклатура КАК Номенклатура,
    ВыборкаЦен.ТоварКод КАК ТоварКод,
    ВыборкаЦен.ТоварНаименование КАК ТоварНаименование,
    ВыборкаЦен.Цена КАК Цена,
    ВыборкаЦен.Сумма КАК Сумма
ПОМЕСТИТЬ ВТВыборкаЦены
ИЗ
    &ВыборкаЦен КАК ВыборкаЦен
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ОтпускТоваровВОтделениеТовары.Ссылка КАК Ссылка,
    ОтпускТоваровВОтделениеТовары.НомерСтроки КАК НомерСтроки,
    ВЫРАЗИТЬ(ОтпускТоваровВОтделениеТовары.Номенклатура.Наименование КАК СТРОКА(150)) КАК Номенклатура,
    ОтпускТоваровВОтделениеТовары.СерияНоменклатуры КАК СерияНоменклатуры,
    ОтпускТоваровВОтделениеТовары.Партия КАК Партия,
    ОтпускТоваровВОтделениеТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ОтпускТоваровВОтделениеТовары.Коэффициент КАК Коэффициент,
    ОтпускТоваровВОтделениеТовары.КоличествоВЕдиницахИзмерения КАК КоличествоВЕдиницахИзмерения,
    ОтпускТоваровВОтделениеТовары.МестоХранения КАК МестоХранения,
    ОтпускТоваровВОтделениеТовары.ИсточникФинансирования КАК ИсточникФинансирования,
    ОтпускТоваровВОтделениеТовары.Количество КАК Количество,
    ОтпускТоваровВОтделениеТовары.КодСтроки КАК КодСтроки,
    ОтпускТоваровВОтделениеТовары.НоменклатураЗаказа КАК НоменклатураЗаказа,
    ОтпускТоваровВОтделениеТовары.ЕдиницаИзмеренияЗаказа КАК ЕдиницаИзмеренияЗаказа,
    ОтпускТоваровВОтделениеТовары.КоэффициентЕдиницыЗаказа КАК КоэффициентЕдиницыЗаказа,
    ОтпускТоваровВОтделениеТовары.КоличествоВЕдиницахЗаказа КАК КоличествоВЕдиницахЗаказа,
    ОтпускТоваровВОтделениеТовары.Штрихкод КАК Штрихкод,
    ОтпускТоваровВОтделениеТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
    ОтпускТоваровВОтделениеТовары.СтатусУказанияСерийОтправитель КАК СтатусУказанияСерийОтправитель,
    ОтпускТоваровВОтделениеТовары.СтатусУказанияСерийПолучатель КАК СтатусУказанияСерийПолучатель,
    ОтпускТоваровВОтделениеТовары.СтатусУказанияПартий КАК СтатусУказанияПартий,
    ОтпускТоваровВОтделениеТовары.СтатусУказанияПартийОтправитель КАК СтатусУказанияПартийОтправитель,
    ОтпускТоваровВОтделениеТовары.СтатусУказанияПартийПолучатель КАК СтатусУказанияПартийПолучатель,
    ОтпускТоваровВОтделениеТовары.СтатьяРасходов КАК СтатьяРасходов,
    ОтпускТоваровВОтделениеТовары.АналитикаРасходов КАК АналитикаРасходов
ПОМЕСТИТЬ ВТТОвары
ИЗ
    Документ.ОтпускТоваровВОтделение.Товары КАК ОтпускТоваровВОтделениеТовары
ГДЕ
    ОтпускТоваровВОтделениеТовары.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////////////////////////

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

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВТТОвары.Ссылка КАК Ссылка,
    ВТТОвары.НомерСтроки КАК НомерСтроки,
    ВТТОвары.Номенклатура КАК Номенклатура,
    ВТРегНакопления.АналитикаУчетаНоменклатурыНоменклатура КАК АналитикаУчетаНоменклатурыНоменклатура,
    ЕСТЬNULL(ВТРегНакопления.Стоимость, 0) КАК Сумма,
    ВТТОвары.СерияНоменклатуры КАК СерияНоменклатуры,
    ВТТОвары.Партия КАК Партия,
    ВТТОвары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ВТТОвары.Коэффициент КАК Коэффициент,
    ВТТОвары.КоличествоВЕдиницахИзмерения КАК КоличествоВЕдиницахИзмерения,
    ВТТОвары.МестоХранения КАК МестоХранения,
    ВТТОвары.ИсточникФинансирования КАК ИсточникФинансирования,
    ВТТОвары.Количество КАК Количество,
    ВТТОвары.КодСтроки КАК КодСтроки,
    ВТТОвары.НоменклатураЗаказа КАК НоменклатураЗаказа,
    ВТТОвары.ЕдиницаИзмеренияЗаказа КАК ЕдиницаИзмеренияЗаказа,
    ВТТОвары.КоэффициентЕдиницыЗаказа КАК КоэффициентЕдиницыЗаказа,
    ВТТОвары.КоличествоВЕдиницахЗаказа КАК КоличествоВЕдиницахЗаказа,
    ВТТОвары.Штрихкод КАК Штрихкод,
    ВТТОвары.СтатусУказанияСерий КАК СтатусУказанияСерий,
    ВТТОвары.СтатусУказанияСерийОтправитель КАК СтатусУказанияСерийОтправитель,
    ВТТОвары.СтатусУказанияСерийПолучатель КАК СтатусУказанияСерийПолучатель,
    ВТТОвары.СтатусУказанияПартий КАК СтатусУказанияПартий,
    ВТТОвары.СтатусУказанияПартийОтправитель КАК СтатусУказанияПартийОтправитель,
    ВТТОвары.СтатусУказанияПартийПолучатель КАК СтатусУказанияПартийПолучатель,
    ВТТОвары.СтатьяРасходов КАК СтатьяРасходов,
    ВТТОвары.АналитикаРасходов КАК АналитикаРасходов,
    ВТРегНакопления.Регистратор КАК Регистратор,
    ВТРегНакопления.ВидДвижения КАК ВидДвижения,
    ВТРегНакопления.Количество КАК Количество1,
    ВТРегНакопления.РасчетСебестоимости КАК РасчетСебестоимости,
    ВТТОвары.ЕдиницаИзмерения.КодОКЕИ КАК КодПоОКЕИ,
    ВТТОвары.КоличествоВЕдиницахИзмерения КАК Затребовано,
    ВТТОвары.КоличествоВЕдиницахИзмерения КАК Отпущено,
    ВТВыборкаЦен.Цена КАК Цена
ИЗ
    ВТТОвары КАК ВТТОвары
        ЛЕВОЕ СОЕДИНЕНИЕ ВТРегНакопления КАК ВТРегНакопления
        ПО ВТТОвары.Номенклатура = ВТРегНакопления.АналитикаУчетаНоменклатурыНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ ВТВыборкаЦены КАК ВТВыборкаЦен
        ПО ВТТОвары.Номенклатура = ВТВыборкаЦен.Номенклатура
   Cоляпсус
 
12 - 29.05.18 - 12:42
А вообще ещё ругается на последнюю строчку о: полях неограниченной длины и несовместимых типах, хотя ВЫРАЗИТЬ я сделал
   Любопытная
 
13 - 29.05.18 - 12:46
Что это?
   hhhh
 
14 - 29.05.18 - 12:46
(12) ну походу тз у тебя левая. Без типов
   mehfk
 
15 - 29.05.18 - 12:46
Какой тип ?
ВТВыборкаЦен.Номенклатура
   Гипервизор
 
16 - 29.05.18 - 12:48
(12) ВТТОвары.Номенклатура - строка, а ВТРегНакопления.АналитикаУчетаНоменклатурыНоменклатура - нет.
   hhhh
 
17 - 29.05.18 - 13:12
(12) опять ты упорно пишешь эту хрень
ПО ВТТОвары.Номенклатура = ВТРегНакопления.АналитикаУчетаНоменклатурыНоменклатура

ну ведь бред ведь, согласись. Не может Номенклатура быть равна Аналитике. Это разные справочники.
   hhhh
 
18 - 29.05.18 - 13:15
(17) + а нет блин, извиняюсь. Написано АналитикаУчетаНоменклатурыНоменклатура
   Cоляпсус
 
19 - 29.05.18 - 15:00
Со строками вроде справился. не могу пока точно проверить.Другой вопрос: Внешнюю временную таблицу запрос не видит (пустая таблица) http://prntscr.com/jo16ux
Необходимо каждому полю описать тип? Как писали (14)  И тогда они станут видны? Одних имён колонок не достаточно?
   Гипервизор
 
20 - 29.05.18 - 15:03
(19) Консоль не отображает содержимое ВТ <> ВТ пустая
   Tateossian
 
21 - 29.05.18 - 15:04
(0) Добавить результирующий СКД в отчет, а вместо выборок - результат запроса и там их программно соединять.
   Cоляпсус
 
22 - 29.05.18 - 15:06
(21) Отчет не на СКД построен
   Cоляпсус
 
23 - 29.05.18 - 15:07
(20) ? не совсем понял
   Tateossian
 
24 - 29.05.18 - 15:09
(22) Ну и что, какая разница. А ты добавь программно СКД. Я вообще все интересные штуки делаю на ней. У меня есть пару БСПшных и типовых функций, в три строчки - готовая СКД.
   Cоляпсус
 
25 - 29.05.18 - 15:17
(24) Спасибо за совет. С СКД я конечно почти разобрался, но честно сознаюсь, так ещё делать не умею. Всё вот с задачами разбираю для себя новые и новые моменты.)
   Cоляпсус
 
26 - 29.05.18 - 15:41
(24) Не подскажешь, как делаешь? Может проще мне сразу научится, а то топчусь на одном месте
   Tateossian
 
27 - 29.05.18 - 15:57
(26) Вот, нашел такой пример: это подмена запроса к базе данных к объету таблица значений, откуда доступны все ссылочные источники, формата Реквизит.Ссылка.*

Соединение идет по каждой строке табличной части с шапкой. А весь псевдозапрос сделан через пользовательские поля. Ну и реализован кейс ВЫБОР КОГДА ТОГДА
    Если Не МодульДоработокКлиентСерверПереопределяемый.ПолучитьФлагВолатильности(СтруктураШапкиДокумента) Тогда
       Возврат;
    КонецЕсли;
    
    ТабличнаяЧасть = СтруктураШапкиДокумента["ТаблицаДокумента"];
    
    СхемаЗапроса = Новый СхемаЗапроса;
    СхемаЗапроса.УстановитьТекстЗапроса(Запрос.Текст);

    ПараметрыЗапроса = СхемаЗапроса.НайтиПараметры();

    КорневойОбъект = СхемаЗапроса.ПакетЗапросов[0].Операторы[0];

    ДоступныеПоля = КорневойОбъект.Источники[0].Источник.ДоступныеПоля;    
    КолонкиПЗ = СхемаЗапроса.ПакетЗапросов[0].Колонки;

    ТабличнаяЧастьИсточник = КорневойОбъект.Источники.ПолучитьКорневыеИсточники()[0];
    Псевдоним = ТабличнаяЧастьИсточник.Источник.Псевдоним;
        
    СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;
    ИсточникДанных = ТиповыеОтчеты.ДобавитьЛокальныйИсточникДанных(СхемаКомпоновкиДанных);

    НаборыДанных = СхемаКомпоновкиДанных.НаборыДанных;
    НаборОбъект = НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
    НаборОбъект.Имя = "ТабличнаяЧасть";
    НаборОбъект.ИмяОбъекта = "Основной";
    НаборОбъект.ИсточникДанных = ИсточникДанных.Имя;
        
    НаборОбъектШапка = НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
    НаборОбъектШапка.Имя = "Шапка";
    НаборОбъектШапка.ИмяОбъекта = "Дополнительный";
    НаборОбъектШапка.ИсточникДанных = ИсточникДанных.Имя;

    ПолеШ = НаборОбъектШапка.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
    ПолеШ.Поле = "Шапка";
    ПолеШ.ТипЗначения = Новый ОписаниеТипов(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ТипЗнч(СтруктураШапкиДокумента.Ссылка)));
    ПолеШ.ПутьКДанным = Псевдоним + "." + "Ссылка";
        
    Для Каждого Мета Из СтруктураШапкиДокумента.Ссылка.Метаданные().Реквизиты Цикл
            
        ПолеН = НаборОбъектШапка.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
        ПолеН.Поле = Мета.Имя;
                
        ПолеН.ТипЗначения = Мета.Тип;
        ПолеН.ПутьКДанным = ПолеШ.ПутьКДанным + "." + Мета.Имя;
                
    КонецЦикла;

    Связь = СхемаКомпоновкиДанных.СвязиНаборовДанных.Добавить();
    Связь.НаборДанныхИсточник = "ТабличнаяЧасть";
    Связь.НаборДанныхПриемник = "Шапка";
    Связь.ВыражениеИсточник = "ИСТИНА";
    Связь.ВыражениеПриемник = "ИСТИНА";
    Связь.Обязательная = ИСТИНА;
        
    КолонкиМассивом = Новый Массив;

    Для Каждого Колонка Из ДоступныеПоля Цикл
        
        ПолеН = НаборОбъект.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
        ПолеН.Поле = Колонка.Имя;

        КолонкиМассивом.Добавить(Псевдоним + "." + Колонка.Имя);

        ПолеН.ТипЗначения = Новый ОписаниеТипов(Колонка.ТипЗначения,,"Null");
        ПолеН.ПутьКДанным = Псевдоним + "." + Колонка.Имя;
        
    КонецЦикла;
    
    Для Каждого ПараметрЗапроса Из Запрос.Параметры Цикл
        Если ПараметрЗапроса.Ключ = "Ссылка" Тогда
            Продолжить;
        КонецЕсли;

        ПараметрСКД = СхемаКомпоновкиДанных.Параметры.Добавить();
        ПараметрСКД.Имя = ПараметрЗапроса.Ключ;
        ПараметрСКД.ТипЗначения = Новый ОписаниеТипов(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ТипЗнч(ПараметрЗапроса.Значение)));
        ПараметрСКД.Заголовок = "";
        ПараметрСКД.Выражение = "&" + ПараметрЗапроса.Ключ;    

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

    КонецЦикла;

    СоответствиеППВыбираемым = Новый Соответствие;
    МассивИдентификаторов = Новый Массив;

    Для Каждого ВыбираемоеПоле Из КолонкиПЗ Цикл

        ПП = Компоновщик.Настройки.ПользовательскиеПоля.Элементы.Добавить(Тип("ПользовательскоеПолеВыражениеКомпоновкиДанных"));
        ИмяПоля = ВыбираемоеПоле.Псевдоним;

        ПП.Заголовок = ИмяПоля;

        РазобранноеВыражение = Строка(ВыбираемоеПоле.Поля[0]);

        Если Найти(ВРЕГ(РазобранноеВыражение), "ВЫБОР") И Найти(ВРЕГ(РазобранноеВыражение), "ССЫЛКА") Тогда
            
            Корень = "(([а-я.]*) *ССЫЛКА *([а-я]+.[а-я]*))";

            RegExp = Новый COMОбъект("VBScript.RegExp");
            RegExp.Multiline = Истина;
            RegExp.Global = Истина;
            RegExp.IgnoreCase = Истина;
            RegExp.Pattern = Корень;
            Вхождения = RegExp.Execute(РазобранноеВыражение);
            
            Для каждого Вхождение Из Вхождения Цикл
                Начало = Вхождение.FirstIndex;
                Длина = Вхождение.Length;
                Значение = Вхождение.Value;
                КореньЗначение = Вхождение.SubMatches(0);
                Корень1Значение = Вхождение.SubMatches(1);
                Корень2Значение = Вхождение.SubMatches(2); 
            КонецЦикла;
            
            РазобранноеВыражение = RegExp.Replace(РазобранноеВыражение, "ВЫРАЗИТЬ($2, ""$3"") ЕСТЬ НЕ NULL");
            
        КонецЕсли;

        ПП.УстановитьВыражения(РазобранноеВыражение, "");

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

    КонецЦикла;
        
    Структура = Компоновщик;

    Для Инд = 0 По КолонкиМассивом.ВГраница() Цикл
        
        Структура = ТиповыеОтчеты.ДобавитьГруппировку(Структура);
        Прервать;    
    КонецЦикла;

    //Для Инд = 1 По КолонкиМассивом.ВГраница() Цикл


    //КонецЦикла;


    ПользПоля = Компоновщик.Настройки.Выбор.ДоступныеПоляВыбора.Элементы.Найти("ПОЛЬЗОВАТЕЛЬСКИЕПОЛЯ");

    Для Каждого ПользПоле Из ПользПоля.Элементы Цикл
            
        ВыбранноеПоле = Компоновщик.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
        ВыбранноеПоле.Поле = ПользПоле.Поле;

        ВыбранноеПоле.Заголовок = ПользПоле.Заголовок;

    КонецЦикла;

    Компоновщик.Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("ГоризонтальноеРасположениеОбщихИтогов", РасположениеИтоговКомпоновкиДанных.Нет);
    Компоновщик.Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("ВертикальноеРасположениеОбщихИтогов",   РасположениеИтоговКомпоновкиДанных.Нет);

    Для Каждого ПолеПорядка Из СхемаЗапроса.ПакетЗапросов[0].Порядок Цикл

        ПолеПорядкаКомп = Компоновщик.Настройки.Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
        ПолеПорядкаКомп.Поле = Новый ПолеКомпоновкиДанных(Строка(ПолеПорядка.Элемент));
        ТипУпорядочивания = ПолучитьПолноеИмяПредопределенногоЗначения(ПолеПорядка.Направление);

        Напр = СтрЗаменить(ТипУпорядочивания, "НаправлениеПорядкаСхемыЗапроса.", "");

        НапрПр = ?(Найти(Напр, "Возр"), "Возр", ?(Найти(Напр, "Убыв"), "Убыв", "Возр"));        

        ТипУпорядочивКомп = ПредопределенноеЗначение("НаправлениеСортировкиКомпоновкиДанных." + НапрПр);

        ПолеПорядкаКомп.ТипУпорядочивания = ТипУпорядочивКомп;

    КонецЦикла;

    ВнешниеНаборыДанных = Новый Структура("Основной", ТабличнаяЧасть);

    ТаблицаШапки = Новый ТаблицаЗначений;
    Для Каждого Реквизит Из СтруктураШапкиДокумента.Ссылка.Метаданные().Реквизиты Цикл
        ТаблицаШапки.Колонки.Добавить(Реквизит.Имя, Реквизит.Тип);    
    КонецЦикла;

    НСтрока = ТаблицаШапки.Добавить();
    ЗаполнитьЗначенияСвойств(НСтрока, СтруктураШапкиДокумента);

    ВнешниеНаборыДанных.Вставить("Дополнительный", ТаблицаШапки);

    Результат = Новый ТаблицаЗначений;

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

    Для ИсхСтрока=1 По Результат.Количество() Цикл
        ТаблицаЗначенийВспомогательная.Добавить();
    КонецЦикла;

    ТекстЗапросаНовый = "ВЫБРАТЬ" + Символы.ПС;

    Для Ы=0 По МассивИдентификаторов.ВГраница() Цикл
        
        К = МассивИдентификаторов[Ы];
        
        ПолеТек = Компоновщик.Настройки.ПользовательскиеПоля.ПолучитьОбъектПоИдентификатору(К);        
        ПонятноеПоле = СоответствиеППВыбираемым.Получить(ПолеТек);
        
        ТипПроверяемый =  ПонятноеПоле.ТипЗначения;
        Если ТипПроверяемый = Новый ОписаниеТипов() Тогда
            ТипПроверяемый = Новый ОписаниеТипов(МодульДоработокСерверКэшируемый.ТипВсеСсылкиКонфигурации(), "Число,Строка,Булево,Дата", ,
                    Новый КвалификаторыЧисла(15,3,ДопустимыйЗнак.Любой), Новый КвалификаторыСтроки(150));
        КонецЕсли;
        
        ТаблицаЗначенийВспомогательная.Колонки.Добавить(ПонятноеПоле.Псевдоним, ТипПроверяемый);
        
        КолонкаИсходная = Результат.ВыгрузитьКолонку(СтрЗаменить(ПолеТек.ПутьКДанным, ".", ""));
        
        Зпт = ?(Ы=МассивИдентификаторов.ВГраница(), "", ",");
        
        ТекстЗапросаНовый = ТекстЗапросаНовый + " ВТ." + ПолеТек.Заголовок + Зпт + Символы.ПС;
        
        ТаблицаЗначенийВспомогательная.ЗагрузитьКолонку(КолонкаИсходная, ПолеТек.Заголовок);
        
    КонецЦикла;

    Шапка = ТекстЗапросаНовый;

    ТекстЗапросаНовый = Шапка + "ПОМЕСТИТЬ " + СхемаЗапроса.ПакетЗапросов[0].ТаблицаДляПомещения + Символы.ПС + "ИЗ" + Символы.ПС + 
        " &ТаблицаРезультата КАК ВТ;";
    
    Запрос.Текст = "УНИЧТОЖИТЬ ТаблицаДокумента";
    Запрос.Выполнить();

    Запрос.Текст = ТекстЗапросаНовый;

    Запрос.УстановитьПараметр("ТаблицаРезультата", ТаблицаЗначенийВспомогательная);    

    Запрос.Выполнить();


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует