| 
    
            
         
         | 
    
  | 
Программно изменить структуру СКД | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        ac13    
     10.04.19 
            ✎
    12:59 
 | 
         
        Есть СхемаКомпоновкиДанных. Можно ли изменить её структуру при формировании отчета? 
 
        Например, есть запрос: "ВЫБРАТЬ
А мне надо, чтобы на месте РеализацияТоваровУслуг.Склад было: ВЫБОР
Как мне при определенных условиях программно изменить структуру СКД?  | 
|||
| 
    1
    
        ac13    
     10.04.19 
            ✎
    13:00 
 | 
         
        почему  
         - не работает?     | 
|||
| 
    2
    
        FIXXXL    
     10.04.19 
            ✎
    13:05 
 | 
||||
| 
    3
    
        catena    
     10.04.19 
            ✎
    13:06 
 | 
||||
| 
    4
    
        МихаилМ    
     10.04.19 
            ✎
    13:11 
 | 
||||
| 
    5
    
        toypaul    
     гуру 
    10.04.19 
            ✎
    14:20 
 | 
         
        (0) можно
 
        (3) в тонком клиенте не сработает  | 
|||
| 
    6
    
        toypaul    
     гуру 
    10.04.19 
            ✎
    14:21 
 | 
         
        пример из (2) сработает в тонком клиенте     
         | 
|||
| 
    7
    
        ac13    
     10.04.19 
            ✎
    15:19 
 | 
         
        не очень понял как это реализовать, в примерах немного не то, что мне нужно.
 
        У меня есть поле структуры. По умолчанию запрос выглядит так: "ВЫБРАТЬ | РеализацияТоваровУслуг.Склад |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | |СГРУППИРОВАТЬ ПО | РеализацияТоваровУслуг.Склад" А мне надо, чтобы при некоторых условиях запрос работал так: "ВЫБРАТЬ | (ВЫБОР | КОГДА РеализацияТоваровУслуг.Склад.Родитель.Родитель <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) | ТОГДА РеализацияТоваровУслуг.Склад.Родитель.Родитель | ИНАЧЕ ВЫБОР | КОГДА РеализацияТоваровУслуг.Склад.Родитель <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) | ТОГДА РеализацияТоваровУслуг.Склад.Родитель | ИНАЧЕ РеализацияТоваровУслуг.Склад | КОНЕЦ |КОНЕЦ) КАК Склад |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | |СГРУППИРОВАТЬ ПО | РеализацияТоваровУслуг.Склад"  | 
|||
| 
    8
    
        toypaul    
     гуру 
    10.04.19 
            ✎
    15:44 
 | 
         
        (7) а ты хотел чтобы разжевали и в рот положили что ли? в (2) все написано, надо только чуть чуть подумать самому     
         | 
|||
| 
    9
    
        FIXXXL    
     10.04.19 
            ✎
    16:59 
 | 
         
        (7) какое "поле структуры?
 
        как вариант, прямо в тексте запроса оборачиваешь свой Склад еще в один |ВЫБОР КОГДА &ПараметрВыбораСклада ТОГДА РеализацияТоваровУслуг.Склад ИНАЧЕ (ВЫБОР | КОГДА РеализацияТоваровУслуг.Склад.Родитель.Родитель <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) | ТОГДА РеализацияТоваровУслуг.Склад.Родитель.Родитель | ИНАЧЕ ВЫБОР | КОГДА РеализацияТоваровУслуг.Склад.Родитель <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) | ТОГДА РеализацияТоваровУслуг.Склад.Родитель | ИНАЧЕ РеализацияТоваровУслуг.Склад | КОНЕЦ |КОНЕЦ) КАК Склад  | 
|||
| 
    10
    
        ac13    
     10.04.19 
            ✎
    17:24 
 | 
         
        проблему решил заменой части текста запроса. теперь другая проблема
 
        есть типовой отчет, у него несколько сохраненных вариантов. Например - "Отчет по складу", сохранен вариант "Отчет по складу 1". Как ПриКомпоновкеРезультата понять какой вариант настроек выбрал пользователь, чтобы грузить соответствующий текст запроса?  | 
|||
| 
    11
    
        fisher    
     10.04.19 
            ✎
    17:43 
 | 
         
        (10) "КлючТекущегоВарианта" можно получить на клиенте и пробросить в ПриКомпоновке через ДополнительныеСвойства у настроек КомпоновщикаНастроек.
 
        Но тебе это не нужно. Ты же можешь просто завязать вариант получения склада на параметр запроса (параметр СКД) недоступный пользователю, который параметрически устанавливать в разные значения в настройках разных вариантов.  | 
|||
| 
    12
    
        fisher    
     10.04.19 
            ✎
    17:45 
 | 
         
        Если это чисто пользовательские варианты, тогда просто "отдать пользователю" параметр-селектор.     
         | 
|||
| 
    13
    
        fisher    
     10.04.19 
            ✎
    17:48 
 | 
         
        Собственно, в (9) уже предложили.     
         | 
|||
| 
    14
    
        ac13    
     10.04.19 
            ✎
    17:49 
 | 
         
        (11) типовую настройку СКД менять нельзя, нужно всё решить в коде     
         | 
|||
| 
    15
    
        ac13    
     10.04.19 
            ✎
    17:53 
 | 
         
        в самом начале ПриКомпоновкеРезультата нужно определить, что за вариант настроек открыт, а потом уже выполнять манипуляции с текстом запроса, выбором склада и т.д.     
         | 
|||
| 
    16
    
        fisher    
     10.04.19 
            ✎
    17:54 
 | 
         
        (14) Почему нельзя? По-моему, добавление нового параметра не должно сломать работу с уже сохраненными настройками.     
         | 
|||
| 
    17
    
        ac13    
     10.04.19 
            ✎
    17:56 
 | 
         
        (16) добавить то можно, но мне нельзя трогать типовую СКД, её нужно остаивть без изменений     
         | 
|||
| 
    18
    
        Мимохожий Однако    
     10.04.19 
            ✎
    19:19 
 | 
         
        (17) Сохрани варианты настроек в отдельные макеты, файлы или хранилища и забирай оттуда по условиям. У меня так реализовано формирование прайсов и отчетов, СКД которых хранятся в реквизитах справочника "Прайсы к отправке". Берешь новый элемент, загружаешь подготовленный в консоли СКД в реквизит справочника и перед рассылкой формируешь программно.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |