Имя: Пароль:
1C
1С v8
Отображение остатка товара в заказе покупателя с учетом характеристики номенклатуры
0 Виталий777
 
30.09.17
22:24
Люди помогите! Надо, чтобы в заказе покупателей в столбце ОСТАТКИ, отображались остатки номенклатуры с учетом характеристики(сейчас показывает общие остатки). 8.3 УТ 10.3

Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
    
    РаботаСДиалогами.УстановитьКартинкиВСтрокахТЧ(ОформленияСтрок, Неопределено, мКартинкаНаборКомплект, Ложь);
    
    
    СписокНоменклатуры=Элемент.Значение.Выгрузить(,"Номенклатура");
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Номенклатура.Ссылка КАК Номенклатура,
    |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
    |ГДЕ
    |    ТоварыНаСкладахОстатки.Номенклатура В(&Номенклатура)";
    Если Не СкладГруппа=Неопределено Тогда
        Запрос.Текст=Запрос.Текст+
        "
        |    И ТоварыНаСкладахОстатки.Склад=&Склад";
    КонецЕсли;
    Запрос.УстановитьПараметр("Номенклатура",СписокНоменклатуры);
    Запрос.УстановитьПараметр("Склад",СкладГруппа);
    Результат=Запрос.Выполнить();
    ТЗостатки=Результат.Выгрузить();
    Запрос.Текст=
    "ВЫБРАТЬ
    |    ТоварыВРезервеНаСкладахОстатки.Номенклатура.Ссылка КАК Номенклатура,
    |    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК Остаток
    |ИЗ
    |    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки
    |ГДЕ
    |    ТоварыВРезервеНаСкладахОстатки.Номенклатура В(&Номенклатура)";
    Если Не СкладГруппа=Неопределено Тогда
        Запрос.Текст=Запрос.Текст+
        "
        |    И ТоварыВРезервеНаСкладахОстатки.Склад=&Склад";
    КонецЕсли;
    Запрос.УстановитьПараметр("Номенклатура",СписокНоменклатуры);
    Запрос.УстановитьПараметр("Склад",СкладГруппа);
    Результат=Запрос.Выполнить();
    ТЗрезерв=Результат.Выгрузить();
    Красный=Новый Цвет(255,0,0);
    Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        ТекЦенаБезСкидки=ОформлениеСтроки.ДанныеСтроки.Цена;
        ТекПроцентСкидкиНаценки=ОформлениеСтроки.ДанныеСтроки.ПроцентСкидкиНаценки+ОформлениеСтроки.ДанныеСтроки.ПроцентАвтоматическихСкидок;
        ТекЦенаСоСкидкой=Окр(ТекЦенаБезСкидки*(1-(ТекПроцентСкидкиНаценки/100)),2);
        ОформлениеСтроки.Ячейки.ЦенаСоСкидкой.ОтображатьТекст=Истина;
        ОформлениеСтроки.Ячейки.ЦенаСоСкидкой.Выравнивание=ГоризонтальноеПоложение.Право;
        ОформлениеСтроки.Ячейки.ЦенаСоСкидкой.Текст=Формат(ТекЦенаСоСкидкой,"ЧЦ=15; ЧДЦ=2");
        //
        ТекОстаток=0;
        СтрокаТЗостатки=ТЗостатки.Найти(ОформлениеСтроки.ДанныеСтроки.Номенклатура,"Номенклатура");
        Если СтрокаТЗостатки<>Неопределено Тогда
            Остаток=СтрокаТЗостатки.Остаток;
            СтрокаТЗрезерв=ТЗрезерв.Найти(ОформлениеСтроки.ДанныеСтроки.Номенклатура,"Номенклатура");
            Если СтрокаТЗрезерв<>Неопределено Тогда
                Остаток=Остаток-СтрокаТЗрезерв.Остаток;
            КонецЕсли;
            ТекОстаток=?(ОформлениеСтроки.ДанныеСтроки.Коэффициент=0,Остаток,Остаток/ОформлениеСтроки.ДанныеСтроки.Коэффициент);
        КонецЕсли;
        ОформлениеСтроки.Ячейки.Остаток.ОтображатьТекст=Истина;
        ОформлениеСтроки.Ячейки.Остаток.Выравнивание=ГоризонтальноеПоложение.Право;
        ОформлениеСтроки.Ячейки.Остаток.Текст=Формат(ТекОстаток,"ЧЦ=15; ЧДЦ=3");
        //
        ТекНедостача=ОформлениеСтроки.ДанныеСтроки.Количество-ТекОстаток;
        ОформлениеСтроки.Ячейки.Недостача.Выравнивание=ГоризонтальноеПоложение.Право;
        ОформлениеСтроки.Ячейки.Недостача.Текст=Формат(ТекНедостача,"ЧЦ=15; ЧДЦ=3");
        ОформлениеСтроки.Ячейки.Недостача.ЦветТекста=Красный;
        ОформлениеСтроки.Ячейки.Недостача.ОтображатьТекст=?(ТекНедостача>0,Истина,Ложь);
    КонецЦикла;
1 1c-bs
 
30.09.17
22:41
У тебя ни в одном запросе нет характеристик.
2 ВРедная
 
30.09.17
22:41
Пиши, что у тебя не получается и что ты сделал для того, чтобы получалось.
3 Виталий777
 
30.09.17
22:58
Если в запрос добавляю характеристику, то тогда остатки вообще не отображаются
"ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Номенклатура.Ссылка КАК Номенклатура,
    |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
    |    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
    |ГДЕ
    |    ТоварыНаСкладахОстатки.Номенклатура В(&Номенклатура)";
4 Maniac
 
30.09.17
23:04
Жесть какая.

Чувак сделай кнопку. при нажатии которой у тебя будет открываться таже табюличная часть - только там у тебя может быть ТЗ со своими колонками.

И там делай что ХОЧЕШЬ - любые данные о номенклатуре. хоть черта лысого покажи.
5 Виталий777
 
30.09.17
23:10
Да почему жесть. Ведь удобно.
Выбрал номенклатуру, указал характеристику и сразу видишь остатки.
Отдельная кнопка - это подбор, там все есть. Только вот не устраивает((
6 h-sp
 
01.10.17
00:43
(5) сюда забыл характеристику вставить

        СтрокаТЗостатки=ТЗостатки.Найти(ОформлениеСтроки.ДанныеСтроки.Номенклатура,"Номенклатура");
7 Виталий777
 
01.10.17
14:15
а как именно там указать характеристику?
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.