Имя: Пароль:
1C
1С v8
1С предприятие Итоги в подвале Общий Журнал Форма Списка
0 Farid0516
 
03.12.21
18:36
1с торговля и склад

https://www.linkpicture.com/q/screenshot_17.jpg
1 ДенисЧ
 
03.12.21
18:39
Продаешь или просто показываешь?
2 Farid0516
 
03.12.21
18:41
Я сделал поиск в Google по этой теме. Однако я не мог. Помогите, пожалуйста. Как добавить?
3 Farid0516
 
03.12.21
19:02
Итог = ДанныеСтроки.СуммаОплата;
    Элемент.Колонки.СуммаОплата.ТекстПодвала = Формат(Итог, "ЧЦ=15; ЧДЦ=2");
4 Смотрящий
 
03.12.21
19:08
(1) представь что тс юродивый
5 Ёпрст
 
03.12.21
19:51
(0) или через пробег по всей коллекции табличного поля и условие на ПроверитьСтроку,
или скормить построителюОтчета твой список как источник данных и там посчитать, потом вывести.
6 серый КТУЛХУ
 
03.12.21
22:39
7 Farid0516
 
04.12.21
13:13
(6) Вот Реквизиты. Но у меня нет Реквизиты в Форма Списка
8 Farid0516
 
05.12.21
08:55
(6) Это другой Конфигурация. У меня 1с торговля и склад
9 Farid0516
 
05.12.21
08:58
10 Farid0516
 
05.12.21
08:59
Процедура РеестрДокуметов()
    ТабДок=новый ТабличныйДокумент ;
    Макет =ЖурналыДокументов.ОбщийЖурнал.ПолучитьМакет("РеестрДокументов");
    обЗаголовок=Макет.ПолучитьОбласть("Заголовок|Графа");
    обЗаголовок.Параметры.заголовок="Sənədlər toplusu";
    
    ВидСравненияДата=ЖурналДокументовСписок.Отбор.Дата.ВидСравнения;
    обЗаголовок.Параметры.ДатаНачало=?(ЗначениеЗаполнено(ЖурналДокументовСписок.Отбор.Дата.ЗначениеС),ЖурналДокументовСписок.Отбор.Дата.ЗначениеС,"");
    обЗаголовок.Параметры.ДатаКонца=?(ЗначениеЗаполнено(ЖурналДокументовСписок.Отбор.Дата.ЗначениеПо),ЖурналДокументовСписок.Отбор.Дата.ЗначениеПо,"");
    Если  ВидСравненияДата=ВидСравнения.БольшеИлиРавно тогда
        обЗаголовок.Параметры.ДатаНачало= ЖурналДокументовСписок.Отбор.Дата.Значение ;
    Конецесли;
    Если  ВидСравненияДата=ВидСравнения.МеньшеИлиРавно тогда
        обЗаголовок.Параметры.ДатаКонца=ЖурналДокументовСписок.Отбор.Дата.Значение ;
    Конецесли;
    

    обЗаголовок. Область(1,1,1,1).ШиринаКолонки=ЭлементыФормы.ЖурналДокументовСписок.Колонки["ВидДокумента"].Ширина;
    

    ТабДок.Вывести(обЗаголовок);
    ОбШапка=макет.ПолучитьОбласть("Шапка|Графа");
    
    
    СписокРеквизиты=Новый СписокЗначений;
    ТекКолонка=0;
    
    для каждого Колонка из ЭлементыФормы.ЖурналДокументовСписок.Колонки цикл
        если Колонка.Имя="Картинка" тогда
            Продолжить;
        Конецесли;
        ТекКолонка=ТекКолонка+1;
        ОбШапка.Параметры.наимГрафа=Колонка.ТекстШапки;
        ОбШапка.Область(1,1,1,1).ШиринаКолонки=Колонка.Ширина;
        если ТекКолонка=1 тогда
            ТабДок.Вывести(ОбШапка);
        Иначе
            ТабДок.Присоединить(ОбШапка);
        Конецесли;
    КонецЦикла;
    
    //
    //
    
    
    Запрос=новый запрос;
    запрос_Текст="ВЫБРАТЬ *
                 |ИЗ
                 |    ЖурналДокументов.ОбщийЖурнал КАК ОбщийЖурнал" ;
                
    ОтборЖурнал=ЖурналДокументовСписок.Отбор;
    
    ТекстУсловие ="";
    н=0;
    для каждого ВыбОтбор из ОтборЖурнал цикл
        если не ВыбОтбор.Использование тогда
            продолжить;
        Конецесли;
        
        н=н+1;
        
        если ВыбОтбор.ВидСравнения=ВидСравнения.Больше тогда
            условие=ВыбОтбор.Имя+">&"+ВыбОтбор.Имя;
            запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.БольшеИлиРавно тогда
            условие=ВыбОтбор.Имя+">=&"+ВыбОтбор.Имя;
            запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
            
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.Равно тогда
            если  ВыбОтбор.Имя="ВидДокумента" тогда
                условие="Выразить(Ссылка как Документ."+ВыбОтбор.Значение.Имя+")<>НЕОПРЕДЕЛЕНО";
            Иначе
                условие=ВыбОтбор.Имя+"=&"+ВыбОтбор.Имя;
                запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
            КонецЕсли;
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.НеРавно тогда
            условие="НЕ "+ВыбОтбор.Имя+"=&"+ВыбОтбор.Имя;
            запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
            
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.Меньше тогда
            условие=ВыбОтбор.Имя+"<&"+ВыбОтбор.Имя;
            запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.МеньшеИлиРавно тогда
            условие=ВыбОтбор.Имя+"<=&"+ВыбОтбор.Имя;
            запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
            
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.ВИерархии тогда
            условие=ВыбОтбор.Имя+" В Иерархии (&"+ВыбОтбор.Имя+")";
            запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.НеВИерархии тогда
            условие="НЕ "+ВыбОтбор.Имя+" В Иерархии (&"+ВыбОтбор.Имя+")";
            запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
            
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.ВСписке тогда
            условие=ВыбОтбор.Имя+" В (&"+ВыбОтбор.Имя+")";
            запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.НеВСписке тогда
            условие="НЕ "+ВыбОтбор.Имя+" В (&"+ВыбОтбор.Имя+")";
            запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
            
            
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.ВСпискеПоИерархии тогда
            условие=ВыбОтбор.Имя+" В Иерархии (&"+ВыбОтбор.Имя+")";
            запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.НеВСпискеПоИерархии тогда
            условие="НЕ "+ВыбОтбор.Имя+" В Иерархии (&"+ВыбОтбор.Имя+")";
            запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
            
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.Интервал тогда
            условие="("+ВыбОтбор.Имя+">&"+ВыбОтбор.Имя+"С и "+ВыбОтбор.Имя+"<&"+ВыбОтбор.Имя+"По)";
            запрос.УстановитьПараметр(ВыбОтбор.Имя+"С",ВыбОтбор.ЗначениеС);
            запрос.УстановитьПараметр(ВыбОтбор.Имя+"По",ВыбОтбор.ЗначениеПо);
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.ИнтервалВключаяГраницы тогда
            условие="("+ВыбОтбор.Имя+">=&"+ВыбОтбор.Имя+"С и "+ВыбОтбор.Имя+"<=&"+ВыбОтбор.Имя+"По)";
            запрос.УстановитьПараметр(ВыбОтбор.Имя+"С",ВыбОтбор.ЗначениеС);
            запрос.УстановитьПараметр(ВыбОтбор.Имя+"По",ВыбОтбор.ЗначениеПо);
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.ИнтервалВключаяНачало тогда
            условие="("+ВыбОтбор.Имя+">=&"+ВыбОтбор.Имя+"С и "+ВыбОтбор.Имя+"<&"+ВыбОтбор.Имя+"По)";
            запрос.УстановитьПараметр(ВыбОтбор.Имя+"С",ВыбОтбор.ЗначениеС);
            запрос.УстановитьПараметр(ВыбОтбор.Имя+"По",ВыбОтбор.ЗначениеПо);
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.ИнтервалВключаяОкончание тогда
            условие="("+ВыбОтбор.Имя+">&"+ВыбОтбор.Имя+"С и "+ВыбОтбор.Имя+"<=&"+ВыбОтбор.Имя+"По)";
            запрос.УстановитьПараметр(ВыбОтбор.Имя+"С",ВыбОтбор.ЗначениеС);
            запрос.УстановитьПараметр(ВыбОтбор.Имя+"По",ВыбОтбор.ЗначениеПо);
            
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.Содержит тогда
            условие=ВыбОтбор.Имя+" ПОДОБНО &"+ВыбОтбор.Имя;
            запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
        Иначеесли ВыбОтбор.ВидСравнения=ВидСравнения.Содержит тогда
            условие="НЕ "+ВыбОтбор.Имя+" ПОДОБНО &"+ВыбОтбор.Имя;
            запрос.УстановитьПараметр(ВыбОтбор.Имя,ВыбОтбор.Значение);
        Конецесли ;
        ТекстУсловие=ТекстУсловие+Символы.ПС  +?(н>1," И ","")+условие;
    Конеццикла;
    
    если ТекстУсловие<>"" тогда
         запрос_Текст=запрос_Текст+"
         |ГДЕ
         |"+ТекстУсловие;
     Конецесли;
    
     запрос.Текст= запрос_Текст;
     Выборка=запрос.Выполнить().Выбрать();
     ТЗИтог=Новый ТаблицаЗначений;
     ТЗИтог.Колонки.Добавить("Синоним",Новый ОписаниеТипов("Строка"));
     ТЗИтог.Колонки.Добавить("СуммаДокумента",Новый ОписаниеТипов("Число"));
     ТЗИтог.Колонки.Добавить("РознСумма",Новый ОписаниеТипов("Число"));
    
    
    
                
    обДетал=Макет.ПолучитьОбласть("Детал|Графа");
    пока  Выборка.Следующий() цикл
        ТекКолонка=0;
        ДокОб=выборка.ссылка.ПолучитьоБъект();
        Синоним=ДокОб.Метаданные().Синоним;
        РознСумма=0;
        СуммаДокумента=0;
        для каждого Колонка из ЭлементыФормы.ЖурналДокументовСписок.Колонки цикл
            если Колонка.Имя="Картинка" тогда
                Продолжить;
            Конецесли;
            если Колонка.Имя="ВидДокумента" тогда
                зн=Синоним;
            ИначеЕсли Колонка.Имя="ВОЕН" тогда
         Попытка  
               зн=Выборка.Контрагент.ВОЕН;
         Исключение
              зн = "";
         КонецПопытки;    
            Иначеесли Колонка.Имя="РознСумма" тогда
                зн="";
                если РаботаСТЧДокумента.ЕстьРеквизитТЧ(ДокОб,"РознСумма","Товары")<>неопределено тогда
                    РознСумма=  ДокОб.товары.Итог("РознСумма");
                     зн=формат(рознСумма,"ЧДЦ=2");
                Конецесли;
            Иначе
                зн =Выборка[Колонка.Имя];
            Конецесли;
            обДетал.Область(1,1,1,1).ГоризонтальноеПоложение=колонка.ГоризонтальноеПоложениеВКолонке;
            обДетал.Область(1,1,1,1).Формат=Колонка.Формат;
            
            если  Колонка.Имя="СуммаДокумента" и значениеЗаполнено(зн) тогда
                СуммаДокумента=зн;
            Конецесли;
            
            обДетал.Параметры.Значение=зн;
            
            ТекКолонка=ТекКолонка+1;
            если ТекКолонка=1 тогда
                ТабДок.Вывести(обДетал);
            Иначе
                ТабДок.Присоединить(обДетал);
            Конецесли;
        КонецЦикла;
        
        стр=ТЗИтог.Найти(Синоним,"Синоним");
        если Стр=неопределено тогда
            стр= ТЗИтог.Добавить();
            стр.синоним= Синоним;
        Конецесли;
        стр.СуммаДокумента=Стр.СуммаДокумента+СуммаДокумента;
        стр.РознСумма=Стр.РознСумма+РознСумма;
        
        
    Конеццикла;
    
    ОбИтог= Макет.ПолучитьОбласть("Итого");
    ТабДок.Вывести(Макет.ПолучитьОбласть("Подвал"));


    для каждого СтрИтог из   ТЗИтог Цикл
        ОбИтог.Параметры.Заполнить(СтрИтог);
        ТабДок.Вывести(ОбИтог);

    Конеццикла;
    
    
    ТабДок.Показать("Sənədlər toplusu");    
    
КонецПроцедуры

Процедура ДействияФормыкнРеестрДокументов(Кнопка)
    РеестрДокуметов();
КонецПроцедуры

Процедура ЖурналДокументовСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Об=ДанныеСтроки.Ссылка.ПолучитьОбъект();
    Попытка  
        ОформлениеСтроки.Ячейки.ВОЕН.Значение=ДанныеСтроки.Контрагент.ВОЕН;;
    Исключение
    КонецПопытки;
    СуммаДокумента=0;
                    
КонецПроцедуры
11 rphosts
 
05.12.21
09:28
(0) Старые формы... на клюшках про подобных задачах правильнее сделать свой журнал документов, тут наверное так-же
12 abfm
 
05.12.21
09:46
ТЗИтог=Новый ТаблицаЗначений;
     ТЗИтог.Колонки.Добавить("Синоним",Новый ОписаниеТипов("Строка"));
     ТЗИтог.Колонки.Добавить("СуммаДокумента",Новый ОписаниеТипов("Число"));
     ТЗИтог.Колонки.Добавить("РознСумма",Новый ОписаниеТипов("Число"));
В 7.7 такого нет там
НоваяКолонка(<?>,,,,,,,);
Синтаксис:
ТЗИтог.НоваяКолонка(<Идентификатор>,<Тип>,<Длина>,<Точность>,<Заголовок>,<Ширина>,<Формат>,<Положение>)
Назначение:
Добавить в конец таблицы значений новую колонку. Возвращает номер новой колонки.

стр=ТЗИтог.Найти(Синоним,"Синоним");
тоже нет
НайтиЗначение(<?>,,);
Синтаксис:
НайтиЗначение(<Знач>,<Строка>,<Колонка>)
Назначение:
Найти заданное значение в таблице значений. Возвращает число: 0 - значение не найдено; 1 - значение найдено

в таблице нет строк вы их не добавили.
это не тис.
и определитесь вы в 8 или в 7.7.
13 abfm
 
05.12.21
09:51
пардон прочитал (11) и меня на 7.7 унесло. виноват исправлюсь.
14 Ёпрст
 
05.12.21
10:50
15 Farid0516
 
05.12.21
11:24
1с предприятие 8.3
16 Farid0516
 
05.12.21
12:42
Пожалуйста помоги.
17 Farid0516
 
05.12.21
12:43
(12) Это тот модуль, который у меня есть. Каким должен быть новый модуль? Что мне написать? Можете ли вы написать код в качестве примера?
18 hhhh
 
05.12.21
12:57
(17) нафиг никому не нужна такая сумма, дебильное задание. Эта сумма же ничего не даст, толку с нее нет, и незачем тебе ее выводить. Такие вещи делаются в отчетах, нужно тебе посмотреть, запускаешь отчет, смотришь. А так как у тебя задумано, в журнале, это будет каждую секунду вычисляться эта сумма, компьютер будет тормозить.
19 Farid0516
 
05.12.21
14:53
Мне нужно написать дополнительный код, чтобы я мог видеть недавно добавленные посещения в отчетах. И много чего. Потому что это очень сложная вещь. Мне просто это нужно. Мне никогда не нужен дополнительный отчет. (18)
20 hhhh
 
05.12.21
15:05
(19) почему никогда не нужен?
21 Farid0516
 
05.12.21
15:29
(20) Потому что мне этого достаточно. Только когда отбор, пусть покажет результаты документов, которые
22 Hans
 
05.12.21
16:19
Это сложная задача для неуправляемых форм, оставь это до лучших времен.
23 Farid0516
 
05.12.21
17:13
(22) Я люблю сложная задача ). Потому что я быстро учусь. Я новичок в этом деле. Буду рад, если поможет. Я заказал 5 книг, чтобы лучше усвоить предметы. Но сейчас для меня это самый важный вопрос. Пожалуйста помоги.
24 Farid0516
 
05.12.21
17:24
Построитель = Новый ПостроительЗапроса;
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ДокументСписок);
    Результат = Построитель.Результат;

    ТаблицаДокументов = Результат.Выгрузить();

   ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала =  ТаблицаДокументов.Итог("СуммаДокумента");
25 Farid0516
 
05.12.21
17:25
Рабочий код! Спасибо всем....
26 Hans
 
05.12.21
17:49
(24) Даже не знал что так можно. Думал что нужно учитывать отборы в списке, и накладывать отборы на запрос.
27 acanta
 
05.12.21
17:53
А нет такого в БСП, в общем модуле каком-то, чтобы произвольный журнал и список колонок, по которым требуется итого?
28 Farid0516
 
05.12.21
18:22
ЭлементыФормы.ЖурналДокументовСписок.Колонки.ÖdənişTarixi.ТекстПодвала = "="+ТаблицаДокументов.Итог("СуммаОплатаБС")+ТаблицаДокументов.Итог("СуммаОплата");
29 Farid0516
 
05.12.21
18:23
Разучился писать сумму в 2 Колонки. Помогите, пожалуйста
30 Hans
 
05.12.21
18:24
что за сумма в две колонки?
31 Hans
 
05.12.21
18:26
(27) Может и есть. На ОФ точно нет. На УФ не видел. Там этот вопрос решается получением запроса динамического списка с текущими отборами.
32 Farid0516
 
05.12.21
18:29
(30) ТаблицаДокументов.Итог("СуммаОплатаБС")+ТаблицаДокументов.Итог("СуммаОплата");
33 Farid0516
 
05.12.21
18:32
34 Hans
 
05.12.21
18:33
СуммаДвухКолонок = ТаблицаДокументов.Итог("СуммаОплатаБС")+ТаблицаДокументов.Итог("СуммаОплата");
ЭлементыФормы.ЖурналДокументовСписок.Колонки.ÖdənişTarixi.ТекстПодвала = "=" + СуммаДвухколонок;
35 Farid0516
 
05.12.21
18:39
(34) Рабочий код! Большое тебе спасибо...
36 Ёпрст
 
05.12.21
18:45
(28)

ЭлементыФормы.ЖурналДокументовСписок.Колонки.ÖdənişTarixi.ТекстПодвала = "="+(ТаблицаДокументов.Итог("СуммаОплатаБС")+ТаблицаДокументов.Итог("СуммаОплата"));