8.х Остатки товаров по произвольному складу

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем seamus-88, 21 апр 2016.

  1. TopicStarter Overlay
    seamus-88
    Offline

    seamus-88

    Регистрация:
    5 фев 2015
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Добрый день. Конфигурация Розница (базовая), редакция 1.0 (1.0.18.1), 1С:Предприятие 8.3 (8.3.5.1383)

    В модуль объекта в процедуру "обработка проведения" документа "Перемещение товаров" добавил следующий код для получения остатков по складу, завязанному с бухгалтерией, но работает только тогда, когда в строке "НайтиПоКоду" указан код либо склада-отправителя документа, либо склада-получателя. Прямо в режиме предприятия редактирую любой из этих складов и получаю - либо всё, либо ничего. Для произвольного склада не работает, почему-то...

    Добавленный код:
    Код:
    Движения.Записать();
    
        ЗапросОстатки = Новый Запрос;
        Выставка = ЭтотОбъект.СкладОтправитель;
        Склад = ЭтотОбъект.СкладПолучатель;
        Бух = Справочники.Склады.НАйтиПоКоду("000000093").Ссылка;
        Если Бух = Справочники.Склады.ПустаяСсылка() Тогда
            Сообщить("склада 93 еще нет");
        Иначе
            Сообщить(Бух.Наименование);
        КонецЕсли;
    
        ВремяДок = Новый Граница(ЭтотОбъект.МоментВремени(),ВидГраницы.Включая);
        ЗапросОстатки.УстановитьПараметр("Выставка", Выставка);
        ЗапросОстатки.УстановитьПараметр("Склад", Склад);
        ЗапросОстатки.УстановитьПараметр("Период", ВремяДок);
        ЗапросОстатки.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка);
        ЗапросОстатки.УстановитьПараметр("Бух", Бух);
    
        ЗапросОстатки.Текст =
        "ВЫБРАТЬ
        |    ЕСТЬNULL(ТоварыНаСкладахОстатки1.КоличествоОстаток,0) КАК КоличествоОстаток1,
        |    ПеремещениеТоваровТовары.Номенклатура
        |ИЗ
        |    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(
        |                &Период,
        |                Номенклатура В
        |                    (ВЫБРАТЬ
        |                        ПеремещениеТоваровТовары.Номенклатура
        |                    ИЗ
        |                        Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
        |                    ГДЕ
        |                        ПеремещениеТоваровТовары.Ссылка = &Ссылка)) КАК ТоварыНаСкладахОстатки1
        |        ПО ПеремещениеТоваровТовары.Номенклатура = ТоварыНаСкладахОстатки1.Номенклатура
        |ГДЕ
        |    ПеремещениеТоваровТовары.Ссылка = &Ссылка
        |    И ТоварыНаСкладахОстатки1.Склад = &Бух";
        //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
        Остатки = ЗапросОстатки.Выполнить().Выбрать();
        Сообщить("тест!");
        Пока Остатки.Следующий() Цикл
            Сообщить(Остатки.Номенклатура);
            // Сообщить(Остатки.КоличествоОстаток);
            Сообщить(Остатки.КоличествоОстаток1);
        КонецЦикла;
    Как справиться с ситуацией, подскажите.
    Последнее редактирование модератором: 22 апр 2016

Поделиться этой страницей