Вход | Регистрация
 
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 или кнопку "Обновить" в браузере.