|   |   | 
| 
 | модель схемы запроса | ☑ | ||
|---|---|---|---|---|
| 0
    
        first_may 16.12.21✎ 22:15 | 
        Добрый вечер.
 В инете есть примеры по объектной модели схемы запроса. Например //Создание схемы запроса СхемаЗапроса = Новый СхемаЗапроса; ЗапросВыбораИзИБ = СхемаЗапроса.ПакетЗапросов[0]; //Установка свойств запроса ЗапросВыбораИзИБ.ТаблицаДляПомещения = "ТаблицаОбороты"; ЗапросВыбораИзИБ.ВыбиратьРазрешенные = Истина; //Добавляем операторы выбора первого запроса пакета ОператорВыбораЗакупок = ЗапросВыбораИзИБ.Операторы[0]; ИсточникНоменклатура = ОператорВыбораЗакупок.Источники.Добавить("Справочник.Номенклатура","Товары"); //Добавляем запрос выбора из регистра закупок ИсточникЗакупки = ОператорВыбораЗакупок.Источники.Добавить("РегистрНакопления.Закупки.Обороты","Закупки"); ИсточникЗакупки.Источник.Параметры[0].Выражение = Новый ВыражениеСхемыЗапроса("&Начало") ; ИсточникЗакупки.Источник.Параметры[1].Выражение = Новый ВыражениеСхемыЗапроса("&Окончание") ; ИсточникЗакупки.Источник.Параметры[2].Выражение = Новый ВыражениеСхемыЗапроса("Месяц") ; //Меняем тип соединения ИсточникЗакупки.Соединения[0].ТипСоединения = ТипСоединенияСхемыЗапроса.ПравоеВнешнее; Повторяю все как тут, но у меня после подобной строки ИсточникЗакупки = ОператорВыбораЗакупок.Источники.Добавить("РегистрНакопления.Закупки.Обороты","Закупки"); в подобной ИсточникЗакупки.Соединения[0].ТипСоединения = ТипСоединенияСхемыЗапроса.ПравоеВнешнее; выдается ошибка {<Неизвестный модуль>(1)}: Индекс находится за границами массива так как соединения нет. Если пишу ИсточникЗакупки.Соединения.Добавить(.. и смотрю запрос, то в нем получается соединение ПРАВОЕ и задвоение таблиц. Подскажите пожалуйста, как правильно добавить левое соединение? | |||
| 1
    
        first_may 16.12.21✎ 22:22 | 
        Если смотреть в отладчике СхемаЗапроса.ПолучитьТекстЗапроса(),
 то после строки ИсточникЗакупки = ОператорВыбораЗакупок.Источники.Добавить("РегистрНакопления.Закупки.Обороты","Закупки"); в запросе появляется текст РегистрНакопления.Закупки.Обороты КАК Закупки без какого либо соединения. Что надо написать, что бы указать что это левое соединение? | |||
| 2
    
        acht 16.12.21✎ 22:53 | 
        Добавить, найти добавленное, указать ему тип     | |||
| 3
    
        first_may 16.12.21✎ 22:55 | 
        (2) имеется ввиду соединение?     | |||
| 4
    
        acht 16.12.21✎ 22:56 | 
        (3) Имеется в виду соединение в коллекции соединений     | |||
| 5
    
        first_may 16.12.21✎ 22:58 | 
        (4) пример можно?     | |||
| 6
    
        acht 16.12.21✎ 23:05 | 
        (5) Неа. Мне больше лень чем тебе.     | |||
| 7
    
        first_may 16.12.21✎ 23:09 | 
        (6) мне не лень, я не пойму где это..
 вот строка ИсточникЗакупки = ОператорВыбораЗакупок.Источники.Добавить("РегистрНакопления.Закупки.Обороты","Закупки"); после нее надо искать? | |||
| 8
    
        first_may 16.12.21✎ 23:22 | 
        Именно в ИсточникЗакупки ?     | |||
| 9
    
        acht 16.12.21✎ 23:24 | 
        (7) Нет. Надо добавить свое соединение в коллекцию типа ИсточникЗакупки.Соединения.Добавить(...) потом найти добавленное через индекс или через ИсточникЗакупки.Соединения.НайтиПоПсевдониму и найденному установить ТипСоединения     | |||
| 10
    
        first_may 16.12.21✎ 23:38 | 
        (9) хорошо.. у меня так
 Запрос = СхемаЗапроса.ПакетЗапросов[0]; Оператор = Запрос.Операторы[0]; ЗначенияДополнительныхСвойств = Оператор.Источники.Добавить("РегистрСведений.ЗначенияДополнительныхСвойств", "ЗначенияДополнительныхСвойств"); ЗначенияДополнительныхСвойств.Соединения[0].ТипСоединения = ТипСоединенияСхемыЗапроса.ЛевоеВнешнее; - и вот тут ошибка, так как нет соединения.. получается что надо дописать ЗначенияДополнительныхСвойств.Соединения.Добавить("ЗначенияДополнительныхСвойств", а тут с чем и как соединяюсь) | |||
| 11
    
        first_may 16.12.21✎ 23:44 | 
        если так пишу, то в тексте запроса получается
 ... РегистрСведений.ЗначенияДополнительныхСвойств КАК ЗначенияДополнительныхСвойств - это после первой строки ПРАВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияДополнительныхСвойств КАК ЗначенияДополнительныхСвойств ПО (РеестрДокументов.Ссылка = ЗначенияДополнительныхСвойств.Документ) - это после второй строки | |||
| 12
    
        exwill 17.12.21✎ 00:30 | 
        (0) Все соединения должны быть у первого источника. Не спрашивай - почему. Просто работай только с первым источником
 ИСТОЧНИКНОМЕНКЛАТУРА.Соединения[0].ТипСоединения = | |||
| 13
    
        first_may 17.12.21✎ 00:35 | 
        (9) спасибо.. сообразил..     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |