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