Имя: Пароль:
1C
Юмор
v7: Двойной клик на названии документа
Ø (длинная ветка 15.03.2013 14:57)
, ,
0 bananan
 
27.02.13
18:55
Запрос такой:
|SELECT
   |    DocNo,
   |    Жур.IDDOC as [Док $Документ],
   |    Жур.IDDOCDEF as Док_вид
   |FROM _1SJourn as Жур (nolock)
   |    WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~
   |    AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН)
   |";          
данные которые он возвращает попадают в ТаблицаЗначений, в Таблицу беру данные из ТаблицыЗначений, так вот
курсор мыши "крест" ну и двойной клик на документе не открывате документ.
По поводу таблицы код тако:
   ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
   ТЗ.ВыбратьСтроки();
   Вопрос(ТЗ.КоличествоСтрок());
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица1");
   Таб.ВывестиСекцию("Шапка");
   Таб.Опции(0,0,Таб.ВысотаТаблицы());
   
   Пока(ТЗ.ПолучитьСтроку()=1) Цикл
       Таб.ВывестиСекцию("Документ");
   КонецЦикла;
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);        ;
   Таб.Показать("Журнал-документов: ("+ПериодСтр(ДатаС, ДатаПо)+")", );
Чего нехватает в этом коде, чтобы по двойному клику документ открывался?:
903 bananan
 
11.03.13
14:22
а Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); - здесь видимо нужно получить атрибут Цена1..Цена9 из документа...
Что-то я опять запутался...
904 bananan
 
11.03.13
14:26
(902) Может быть, точно - не помню,
У меня такой подход к задаче, я вот уже 7-й год на фрииласне побрабатываю, правда, в это году - ниодного задания на фрилансе не брал.
Так вот мнре конфортно работается когда у меня есть две-три задачи разного плана... С одной задачей зашел в тупик; - переклюбчился на другую, потом на третьтю, и т.д.
Вполне возможно что такой подход к работе НЕПРАВИЛЬНЫЙ но он мне помагает...
Вот с той поры как я работаю на этой фирме с 1С (а 1С мне всегда почему-то туго давалось) у меня паралельно нзадача написать программу на Делфи. С програмоой на делфи - она уже на 99% процентов готова, (надо чуть подправить выравнивание граф. объектов при печати на принтер и сделать сохранение ини-файла "Сохранить КАк"..
905 bananan
 
11.03.13
14:32
+ А вообще почти все обо мне вы можете посмотрерть на моей страничке в Одноклассниках (Мыкола Баланов)- милости прошу...
906 viktor_vv
 
11.03.13
14:42
(903) Ищи раньше советы с CASE .
907 bananan
 
11.03.13
14:51
(906) Спасибо, поищу...
908 Wobland
 
11.03.13
14:55
а я даже по меньшей мере дважды что-то про кейс говорил..
909 sapphire
 
11.03.13
14:56
(901) Долбобей, если минцена равна нулю, чему будет значение минцена после этой операции:
минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок));
910 sapphire
 
11.03.13
14:57
(906) (908) Там не кейс нужен :))))))))
Но, Долбобею всё равно....
911 bananan
 
11.03.13
15:13
(909) в этом случае она будет равна нулю
(910) А что там нужно
(908) По поводу кейсов в даной ветке нашел три сообщения:
case when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.1 then $Док.ТипЦен1 when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.2
   then $Док.ТипЦен2 end
--        --
| (case $Канал.КатегорияЦены  
       |  when $Перечисление.ТипыЦен.1 then Coalesce(ДокС.ТипЦен1, $ДокН.ТипЦен1 )
       |  when $Перечисление.ТипыЦен.2 then Coalesce(ДокС.ТипЦен2, $ДокН.ТипЦен2 )
   |  when $Перечисление.ТипыЦен.3 then Coalesce(ДокС.ТипЦен3, $ДокН.ТипЦен3 )
       |  when $Перечисление.ТипыЦен.4 then Coalesce(ДокС.ТипЦен4, $ДокН.ТипЦен4 )
       |  when $Перечисление.ТипыЦен.5 then Coalesce(ДокС.ТипЦен5, $ДокН.ТипЦен5 )
   |  when $Перечисление.ТипыЦен.6 then Coalesce(ДокС.ТипЦен6, $ДокН.ТипЦен6 )
       |  when $Перечисление.ТипыЦен.7 then Coalesce(ДокС.ТипЦен7, $ДокН.ТипЦен7 )
   |  when $Перечисление.ТипыЦен.8 then Coalesce(ДокС.ТипЦен8, $ДокН.ТипЦен8 )
   |  ELSE Coalesce(ДокС.ТипЦен9, $ДокН.ТипЦен9 END) КатегорияЦены
-- ---
|   ,   ЦенаПоКатегории=(case    when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория1 then  
                           $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime))
       |                when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория2 then
                           $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime))
Из этих трех мне нравится больше первое... Но, сейчас буду пробывать...
912 viktor_vv
 
11.03.13
15:17
(910) Кейс, кейс, у него от категории цены из разных реквизитов ТМЦ цена расчетная берется, потом ее сравнивает с ценой в документе.

Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1)));
913 viktor_vv
 
11.03.13
15:18
(912)+ А категория в каждом документе может быть разная.
914 bananan
 
11.03.13
15:36
(912, 913) конечно в каждом доументе может быть своя категория
И что с того вот здесь я не понимаю...
915 bananan
 
11.03.13
15:51
Я тут вот чего намудрил:
| (case $Канал.КатегорияЦены  
   |      when $Перечисление.ТипыЦен.Категория1 then Coalesce(ДокС.ТипЦен1, $ДокН.ТипЦен1 )
   |      when $Перечисление.ТипыЦен.Категория2 then Coalesce(ДокС.ТипЦен2, $ДокН.ТипЦен2 )
   |   when $Перечисление.ТипыЦен.Категория3 then Coalesce(ДокС.ТипЦен3, $ДокН.ТипЦен3 )
   |      when $Перечисление.ТипыЦен.Категория4 then Coalesce(ДокС.ТипЦен4, $ДокН.ТипЦен4 )
   |      when $Перечисление.ТипыЦен.Категория5 then Coalesce(ДокС.ТипЦен5, $ДокН.ТипЦен5 )
   |      when $Перечисление.ТипыЦен.Категория6 then Coalesce(ДокС.ТипЦен6, $ДокН.ТипЦен6 )
   |      when $Перечисление.ТипыЦен.Категория7 then Coalesce(ДокС.ТипЦен7, $ДокН.ТипЦен7 )
   |      when $Перечисление.ТипыЦен.Категория8 then Coalesce(ДокС.ТипЦен8, $ДокН.ТипЦен8 )
   |  ELSE Coalesce(ДокС.ТипЦен9, $ДокН.ТипЦен9 END) КатегорияЦены
ну и ясен пень, не пропускает:
 Meta name parser error: неизвестное метаимя или алиас "$Канал"
Сейчас еще раз попробую сам разобраться, если не разберусь - то отправлю...
ляп нашел я неправильно написал имя алиаса, но все0рвано еще один ляп.. выдает:
Meta name parser error: поле таблицы не найдено "$ДокН.ТипЦен1"
Посмотрел я в документе там одно поле ТипЦен, т.е. Надо выбирать если у данного документа ТипЦен равен типу цен из канала доставки...
Как это в запросе написать?
916 Mikeware
 
11.03.13
15:51
(904) какой нахрен "фриланс"!!
Тебе только на сцене яйцами трясти, да и то, если  хирург тебе не помогал...
917 Mikeware
 
11.03.13
15:52
(915) феерично...
918 bananan
 
11.03.13
15:54
(916) Тебе их цюрюпинска виднее
919 bananan
 
11.03.13
15:56
(916) Ну а здесь уж от ориентации зависит, нормальные люди смотря балет, а некоторые - на яйца глядят
920 viktor_vv
 
11.03.13
15:57
(917) Скорее хореографично :)).
(915) Ты ж только на прошлой странице с этим каналом работал, неужто забыл какой у тебя псевдоним таблицы справочника.
921 Mikeware
 
11.03.13
15:58
(920) "К-анал" :-))
922 viktor_vv
 
11.03.13
15:59
(920)+ Ну и до кучи напуркуа тебе эти
Coalesce(ДокС.ТипЦен8, $ДокН.ТипЦен8 )

Опять же на прошлой страице у тебя есть получение цены из реквизита справочника.
923 viktor_vv
 
11.03.13
16:01
Осталось только скомпоновать правильно конкструкции.
924 bananan
 
11.03.13
16:02
(922) Не помндю, но вроде надо... Написал так:
   |from (
   |   SELECT
   |       Жур.IDDoc as IDDoc
   |   ,   Жур.IdDocDef as IdDocDef
   |   ,   isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ
   |   ,   isnull(ДокС.lineno_, ДокН.lineno_) lineno_
   |   ,   isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество
   |   ,   isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС                        
   |   ,   isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка
   |   ,   isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен        
   |   ,    $Доставка.КаналСбытаТТ as КаналСбыта
   |   ,    $КаналСбыта.КатегорияЦены as КатегорияЦены
   |   ,    $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена1
   |   ,    $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена2
   |   ,    $ПоследнееЗначение.ТМЦ.Цена3(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена3
   |   ,    $ПоследнееЗначение.ТМЦ.Цена4(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена4
   |   ,    $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5
   |   ,    $ПоследнееЗначение.ТМЦ.Цена6(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена6
   |   ,    $ПоследнееЗначение.ТМЦ.Цена7(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена7
   |   ,    $ПоследнееЗначение.ТМЦ.Цена8(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена8
   |   ,    $ПоследнееЗначение.ТМЦ.Цена9(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена9
   |   ,   $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих
   |   ,   $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка
   |   ,   $ОбщийРеквизит.Автор as Автор
   | (case $КаналСбыта.КатегорияЦены  
   |      when $Перечисление.ТипыЦен.Категория1 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория2 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |   when $Перечисление.ТипыЦен.Категория3 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория4 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория5 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория6 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория7 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория8 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |  ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен END) КатегорияЦены
   |   FROM _1SJourn as Жур (nolock)
   |   Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная
   |   Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН
   |   Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная        
   |   Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН
   |   left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ)
   |   left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка)
   |   left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ
   |   WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~
   |     AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН)
   |) Данные
   |WHERE Данные.Цена5=0 OR Данные.Цена7=0
Выдает:
 Incorrect syntax near '('.
Где я там скобку не открыл или не закрыл?
926 viktor_vv
 
11.03.13
16:03
(915) Не дочитал.
Вот это в условие Where

Надо выбирать если у данного документа ТипЦен равен типу цен из канала доставки...
927 viktor_vv
 
11.03.13
16:04
(925) Как-то грубовато получилось, не хореографично.
928 bananan
 
11.03.13
16:07
(925) Грубовато, не спорю, но - какой вопрос - такой ответ...
929 pav007
 
11.03.13
16:08
(915) помоему этот пример был написан в начале прошлой недели -так и не продвинулись:)

ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен END) "вот здесь ещё одна скобка нужна )"
930 bananan
 
11.03.13
16:08
(927) А поповоду словия...
   | (case $КаналСбыта.КатегорияЦены  
   |      when $Перечисление.ТипыЦен.Категория1 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория2 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |   when $Перечисление.ТипыЦен.Категория3 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория4 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория5 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория6 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория7 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория8 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |  ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен END) КатегорияЦены
здесь я устанавливаю категориб цены, а в вера что делать...
Блин, опять запутался
931 Mikeware
 
11.03.13
16:10
(927) ну почему же... как настоящий "хореограф", он знает "места охоты за яйцами" :-)
932 bananan
 
11.03.13
16:10
(929) исправил как ты советуещшь:
|  ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен END)) КатегорияЦены
Ве-равно:
: Incorrect syntax near '('.
934 pav007
 
11.03.13
16:14
(932) запятую перед кейсом
935 sapphire
 
11.03.13
16:17
(933) Долбобей, прочитай, ЧТО ТЫ НАПИСАЛ:
Когда категория цены канала сбыта равна какой-то категории тогда выбери не пустой тип цен из шапки документов...

И что это дает?

Это как из Бахмача в Конотоп или Шостку через Жмеринку....
936 pav007
 
11.03.13
16:19
Похоже на формулу расчёты цены на газ
937 viktor_vv
 
11.03.13
16:21
(930) Ты не тот CASE нашел.
Для сравнения категории цены в канале сбыта и документе не надо никаких CASE.
В (912) Я не то имел ввиду.
938 Mikeware
 
11.03.13
16:22
(935) да нихрена он не понимает, что написал...
НИ_ХРЕ_НА!
копипастит тупо, и местами переставляет...
939 sapphire
 
11.03.13
16:22
(930) Долбобей, тебе надо получить следующее:
соответствие  Перечисление.ТипыЦен.Категория{N} - идентификатору истории реквизита Цена{N}
940 Mikeware
 
11.03.13
16:23
(939) об этом еще в предыдущей ветке речь шла...
941 viktor_vv
 
11.03.13
16:23
(936) Бери круче, это скорее расчет траетории полета на Марс.
942 bananan
 
11.03.13
16:23
(934) поставил запятую перед кейсом...
выдает
 Incorrect syntax near the keyword 'END'.
943 sapphire
 
11.03.13
16:24
(940) Ты еще предложи ему динамический текст запроса отладить :)))))))
944 Mikeware
 
11.03.13
16:24
(942) млять, даже в дельфях используются скобки и операторные скобки!
945 Mikeware
 
11.03.13
16:25
(943) я, конечно, иппанутый, но не до такой степени...
946 sapphire
 
11.03.13
16:25
(942) Долбобей, на лови, ругатся не будет, но толку от этой галиматьи никакого :

 | (case $КаналСбыта.КатегорияЦены  
   |      when $Перечисление.ТипыЦен.Категория1 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория2 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |   when $Перечисление.ТипыЦен.Категория3 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория4 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория5 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория6 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория7 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория8 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |  ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен)  END)   КатегорияЦены
947 sapphire
 
11.03.13
16:26
(944) Это же Долбобей, ему простительно
948 bananan
 
11.03.13
16:28
(946) поймал - ругается:
 Line 155: Incorrect syntax near '('.
949 sapphire
 
11.03.13
16:29
Давайте, кто первый предложит ему рулезный case....
И кто поможет Долбобею написать скалярный запрос к _1SCONST на получение цены....
950 viktor_vv
 
11.03.13
16:29
(946) Наивный :), у него будет, такой псевдоним уже есть в запросе.
951 sapphire
 
11.03.13
16:30
(950) Ну, там не только в по-именовании дело-то...
Можно еще Долбобеюшке задать вопрос за что он так не любит
таблицу ДокШ...
952 viktor_vv
 
11.03.13
16:32
(951) До этого вряд ли дойдет, тут бы с запятыми разобраться :).
953 sapphire
 
11.03.13
16:33
(948)

| ,(case $КаналСбыта.КатегорияЦены  
   |      when $Перечисление.ТипыЦен.Категория1 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория2 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |   when $Перечисление.ТипыЦен.Категория3 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория4 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория5 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория6 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория7 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория8 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |  ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен)  END)   КатегорияЦены
954 sapphire
 
11.03.13
16:33
(952) Так, да? :))))
955 viktor_vv
 
11.03.13
16:34
(954) :)).
956 sapphire
 
11.03.13
16:35
(955) Все равно код долбобейский...
957 pav007
 
11.03.13
16:38
думаю что ТС сегодня догадается что этот кейс
и
 ,   isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен  

одно и тоже
958 bananan
 
11.03.13
16:39
(954) про \де так но все равно:
Invalid column name 'ТипЦен'. это уже буду завтра искать, чтото заболел я до встречи
959 viktor_vv
 
11.03.13
16:42
(956) Да понятно.
(957) Сразу видно, что ты новенький в этом сериале.
960 sapphire
 
11.03.13
16:42
(958) Долбобей, ты читать умеешь?
в (951) я тебе писал :
Можно еще Долбобеюшке задать вопрос за что он так не любит
таблицу ДокШ...

| ,(case $КаналСбыта.КатегорияЦены  
   |      when $Перечисление.ТипыЦен.Категория1 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория2 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |   when $Перечисление.ТипыЦен.Категория3 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория4 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория5 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория6 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория7 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |      when $Перечисление.ТипыЦен.Категория8 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен )
   |  ELSE Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен)  END)   КатегорияЦены
961 sapphire
 
11.03.13
16:44
(957) учись, ему надо сразу как в (960), что бы перепастил в код и усе...
962 batman69
 
11.03.13
16:50
Ну, что - сегодня до 1000?
963 sapphire
 
11.03.13
16:51
(962) Запросто.... Вот догадайся зачем нужен огород как в (953) ?
964 batman69
 
11.03.13
16:52
(963) И зачем ?
965 sapphire
 
11.03.13
16:55
(964) Ну сам-то код, ясно-красно ...
Так вот ему надо потом для категории цены X использовать последнее значение соответствующего периодического реквизита "ЦенаX" справочника ТМЦ...
966 sapphire
 
11.03.13
16:57
(965) Но, на самом деле case там скорее костыль нежели необходимость, просто Долбобеюшка не писарь, а копипастер и ждёть де ему на блюдечке, с голубой каемочкой....
967 batman69
 
11.03.13
17:02
Ну, и дожидается таки, вот ведь...
968 Mikeware
 
11.03.13
17:07
(967) Авоткуй!®
969 Cthulhu
 
11.03.13
17:09
b yt ytljtcn ;t dfv dhtvz yf f,cjk.nyj atthbxyjuj ljk,jt,f hfnbnm///
970 batman69
 
11.03.13
17:11
(968)  Всегда дожидался )))
971 batman69
 
11.03.13
17:12
Есть предложение, что бы не кормить балбесов - "съесть" ветку, всего 29 постов осталось ))
972 Mikeware
 
11.03.13
17:12
(971) новую заведет. делов то...
973 batman69
 
11.03.13
17:13
Ну это может. Легко.
974 sapphire
 
11.03.13
17:42
Долбобеюшка не поймёт зело сложно, но, как-то такъ:
   |SELECT
   |  Запрос.*
   | ,cast(SELECT TOP 1 .История Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта
   |FROM  
   |(
   |   SELECT
   |       Жур.IDDoc as IDDoc
   |   ,   Жур.IdDocDef as IdDocDef
   |   ,   isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ
   |   ,   isnull(ДокС.lineno_, ДокН.lineno_) lineno_
   |   ,   isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество
   |   ,   isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС                        
   |   ,   isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка
   |   ,   isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен        
   |   ,   $Доставка.КаналСбытаТТ as КаналСбыта
   |   ,   $КаналСбыта.КатегорияЦены as КатегорияЦены
   |   ,cast(left(Жур.date_time_iddoc,8) as datetime)  ДатаДок
   |   ,   $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих
   |   ,   $ОбщийРеквизит.Автор as Автор
   |   ,   case $КаналСбыта.КатегорияЦены  
   |          when $Перечисление.ТипыЦен.Категория1 then $ИсторияРеквизита.ТМЦ.Цена1
   |          when $Перечисление.ТипыЦен.Категория2 then $ИсторияРеквизита.ТМЦ.Цена2
   |          when $Перечисление.ТипыЦен.Категория3 then $ИсторияРеквизита.ТМЦ.Цена3
   |       when $Перечисление.ТипыЦен.Категория4 then $ИсторияРеквизита.ТМЦ.Цена4
   |       when $Перечисление.ТипыЦен.Категория5 then $ИсторияРеквизита.ТМЦ.Цена5
   |       when $Перечисление.ТипыЦен.Категория6 then $ИсторияРеквизита.ТМЦ.Цена6
   |       when $Перечисление.ТипыЦен.Категория7 then $ИсторияРеквизита.ТМЦ.Цена7
   |       when $Перечисление.ТипыЦен.Категория8 then $ИсторияРеквизита.ТМЦ.Цена8
   |       when $Перечисление.ТипыЦен.Категория9 then $ИсторияРеквизита.ТМЦ.Цена9
   |       ELSE '    ' ИдентификаторИсторииЦены
   |   FROM _1SJourn as Жур (nolock)
   |   Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная
   |   Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН
   |   Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная        
   |   Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН
   |   left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ)
   |   left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка)
   |   left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ
   |   WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~
   |     AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН)
   |   ) Запрос
   |
975 sapphire
 
11.03.13
17:46
Очепяточко Долбобеюшка пусть уж сам исправит....
976 Privalov
 
13.03.13
13:21
Что-то пропал bananan
977 Wobland
 
13.03.13
13:27
может, у него всё хорошо. вот вернётся через неделю и покажет нам кузькину эм.. рабочий запрос
978 sapphire
 
13.03.13
13:30
(976) (977) Может учится, штудирует, так сказать, матчасть, бухает короче :)
979 Wobland
 
