Версия для печати темы (https://pro1c.org.ua/index.php?s=e0ce7da5648029d7e67e448f15bcf626&showtopic=53061)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Данные из регистратора через СКД

Автор: Володька 16.07.19, 15:05

Добрый день, бьюсь с проблемой, не знаю, как так сделать:
Конфигурация УТ3.1
1. Есть Регистр накопления ТоварыНаСкладах, использую ОстаткиИОбороты.
Получаю таблицу 1
Номенклатура, Регистратор, Начало, Приход, Расход, Конец.
Группировка Номенклатура, Регистратор.
2. Регистраторами этой таблицы выступают очень много документов, но почти у всех (кроме КорректировкиРегистров) есть Табличная часть Товары с полями (Цена или Сумма)
Вопрос, уважаемые знатоки:
Как мне их объединить и получить любое из этих полей (сумма или цена) в таблицу 1?

Автор: pablo 16.07.19, 16:02

Путем левого соединения всех типов документа регистратора. Короткого и быстрого пути нет.

Автор: Vladal 17.07.19, 10:19

Володька @ Вчера, 16:05 * ,
Примерно так:

Получить таблицу оборотов с регистратором.

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
ПОМЕСТИТЬ втОбороты
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
;


Затем по каждому виду документов добавлять по условиям Ссылка = Регистратор и Номенклатура ТЧ = Номенклатура из регистра
ГДЕ
    (Ссылка, Номенклатура) В
            (ВЫБРАТЬ
                втОбороты.Регистратор,
                втОбороты.Номенклатура
            ИЗ
                втОбороты КАК втОбороты)
и группировать по номенклатуре и цене.

Получится примерно так:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    АвансовыйОтчетТовары.Ссылка КАК Ссылка,
    АвансовыйОтчетТовары.Номенклатура КАК Номенклатура,
    АвансовыйОтчетТовары.Цена КАК Цена,
    СУММА(АвансовыйОтчетТовары.Сумма) КАК Сумма
ПОМЕСТИТЬ втНоменклатураЦеныСумма
ИЗ
    Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчетТовары
ГДЕ
    (Ссылка, Номенклатура) В
            (ВЫБРАТЬ
                втОбороты.Регистратор,
                втОбороты.Номенклатура
            ИЗ
                втОбороты КАК втОбороты)

СГРУППИРОВАТЬ ПО
    АвансовыйОтчетТовары.Ссылка,
    АвансовыйОтчетТовары.Номенклатура,
    АвансовыйОтчетТовары.Цена

ОБЪЕДИНИТЬ

....
;


А потом эти таблицы соединить по Регистратору и Ссылке:
ВЫБРАТЬ
    втОбороты.Регистратор КАК Регистратор,
    втОбороты.Номенклатура КАК Номенклатура,
    втОбороты.КоличествоНачальныйОстаток КАК НачальныйОстаток,
    втОбороты.КоличествоПриход КАК Приход,
    втОбороты.КоличествоРасход КАК Расход,
    втОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток,
    втНоменклатураЦеныСумма.Ссылка КАК РегистраторСсылка,
    втНоменклатураЦеныСумма.Номенклатура КАК РегистраторНоменклатура,
    втНоменклатураЦеныСумма.Цена КАК РегистраторЦена,
    втНоменклатураЦеныСумма.Сумма КАК РегистраторСумма
ИЗ
    втОбороты КАК втОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ втНоменклатураЦеныСумма КАК втНоменклатураЦеныСумма
        ПО втОбороты.Регистратор = втНоменклатураЦеныСумма.Ссылка
            И втОбороты.Номенклатура = втНоменклатураЦеныСумма.Номенклатура

Автор: fly 17.07.19, 11:00

Володька @ Вчера, 16:05 * ,

Цитата(Володька @ 16.07.19, 16:05) *
Как мне их объединить и получить любое из этих полей (сумма или цена) в таблицу 1?


Добрый день,
Взять регистр накопления "Партии товаров на складах" - вместо "Товары на складах".

Или join-ить
Товары на складах и Партии товаров на складах - если себестоимость.
Товары на складах и Продажи - если цена реализации.

по
Регистратор,
Номенклатура,
Номер строки.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua