Имя: Пароль:
1C
1С v8
вопрос по СКД
,
0 lakich
 
31.08.13
12:43
в СКД есть два набора данных "Документы" в виде

ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка,
    РеализацияТоваровУслуг.ВерсияДанных,
    РеализацияТоваровУслуг.ПометкаУдаления,
    РеализацияТоваровУслуг.Номер,
    РеализацияТоваровУслуг.Дата,
        .....................................
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.Проведен = ИСТИНА
    И РеализацияТоваровУслуг.Дата >= &Дата1
    И РеализацияТоваровУслуг.Дата <= &Дата2

УПОРЯДОЧИТЬ ПО
    Организация,
    Контрагент,
    СуммаДокумента,
    Склад,
    Автор

т.е выбираю все доки РТиУ между датами и второй набор данных "Цены":

ВЫБРАТЬ
Номенклатура.Ссылка КАК Номенклатура,
    ЦеныСрезПоследних.Цена КАК ЦенаСтратег,
    ЦеныСрезПоследних.Валюта
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЦеныНоменклатурыСрезПоследних.Номенклатура КАК НоменклатураСсылка,
            ЦеныНоменклатурыСрезПоследних.Валюта КАК Валюта,
            ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
        ИЗ
            РегистрСведений.ЦеныНоменклатуры.СрезПоследних() КАК ЦеныНоменклатурыСрезПоследних
        ГДЕ
            ЦеныНоменклатурыСрезПоследних.ВидЦены В(&ВидЦены)) КАК ЦеныСрезПоследних
        ПО Номенклатура.Ссылка = ЦеныСрезПоследних.НоменклатураСсылка

объединяю их в "Связи наборов данных " по полу Номенклатура и все замечательно,НО..как в параметр &Период набора данных Цены передавать не произвольную дату,а дату документа,чтобы получать НЕ ПОСЛЕДНЮЮ ЦенаСтратег ,а НА ДАТУ ДОКУМЕНТА???..туплю наверное,но никак не выходит,берет последнюю и всё(((
1 Armando
 
31.08.13
12:55
2 Armando
 
31.08.13
12:57
Лучше в одном запросе делать. Если через связь наборов и передачу параметра, то фактически запрос в цикле получается. СКД на каждую дату будет дергать регистр цен.
3 echo77
 
31.08.13
12:57
(1) +1
Лучше получить цены в запросе, а несредствами связи наборов СКД - так быстрее
4 lakich
 
31.08.13
13:01
т.е в "Документы" ещё и цены получить?....приведите кусок кода,плз..ничего не соображаю..всю ночь сидел..(
5 echo77
 
31.08.13
13:09
(4) я бы отдохнул, потом почитал бы статью. Да, в одном наборе лучше сделать
6 lakich
 
31.08.13
13:11
ок
7 lakich
 
01.09.13
08:27
ну подскажите как взять цену на дату документа,туплю-не получается,берется последняя цена и все..(
8 Мимохожий Однако
 
01.09.13
08:34
(7)Покажи, что уже успел слепить.
9 lakich
 
01.09.13
08:35
наборы данных ,которые выше
10 Мимохожий Однако
 
01.09.13
08:41
Надо взять все даты документов и соединить с записями регистра сведений цены. При этом дата документа должна быть больше или равна даты записи регистра сведений.
11 lakich
 
01.09.13
08:44
кусок кода приведи плз,если не трудно..- весь мозг уже себе вынес,не выходит каменный цветок(
12 Мимохожий Однако
 
01.09.13
09:04
Замени таблицу РегистрСведений.ЦеныНоменклатуры.СрезПоследних() на РегистрСведений.ЦеныНоменклатуры и
в условии Внутреннее соединение ....
ПО ЦеныНоменклатурыСрезПоследних.Период <= РеализацияТоваровУслуг.Дата
13 lakich
 
01.09.13
09:10
ок,огромное спасибо,попробую..
14 lakich
 
01.09.13
09:18
в один набор даныых объеденить?
15 lakich
 
01.09.13
09:26
или Замени таблицу РегистрСведений.ЦеныНоменклатуры.СрезПоследних() на РегистрСведений.ЦеныНоменклатуры и
в условии Внутреннее соединение ....
ПО ЦеныНоменклатурыСрезПоследних.Период <= РеализацияТоваровУслуг.Дата
в наборе данных Цены изменить?
16 lakich
 
01.09.13
09:46
уф...покажите ,плз..как должен выглядеть запрос?
17 ИсчадиеADO
 
01.09.13
10:16
можно одним запросом написать - тогда см. (1)

можно средствами СКД - двумя наборами и их соединением с передачей параметра во второй набор - это смотри у Насипова и Гилева - бесплатное видео по СКД
18 Defender aka LINN
 
01.09.13
10:36
Ничего, что в (1) оба способа?
2 + 2 = 3.9999999999999999999999999999999...