Имя: Пароль:
1C
 
Конструкция КОГДА
0 ZolotarevAA
 
11.10.05
10:31
Задача: есть несколько колонок таблицы значений, в том числе два из них - типа Справочник.Ссылка + типа Булево. У меня есть некий список значений указанного справочника, фактически определяющий Истина для второй колонки Булево.

Таблицу значений я получаю как результат запроса. Естественно, хочется в запросе определить все поля из ТЗ.

Пытаюсь определить колонку Булево конструкцией:

|    ВЫБОР
|        КОГДА ДанныеДокументов.Подразделение В (&ПерераспределяемыеПодразделенияСЗ)
|            ТОГДА ИСТИНА
|        ИНАЧЕ ЛОЖЬ
|    КОНЕЦ КАК Флажок,

Проблема возникает, когда в списке значений более одного элемента:

Ошибка при вызове метода контекста (Выполнить): {(4, 40)}: Неверные параметры
КОГДА ДанныеДокументов.Подразделение <<?>>В (&ПерераспределяемыеПодразделенияСЗ)
   ТЗ = Запрос.Выполнить().Выгрузить();

Может быть, есть другое решение задачи?
1 ZolotarevAA
 
11.10.05
11:06
Up
2 Широкий
 
11.10.05
11:09
В ИЕРАРХИИ?
3 ZolotarevAA
 
11.10.05
11:12
(2) Почти и не сомневался, но все же проверил: ошибка в точности такая же...
и с массивом тоже.
4 ymv
 
11.10.05
11:22
покажи весь запрос
5 ZolotarevAA
 
11.10.05
11:25
ВЫБРАТЬ
   ЕСТЬNULL(ОсновнойОстатки.Субконто2, ДанныеДокументов.Подразделение) КАК Подразделение,
   ВЫБОР
       КОГДА ДанныеДокументов.Подразделение В ИЕРАРХИИ (&ПерераспределяемыеПодразделенияСЗ)
           ТОГДА ИСТИНА
       ИНАЧЕ ЛОЖЬ
   КОНЕЦ КАК ПодразделениеУчаствуетВперераспределенииЗатрат,
   ОсновнойОстатки.СуммаОстаток КАК СуммаЗатратПрямых,
   ОсновнойОстатки.СуммаОстаток КАК СуммаЗатратВсего,
   ДанныеДокументов.Количество КАК Количество,
   ВЫБОР
       КОГДА ДанныеДокументов.Количество = 0
           ТОГДА 0
       ИНАЧЕ ОсновнойОстатки.СуммаОстаток / ДанныеДокументов.Количество
   КОНЕЦ КАК Тариф
ИЗ
   (ВЫБРАТЬ
       ЦехОтчетУчасткаВспомогательногоПроизводства.Подразделение КАК Подразделение,
       СУММА(ЦехОтчетУчасткаВспомогательногоПроизводстваОсновная.Количество) КАК Количество
   ИЗ
       Документ.ЦехОтчетУчасткаВспомогательногоПроизводства КАК ЦехОтчетУчасткаВспомогательногоПроизводства
           ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЦехОтчетУчасткаВспомогательногоПроизводства.Основная КАК ЦехОтчетУчасткаВспомогательногоПроизводстваОсновная
           ПО ЦехОтчетУчасткаВспомогательногоПроизводства.Ссылка = ЦехОтчетУчасткаВспомогательногоПроизводстваОсновная.Ссылка
   ГДЕ
       ЦехОтчетУчасткаВспомогательногоПроизводства.Подразделение В(&ПодразделенияСЗ)
   
   СГРУППИРОВАТЬ ПО
       ЦехОтчетУчасткаВспомогательногоПроизводства.Подразделение) КАК ДанныеДокументов
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Основной.Остатки(
       &КонДата,
       Счет В ИЕРАРХИИ (&Счет),
       ,
       Субконто2 В (&ПодразделенияСЗ)
           И РазделительУчета = &РазделительУчета) КАК ОсновнойОстатки
       ПО ОсновнойОстатки.Субконто2 = ДанныеДокументов.Подразделение


   Запрос.УстановитьПараметр("КонДата", КонДата);
   Запрос.УстановитьПараметр("РазделительУчета", РазделительУчета);
   Запрос.УстановитьПараметр("ПодразделенияСЗ", ВсеПодразделенияСЗ);
   
   Запрос.УстановитьПараметр("ПерераспределяемыеПодразделенияСЗ", ПерераспределяемыеПодразделенияСЗ);
   Запрос.УстановитьПараметр("ВидСубконтоПодразделения", ПланыВидовХарактеристик.ВидыСубконто.Подразделения);
   Запрос.УстановитьПараметр("Счет", ПланыСчетов.Основной.ВспомогательныеПроизводства);
6 ymv
 
11.10.05
11:35
В общем.. фиг знает:) Может у тебя сюда

"ДанныеДокументов.Подразделение <<?>>В (&ПерераспределяемыеПодразделенияСЗ)"

NULL попадает... раз уж там где то стоят проверки на это?
7 ZolotarevAA
 
11.10.05
11:43
(6) Проблема не с NULL.

Может кто-то из гуру запросов подскажет идею или хотя бы направление.

Не, я конечно и "по кривому " могу сделать - две минуты, но хочется изящности.

P.S. Если бы вообще не работало, а то ведь для одного значения в списке все проходит. Дыра в платформе?
8 Shurjk
 
11.10.05
12:04
сколько я недавно искал ответ на этот вопрос, так и не нашел, неужели и тут никто не знает
9 ZolotarevAA
 
11.10.05
13:10
Последний Up
10 ZolotarevAA
 
11.10.05
13:46
Проблема...была в невнимательности.
Конструкция на самом деле работает.
11 Shurjk
 
11.10.05
13:49
И как она работает? И в чем невнимательность выражалась?
12 ZolotarevAA
 
11.10.05
13:55
(11) Скажем так, список значений содержал не совсем то что нужно, конкретнее, в

ДанныеДокументов.Подразделение В (&ПерераспределяемыеПодразделенияСЗ)

слева и справа были значения разных типов.

А работает...именно так, как и хотелось.