Каталог решений - Добавление в журнал «Заказы покупателей» Суммы договора, Суммы оплат, Налично, Пластиковой картой, Перечислением, Остаток от договора

Добавление в журнал «Заказы покупателей» Суммы договора, Суммы оплат, Налично, Пластиковой картой, Перечислением, Остаток от договора

Добавление в журнал «Заказы покупателей» Суммы договора, Суммы оплат, Налично, Пластиковой картой, Перечислением, Остаток от договора

В наличии

Организация «Журнала Заказов» таким образом, чтобы при открытии журнала показывались : Даты документов «Заказы покупателей», Документы оплат, Сумму договора, Суммы оплат : Налично, Пластиковой картой, Перечислением, Остаток от договора. Долг показывает красным цветом.

Категория:

Описание

Использовано на "Управление торговлей", редакция 10.3 (10.3.18.3), можно адаптировать на другие конфигурации.

Итак, заходим в Журнал документов->Заказы покупателей->Форма списка->Модуль

Меняем в модуле две процедуры или добавляем, если их нет:

///////////////////////////////////////////////////////////////////////////////////////
Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)

    ДатаНач = '00010101000000';
    ДатаКон = ТекущаяДата();
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Заказы.Контрагент,
                   |    Заказы.СуммаСогласовано КАК СуммаСогласовано,
                   |    Заказы.СуммаЗаказа КАК СуммаЗаказ,
                   |    0 КАК СуммаПластик,
                   |    0 КАК СуммаПлатежка,
                   |    0 КАК СуммаОрдер,
                   |    0 КАК СуммаНалично,
                   |    Заказы.Дата,
                   |    ""1"" КАК ВидДокумента,
                   |    Заказы.Ссылка КАК Ссылка,
                   |    Заказы.Контрагент.Код + Заказы.Ссылка.Номер КАК КонтИЗаказ
                   |ИЗ
                   |    (ВЫБРАТЬ
                   |        ЗаказПокупателя.СуммаДокумента КАК СуммаСогласовано,
                   |        СУММА(ЗаказПокупателяТовары.Сумма) КАК СуммаЗаказа,
                   |        ЗаказПокупателя.Контрагент КАК Контрагент,
                   |        ЗаказПокупателя.Дата КАК Дата,
                   |        ЗаказПокупателя.Ссылка КАК Ссылка
                   |    ИЗ
                   |        Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
                   |            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
                   |            ПО ЗаказПокупателяТовары.Ссылка = ЗаказПокупателя.Ссылка
                   |    ГДЕ
                   |        ЗаказПокупателя.Дата <= &ДатаКон
                   |        И ЗаказПокупателя.Проведен
                   |    
                   |    СГРУППИРОВАТЬ ПО
                   |        ЗаказПокупателя.Контрагент,
                   |        ЗаказПокупателя.СуммаДокумента,
                   |        ЗаказПокупателя.Дата,
                   |        ЗаказПокупателя.Ссылка) КАК Заказы
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   |    ОплатаОтПокупателяПлатежнойКартой.Контрагент,
                   |    0,
                   |    0,
                   |    ВЫБОР
                   |        КОГДА ОплатаОтПокупателяПлатежнойКартой.СуммаДокумента > 0
                   |            ТОГДА ОплатаОтПокупателяПлатежнойКартой.СуммаДокумента
                   |        ИНАЧЕ 0
                   |    КОНЕЦ,
                   |    0,
                   |    0,
                   |    0,
                   |    ОплатаОтПокупателяПлатежнойКартой.Дата,
                   |    ""2"",
                   |    ОплатаОтПокупателяПлатежнойКартой.ДокументОснование,
                   |    ОплатаОтПокупателяПлатежнойКартой.Контрагент.Код + ОплатаОтПокупателяПлатежнойКартой.ДокументОснование.Номер
                   |ИЗ
                   |    Документ.ОплатаОтПокупателяПлатежнойКартой КАК ОплатаОтПокупателяПлатежнойКартой
                   |ГДЕ
                   |    ОплатаОтПокупателяПлатежнойКартой.Дата <= &Датакон
                   |    И ОплатаОтПокупателяПлатежнойКартой.Проведен
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   |    ПлатежноеПоручениеВходящее.Контрагент,
                   |    0,
                   |    0,
                   |    0,
                   |    ВЫБОР
                   |        КОГДА ПлатежноеПоручениеВходящее.СуммаДокумента > 0
                   |            ТОГДА ПлатежноеПоручениеВходящее.СуммаДокумента
                   |        ИНАЧЕ 0
                   |    КОНЕЦ,
                   |    0,
                   |    0,
                   |    ПлатежноеПоручениеВходящее.Дата,
                   |    ""3"",
                   |    ПлатежноеПоручениеВходящее.ДокументОснование,
                   |    ПлатежноеПоручениеВходящее.Контрагент.Код + ПлатежноеПоручениеВходящее.ДокументОснование.Номер
                   |ИЗ
                   |    Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее
                   |ГДЕ
                   |    ПлатежноеПоручениеВходящее.Дата <= &Датакон
                   |    И ПлатежноеПоручениеВходящее.Проведен
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   |    ПлатежныйОрдерПоступлениеДенежныхСредств.Контрагент,
                   |    0,
                   |    0,
                   |    0,
                   |    0,
                   |    ВЫБОР
                   |        КОГДА ПлатежныйОрдерПоступлениеДенежныхСредств.СуммаДокумента > 0
                   |            ТОГДА ПлатежныйОрдерПоступлениеДенежныхСредств.СуммаДокумента
                   |        ИНАЧЕ 0
                   |    КОНЕЦ,
                   |    0,
                   |    ПлатежныйОрдерПоступлениеДенежныхСредств.Дата,
                   |    ""4"",
                   |    ПлатежныйОрдерПоступлениеДенежныхСредств.ДокументОснование,
                   |    ПлатежныйОрдерПоступлениеДенежныхСредств.Контрагент.Код + ПлатежныйОрдерПоступлениеДенежныхСредств.ДокументОснование.Номер
                   |ИЗ
                   |    Документ.ПлатежныйОрдерПоступлениеДенежныхСредств КАК ПлатежныйОрдерПоступлениеДенежныхСредств
                   |ГДЕ
                   |    ПлатежныйОрдерПоступлениеДенежныхСредств.Дата <= &Датакон
                   |    И ПлатежныйОрдерПоступлениеДенежныхСредств.Проведен
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   |    ПриходныйКассовыйОрдер.Контрагент,
                   |    0,
                   |    0,
                   |    0,
                   |    0,
                   |    0,
                   |    ВЫБОР
                   |        КОГДА ПриходныйКассовыйОрдер.СуммаДокумента > 0
                   |            ТОГДА ПриходныйКассовыйОрдер.СуммаДокумента
                   |        ИНАЧЕ 0
                   |    КОНЕЦ,
                   |    ПриходныйКассовыйОрдер.Дата,
                   |    ""5"",
                   |    ПриходныйКассовыйОрдер.ДокументОснование,
                   |    ПриходныйКассовыйОрдер.Контрагент.Код + ПриходныйКассовыйОрдер.ДокументОснование.Номер
                   |ИЗ
                   |    Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
                   |ГДЕ
                   |    ПриходныйКассовыйОрдер.Дата <= &Датакон
                   |    И ПриходныйКассовыйОрдер.Проведен
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Ссылка,
                   |    ВидДокумента";
    Запрос.УстановитьПараметр("ДатаКон",ДатаКон);               
    Остатки = Запрос.Выполнить().Выгрузить();
    Остатки.Свернуть("КонтИЗаказ,Ссылка,Контрагент,ВидДокумента,Дата","СуммаСогласовано,СуммаЗаказ,СуммаПластик,СуммаПлатежка,СуммаОрдер,СуммаНалично");
    Остатки.Индексы.Добавить("Контрагент");
    //Остатки.Индексы.Добавить("ВидДокумента");
    
    Для каждого Оформление Из ОформленияСтрок Цикл
        СтрокаПоиска = Оформление.ДанныеСтроки.Покупатель.Код+Оформление.ДанныеСтроки.Ссылка.Номер;
        Ост = Остатки.Найти(СтрокаПоиска,"КонтИЗаказ");
        Если Оформление.Ячейки.ВидДокумента.Текст = "Заказ покупателя" Тогда
           Попытка    
        Остаток = Ост.СуммаСогласовано-Ост.СуммаНалично-Ост.СуммаОрдер-Ост.СуммаПластик-Ост.СуммаПлатежка;
           Исключение
        Остаток = 0;    
           КонецПопытки;    
           Если Строка(Типзнч(Оформление.ДанныеСтроки.Ссылка)) = "Заказ покупателя" Тогда
        Оформление.ЦветТекста = Новый Цвет(0,0,0);
        Оформление.Ячейки.Остаток.ОтображатьТекст = Истина;
        Оформление.Ячейки.Остаток.Текст = Строка(Остаток);
           иначе
        Оформление.ЦветТекста = Новый Цвет(0,0,0);
        Оформление.Ячейки.Остаток.ОтображатьТекст = Истина;
        Оформление.Ячейки.Остаток.Текст = Строка(Остаток);
               Если Оформление.Ячейки.ОплатаНалично.Значение <> Null Тогда
                 Оформление.Ячейки.ОплатаНалично.ЦветФона = WEBЦвета.ЗеленоЖелтый;  
               КонецЕсли;     
               Если Оформление.Ячейки.ОплатаПеречислен.Значение <> Null Тогда
                 Оформление.Ячейки.ОплатаПеречислен.ЦветФона = WEBЦвета.ЗеленаяЛужайка;  
               КонецЕсли;     
               Если Оформление.Ячейки.Пластик.Значение <> Null Тогда
                 Оформление.Ячейки.Пластик.ЦветФона = WEBЦвета.ЗеленоватоЖелтый;  
               КонецЕсли;     
           КонецЕсли;
        Иначе
            ОтборПок = Новый Структура;                    
            ОтборПок.Вставить("КонтИЗаказ",СтрокаПоиска);
            //ОтборПок.Вставить("Дата",Оформление.ДанныеСтроки.Дата);
            ОтборПоКонтрагенту = Остатки.НайтиСтроки(ОтборПок);
            ОтборПокДат = Новый Структура;                    
            ОтборПокДат.Вставить("КонтИЗаказ",СтрокаПоиска);
            ОтборПокДат.Вставить("Дата",Оформление.ДанныеСтроки.Дата);
            ОтборПоДате = Остатки.НайтиСтроки(ОтборПокДат);
            Если ОтборПоКонтрагенту <> неопределено Тогда
                    Для Каждого СтрокаДат из ОтборПоДате Цикл                
                         Прервать;
                    КонецЦикла;    
                Ост = Остатки.Найти(СтрокаПоиска,"КонтИЗаказ");                        
                Остаток = Ост.СуммаСогласовано;
                МаксДата = Дата('00010101');
                Для Каждого Строка из ОтборПоКонтрагенту Цикл
                      Попытка
                      Если Строка.Дата<=СтрокаДат.Дата Тогда
                Остаток = Остаток-Строка.СуммаНалично-Строка.СуммаОрдер-Строка.СуммаПластик-Строка.СуммаПлатежка;
                      КонецЕсли;
                      Если (Строка.Дата>МаксДата) и (Строка.ВидДокумента<>"1") Тогда
                            МаксДата=Строка.Дата;
                      КонецЕсли;    
                      Исключение
                      КонецПопытки
                    КонецЦикла;
                    
               Оформление.ЦветТекста = Новый Цвет(0,0,0);
               Оформление.Ячейки.Остаток.ОтображатьТекст = Истина;

               Оформление.Ячейки.Остаток.Текст = Строка(Остаток);
               Если Остаток>0 Тогда
                  Если Оформление.ДанныеСтроки.Дата = МаксДата Тогда
                  Оформление.Ячейки.Остаток.ЦветФона = WEBЦвета.СветлоКоралловый;
                  КонецЕсли;
               //Иначе  
               //    Оформление.Ячейки.Остаток.ЦветФона = WEBЦвета.БледноБирюзовый;
               КонецЕсли;    
               Если Оформление.Ячейки.ОплатаНалично.Значение <> Null Тогда
                 Оформление.Ячейки.ОплатаНалично.ЦветФона = WEBЦвета.БледноЗеленый;  
               КонецЕсли;     
               Если Оформление.Ячейки.ОплатаПеречислен.Значение <> Null Тогда
                 Оформление.Ячейки.ОплатаПеречислен.ЦветФона = WEBЦвета.ЗеленаяЛужайка;  
               КонецЕсли;     
               Если Оформление.Ячейки.Пластик.Значение <> Null Тогда
                 Оформление.Ячейки.Пластик.ЦветФона = WEBЦвета.ЗеленоватоЖелтый;  
               КонецЕсли;     
           
            КонецЕсли;
        КонецЕсли;    
    Последний = Оформление;    
    Конеццикла;    
    ЖурнПок = ОформленияСтрок;
КонецПроцедуры

Целиком инструкция в тексте приложенного файла.

has been added to your cart:
Оформление заказа