0

Построение запроса из регистра бухгалтерии

#1С 8.2#1С Бухгалтерия

Добрый день. У элементов справочника ОсновныеСредства есть вкладка “Драгметаллы”. Нужно на основании остатков основных средств из РегистраБухгалтерии.Хозрасчетный получить отчёт вида:

Подразделение 100   золото 10
                            серебро 15
                            платина 0,3
                            МПГ 1,2

И так по каждому подразделению. Запрос был следующий:

"ВЫБРАТЬ
                          | ХозрасчетныйОстатки.Субконто1.ДИТ_ДрагоценныеМеталлы.(
                          |     Ссылка,
                          |     ВидМеталла,
                          |     ВесГраммы
                          | )
                          |ИЗ
                          | РегистрБухгалтерии.Хозрасчетный.Остатки КАК ХозрасчетныйОстатки
                  |ГДЕ
                          | ХозрасчетныйОстатки.Подразделение = &Подразделение"

Но 1С ругается из-за обращения к вложенной таблице через поле составного типа. В этом отчёте уже есть другой запрос, но он выводит остатки по контрагентам, а не подразделениям. Да и он слишком сложен для такого небольшого отчёта, хотелось бы сделать попроще. Возможно ли это? Как всё-таки можно получить итоговую сумму по металлам? Вполне возможно, что я не понимаю полностью имеющийся запрос и вообще не из тех мест пытаюсь что-то достать. Заранее спасибо! Текст имеющегося запроса:

"ВЫБРАТЬ
    |   ДанныеДМ.ОбъектУчета КАК ОбъектУчета,
    |   ПОДСТРОКА(ДанныеДМ.ОбъектУчета.НаименованиеПолное, 1, 300) КАК Наименование,
    |   ВЫБОР
    |       КОГДА ДанныеДМ.ВидМеталла = ЗНАЧЕНИЕ(Перечисление.ДИТ_ВидыДрагоценныхМеталлов.Золото)
    |           ТОГДА ""175001""
    |       КОГДА ДанныеДМ.ВидМеталла = ЗНАЧЕНИЕ(Перечисление.ДИТ_ВидыДрагоценныхМеталлов.Серебро)
    |           ТОГДА ""175002""
    |       КОГДА ДанныеДМ.ВидМеталла = ЗНАЧЕНИЕ(Перечисление.ДИТ_ВидыДрагоценныхМеталлов.Платина)
    |           ТОГДА ""175003""
    |       КОГДА ДанныеДМ.ВидМеталла = ЗНАЧЕНИЕ(Перечисление.ДИТ_ВидыДрагоценныхМеталлов.МеталлыПлатиновойГруппы)
    |           ТОГДА ""175004""
    |   КОНЕЦ КАК КодОКП,
    |   ДанныеДМ.Количество КАК МассаГраммы,
    |   ДанныеДМ.МОЛ КАК МОЛ,
    |   ДанныеДМ.Подразделение,
    |   ДанныеДМ.ТипОбъектаУчета,
    |   ДанныеДМ.ИнвентарныйНомер КАК ИнвентарныйНомер,
    |   ДанныеДМ.КоличествоОстаток,
    |   ДанныеДМ.ЗаводскойНомер КАК ЗаводскойНомер,
    |   ДанныеДМ.НомерПаспорта КАК НомерПаспорта,
    |   ДанныеДМ.ДатаВыпуска КАК ДатаВыпуска,
    |   ДанныеДМ.КодЕИ КАК КодЕИ,
    |   ДанныеДМ.ЕИ КАК ЕИ
    |ИЗ
    |   (ВЫБРАТЬ
    |       ОсновныеСредстваДИТ_ДрагоценныеМеталлы.Ссылка КАК ОбъектУчета,
    |       ОсновныеСредстваДИТ_ДрагоценныеМеталлы.ВидМеталла КАК ВидМеталла,
    |       СУММА(ВЫБОР
    |               КОГДА ОсновныеСредстваДИТ_ДрагоценныеМеталлы.Чистота = 0
    |                   ТОГДА ОсновныеСредстваДИТ_ДрагоценныеМеталлы.ВесГраммы
    |               ИНАЧЕ ОсновныеСредстваДИТ_ДрагоценныеМеталлы.Чистота * ОсновныеСредстваДИТ_ДрагоценныеМеталлы.ВесГраммы
    |           КОНЕЦ) КАК Количество,
    |       МестонахождениеОСБухгалтерскийУчетСрезПоследних.МОЛ КАК МОЛ,
    |       МестонахождениеОСБухгалтерскийУчетСрезПоследних.Местонахождение КАК Подразделение,
    |       ""Основные средства"" КАК ТипОбъектаУчета,
    |       ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер КАК ИнвентарныйНомер,
    |       1 КАК КоличествоОстаток,
    |       ПОДСТРОКА(ОсновныеСредстваДИТ_ДрагоценныеМеталлы.Ссылка.ЗаводскойНомер, 1, 300) КАК ЗаводскойНомер,
    |       ПОДСТРОКА(ОсновныеСредстваДИТ_ДрагоценныеМеталлы.Ссылка.НомерПаспорта, 1, 300) КАК НомерПаспорта,
    |       ОсновныеСредстваДИТ_ДрагоценныеМеталлы.Ссылка.ДатаВыпуска КАК ДатаВыпуска,
    |       ""796"" КАК КодЕИ,
    |       ""шт"" КАК ЕИ
    |   ИЗ
    |       РегистрБухгалтерии.Хозрасчетный.Остатки(
    |               &ДатаКон,
    |               ,
    |               ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства),
    |               Организация = &Организация
    |                   И Субконто1.ДИТ_СодержитДрагоценныеМеталлы) КАК ХозрасчетныйОстатки
    |           ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОсновныеСредства.ДИТ_ДрагоценныеМеталлы КАК ОсновныеСредстваДИТ_ДрагоценныеМеталлы
    |               ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестонахождениеОСБухгалтерскийУчет.СрезПоследних(&ДатаКон, ) КАК МестонахождениеОСБухгалтерскийУчетСрезПоследних
    |               ПО ОсновныеСредстваДИТ_ДрагоценныеМеталлы.Ссылка = МестонахождениеОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
    |               ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&ДатаКон, ) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
    |               ПО ОсновныеСредстваДИТ_ДрагоценныеМеталлы.Ссылка = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
    |           ПО ХозрасчетныйОстатки.Субконто1 = ОсновныеСредстваДИТ_ДрагоценныеМеталлы.Ссылка
    |   ГДЕ
    |       ХозрасчетныйОстатки.СуммаОстатокДт > 0
    |
    |   СГРУППИРОВАТЬ ПО
    |       ОсновныеСредстваДИТ_ДрагоценныеМеталлы.Ссылка,
    |       ОсновныеСредстваДИТ_ДрагоценныеМеталлы.ВидМеталла,
    |       МестонахождениеОСБухгалтерскийУчетСрезПоследних.МОЛ,
    |       МестонахождениеОСБухгалтерскийУчетСрезПоследних.Местонахождение,
    |       ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер,
    |       ПОДСТРОКА(ОсновныеСредстваДИТ_ДрагоценныеМеталлы.Ссылка.ЗаводскойНомер, 1, 300),
    |       ПОДСТРОКА(ОсновныеСредстваДИТ_ДрагоценныеМеталлы.Ссылка.НомерПаспорта, 1, 300),
    |       ОсновныеСредстваДИТ_ДрагоценныеМеталлы.Ссылка.ДатаВыпуска
    |
    |   ОБЪЕДИНИТЬ ВСЕ
    |
    |   ВЫБРАТЬ
    |       НоменклатураДИТ_ДрагоценныеМеталлы.Ссылка,
    |       НоменклатураДИТ_ДрагоценныеМеталлы.ВидМеталла,
    |       СУММА(ВЫБОР
    |               КОГДА НоменклатураДИТ_ДрагоценныеМеталлы.Чистота = 0
    |                   ТОГДА НоменклатураДИТ_ДрагоценныеМеталлы.ВесГраммы
    |               ИНАЧЕ НоменклатураДИТ_ДрагоценныеМеталлы.Чистота * НоменклатураДИТ_ДрагоценныеМеталлы.ВесГраммы
    |           КОНЕЦ * ХозрасчетныйОстатки.КоличествоОстаток),
    |       ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка),
    |       ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка),
    |       ""Материалы"",
    |       """",
    |       ХозрасчетныйОстатки.КоличествоОстаток,
    |       """",
    |       """",
    |       """",
    |       НоменклатураДИТ_ДрагоценныеМеталлы.Ссылка.БазоваяЕдиницаИзмерения.Код,
    |       НоменклатураДИТ_ДрагоценныеМеталлы.Ссылка.БазоваяЕдиницаИзмерения.Наименование
    |   ИЗ
    |       РегистрБухгалтерии.Хозрасчетный.Остатки(
    |               &ДатаКон,
    |               ,
    |               ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура),
    |               Организация = &Организация
    |                   И Субконто1.ДИТ_СодержитДрагоценныеМеталлы) КАК ХозрасчетныйОстатки
    |           ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДИТ_ДрагоценныеМеталлы КАК НоменклатураДИТ_ДрагоценныеМеталлы
    |           ПО ХозрасчетныйОстатки.Субконто1 = НоменклатураДИТ_ДрагоценныеМеталлы.Ссылка
    |   ГДЕ
    |       НоменклатураДИТ_ДрагоценныеМеталлы.Ссылка.ДИТ_СодержитДрагоценныеМеталлы
    |       И (НЕ НоменклатураДИТ_ДрагоценныеМеталлы.Ссылка.ПометкаУдаления)
    |       И ХозрасчетныйОстатки.КоличествоОстаток > 0
    |
    |   СГРУППИРОВАТЬ ПО
    |       НоменклатураДИТ_ДрагоценныеМеталлы.Ссылка,
    |       НоменклатураДИТ_ДрагоценныеМеталлы.ВидМеталла,
    |       ХозрасчетныйОстатки.КоличествоОстаток,
    |       НоменклатураДИТ_ДрагоценныеМеталлы.Ссылка.БазоваяЕдиницаИзмерения.Код,
    |       НоменклатураДИТ_ДрагоценныеМеталлы.Ссылка.БазоваяЕдиницаИзмерения.Наименование) КАК ДанныеДМ
    |ИТОГИ
    |   СУММА(МассаГраммы),
    |   МИНИМУМ(МОЛ),
    |   МИНИМУМ(ИнвентарныйНомер),
    |   МИНИМУМ(ЗаводскойНомер),
    |   МИНИМУМ(НомерПаспорта),
    |   МИНИМУМ(ДатаВыпуска),
    |   МИНИМУМ(КодЕИ),
    |   МИНИМУМ(ЕИ)
    |ПО
    |   ОБЩИЕ,
    |   ОбъектУчета,
    |   КодОКП"
 993 1
Добавленоgamograff458 дней назад
Последняя активность448 дней назад


Добавить комментарий

Кирилл написал:457 дней назад0

Доброго дня!

Запрос большой не осилил, логики до конца не понял, данных не видел :)

Но по вашей проблеме всё просто:

  1. Получите табличные части всех элементов справочников ОС и поместите во временную таблицу
  2. Следующим подзапросом получите просто список всех драгметаллов по подразделениям и соедините с таблицей из пункта 1.
  3. Не знаю как вы выводите отчет, скорее всего в СКД. Поэтому там не возникнет проблем сгруппировать полученную таблицу по подразделениям.

Ответить

Задать вопрос!

Наш канал на Youtube

Изучаете 1С? Скачайте 200 видео по 1С бесплатно:

Похожее

1С 8.2: Ошибка при вызове метода контекста (Выполнить) Ожидается выражение "ВЫБРАТЬ"

Всем привет. Помогите пожалуйста!!!!!!!!!!!!!!! Выдает ошибку. Была пропущена т...

Проблема с расчетом себестоимости в УТ 11.1.10.131

Добрый день, помогите пожалуйста разобраться с проблемой. При закрытии месяца вы...

Динамический список

Добрый день! В бухгалтерии 3 необходимо сделать вывод дополнительной колонки в ...

Если нет разницы!!Зачем тогда Условие В ВТ? Или все таки разница ЕСТЬ!!!!!

Привет. Пожалуйста подскажите! И ТАК ВОПРОС: В параметрах виртуальной таблицы ...

Запрос к регистру накопления выводит двойные записи

Добрый день. Из регистра накопления требуется выбрать начальный, конечный остатк...

Новое

Концептуальная модель (инфологическая) распределенной БД

Очень нужна ваша помощь. Создала распределенную 1С БД( хоть она и не распределен...

Где находится анткетирование клиентов в УТ 11?

Подскажите где почитать про анкетирование в УТ. Нужно изучить как оно устроено....

беда :(

Добрый день, Помогите разобраться, пжл. По неизвестным причинам с помощью моих в...

постоянное изменение макета

Добрый день! Подскажите по такой ситуации: есть небольшой макет этикетки, в нем,...

НДФЛ при выплате аванса

Добрый день! Подскажите пожалуйста, как сделать чтобы в зуп 3.0 как при выплате ...