13.03.13
13:31
без него и тыщу делать неловко как-то.. с другой стороны (0) исчерпан вроде и давно
980 Privalov
 
13.03.13
13:32
Тыща была бы логична..
981 Privalov
 
13.03.13
13:33
А вдруг его того... ну заменили другим bananan, а он умный?
982 sapphire
 
14.03.13
09:58
(981) Кто же нас веселить в таком разе будет?
983 Wobland
 
15.03.13
14:16
раз автор не хочет глупые вопросы задавать, задам я.
помните, хвастался своим запросом? теперь придумал сделать его на восьмёрке к внешнему источнику данных. как бы "обзапросить" вот это "AND ЖурО.Closed&1=1"?
984 Wobland
 
15.03.13
14:17
и SUBSTRING(ЖурО.Date_Time_IDDoc, 1, 8) BETWEEN &ДатаНачала AND &ДатаОкончания будет работать при Запрос.УстановитьПараметр("ДатаНачала", "20130314") ?
985 Mikeware
 
15.03.13
14:25
(983) чиво?
986 Wobland
 
15.03.13
14:27
(985) как запрос к семёрочному источнику сделать?

   |    FROM
   |        ВнешнийИсточникДанных.ТиС.Таблица.dbo__1SJOURN AS ЖурО
   |    WHERE
   |        SUBSTRING(ЖурО.Date_Time_IDDoc, 1, 8) BETWEEN &ДатаНачала AND &ДатаОкончания
   //|        AND ЖурО.Closed&1=1

не знает восьмёрка битовых умножений. как проведённость в условии задать?
987 Wobland
 
15.03.13
14:28
запрос работал 270 секунд, что-то выдал за 14е марта... условие про дата между, похоже, работает
988 Mikeware
 
15.03.13
14:31
(986) последняя единичка - это вроде проведение по оперучету
если семерка - только оперучет - можно =1
ну или попробуй =1 или=3 или=5 или=7, трех битовдолжно хватить...
датаначала="20130314"
датаокончания="20130314Z"
989 Wobland
 
15.03.13
14:33
>семерка - только оперучет
не знаю точно, о чём это. компоненты установлены все три. да и неважно. 1, 3, 5, 7 - так и сделаю, пасиб
990 Wobland
 
15.03.13
14:36
эх, не умею я как автор. со мной мы до тыщи не дотянем ;)
991 Wobland
 
15.03.13
14:37
"=1 или=3 или=5 или=7"
а где это писать? в какое место вставлять?
992 Wobland
 
15.03.13
14:44
(991) поручики молчать!
993 Mikeware
 
15.03.13
14:45
(ЖурО.Closed=1) или (ЖурО.Closed=3) или...
994 Wobland
 
15.03.13
14:46
ожидается выражение ")"
   |    WHERE
   |        SUBSTRING(ЖурО.Date_Time_IDDoc, 1, 8) BETWEEN &ДатаНачала AND &ДатаОкончания
   |        (ЖурО.Closed=1) или (ЖурО.Closed=3)
995 Mikeware
 
15.03.13
14:51
(994) а AND ()
bananan ставить будет?
996 viktor_vv
 
15.03.13
14:52
(994) Ты заразился, что ли :)?
AND вася будет писать?
997 viktor_vv
 
15.03.13
14:54
(986) И наверное лучше Left вместо substring, а то, судя по времени выполнения, индекс не используется, с left есть шанс .
998 Wobland
 
15.03.13
14:55
ЖурО.Closed AND 1 что ли?
999 Wobland
 
15.03.13
14:55
(997) подстрока как раз вместо лефта была вставлена. нет лефта в восьмёрочном языке
1000 viktor_vv
 
15.03.13
14:56
(987) Хотя это ж в синтаксисе восьмерки пишется, она вроде таких вещей не знает.
1001 Wobland
 
15.03.13
14:56
УРА!
1002 viktor_vv
 
15.03.13
14:57
(998) Ты реально выпей чего-нибудь для профилактики :).
   |        SUBSTRING(ЖурО.Date_Time_IDDoc, 1, 8) BETWEEN &ДатаНачала AND &ДатаОкончания
   |        AND ((ЖурО.Closed=1) или (ЖурО.Closed=3))
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший