Имя: Пароль:
1C
1С v8
Реквизиты регистра накоплений
0 ogion83
 
13.05.13
14:24
Делаю отчет СКД. Получаю данные по остаткам и оборотам материалов. В конструкторе запроса выбрал МатериалыОстаткиИОбороты, в регистре есть реквизит "КодОперации", но его нельзя выбрать. Как его получить? Если выбрать просто регистр Материалы, то его можно использовать, но тогда можно ли получить остатки и обороты в конструкторе?
1 Necessitudo
 
13.05.13
14:25
Пользуй физическую таблицу.
2 ogion83
 
13.05.13
14:27
В 1С8 новичек, если можно поподробней.
3 Necessitudo
 
13.05.13
14:29
регистр Материалы - это и есть физическая таблица. В принципе можно попробовать использовать две таблицы - физическую и МатериалыОстаткиИОбороты, связав их по регистратору -  что-нибудь да получится)))))))
4 ogion83
 
13.05.13
14:31
Где произвести эту связку?
5 Necessitudo
 
13.05.13
14:39
Ну в конструкторе...
6 Maxus43
 
13.05.13
14:39
(4) в конструкторе запроса даже закладка есть "Связи", если таблица не одна
7 Necessitudo
 
13.05.13
14:41
ВЫБРАТЬ
   ПартииТоваровНаСкладах.Регистратор,
   ПартииТоваровНаСкладах.Склад,
   ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток,
   ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток
ИЗ
   РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(, , Авто, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
       ПО ПартииТоваровНаСкладах.Регистратор = ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор
8 Necessitudo
 
13.05.13
14:41
Типа так вот)
9 ogion83
 
13.05.13
14:42
(6) Понял, попробуем
10 ogion83
 
13.05.13
14:46
Всё, пашет. Благодарствую.
11 ogion83
 
13.05.13
15:30
А нет. Записи дублируются почему то.
12 ogion83
 
13.05.13
15:30
ВЫБРАТЬ
   МатериалыОстаткиИОбороты.МестоХранения,
   МатериалыОстаткиИОбороты.МПЗ,
   МатериалыОстаткиИОбороты.КоличествоНачальныйОстаток,
   МатериалыОстаткиИОбороты.КоличествоПриход,
   МатериалыОстаткиИОбороты.КоличествоРасход,
   МатериалыОстаткиИОбороты.КоличествоКонечныйОстаток,
   МатериалыОстаткиИОбороты.Регистратор,
   Материалы.КодОперации
ИЗ
   РегистрНакопления.Материалы.ОстаткиИОбороты(, , Авто, , ) КАК МатериалыОстаткиИОбороты
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Материалы КАК Материалы
       ПО МатериалыОстаткиИОбороты.Регистратор = Материалы.Регистратор
13 salvator
 
13.05.13
15:31
левое соединение попробуй
14 Necessitudo
 
13.05.13
15:34
Естественно дублируются)
15 ogion83
 
13.05.13
15:35
Похоже не дублируется, а пишет в отчете строку столько раз сколько в документе строк в табличной части.
16 Necessitudo
 
13.05.13
15:37
Именно. Ты ж пользуешь физическую таблицу.
17 ogion83
 
13.05.13
15:37
Левое соединение не помогло. (14) и как избавиться от этого?
18 Necessitudo
 
13.05.13
15:37
Нужно видимо сделать вложенный запрос к физической таблице, там сгруппировать по регистратору и с этим уже связать ОстаткиИОбороты.
19 ogion83
 
13.05.13
15:49
Ещё хуже.
ВЫБРАТЬ
   МатериалыОстаткиИОбороты.МестоХранения,
   МатериалыОстаткиИОбороты.МПЗ,
   МатериалыОстаткиИОбороты.КоличествоНачальныйОстаток,
   МатериалыОстаткиИОбороты.КоличествоПриход,
   МатериалыОстаткиИОбороты.КоличествоРасход,
   МатериалыОстаткиИОбороты.КоличествоКонечныйОстаток,
   МатериалыОстаткиИОбороты.Регистратор,
   ВложенныйЗапрос.КодОперации
ИЗ
   РегистрНакопления.Материалы.ОстаткиИОбороты(, , Авто, , ) КАК МатериалыОстаткиИОбороты
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           Материалы.КодОперации КАК КодОперации,
           Материалы.Регистратор КАК Регистратор
       ИЗ
           РегистрНакопления.Материалы КАК Материалы
       
       СГРУППИРОВАТЬ ПО
           Материалы.Регистратор,
           Материалы.КодОперации) КАК ВложенныйЗапрос
       ПО МатериалыОстаткиИОбороты.Регистратор = ВложенныйЗапрос.Регистратор,
   РегистрНакопления.Материалы КАК Материалы
20 salvator
 
13.05.13
15:50
Из вложенного запроса убери код операции. И почитай про группировку заодно.
21 salvator
 
13.05.13
15:52
А хотя не, чего это я. Все верно. А что сейчас выдает?
22 ogion83
 
13.05.13
15:54
все строки дублируются по несколько раз
23 Necessitudo
 
13.05.13
15:54
Че-то от жары хочется предложить такое:

ВЫБРАТЬ
           Максимум(Материалы.КодОперации КАК КодОперации),
           Материалы.Регистратор КАК Регистратор
       ИЗ
           РегистрНакопления.Материалы КАК Материалы
       
       СГРУППИРОВАТЬ ПО
           Материалы.Регистратор


Не?
24 salvator
 
13.05.13
15:55
(19) А зачем "Авто" указал в параметрах виртуальной таблицы?
25 Necessitudo
 
13.05.13
15:57
(24) Чтобы можно было настроить связь по регистратору. Это из моего кода:)
26 ogion83
 
13.05.13
15:58
Авто было первоначально)
27 ogion83
 
13.05.13
16:01
Ни хрена не выходит. Ещё варианты. Да почему вообще нету этого реквизита в МатериалыОстаткиИОбороты??? (Измерения есть, ресурсы есть, а реквизиты что???)
28 Necessitudo
 
13.05.13
16:02
А реквизиты в таблицах итогов не хранятся) Думай)
29 ДенисЧ
 
13.05.13
16:03
(27) ЗАпомни. В виртуальных таблицах нет реквизитов.
Запомни это, как Отче Наш.
30 ogion83
 
13.05.13
16:05
Акей нету их. Как теперь добыть?
31 ДенисЧ
 
13.05.13
16:06
(30) из физической таблицы.
32 ogion83
 
13.05.13
16:13
(31)Понятно, а кааааак?)
33 ogion83
 
13.05.13
16:31
Тайна покрытая мраком...
34 hhhh
 
13.05.13
17:13
(33) реквизит - это то, по чем не бывает остатков.
35 ogion83
 
14.05.13
09:05
ВЫБРАТЬ
   МатериалыОстаткиИОбороты.МестоХранения,
   МатериалыОстаткиИОбороты.МПЗ,
   МатериалыОстаткиИОбороты.КоличествоНачальныйОстаток,
   МатериалыОстаткиИОбороты.КоличествоПриход,
   МатериалыОстаткиИОбороты.КоличествоРасход,
   МатериалыОстаткиИОбороты.КоличествоКонечныйОстаток,
   МатериалыОстаткиИОбороты.Регистратор,
   Материалы.КодОперации
ИЗ
   РегистрНакопления.Материалы.ОстаткиИОбороты(, , Авто, , ) КАК МатериалыОстаткиИОбороты
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Материалы КАК Материалы
       ПО МатериалыОстаткиИОбороты.Регистратор = Материалы.Регистратор
           И МатериалыОстаткиИОбороты.МПЗ = Материалы.МПЗ
Вот почти верный результат, но если в документе одинаковый МПЗ есть в паре строчек табличной части, то в отчете количество удваивается
36 ogion83
 
14.05.13
09:20
Советовали сделать группировку по строке, но в группировку попадает всё (хотел по МПЗ, но конструктор вставляет и регистратор и место хранения и т.д.), и не прокатывает.
37 ogion83
 
14.05.13
09:27
Вот наконец рабочий вариант:
ЫБРАТЬ
   МатериалыОстаткиИОбороты.МестоХранения,
   МатериалыОстаткиИОбороты.МПЗ,
   МатериалыОстаткиИОбороты.КоличествоНачальныйОстаток,
   МатериалыОстаткиИОбороты.КоличествоПриход,
   МатериалыОстаткиИОбороты.КоличествоРасход,
   МатериалыОстаткиИОбороты.КоличествоКонечныйОстаток,
   МатериалыОстаткиИОбороты.Регистратор,
   Материалы.КодОперации
ИЗ
   РегистрНакопления.Материалы.ОстаткиИОбороты(, , Авто, , ) КАК МатериалыОстаткиИОбороты
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Материалы КАК Материалы
       ПО МатериалыОстаткиИОбороты.Регистратор = Материалы.Регистратор
           И МатериалыОстаткиИОбороты.МПЗ = Материалы.МПЗ
           И МатериалыОстаткиИОбороты.МестоХранения = Материалы.МестоХранения

СГРУППИРОВАТЬ ПО
   МатериалыОстаткиИОбороты.МПЗ,
   МатериалыОстаткиИОбороты.МестоХранения,
   МатериалыОстаткиИОбороты.КоличествоНачальныйОстаток,
   МатериалыОстаткиИОбороты.КоличествоПриход,
   МатериалыОстаткиИОбороты.КоличествоРасход,
   МатериалыОстаткиИОбороты.КоличествоКонечныйОстаток,
   МатериалыОстаткиИОбороты.Регистратор,
   Материалы.КодОперации
38 ogion83
 
14.05.13
09:31
А ещё надо сделать недоступными для группировки лишние параметры.