Имя: Пароль:
1C
1C 7.7
v7: Выбрать все данные по регистру ПартииНаличие.
0 Хуан_Перейро
 
03.07.15
14:59
Доброго времени суток, форумчане!

Помогите составить запрос и выбрать все данные(точнее конечный остаток) по регистру ПартииНаличие,
в моем исполнении не видно :
- КодОперации
- ЦенаПрод
- ПродСтоимость
- Выручка

Если смотреть файл dbf напрямую, то данные в этих колонках есть, что сделано не так ?
Данные нужны для переноса остатков, поэтому важно ничего не упустить.
Заранее спасибо.

>---------начало кода---------<
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Фирма = Регистр.ПартииНаличие.Фирма;
    |МОЛ = Регистр.ПартииНаличие.МОЛ;
    |Номенклатура = Регистр.ПартииНаличие.Номенклатура;
    |СтатусПартии = Регистр.ПартииНаличие.СтатусПартии;
    |Партия = Регистр.ПартииНаличие.Партия;
    |ДатаПартии = Регистр.ПартииНаличие.ДатаПартии;
    |ЦенаПрод = Регистр.ПартииНаличие.ЦенаПрод;
    |Количество = Регистр.ПартииНаличие.Количество;
    |СуммаУпр = Регистр.ПартииНаличие.СуммаУпр;
    |СуммаРуб = Регистр.ПартииНаличие.СуммаРуб;
    |СуммаБезНДС = Регистр.ПартииНаличие.СуммаБезНДС;
    |КодОперации = Регистр.ПартииНаличие.КодОперации;
    |ПродСтоимость = Регистр.ПартииНаличие.ПродСтоимость;
    |Выручка = Регистр.ПартииНаличие.Выручка;
    |Функция КоличествоКонОст = КонОст(Количество);
    |Функция СуммаУпрКонОст = КонОст(СуммаУпр);
    |Функция СуммаРубКонОст = КонОст(СуммаРуб);
    |Функция СуммаБезНДСКонОст = КонОст(СуммаБезНДС);
    |Функция ПродСтоимостьРасход = Расход(ПродСтоимость);    
    |Группировка Фирма без групп;
    |Группировка МОЛ без групп;
    |Группировка Партия без групп;
    |Группировка Номенклатура без групп;
    |Условие(Количество > 0);
    |Условие(Фирма = ВыбФирма);
    |"//}}ЗАПРОС
    ;
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    Пока Запрос.Группировка(1) = 1 Цикл
             Пока Запрос.Группировка(2) = 1 Цикл
          Пока Запрос.Группировка(3) = 1 Цикл
               Пока Запрос.Группировка(4) = 1 Цикл
                            ПечФирма = Запрос.Фирма;
                            ПечМОЛ = Запрос.МОЛ;
                            ПечНоменклатура = Запрос.Номенклатура;
                            ПечСтатусПартии = Запрос.СтатусПартии;
                            ПечПартия = Запрос.Партия;
                            ПечДатаПартии = Запрос.ДатаПартии;
                               ПечЦенаПрод = Запрос.ЦенаПрод;
                            ПечКоличествоКонОст = Запрос.КоличествоКонОст;
                            ПечСуммаУпрКонОст = Запрос.СуммаУпрКонОст;
                            ПечСуммаРубКонОст = Запрос.СуммаРубКонОст;
                            ПечСуммаБезНДСКонОст = Запрос.СуммаБезНДСКонОст;
                            ПечКодОперации = Запрос.КодОперации;
                            ПечПродСтоимостьРасход = Запрос.ПродСтоимостьРасход;
                            ПечВыручка = Запрос.Выручка;
                    Таб.ВывестиСекцию("СтрокаРегистра");
               КонецЦикла;
          КонецЦикла;
         КонецЦикла;
    КонецЦикла;
>---------конец  кода---------<
1 aka AMIGO
 
03.07.15
15:18
можно выгрузить в ТЗ, и там посмотреть, что вытащил запрос из БД
2 Хуан_Перейро
 
03.07.15
15:42
(1) я всю таблицу приводить не буду, ибо строк много, вот пару строчек. Этого ситуация для всех строк одинакова

80954    МОТОСАЛОН    МОЛ Склад зона обслуживания    SUZUKI VS800GLP    Товар (купленный)    00000001    02.09.14    0    1.00000    2286.65    85279.25    73043.86         0    0
80955    МОТОСАЛОН    МОЛ Склад зона обслуживания    SUZUKI VZ400    Товар (купленный)    00000001    02.09.14    0    1.00000    2042.57    76176.42    65329.80         0    0
80956    МОТОСАЛОН    МОЛ Склад зона обслуживания    Рем.комплект карбюратора    Товар (купленный)    00000001    03.09.14    0    5.00000    27.43    1023.85    867.68         0    0
80957    МОТОСАЛОН    МОЛ Склад зона обслуживания    Рем.комплект карбюратора    Товар (купленный)    00000001    03.09.14    0    4.00000    21.66    809.26    685.82         0    0
80958    МОТОСАЛОН    МОЛ Склад зона обслуживания    Рем.комплект карбюратора    Товар (купленный)    00000003    03.09.14    0    1.00000    3.82    142.93    121.12         0    0
80959    МОТОСАЛОН    МОЛ Склад зона обслуживания    Рем.комплект карбюратора    Товар (купленный)    00000003    03.09.14    0    4.00000    27.46    1025.50    869.06         0    0
80960    МОТОСАЛОН    МОЛ Склад зона обслуживания    HISUN HS500ATV-2 Блок упр.дрос.заслонкой    Товар (купленный)    00000002    22.09.14    0    1.00000    13.06    501.81    425.26         0    0
80961    МОТОСАЛОН    МОЛ Склад зона обслуживания    HISUN HS700ATV Левый рычаг тормоза в сборе    Товар (купленный)    00000001    22.09.14    0    1.00000    7.48    287.44    243.59         0    0
80962    МОТОСАЛОН    МОЛ Склад зона обслуживания    HISUN HS500ATV-2 Пылезащитный кожух 47212-107-0000    Товар (купленный)    00000002    22.09.14    0    1.00000    3.06    117.68    99.73         0    0
80963    МОТОСАЛОН    МОЛ Склад зона обслуживания    HISUN HS500ATV-2 Задний фонарь в сб 35200-107-0000    Товар (купленный)    00000002    22.09.14    0    1.00000    7.48    287.43    243.59         0    0
80964    МОТОСАЛОН    МОЛ Склад зона обслуживания    HISUN HS700ATV Топливный насос (EFI Engine)    Товар (купленный)    00000001    22.09.14    0    1.00000    69.47    2668.68    2261.59         0    0
3 Хуан_Перейро
 
03.07.15
15:43
0 это и есть:
ЦенаПрод
ПродСтоимость
Выручка
4 Хуан_Перейро
 
03.07.15
15:43
Надеюсь за сузуки не забанят в пятницу)
5 mikecool
 
03.07.15
15:43
- КодОперации
- ЦенаПрод
- ПродСтоимость
- Выручка
это ресурсы?
6 aka AMIGO
 
03.07.15
15:45
(2) зачем приводить таблицу-то.. достаточно того, она не пустая.
Стало быть, запрос работает.
Посмотри в отладчике, чего не хватает в циклах обработки запроса.
7 Ёпрст
 
03.07.15
15:45
(0)
Ну как тебе сказать, не получишь ты реквизиты регистра в остатках.
Их там нет, не было и не будет. от слова совсем
8 Хуан_Перейро
 
03.07.15
15:45
(5) Нет

ЦенаПрод - измерение

КодОперации
ПродСтоимость
Выручка
- реквизиты
9 mikecool
 
03.07.15
15:46
(8) см (7)
10 Хуан_Перейро
 
03.07.15
15:46
(6) для измерения будет нехватать группировки
11 Хуан_Перейро
 
03.07.15
15:47
(7) а как их выдернуть ? ведь в dbf если смотреть dbf commander-ом значения есть
12 mikecool
 
03.07.15
15:48
(11) вот в коммандере и выдергивай, в остатках их нет
13 Ёпрст
 
03.07.15
15:50
(11) реквизиты регистра есть только в движениях регистра, это доп. характеристика движения. В запросе - это Приход или Расход. А в остатках - только измерения регистра и ресурсы.
14 Хуан_Перейро
 
03.07.15
15:52
(12) давай поясню первоначальный мотив этих плясок, размер RA328 (рег. ПартииНаличие (дв.)) приближается к 1гб, скоро 1с его не потянет, как решение - завести новый регистр, выполнить срез данных и перенести их в новый регистр.

1с без 1с++ и прочих приблуд, хотелось бы сделать это средствами платформы, а именно собрать данные в документ и выполнить движение по регистру.
15 Абыр
 
03.07.15
15:55
(14) читай внимательно (13)
16 Абыр
 
03.07.15
15:59
(14) ты конечно, можешь, собрать остатки не как КонОст, а как Приход - Расход за всю историю по дату свертки и получить их дополнительно и в разрезе реквизитов движений, но нахуа
17 aka AMIGO
 
03.07.15
16:03
(16) чтоб не рыться в dbf
18 Хуан_Перейро
 
03.07.15
16:07
(16) (17) попытаюсь объяснить почему, есть отчеты которые анализируют выручку от продажи и себестоимости по этому регистру, но как я понимаю, ПродСтоимость и Выручка формируется в момент реализации, это так ? Если так, то эти реквизиты будут формироваться в момент продажи, а мне всего лишь нужно перенести распредлеление партий по складам с их себестоимостью. Этого будет достаточно для переноса остатков в новый регистр. Либо в тот же самый, предварительно его очистив.
19 Ёпрст
 
03.07.15
16:24
(18) это не так. В остатках нет реквизитов регистра. И при любой свёртке - реквизиты регистра не нужны, от слова совсем.
20 Ёпрст
 
03.07.15
16:25
они нужны только для аналитических отчетов
21 Абыр
 
03.07.15
16:39
(17) так он уже порылся)
Ну есть, допустим, у ТС сейчас остаток по Фирма1, МОЛ1, Партия1, Номенклатура1 по какому-нибудь ресурсу = 100. Сделает он запрос и получит, что по Приход-Расход это Фирма1, МОЛ1, Партия1, Номенклатура1, ПродСтоимость1 = 60 и Фирма1, МОЛ1, Партия1, Номенклатура1, ПродСтоимость2 = 40
Сделает ввод остатков двумя строками вместо одной, заполняя реквизит ПродСтоимость.
Толку в этом ноль. В остатках от этого реквизиты не появятся. Отчеты, анализирующие реквизиты регистра, т.е. строящиеся по движениям, за периоды до даты свертки надо смотреть в базе до свертки.
22 aka AMIGO
 
03.07.15
16:48
Пример движений и остатков по рег.ПартииНаличие
ЗЫ. регистр слегка доработан мной, но можно не обращать внимания
http://savepic.su/5703209.jpg
23 aka AMIGO
 
03.07.15
16:49
(22) + это - по одной номенклатуре.
24 Хуан_Перейро
 
03.07.15
17:04
Друзья, спасибо за вентиляцию вопроса, теперь все стало на свои места.
Буду делать ввод остатков только по измерениям и ресурсам, Реквизиты появятся при расходе, т.е. в момент реализации товара, этого будет достаточно и для переноса остатков и для аналитики.

Спасибо!
25 Злопчинский
 
04.07.15
02:15
(18) какие-то у вас дятлы...
"есть отчеты которые анализируют выручку от продажи и себестоимости по этому регистру,"
- все уже посчитано, открой для себя регистр.продажи и штатный отчет "Анализ продаж"
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.