Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Есть ТЗ в обработке - выводим доки. Как отобрать интервал документов?

Есть ТЗ в обработке - выводим доки. Как отобрать интервал документов?
Я
   Обработка
 
12.01.21 - 09:56
Наткнулся на некую типовую обработку.
В ТЗ выводят документ по типу.
Но в ТЗ попадают все доки за все время.
Хотелось бы ограничить по интервалу.

Вот код.

#Если  ТолстыйКлиентОбычноеПриложение Тогда
        
        МассивТиповДокументов = Новый Массив;
        
        МассивТиповДокументов.Добавить(Тип("ДокументСписок." + ТипДокумента1С));
        
        Элементы.Документы1С.ТипЗначения = Новый ОписаниеТипов(МассивТиповДокументов);            
        Элементы.Документы1С.СоздатьКолонки();
        
        КолонкаДляУдаления = Элементы.Документы1С.Колонки.Проведен;
        Элементы.Документы1С.Колонки.Удалить(КолонкаДляУдаления);
        
        КолонкаДляУдаления = Элементы.Документы1С.Колонки.Картинка;
        Элементы.Документы1С.Колонки.Удалить(КолонкаДляУдаления);
        
        Элементы.Документы1С.Колонки.Добавить("Название");            
        Элементы.Документы1С.Колонки.Название.УстановитьЭлементУправления(Тип("ПолеВвода"));
        Элементы.Документы1С.Колонки.Название.ЭлементУправления.ТипЗначения = Новый ОписаниеТипов("Строка");
        
        Элементы.Документы1С.Колонки.Добавить("КоличествоСтрок", "Кол-во строк");            
        Элементы.Документы1С.Колонки.КоличествоСтрок.УстановитьЭлементУправления(Тип("ПолеВвода"));
        Элементы.Документы1С.Колонки.КоличествоСтрок.ЭлементУправления.ТипЗначения = Новый ОписаниеТипов("Строка");    
        
        Элементы.Документы1С.Колонки.Дата.Ширина                 = 15;
        Элементы.Документы1С.Колонки.Номер.Ширина                 = 15;
        Элементы.Документы1С.Колонки.Название.Ширина             = 60;
        Элементы.Документы1С.Колонки.КоличествоСтрок.Ширина     = 10;    
        
        Элементы.Документы1С.ОбновитьСтроки();
        
    #Иначе
   ДенисЧ
 
1 - 12.01.21 - 09:57
А где заполнение таблицы?
Ну, типа Документы1С.Добавить()...
   Обработка
 
2 - 12.01.21 - 10:00
(1) В том то и дело что нет его.
Заполняется сама динамически по привязке к массиву.
Есть еще обработчик ТЗ =  Документы1СПриПолученииДанных
#Если ТолстыйКлиентОбычноеПриложение Тогда

    
    Процедура Документы1СПриПолученииДанных(Элемент, ОформленияСтрок)
        
        Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
            
            ОформлениеСтроки.Ячейки.Название.Значение = СокрЛП(ОформлениеСтроки.ДанныеСтроки.Ссылка);         
            
            Если ЗначениеЗаполнено(ИмяТабличнойЧасти1С) Тогда
                КоличествоТоваров = ОформлениеСтроки.ДанныеСтроки.Ссылка[ИмяТабличнойЧасти1С].Количество();
                Если КоличествоТоваров = 0 Тогда
                    ОформлениеСтроки.Ячейки.КоличествоСтрок.Значение = "";    
                Иначе
                    ОформлениеСтроки.Ячейки.КоличествоСтрок.Значение = СокрЛП(КоличествоТоваров);    
                КонецЕсли;    
            КонецЕсли;
        КонецЦикла;
        
    КонецПроцедуры


и все...
   Обработка
 
3 - 12.01.21 - 10:03
МассивТиповДокументов это === массив
а значение такое  === Документ список: Инвентаризация товаров на складе
   ДенисЧ
 
4 - 12.01.21 - 10:04
Сами по себе только кошки родятся. А таблицы в 1с самине заполняются.
   Обработка
 
5 - 12.01.21 - 10:06
(4) Отладчиком прошел не наткнулся на код.
Честно, я такое впервые вижу в обычных формах.
Я понимаю что в УФ есть динамические списки которые прям запросом привязываются.
А тут такое вижу впервые.
   fisher
 
6 - 12.01.21 - 10:30
(5) Внезапно - в ОФ тоже есть динамические списки :) Просто их запросы предопределены и не изменяются.
Открой любую стандартную форму списка документов - там тоже самое.
Тут изюминка только в том, что тип источника динамически переопределяется.
Хотя тоже раньше с таким не сталкивался.
   fisher
 
7 - 12.01.21 - 10:33
А в коде из сабжа, кроме инициализации динамического списка - обычное создание вычисляемых колонок дин-списка. В ПриПолученииДанных() - их заполнение.
   Обработка
 
8 - 12.01.21 - 10:35
Ну как мне быть?

Просто тупо взять ТЗ и запонинить как я хочу?
Хоть запросом с отбором по периоду?
   ДенисЧ
 
9 - 12.01.21 - 10:41
Источник данных для ТЗ какой указан?
   fisher
 
10 - 12.01.21 - 10:42
(8) Зачем? Тебе ж просто период задать? Навскидку уже не помню, как в ОФ. Скорее всего через Документы1С.Отбор.
Глянь в отладчике, чего там там в Отбор доступно. "Период" какой-нить или даты начала/окончания.
   Ёпрст
 
11 - 12.01.21 - 10:58
(0)
ну, добавь командную панель, назначь ей источник действий твоё табличное поле, и автозаполнение. Лишние кнопку можешь удалить с панели, оставив только интервал дат
   hhhh
 
12 - 12.01.21 - 11:01
(8) пробуй Отбор
   Обработка
 
13 - 12.01.21 - 11:01
(9) Пустой.
   НЕА123
 
14 - 12.01.21 - 11:08
(2)
если у всех ечеек Виидимоть = Ложь, то строка не отобразится
   Ёпрст
 
15 - 12.01.21 - 11:10
ну или через СтандартныйПериод задавать
   fisher
 
16 - 12.01.21 - 11:16
(13) Еще не сделал, что ли? Элемент отбора "Дата", вид сравнения - интервал, в "ЗначениеС" и "ЗначениеПо" - задаешь нужный диапазон.
   Ёпрст
 
17 - 12.01.21 - 11:27
ЭлементыФормы.Документы1С.СтандартныйПериод.ДатаНачала = Дата('20210101');
   Обработка
 
18 - 12.01.21 - 11:32
(16) На обеде был.

Всем спасибо прикрутил отбор!

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