Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Отображение остатка товара в заказе покупателя с учетом характеристики номенклатуры

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует