Имя: Пароль:
1C
1С v8
Не понять мне это
,
0 LBAASKA
 
11.09.12
17:39
я создал запрос и выбрал в запросе справ. номенк и регистр сведений цены на номенклат срез последних. Связал левым соединением и получилось так. Когда напечатываю на макете, напечатыв-ся номенкл и цены. Но некоторые номенкл напечатаны дважды а цены разные почему? Может это потому что я не выбрал рознич цены? А должны быть именно розн цены?
1 1C-band
 
11.09.12
17:39
Потому, что назначено столько типов цен, сколько раз повторяется номенклатура.
2 andrewks
 
11.09.12
17:40
(0) темы надо называть осмысленно, а не абы как
3 Feanorko
 
11.09.12
17:42
Ок, тебе этого не понять :)
4 salvator
 
11.09.12
17:44
(0) Телеграмму что ли послал? Совсем обленились, написать нормально по-русски не могут.
5 Mikeware
 
11.09.12
17:44
(0) прими это как данность...
6 LBAASKA
 
11.09.12
17:46
А как мне это исправить?
7 Mikeware
 
11.09.12
17:47
(6) это на этапе зачатия надо было исправлять. точнее, предотвращать...
8 Classic
 
11.09.12
17:48
(0)
Да
9 batman69
 
11.09.12
17:49
(7) +100500
10 Feanorko
 
11.09.12
17:49
(6) исключительно лоботомией
11 LBAASKA
 
11.09.12
17:51
Вот код программы



запрос = новый запрос;
   запрос.Текст = "
   |ВЫБРАТЬ
   |   спрНоменклатура.Ссылка КАК Ссылка1,
   |   ЦеныНоменклатурыСрезПоследних.Цена КАК Цена1
   |
   |ИЗ
   |
   |   РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
   |ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК спрНоменклатура
   |
   |ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = спрНоменклатура.Ссылка
   |
   |СГРУППИРОВАТЬ ПО
   |   спрНоменклатура.ВидНоменклатуры,
   |   спрНоменклатура.Ссылка,
   |   ЦеныНоменклатурыСрезПоследних.Цена";
   
   результат = запрос.Выполнить();
   тз = результат.Выгрузить();
   Выборка = результат.Выбрать();
   
   ТабДок = Новый ТабличныйДокумент;
   ТабДок.ОтображатьЗаголовки = Ложь;
//    ТабДок.ОтображатьСетку = Ложь;
   ТабДок.Защита=Ложь;
   ТабДок.Очистить();

   Макет1 = ЭтотОбъект.ПолучитьМакет("Макет");
   
   обл1 = Макет1.ПолучитьОбласть("Область1");
   ТабДок.Вывести(обл1);
   
   обл2 = Макет1.ПолучитьОбласть("Область2");
   ТабДок.Вывести(обл2);
   

   обл3 = Макет1.ПолучитьОбласть("Область3");
   обл3.Защита = Ложь;
   
   пока выборка.Следующий() цикл
       
       обл3.ТекущаяОбласть.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Лево;
       обл3.ТекущаяОбласть.Параметр = Выборка.Ссылка1;
       
       //Обл3.ТекущаяОбласть.Параметр = Выборка.Цена1;
       
       табдок.Вывести(обл3);
       //ТабДок.вывести(обл2);
       
   конеццикла;    
       
       ТабДок.Показать();
12 sanja26
 
11.09.12
17:52
напечатыв-ся. иди куда-нибудь на англоязычные языки программирования..
13 sergeante
 
11.09.12
17:55
Зачем левое соединение к РС, а не к Ном?? Зачем группировка? Где отбор по измерениям в Срезе?
14 Sj
 
11.09.12
17:56
фильтр по типу цены накинь на регистр
15 sergeante
 
11.09.12
17:56
если нужно определённый вид цен, так и укажи в ПВТ у РС, и никакого соединения со справочником не надо. Кури доки про язык запросов вдумчивей.
16 LBAASKA
 
11.09.12
18:06
я же должен взять цены из РС. А для этого я сравниваю номенк. справ и номенкл РС. А как я понимая в РС номенклатуры имеют цены вроде бы. Вот поэтому нужен лев соединение.
17 Sj
 
11.09.12
18:08
а в рс какие измерения?
18 LBAASKA
 
11.09.12
18:19
Не мне внеш обр нужно сделать. Но мне говорили что номенклатуры должны ставиться из справ номен, а цены из РС. и в розничных ценах вроде бы. я уже забываю. Слишком долго делаю не получ-ся
19 dumb851
 
11.09.12
18:24
(18) тебе нужно выводить номенклатуру с неустановленной ценой?
20 LBAASKA
 
11.09.12
18:26
Ну да. Должны стоят розничные цены.
21 sergeante
 
11.09.12
18:27
(20) не надо соединений, делаешь в ПВТ условие по типу цен, а саму Ном берёшь из измерения РС, справочник не нужен. Лев соединение только если хочешь выводить всю номенклатуру, в т.ч не имеющей цену
22 sergeante
 
11.09.12
18:31
|ВЫБРАТЬ
   |   спрНоменклатура.Ссылка КАК Номенклатура,
   |   ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
   |
   |ИЗ
   |
   |   Справочник.Номенклатура КАК спрНоменклатура
   |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, &ТипЦены) КАК ЦеныНоменклатурыСрезПоследних
   |
   |ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = спрНоменклатура.Ссылка
23 sergeante
 
11.09.12
18:33
или

   |ВЫБРАТЬ
   |   ЦеныНоменклатуры.Номенклатура,
   |   ЦеныНоменклатуры.Цена
   |
   |ИЗ
   |
   |РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, &ТипЦены) КАК ЦеныНоменклатуры
24 sergeante
 
11.09.12
18:34
в условии ессно (, ТипЦены = &ТипЦены)
25 LBAASKA
 
11.09.12
18:39
оо спасибо большое