|
Обращение к табличным частям в запросе | ☑ | ||
---|---|---|---|---|
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)Теперь можете смело идти к тому, кто нанимал и обоснованно говорить, что эта особь некомпетентна.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |