Вход | Регистрация


1С:Предприятие ::

Метки: 

СКД: запрос по регистру и ВТ

Я
   Вжескрыылг
 
21.09.17 - 08:06
Есть запрос по продажам продукции "Номенклатура", есть ВТ "ЦеныОпераций" с полями "Номенклатура, Операция, Количество, Цена", т.е. кол-во и цена операции на единицу продукции.
Запрос в СКД
ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.КоличествоОборот КАК Количество,
    ЦеныОпераций.Операция КАК Операция,
    ЦеныОпераций.Цена КАК ЦенаОперации,
    ЦеныОпераций.Количество * Продажи.КоличествоОборот КАК КоличествоОперации,
    ЦеныОпераций.Цена * Продажи.КоличествоОборот КАК Выручка,
    ЦеныОпераций.Цена * Продажи.КоличествоОборот КАК Наценка
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК Продажи
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаЦеныОпераций КАК ЦеныОпераций
        ПО Продажи.Номенклатура = ЦеныОпераций.Номенклатура

В консоли все киргуду, в отчете выводит не всю номенклатуру.
 
  Рекламное место пустует
   Wirtuozzz
 
1 - 21.09.17 - 08:16
м.б. проблема в том, что не было продаж за этот период?
Что бы выводить портянку из всей номенклатуре, надо обратиться к справочнику, и к нему левым соединением соединять РН Продажи.
   Вжескрыылг
 
2 - 21.09.17 - 08:27
(1) Продажи есть, показывает отдельный отчет. Да и в консоли все есть, но не будешь же юзерам про консоль рассказывать.
   VladZ
 
3 - 21.09.17 - 08:30
(0) "выводит не всю номенклатуру." А с чего решил, что будет "вся"? И что ты понимаешь под словом "вся"? Согласно запроса выводиться будет номенклатура, которая есть в продажа и в ЦеныОпераций (см. Внутреннее соединение).
   Вжескрыылг
 
4 - 21.09.17 - 08:34
(3) Делал всякое соединение. Как обычно, все равно - соединяет налево. Полное соединение делается по-другому, после СОЕДИНЕНИЕ {ВЫБРАТЬ...}
   Вжескрыылг
 
5 - 21.09.17 - 08:35
Объединить тоже делал - те же яйца..
   VladZ
 
6 - 21.09.17 - 08:36
(4) "Как обычно, все равно - соединяет налево" - вот тут какой-то бред. Программа делает именно то, что ты ей пишешь. Сама она не может заменить "внутреннее соединение" на "левое".
   Rokford
 
7 - 21.09.17 - 08:39
Как получается ВТ "ЦеныОпераций" ?
   Вжескрыылг
 
8 - 21.09.17 - 08:41
(6) короче, сделал сейчас налево - то же самое. и номенклатура  именно проданная за период, сначала специально выбранная:

ВЫБРАТЬ РАЗЛИЧНЫЕ
                Продажи.Номенклатура КАК Номенклатура
            ИЗ
                РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК Продажи
   Вжескрыылг
 
9 - 21.09.17 - 08:45
(7) Есть у меня такой веселый регистр "ЗатратыНаНоменклатуру". Номенклатура состоит из заготовок, те состоят из еще заготовок и т.д. При выпусках продукции/заготовок состав комлектующих переписывается на выпущенную номенклатуру, и в конечном счете продукция состоит из маталла, краски, болтов и прочих гаек.

ВЫБРАТЬ
    РасходыНаНоменклатуру.Номенклатура КАК Номенклатура,
    РасходыНаНоменклатуру.Аналитика КАК Операция,
    СУММА(РасходыНаНоменклатуру.СуммаОборот) КАК Сумма,
    СУММА(РасходыНаНоменклатуру.КоличествоОборот) КАК Количество,
    СУММА(РасходыНаНоменклатуру.КоличествоАналитикаОборот) КАК КоличествоОпераций
ПОМЕСТИТЬ ТаблицаОперации
ИЗ
    РегистрНакопления.РасходыНаНоменклатуру.Обороты(ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, -3), &КонецПериода, Авто, ) КАК РасходыНаНоменклатуру
ГДЕ
    РасходыНаНоменклатуру.Аналитика ССЫЛКА Справочник.Номенклатура
    И РасходыНаНоменклатуру.Аналитика.ВидНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ВидыНоменклатуры.Работа), ЗНАЧЕНИЕ(Перечисление.ВидыНоменклатуры.Услуга))
    И РасходыНаНоменклатуру.Номенклатура В
            (ВЫБРАТЬ РАЗЛИЧНЫЕ
                Продажи.Номенклатура КАК Номенклатура
            ИЗ
                РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК Продажи)

СГРУППИРОВАТЬ ПО
    РасходыНаНоменклатуру.Номенклатура,
    РасходыНаНоменклатуру.Аналитика

Аналитика - это ТМЦ, работы, статьи затрат
   Вжескрыылг
 
10 - 21.09.17 - 08:47
(7) Потом
ВЫБРАТЬ
    ТаблицаОперации.Номенклатура КАК Номенклатура,
    ТаблицаОперации.Операция КАК Операция,
    СРЕДНЕЕ(ТаблицаОперации.КоличествоОпераций / ТаблицаОперации.Количество) КАК Количество,
    СРЕДНЕЕ(ТаблицаОперации.Сумма / ТаблицаОперации.КоличествоОпераций) КАК Цена
ПОМЕСТИТЬ ТаблицаЦеныОпераций
ИЗ
    ТаблицаОперации КАК ТаблицаОперации

СГРУППИРОВАТЬ ПО
    ТаблицаОперации.Номенклатура,
    ТаблицаОперации.Операция
 
  Рекламное место пустует
   Rokford
 
11 - 21.09.17 - 08:54
(9),(10)Я бы смотрел с помощью консоли компоновки какой получается результирующий запрос. Думаю СКД меняет запрос. Поэтому результаты в консоли запросов и в отчете - разные.
   Вжескрыылг
 
12 - 21.09.17 - 08:56
(11) Я ж писал, что в консоли все есть, а в СКД даже системы выборки операций нет, выбирает от балды.
   Вжескрыылг
 
13 - 21.09.17 - 08:58
(11) Сколько отчетов написал на СКД, простых и сложных, все равно чувствую, что знаю ее процентов на 50. Тут нужен гуру по СКД.
   Rokford
 
14 - 21.09.17 - 08:58
Я про консоль компоновок говорю, а не про консоль запросов.
   Rokford
 
15 - 21.09.17 - 08:59
Например на ИТС есть КонсольСистемыКомпоновкиДанных83.erf или в инструментах разработчика от TormozIT
   Вжескрыылг
 
16 - 21.09.17 - 09:03
(15) ИТС нет, КонсольСистемыКомпоновкиДанных83 не гуглится. Кинь ссылку, а?
   KrasnSergey
 
17 - 21.09.17 - 09:08
(16) инструменты разработчика скачай там в составе есть консоль компоновки я ей пользуюсь
   Rokford
 
18 - 21.09.17 - 09:14
https://its.1c.ru/db/metod8dev#content:3401:hdoc:_top:консольсистемыкомпоновкиданных

Хотя мне тоже больше из инструментов разработчика нравится (правда она на обычных формах).
   Rokford
 
19 - 21.09.17 - 09:16
(16) проверь почту
   Вжескрыылг
 
20 - 21.09.17 - 09:23
(16), (17), (18) Скачал и так, и из письма. Работает только в толстои клиенте. блин!
   Вжескрыылг
 
21 - 21.09.17 - 09:33
(19) Загрузил. Выполнил. Надо разбираться, что эта консоль может.
   Rokford
 
22 - 21.09.17 - 09:48
(21) Покажи настройку отчета (выбранные поля интересуют)
   Вжескрыылг
 
23 - 21.09.17 - 09:50
(0) что-то в соединении. как соединяется с ВТ "ЦеныОпераций", если там этих номенклатур несколько?
   Rokford
 
24 - 21.09.17 - 09:55
Проверил. Запрос не меняется. Нужно копать в другую сторону.
   alxxsssar
 
25 - 21.09.17 - 09:59
Так может дело и не в запросе. Смотри на вкладке настроек, может СКД на уже сформированную таблицу какие-то отборы накладывает или что-то в таком духе. Параметры запроса поковыряй.
   AneJIbcuH
 
26 - 21.09.17 - 10:00
(0) Отборов нет?
   LordCMEPTb
 
27 - 21.09.17 - 10:00
Т.е. если выполнить в консоли запросов оптимизированный запрос из макета компоновки (ну или из консоли отчета, который получился на какой-то из закладок) и исходный запрос с одинаковыми параметрами, то результат разный? При том, что по информации из (24) запросы одинаковые?
Что-то не так в исходных данных...
   Вжескрыылг
 
28 - 21.09.17 - 10:38
(26) только период
   Вжескрыылг
 
29 - 21.09.17 - 11:01
(27) Да, тексты одинаковые. Данные проверялись отчетом по продажам и отчетом "Затраты на номенклатуру", содержание промежуточных ВТ в консоли. Что-то в соединении.
   LordCMEPTb
 
30 - 21.09.17 - 11:16
(29) Не понимаю фразу "Данные проверялись отчетом по продажам и отчетом "Затраты на номенклатуру", содержание промежуточных ВТ в консоли"

Требуется либо поставить точку останова в модуле отчета при компоновке результата, либо взять оптимизированный запрос из консоли СКД. ОПТИМИЗИРОВАННЫЙ, а не ИСХОДНЫЙ. Выполнить в консоли запросов. Затем взять исходный текст запроса и с теми же параметрами выполнить. После этого анализировать результаты.
   write
 
31 - 21.09.17 - 12:12
(0) Перенеси ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, -3) из параметров виртуальной талицы РегистрНакопления.РасходыНаНоменклатуру.Обороты в параметры этой же виртуальной таблицы только на вкладке "КОМПОНОВКА ДАННЫХ"
   h-sp
 
32 - 21.09.17 - 12:33
(29) да, вот эту хрень ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, -3)  туда не пиши. Она всё равно на нее наплюет. И вставит свою дату.
   Вжескрыылг
 
33 - 21.09.17 - 13:05
(31), (32). Действительно, вместо ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, -3) вставляет что-то.
 
 
   Вжескрыылг
 
34 - 21.09.17 - 14:29
(31) Спец! Взлетело!



Список тем форума
Рекламное место пустует  
2 + 2 = 3.9999999999999999999999999999999...
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует