| 
    
        
     
     | 
    
  | 
Обращение к табличным частям в запросе | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        twstx2n    
     12.02.20 
            ✎
    23:59 
 | 
         
        Пытаюсь наваять внешний отчет в 1С УНФ. 
 
        Есть два запроса: ВЫБРАТЬ Запасы.КоррСчетУчета КАК КоррСчетУчета, СУММА(Запасы.Сумма) КАК Сумма ИЗ РегистрНакопления.Запасы КАК Запасы ГДЕ Запасы.Номенклатура = &Параметр И Запасы.Регистратор ССЫЛКА Документ.РаспределениеЗатрат И Запасы.КоррСчетУчета.Код = "20.01" СГРУППИРОВАТЬ ПО Запасы.КоррСчетУчета ; ВЫБРАТЬ Спецификации.Состав.Номенклатура.СчетУчетаЗатрат КАК СчетУчетаЗатрат, СУММА(Спецификации.Состав.Количество * 1000) КАК Себестоимость ИЗ Справочник.Спецификации КАК Спецификации ГДЕ Спецификации.Владелец.Ссылка = &Параметр И Спецификации.Состав.Номенклатура.СчетУчетаЗатрат.Код = "20.01" СГРУППИРОВАТЬ ПО Спецификации.Состав.Номенклатура.СчетУчетаЗатрат Но при попытке сделать полное соединение ругается на то, что нельзя использовать в запросе обращение к табличным частям. Поле соединения - Запасы.КоррСчетУчета и Спецификации.Состав.Номенклатура.СчетУчетаЗатрат Подскажите, куда рыть.  | 
|||
| 
    1
    
        palsergeich    
     13.02.20 
            ✎
    00:13 
 | 
         
        (0) Соединяй с ТЧ явно     
         | 
|||
| 
    2
    
        palsergeich    
     13.02.20 
            ✎
    00:14 
 | 
         
        (1) Тч документа с таблицей документа имелось ввиду.     
         | 
|||
| 
    3
    
        palsergeich    
     13.02.20 
            ✎
    00:15 
 | 
         
        (2) Физически на уровне СУБД это разные таблицы связанные через поле Ссылка     
         | 
|||
| 
    4
    
        palsergeich    
     13.02.20 
            ✎
    00:16 
 | 
         
        (3) А согласованность организовывается на уровне платформы     
         | 
|||
| 
    5
    
        twstx2n    
     13.02.20 
            ✎
    01:13 
 | 
         
        (1) загуглил. Получилось что то такое
 
        ВЫБРАТЬ Запасы.КоррСчетУчета КАК КоррСчетУчета, СУММА(Запасы.Сумма) КАК Факт, СУММА(Спецификации.Количество * 1000) КАК Себестоимость ИЗ РегистрНакопления.Запасы КАК Запасы ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК Спецификации ПО Запасы.КоррСчетУчета = Спецификации.Номенклатура.СчетУчетаЗатрат ГДЕ Запасы.Номенклатура = &Параметр И Запасы.Регистратор ССЫЛКА Документ.РаспределениеЗатрат И Запасы.КоррСчетУчета.Наименование = "Списание плитного материала" СГРУППИРОВАТЬ ПО Запасы.КоррСчетУчета Но по ходу в этом варианте он взял суммы со всех заказов и спецификаций. А вот как вычленить конкретный, что передаётся через &параметр я что то не могу догнать.  | 
|||
| 
    6
    
        Chameleon1980    
     13.02.20 
            ✎
    04:53 
 | 
         
        (5)что и советовалось в 1     
         | 
|||
| 
    7
    
        catena    
     13.02.20 
            ✎
    07:04 
 | 
         
        (5)Добавить соединение по номенклатуре?     
         | 
|||
| 
    8
    
        Kigo_Kigo    
     13.02.20 
            ✎
    08:09 
 | 
         
        запрос на тч документа, далее сам
 
        | ПоступлениеТоваровУслуг.ФактДатаПоступления, | ПоступлениеТоваровУслуг.Товары.( | Ссылка, | НомерСтроки, | ЕдиницаИзмерения, | ЕдиницаИзмерения.Наименование, | КоличествоМест, | Количество, | ЕдиницаИзмеренияМест, | Коэффициент, | Номенклатура, | СтавкаНДС, | Сумма, | СуммаНДС, | Цена, | СчетУчетаБУ, | СерияНоменклатуры, | ХарактеристикаНоменклатуры, | Заказ, | СчетУчетаНДС, | СчетУчетаНУ, | ОтражениеВУСН, | Склад, | ПриходныйОрдер, | ЗаказПоставщику, | КлючСвязи, | ЕдиницаИзмеренияХранение, | КоличествоХранение, | Подразделение, | Номенклатура.КодБП2, | Номенклатура.Наименование, | Номенклатура.НаименованиеПолное, | Номенклатура.ВидНоменклатуры.Наименование, | СтавкаНДС.Порядок, | ПРЕДСТАВЛЕНИЕССЫЛКИ(СтавкаНДС.Ссылка) КАК ПредставлениеСтавкиНДС, | ХарактеристикаНоменклатуры.Наименование, | Заказ КАК Заказ1, | Заказ.Номер, | Заказ.Дата, | ЗаказПоставщику.Номер, | ЗаказПоставщику.Дата | ), | ПоступлениеТоваровУслуг.Услуги.( | Ссылка, | НомерСтроки, | Количество, | Содержание, | Заказ, | Номенклатура, | СтавкаНДС, | Сумма, | СуммаНДС, | Цена, | НоменклатурнаяГруппа, | Подразделение, | ПодразделениеОрганизации, | СтатьяЗатрат, | СчетЗатрат, | Субконто1, | Субконто2, | Субконто3, | СчетЗатратНУ, | СубконтоНУ1, | СубконтоНУ2, | СубконтоНУ3, | СчетУчетаНДС, | Продукция, | ХарактеристикаПродукции, | СерияПродукции, | ОбъектСтроительства, | ОтражениеВУСН, | Проект, | ЗаказПоставщику, | СпособРаспределенияЗатратНаВыпуск, | СпособСтроительства, | Номенклатура.Наименование, | СтавкаНДС.Порядок, | ПРЕДСТАВЛЕНИЕССЫЛКИ(СтавкаНДС.Ссылка) КАК ПредставлениеСтавкиНДС, | Номенклатура.КодБП2 | ), | ПоступлениеТоваровУслуг.Оборудование.( | Ссылка, | НомерСтроки, | ЕдиницаИзмерения, | ЕдиницаИзмерения.Наименование, | КоличествоМест, | Количество, | ЕдиницаИзмеренияМест, | Коэффициент, | Номенклатура, | СтавкаНДС, | Сумма, | СуммаНДС, | Цена, | СчетУчетаБУ, | СерияНоменклатуры, | ХарактеристикаНоменклатуры, | СчетУчетаНДС, | СчетУчетаНУ, | Склад, | ПриходныйОрдер, | ЗаказПоставщику, | Номенклатура.КодБП2, | Номенклатура.Наименование, | Номенклатура.НаименованиеПолное, | Номенклатура.ВидНоменклатуры.Наименование, | СтавкаНДС.Порядок, | ПРЕДСТАВЛЕНИЕССЫЛКИ(СтавкаНДС.Ссылка) КАК ПредставлениеСтавкиНДС, | ХарактеристикаНоменклатуры.Наименование, | ЗаказПоставщику.Номер, | ЗаказПоставщику.Дата | ) |ИЗ | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг |ГДЕ";  | 
|||
| 
    9
    
        twstx2n    
     13.02.20 
            ✎
    08:25 
 | 
         
        (7) попытался сделать так:
 
        ВЫБРАТЬ Запасы.КоррСчетУчета КАК КоррСчетУчета, СУММА(Запасы.Сумма) КАК Факт, СУММА(Спецификации.Количество * 1000) КАК Себестоимость ИЗ РегистрНакопления.Запасы КАК Запасы ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК Спецификации ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации КАК Спецификация ПО Запасы.КоррСчетУчета = Спецификации.Номенклатура.СчетУчетаЗатрат И Спецификация.Владелец.Ссылка = Запасы.Номенклатура ГДЕ Запасы.Номенклатура = &Параметр И Спецификация.Владелец.Ссылка = &Параметр И Запасы.Регистратор ССЫЛКА Документ.РаспределениеЗатрат И Запасы.КоррСчетУчета.Наименование = "Списание плитного материала" СГРУППИРОВАТЬ ПО Запасы.КоррСчетУчета Пишет что там где ГДЕ ожидается имя таблицы.  | 
|||
| 
    10
    
        catena    
     13.02.20 
            ✎
    08:27 
 | 
         
        ВЫБРАТЬ
 
        Запасы.КоррСчетУчета КАК КоррСчетУчета, СУММА(Запасы.Сумма) КАК Факт, СУММА(Спецификации.Количество * 1000) КАК Себестоимость ИЗ РегистрНакопления.Запасы КАК Запасы ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК Спецификации ПО Запасы.КоррСчетУчета = Спецификации.Номенклатура.СчетУчетаЗатрат И Спецификация.Ссылка.Владелец = Запасы.Номенклатура ГДЕ Запасы.Номенклатура = &Параметр И Спецификация.Владелец.Ссылка = &Параметр И Запасы.Регистратор ССЫЛКА Документ.РаспределениеЗатрат И Запасы.КоррСчетУчета.Наименование = "Списание плитного материала" СГРУППИРОВАТЬ ПО Запасы.КоррСчетУчета  | 
|||
| 
    11
    
        twstx2n    
     13.02.20 
            ✎
    08:35 
 | 
         
        (10) там есть нюанс - 
 
        ГДЕ Запасы.Номенклатура = &Параметр И Спецификация.Владелец.Ссылка = &Параметр т.к. Справочник.Спецификации.Состав КАК Спецификации (а Спецификация в прошлом запросе это было Справочник.Спецификации - то есть документ до табличной части) то подставил И Справочник.Спецификация.Владелец.Ссылка = &Параметр Пишет что поле не найдено.  | 
|||
| 
    12
    
        Simod    
     13.02.20 
            ✎
    08:48 
 | 
         
        Я так понимаю, что отбор по наименованию или коду счета никого не удивляет..     
         | 
|||
| 
    13
    
        Simod    
     13.02.20 
            ✎
    08:49 
 | 
         
        (11) У справочника "Спецификации" вообще есть Владелец?     
         | 
|||
| 
    14
    
        catena    
     13.02.20 
            ✎
    08:54 
 | 
         
        (11)Ниче не понял, но очень интересно. Что такое "документ до табличной части"? Откройте конструктор запросов, там будут только те поля, которые есть, раз руками путаетесь.     
         | 
|||
| 
    15
    
        catena    
     13.02.20 
            ✎
    08:55 
 | 
         
        (12)А Владелец.Ссылка? Он в своих-то словах путается, если еще и по несколько проблем разом решать, то совсем швах будет.     
         | 
|||
| 
    16
    
        twstx2n    
     13.02.20 
            ✎
    09:04 
 | 
         
        В стартовом сообщении приведены два запроса, которые работают и дают результат. Но мне нужно их объеденить, чтобы было три поля. Оба из первого запроса и себестоимость из второго
 
        Владелец у спецификаций есть - справочник номенклатура. Владелец.Ссылка это наименование номенклатуры.  | 
|||
| 
    17
    
        ДенисЧ    
     13.02.20 
            ✎
    09:09 
 | 
         
        (16) А ты их объединил?     
         | 
|||
| 
    18
    
        ДенисЧ    
     13.02.20 
            ✎
    09:09 
 | 
         
        Есличо (с) вот этот кусок запроса из (9)
 
        "ИЗ РегистрНакопления.Запасы КАК Запасы ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК Спецификации ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации КАК Спецификация ПО Запасы.КоррСчетУчета = Спецификации.Номенклатура.СчетУчетаЗатрат И Спецификация.Владелец.Ссылка = Запасы.Номенклатура" Некорректен.  | 
|||
| 
    19
    
        catena    
     13.02.20 
            ✎
    09:11 
 | 
         
        (16) Владелец.Ссылка - это во-первых не наименование, а во вторых лишнее обращение. Просто Владелец будет полезнее.     
         | 
|||
| 
    20
    
        twstx2n    
     13.02.20 
            ✎
    09:11 
 | 
         
        (14) (17) просто если тупо соединить оба запроса из первого поста, то возникает ошибка что нельзя в соединении использовать запросы из табличных частей
 
        Пытаюсь хоть как то обойти - не получается Точнее урок что получилось (запрос в пятом сообщении) но в итоге получаю общую сумму по всем номенклатурам (18) то что он некорректный мне сама 1с пишет  | 
|||
| 
    21
    
        ДенисЧ    
     13.02.20 
            ✎
    09:13 
 | 
         
        (20) А не надо тупо объединять. Надо объединять умно, учитывая синтаксис языка запросов.
 
        А ты это не учитываешь  | 
|||
| 
    22
    
        welwel    
     13.02.20 
            ✎
    09:13 
 | 
         
        (0) попробуйте сформулировать задачу (текст запроса) на обычном русском языке - это прояснит как саму задачу, так и конкретизирует элементы задачи для однозначного толкования     
         | 
|||
| 
    23
    
        ДенисЧ    
     13.02.20 
            ✎
    09:14 
 | 
         
        ВЫБРАТЬ
 
        Запасы.КоррСчетУчета КАК КоррСчетУчета, СУММА(Запасы.Сумма) КАК Факт, СУММА(Спецификации.Количество * 1000) КАК Себестоимость ИЗ РегистрНакопления.Запасы КАК Запасы ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК Спецификации ПО Запасы.КоррСчетУчета = Спецификации.Номенклатура.СчетУчетаЗатрат И Спецификация.Ссылка.Владелец = Запасы.Номенклатура ГДЕ Запасы.Номенклатура = &Параметр И Спецификация.Ссылка.Владелец = &Параметр И Запасы.Регистратор ССЫЛКА Документ.РаспределениеЗатрат И Запасы.КоррСчетУчета.Наименование = "Списание плитного материала" // За это нужно давать 5 лет строгого расстрела СГРУППИРОВАТЬ ПО Запасы.КоррСчетУчета  | 
|||
| 
    24
    
        catena    
     13.02.20 
            ✎
    09:18 
 | 
         
        (20)У тч есть ссылка на сам объект, прикинь))) Иди от обратного, соединяй с ТЧ.     
         | 
|||
| 
    25
    
        twstx2n    
     13.02.20 
            ✎
    09:27 
 | 
         
        (22) конфигурация 1С УНФ (управление нашей фирмой). Задача - мне нужно сопоставить сумму списаний материалов из документа "Распределение затрат" и сумму по номенклатуре из справочника "Спецификация", который подчинен справочнику "Номенклатура". У каждой единицы номенклатуры есть Счет затрат (т.е. списали - и в регистр накопления "Запасы" передано, что по данному счету плюс такая то сумма)
 
        По первому запросу - есть регистр накопления "Запасы", куда заносится информация из документа "Распределение затрат" (поэтому регистратор указан). В этом запросе я получаю информацию о том, сколько суммарно списано номенклатуры по указанному счету по номенклатуре, которая передается ссылкой. По второму запросу - я из Спецификации получаю информацию о том, сколько было заложено денег по данному счету списания.  | 
|||
| 
    26
    
        twstx2n    
     13.02.20 
            ✎
    09:29 
 | 
         
        (23) проблема в том, что Спецификация нигде не объявлена. Спецификации это ТЧ справочника. А вот как грамотно в запросе объявить, что Спецификация это сам справочник (а не его ТЧ) я не знаю.     
         | 
|||
| 
    27
    
        vicof    
     13.02.20 
            ✎
    09:30 
 | 
         
        Спецификация.Ссылка это сам справочник     
         | 
|||
| 
    28
    
        catena    
     13.02.20 
            ✎
    09:31 
 | 
         
        (26)Да исправь ты там псевдоним, все копируют не глядя, блин     
         | 
|||
| 
    29
    
        catena    
     13.02.20 
            ✎
    09:32 
 | 
         
        ВЫБРАТЬ
 
        Запасы.КоррСчетУчета КАК КоррСчетУчета, СУММА(Запасы.Сумма) КАК Факт, СУММА(СПЕЦИФИКАЦИИБИЛНЕВАЖНООТКУДА.Количество * 1000) КАК Себестоимость ИЗ РегистрНакопления.Запасы КАК Запасы ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК СПЕЦИФИКАЦИИБИЛНЕВАЖНООТКУДА ПО Запасы.КоррСчетУчета = СПЕЦИФИКАЦИИБИЛНЕВАЖНООТКУДА.Номенклатура.СчетУчетаЗатрат И СПЕЦИФИКАЦИИБИЛНЕВАЖНООТКУДА.Ссылка.Владелец = Запасы.Номенклатура ГДЕ Запасы.Номенклатура = &Параметр И СПЕЦИФИКАЦИИБИЛНЕВАЖНООТКУДА.Ссылка.Владелец = &Параметр И Запасы.Регистратор ССЫЛКА Документ.РаспределениеЗатрат И Запасы.КоррСчетУчета.Наименование = "Списание плитного материала"// За это нужно давать 5 лет строгого расстрела СГРУППИРОВАТЬ ПО Запасы.КоррСчетУчета  | 
|||
| 
    30
    
        twstx2n    
     13.02.20 
            ✎
    09:53 
 | 
         
        (29) блин, весь гемор шёл из-за слова "Спецификация" при изначальной попытке соединить.
 
        Заменил Вашей "Абракадаброй" :) (да хоть любой другой) - работает. Огромное спасибо! Касательно 5 лет строгача - я не волшебник, я только учусь :) А если серьёзно - я бухгалтер, а программист, которого нанимали сказал что выполнить такое сведение нереально. Но блин, отчёт то мне нужен с этими данными, иначе летаю по документам как заяц по полю и когда в день нужно летать раз 30 по разным спецификациям - ни разу не приколько. Поэтому писал "как вижу". Да, с точки зрения нормального программиста - может и заслуживаю расстрела, но для меня главное увидеть итоговый результат. И теперь хоть в одном документе всё вижу.  | 
|||
| 
    31
    
        ДенисЧ    
     13.02.20 
            ✎
    09:55 
 | 
         
        (30) "я бухгалтер, а программист" - Незнание закона не избавляет от ответственности.
 
        "программист, которого нанимали сказал что выполнить такое сведение нереально" - зачем вы называете школьника-выпускника 6го класса ЦПШ "программистом"? Неужели только за то, что он умеет включать компьютер?  | 
|||
| 
    32
    
        twstx2n    
     13.02.20 
            ✎
    10:23 
 | 
         
        (31) я воздержусь от обсуждения программиста - не я его нанимал, только переписывался/созванивался. Обидно только, что полтора месяца он мурыжил: то обещал сделать, то начал разбираться и наши пожелания выходят за пределы возможностей конфигурации. 
 
        ЗЫ - строчку со счётом у себя вообще убрал, как выяснилось в итоговом варианте всё кошерно и без неё.  | 
|||
| 
    33
    
        catena    
     13.02.20 
            ✎
    10:55 
 | 
         
        (32)Теперь можете смело идти к тому, кто нанимал и обоснованно говорить, что эта особь некомпетентна.     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |