Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Обращение к табличным частям в запросе

Обращение к табличным частям в запросе
Я
   twstx2n
 
12.02.20 - 23:59
Пытаюсь наваять внешний отчет в 1С УНФ.

Есть два запроса:

ВЫБРАТЬ
    Запасы.КоррСчетУчета КАК КоррСчетУчета,
    СУММА(Запасы.Сумма) КАК Сумма
ИЗ
    РегистрНакопления.Запасы КАК Запасы
ГДЕ
    Запасы.Номенклатура = &Параметр
    И Запасы.Регистратор ССЫЛКА Документ.РаспределениеЗатрат
    И Запасы.КоррСчетУчета.Код = "20.01"


СГРУППИРОВАТЬ ПО
    Запасы.КоррСчетУчета


;

ВЫБРАТЬ
    Спецификации.Состав.Номенклатура.СчетУчетаЗатрат КАК СчетУчетаЗатрат,
    СУММА(Спецификации.Состав.Количество * 1000) КАК Себестоимость

ИЗ
    Справочник.Спецификации КАК Спецификации
ГДЕ
    Спецификации.Владелец.Ссылка = &Параметр
    И
    Спецификации.Состав.Номенклатура.СчетУчетаЗатрат.Код = "20.01"
СГРУППИРОВАТЬ ПО
    Спецификации.Состав.Номенклатура.СчетУчетаЗатрат

Но при попытке сделать полное соединение ругается на то, что нельзя использовать в запросе обращение к табличным частям.
Поле соединения - Запасы.КоррСчетУчета и Спецификации.Состав.Номенклатура.СчетУчетаЗатрат

Подскажите, куда рыть.
   palsergeich
 
1 - 13.02.20 - 00:13
(0) Соединяй с ТЧ явно
   palsergeich
 
2 - 13.02.20 - 00:14
(1) Тч документа с таблицей документа имелось ввиду.
   palsergeich
 
3 - 13.02.20 - 00:15
(2) Физически на уровне СУБД это разные таблицы связанные через поле Ссылка
   palsergeich
 
4 - 13.02.20 - 00:16
(3) А согласованность организовывается на уровне платформы
   twstx2n
 
5 - 13.02.20 - 01:13
(1) загуглил. Получилось что то такое

ВЫБРАТЬ
    Запасы.КоррСчетУчета КАК КоррСчетУчета,
    СУММА(Запасы.Сумма) КАК Факт,
    СУММА(Спецификации.Количество * 1000) КАК Себестоимость
ИЗ
    РегистрНакопления.Запасы КАК Запасы
    ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК Спецификации
ПО
    Запасы.КоррСчетУчета = Спецификации.Номенклатура.СчетУчетаЗатрат
    
ГДЕ
    Запасы.Номенклатура = &Параметр
    И Запасы.Регистратор ССЫЛКА Документ.РаспределениеЗатрат
    И Запасы.КоррСчетУчета.Наименование = "Списание плитного материала"

СГРУППИРОВАТЬ ПО
    Запасы.КоррСчетУчета

Но по ходу в этом варианте он взял суммы со всех заказов и спецификаций. А вот как вычленить конкретный, что передаётся через &параметр я что то не могу догнать.
   Chameleon1980
 
6 - 13.02.20 - 04:53
(5)что и советовалось в 1
   catena
 
7 - 13.02.20 - 07:04
(5)Добавить соединение по номенклатуре?
   Kigo_Kigo
 
8 - 13.02.20 - 08:09
запрос на тч документа, далее сам
        |    ПоступлениеТоваровУслуг.ФактДатаПоступления,
        |    ПоступлениеТоваровУслуг.Товары.(
        |        Ссылка,
        |        НомерСтроки,
        |        ЕдиницаИзмерения,
        |        ЕдиницаИзмерения.Наименование,
        |        КоличествоМест,
        |        Количество,
        |        ЕдиницаИзмеренияМест,
        |        Коэффициент,
        |        Номенклатура,
        |        СтавкаНДС,
        |        Сумма,
        |        СуммаНДС,
        |        Цена,
        |        СчетУчетаБУ,
        |        СерияНоменклатуры,
        |        ХарактеристикаНоменклатуры,
        |        Заказ,
        |        СчетУчетаНДС,
        |        СчетУчетаНУ,
        |        ОтражениеВУСН,
        |        Склад,
        |        ПриходныйОрдер,
        |        ЗаказПоставщику,
        |        КлючСвязи,
        |        ЕдиницаИзмеренияХранение,
        |        КоличествоХранение,
        |        Подразделение,
        |        Номенклатура.КодБП2,
        |        Номенклатура.Наименование,
        |        Номенклатура.НаименованиеПолное,
        |        Номенклатура.ВидНоменклатуры.Наименование,
        |        СтавкаНДС.Порядок,
        |        ПРЕДСТАВЛЕНИЕССЫЛКИ(СтавкаНДС.Ссылка) КАК ПредставлениеСтавкиНДС,        
        |        ХарактеристикаНоменклатуры.Наименование,
        |        Заказ КАК Заказ1,
        |        Заказ.Номер,
        |        Заказ.Дата,
        |        ЗаказПоставщику.Номер,
        |        ЗаказПоставщику.Дата
        |    ),
        |    ПоступлениеТоваровУслуг.Услуги.(
        |        Ссылка,
        |        НомерСтроки,
        |        Количество,
        |        Содержание,
        |        Заказ,
        |        Номенклатура,
        |        СтавкаНДС,
        |        Сумма,
        |        СуммаНДС,
        |        Цена,
        |        НоменклатурнаяГруппа,
        |        Подразделение,
        |        ПодразделениеОрганизации,
        |        СтатьяЗатрат,
        |        СчетЗатрат,
        |        Субконто1,
        |        Субконто2,
        |        Субконто3,
        |        СчетЗатратНУ,
        |        СубконтоНУ1,
        |        СубконтоНУ2,
        |        СубконтоНУ3,
        |        СчетУчетаНДС,
        |        Продукция,
        |        ХарактеристикаПродукции,
        |        СерияПродукции,
        |        ОбъектСтроительства,
        |        ОтражениеВУСН,
        |        Проект,
        |        ЗаказПоставщику,
        |        СпособРаспределенияЗатратНаВыпуск,
        |        СпособСтроительства,
        |        Номенклатура.Наименование,
        |        СтавкаНДС.Порядок,    
        |        ПРЕДСТАВЛЕНИЕССЫЛКИ(СтавкаНДС.Ссылка) КАК ПредставлениеСтавкиНДС,
        |        Номенклатура.КодБП2
        |    ),
        |    ПоступлениеТоваровУслуг.Оборудование.(
        |        Ссылка,
        |        НомерСтроки,
        |        ЕдиницаИзмерения,
        |        ЕдиницаИзмерения.Наименование,
        |        КоличествоМест,
        |        Количество,
        |        ЕдиницаИзмеренияМест,
        |        Коэффициент,
        |        Номенклатура,
        |        СтавкаНДС,
        |        Сумма,
        |        СуммаНДС,
        |        Цена,
        |        СчетУчетаБУ,
        |        СерияНоменклатуры,
        |        ХарактеристикаНоменклатуры,
        |        СчетУчетаНДС,
        |        СчетУчетаНУ,
        |        Склад,
        |        ПриходныйОрдер,
        |        ЗаказПоставщику,
        |        Номенклатура.КодБП2,
        |        Номенклатура.Наименование,
        |        Номенклатура.НаименованиеПолное,
        |        Номенклатура.ВидНоменклатуры.Наименование,
        |        СтавкаНДС.Порядок,
        |        ПРЕДСТАВЛЕНИЕССЫЛКИ(СтавкаНДС.Ссылка) КАК ПредставлениеСтавкиНДС,        
        |        ХарактеристикаНоменклатуры.Наименование,
        |        ЗаказПоставщику.Номер,
        |        ЗаказПоставщику.Дата
        |    )
        |ИЗ
        |    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
        |ГДЕ";
   twstx2n
 
9 - 13.02.20 - 08:25
(7) попытался сделать так:

ВЫБРАТЬ
    Запасы.КоррСчетУчета КАК КоррСчетУчета,
    СУММА(Запасы.Сумма) КАК Факт,
    СУММА(Спецификации.Количество * 1000) КАК Себестоимость
ИЗ
    РегистрНакопления.Запасы КАК Запасы
    ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК Спецификации
    ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации КАК Спецификация
ПО
    Запасы.КоррСчетУчета = Спецификации.Номенклатура.СчетУчетаЗатрат
    И Спецификация.Владелец.Ссылка = Запасы.Номенклатура

ГДЕ
    Запасы.Номенклатура = &Параметр
    И Спецификация.Владелец.Ссылка = &Параметр
    И Запасы.Регистратор ССЫЛКА Документ.РаспределениеЗатрат
    И Запасы.КоррСчетУчета.Наименование = "Списание плитного материала"

СГРУППИРОВАТЬ ПО
    Запасы.КоррСчетУчета

Пишет что там где ГДЕ ожидается имя таблицы.
   catena
 
10 - 13.02.20 - 08:27
ВЫБРАТЬ
    Запасы.КоррСчетУчета КАК КоррСчетУчета,
    СУММА(Запасы.Сумма) КАК Факт,
    СУММА(Спецификации.Количество * 1000) КАК Себестоимость
ИЗ
    РегистрНакопления.Запасы КАК Запасы
    ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК Спецификации
ПО
    Запасы.КоррСчетУчета = Спецификации.Номенклатура.СчетУчетаЗатрат
    И Спецификация.Ссылка.Владелец = Запасы.Номенклатура

ГДЕ
    Запасы.Номенклатура = &Параметр
    И Спецификация.Владелец.Ссылка = &Параметр
    И Запасы.Регистратор ССЫЛКА Документ.РаспределениеЗатрат
    И Запасы.КоррСчетУчета.Наименование = "Списание плитного материала"

СГРУППИРОВАТЬ ПО
    Запасы.КоррСчетУчета
   twstx2n
 
11 - 13.02.20 - 08:35
(10) там есть нюанс -
ГДЕ
    Запасы.Номенклатура = &Параметр
    И Спецификация.Владелец.Ссылка = &Параметр
т.к. Справочник.Спецификации.Состав КАК Спецификации (а Спецификация в прошлом запросе это было Справочник.Спецификации - то есть документ до табличной части) то подставил  И Справочник.Спецификация.Владелец.Ссылка = &Параметр
Пишет что поле не найдено.
   Simod
 
12 - 13.02.20 - 08:48
Я так понимаю, что отбор по наименованию или коду счета никого не удивляет..
   Simod
 
13 - 13.02.20 - 08:49
(11) У справочника "Спецификации" вообще есть Владелец?
   catena
 
14 - 13.02.20 - 08:54
(11)Ниче не понял, но очень интересно. Что такое "документ до табличной части"? Откройте конструктор запросов, там будут только те поля, которые есть, раз руками путаетесь.
   catena
 
15 - 13.02.20 - 08:55
(12)А Владелец.Ссылка? Он в своих-то словах путается, если еще и по несколько проблем разом решать, то совсем швах будет.
   twstx2n
 
16 - 13.02.20 - 09:04
В стартовом сообщении приведены два запроса, которые работают и дают результат. Но мне нужно их объеденить, чтобы было три поля. Оба из первого запроса и себестоимость из второго

Владелец у спецификаций есть - справочник номенклатура. Владелец.Ссылка это наименование номенклатуры.
   ДенисЧ
 
17 - 13.02.20 - 09:09
(16) А ты их объединил?
   ДенисЧ
 
18 - 13.02.20 - 09:09
Есличо (с) вот этот кусок запроса из (9)
"ИЗ
    РегистрНакопления.Запасы КАК Запасы
    ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК Спецификации
    ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации КАК Спецификация
ПО
    Запасы.КоррСчетУчета = Спецификации.Номенклатура.СчетУчетаЗатрат
    И Спецификация.Владелец.Ссылка = Запасы.Номенклатура"

Некорректен.
   catena
 
19 - 13.02.20 - 09:11
(16) Владелец.Ссылка - это во-первых не наименование, а во вторых лишнее обращение. Просто Владелец будет полезнее.
   twstx2n
 
20 - 13.02.20 - 09:11
(14) (17) просто если тупо соединить оба запроса из первого поста, то возникает ошибка что нельзя в соединении использовать запросы из табличных частей

Пытаюсь хоть как то обойти - не получается
Точнее урок что получилось (запрос в пятом сообщении) но в итоге получаю общую сумму по всем номенклатурам 

(18) то что он некорректный мне сама 1с пишет
   ДенисЧ
 
21 - 13.02.20 - 09:13
(20) А не надо тупо объединять. Надо объединять умно, учитывая синтаксис языка запросов.
А ты это не учитываешь
   welwel
 
22 - 13.02.20 - 09:13
(0) попробуйте сформулировать задачу (текст запроса) на обычном русском языке - это прояснит как саму задачу, так и конкретизирует элементы задачи для однозначного толкования
   ДенисЧ
 
23 - 13.02.20 - 09:14
ВЫБРАТЬ
    Запасы.КоррСчетУчета КАК КоррСчетУчета,
    СУММА(Запасы.Сумма) КАК Факт,
    СУММА(Спецификации.Количество * 1000) КАК Себестоимость
ИЗ
    РегистрНакопления.Запасы КАК Запасы
    ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК Спецификации
ПО
    Запасы.КоррСчетУчета = Спецификации.Номенклатура.СчетУчетаЗатрат
    И Спецификация.Ссылка.Владелец = Запасы.Номенклатура

ГДЕ
    Запасы.Номенклатура = &Параметр
    И Спецификация.Ссылка.Владелец = &Параметр
    И Запасы.Регистратор ССЫЛКА Документ.РаспределениеЗатрат
    И Запасы.КоррСчетУчета.Наименование = "Списание плитного материала"// За это нужно давать 5 лет строгого расстрела


СГРУППИРОВАТЬ ПО
    Запасы.КоррСчетУчета
   catena
 
24 - 13.02.20 - 09:18
(20)У тч есть ссылка на сам объект, прикинь))) Иди от обратного, соединяй с ТЧ.
   twstx2n
 
25 - 13.02.20 - 09:27
(22) конфигурация 1С УНФ (управление нашей фирмой). Задача - мне нужно сопоставить сумму списаний материалов из документа "Распределение затрат" и сумму по номенклатуре из справочника "Спецификация", который подчинен справочнику "Номенклатура". У каждой единицы номенклатуры есть Счет затрат (т.е. списали - и в регистр накопления "Запасы" передано, что по данному счету плюс такая то сумма)

По первому запросу - есть регистр накопления "Запасы", куда заносится информация из документа "Распределение затрат" (поэтому регистратор указан). В этом запросе я получаю информацию о том, сколько суммарно списано номенклатуры по указанному счету по номенклатуре, которая передается ссылкой.

По второму запросу - я из Спецификации получаю информацию о том, сколько было заложено денег по данному счету списания.
   twstx2n
 
26 - 13.02.20 - 09:29
(23) проблема в том, что Спецификация нигде не объявлена. Спецификации это ТЧ справочника. А вот как грамотно в запросе объявить, что Спецификация это сам справочник (а не его ТЧ) я не знаю.
   vicof
 
27 - 13.02.20 - 09:30
Спецификация.Ссылка это сам справочник
   catena
 
28 - 13.02.20 - 09:31
(26)Да исправь ты там псевдоним, все копируют не глядя, блин
   catena
 
29 - 13.02.20 - 09:32
ВЫБРАТЬ
    Запасы.КоррСчетУчета КАК КоррСчетУчета,
    СУММА(Запасы.Сумма) КАК Факт,
    СУММА(СПЕЦИФИКАЦИИБИЛНЕВАЖНООТКУДА.Количество * 1000) КАК Себестоимость
ИЗ
    РегистрНакопления.Запасы КАК Запасы
    ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК СПЕЦИФИКАЦИИБИЛНЕВАЖНООТКУДА
ПО
    Запасы.КоррСчетУчета = СПЕЦИФИКАЦИИБИЛНЕВАЖНООТКУДА.Номенклатура.СчетУчетаЗатрат
    И СПЕЦИФИКАЦИИБИЛНЕВАЖНООТКУДА.Ссылка.Владелец = Запасы.Номенклатура

ГДЕ
    Запасы.Номенклатура = &Параметр
    И СПЕЦИФИКАЦИИБИЛНЕВАЖНООТКУДА.Ссылка.Владелец = &Параметр
    И Запасы.Регистратор ССЫЛКА Документ.РаспределениеЗатрат
    И Запасы.КоррСчетУчета.Наименование = "Списание плитного материала"// За это нужно давать 5 лет строгого расстрела



СГРУППИРОВАТЬ ПО
    Запасы.КоррСчетУчета
   twstx2n
 
30 - 13.02.20 - 09:53
(29) блин, весь гемор шёл из-за слова "Спецификация" при изначальной попытке соединить.
Заменил Вашей "Абракадаброй" :) (да хоть любой другой) - работает.

Огромное спасибо!

Касательно 5 лет строгача - я не волшебник, я только учусь :) А если серьёзно - я бухгалтер, а программист, которого нанимали сказал что выполнить такое сведение нереально. Но блин, отчёт то мне нужен с этими данными, иначе летаю по документам как заяц по полю и когда в день нужно летать раз 30 по разным спецификациям - ни разу не приколько. Поэтому писал "как вижу". Да, с точки зрения нормального программиста - может и заслуживаю расстрела, но для меня главное увидеть итоговый результат. И теперь хоть в одном документе всё вижу.
 
 Рекламное место пустует
   ДенисЧ
 
31 - 13.02.20 - 09:55
(30) "я бухгалтер, а программист" - Незнание закона не избавляет от ответственности.
"программист, которого нанимали сказал что выполнить такое сведение нереально" - зачем вы называете школьника-выпускника 6го класса ЦПШ "программистом"? Неужели только за то, что он умеет включать компьютер?
   twstx2n
 
32 - 13.02.20 - 10:23
(31) я воздержусь от обсуждения программиста - не я его нанимал, только переписывался/созванивался. Обидно только, что полтора месяца он мурыжил: то обещал сделать, то начал разбираться и наши пожелания выходят за пределы возможностей конфигурации.
ЗЫ - строчку со счётом у себя вообще убрал, как выяснилось в итоговом варианте всё кошерно и без неё.
   catena
 
33 - 13.02.20 - 10:55
(32)Теперь можете смело идти к тому, кто нанимал и обоснованно говорить, что эта особь некомпетентна.


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