отбор документов из списка 1с

1. digorec88 05.08.20 14:00 Сейчас в теме
&НаКлиенте
Процедура ОткрытьДокументыПеремещениеТоваров(Команда)
	П = Новый Структура;
	Отбор = Новый Структура;
	Отбор.Вставить("СкладОтправитель", СкладОтправитель);
	Отбор.Вставить("СкладПолучатель", СкладПолучатель);
	Отбор.Вставить("ПометкаУдаления", Ложь);
	Отбор.Вставить("Проведен", Истина);
	Отбор.Вставить("Статус",ПредопределенноеЗначение("Перечисление.СтатусыПеремещенийТоваров.Отгружено"));
	Отбор.Вставить("Дата",Дата);
	П.Вставить("Отбор", Отбор);
	ОткрытьФорму("Документ.ПеремещениеТоваров.Форма.бав_ФормаСпискаДляОбработкиПеремещениеСырья",П);
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Дата = ТекущаяДата();
КонецПроцедуры
Показать




Нет отбора по дате. Что делаю не так?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DmitriyTih 05.08.20 14:07 Сейчас в теме
(1)
Нет отбора по дате.

А что происходит? Не выводится ни один документ?
3. digorec88 05.08.20 14:11 Сейчас в теме
(2)Всё верно. Если уберу дату из структуры то по остальным критериям всё прекрасно выводится
6. antz 05.08.20 15:04 Сейчас в теме
(3) Отбираются документы с датой на момент открытия формы. Таких вряд ли много наберется.
7. digorec88 05.08.20 15:09 Сейчас в теме
(6) Разве? Я же делаю отбор по дате документа
9. DmitriyTih 05.08.20 15:18 Сейчас в теме
(7)Дата документа скорее всего состоит из даты и времени, текущая дата возвращает дату и время с точностью до секунды. Равенство дат проверяется с точностью до секунды.Поэтому нет ни одного документа, дата которого равна текущей дате с точностью до секунды
10. DmitriyTih 05.08.20 15:28 Сейчас в теме
(7)Попробуй сделать так, только замени организацию на дату и выбери ВидСравненияКомпоновкиДанных больше или равно НачалоДня(ТекущаяДата()) (там еще есть "Между" вроде):

Форма_ = ПолучитьФорму("Документ.ПеремещениеТоваров.Форма.бав_ФормаСпискаДляОбработкиПеремещениеСырья);
ЭлементОтбора = Форма_.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Объект.Организация; 
Форма_.Открыть();	
Показать
11. digorec88 05.08.20 15:57 Сейчас в теме
(10) Окей. Но ведь у меня отбор не только по Дате. Проведен = Истина; ПометкаУдаления = Ложь; Статус",ПредопределенноеЗначение("Перечисление.СтатусыПеремещенийТоваров.Отгружено")
14. DmitriyTih 05.08.20 16:09 Сейчас в теме
(11)Добавляете все необходимые отборы, их может быть несколько
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Объект.Организация; 
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Контрагент; 

ит.д.
Посмотрите с помощью точки останова какое значение принимает Форма_.Список.Отбор и все поймете
digorec88; +1 Ответить
12. digorec88 05.08.20 15:57 Сейчас в теме
13. digorec88 05.08.20 15:59 Сейчас в теме
(10) И еще такой момент. Почему стандартные реквизиты документа(Проведен и ПометкаУдаления) отрабатывают,а Дата не отрабатывает. Ведь Дата же тоже входит в список Стандартных реквизитов
15. DmitriyTih 05.08.20 16:10 Сейчас в теме
(13)Не понял суть вопроса, в каком плане "Проведен и ПометкаУдаления отрабатывают, а Дата не отрабатывает?"
4. MikhailDr 05.08.20 14:51 Сейчас в теме
Я не вижу как происходит сам отбор. Как обрабатывается параметр на форме списка?
5. azali 05.08.20 14:55 Сейчас в теме
(4)
Даты - это дата+ время ?
8. digorec88 05.08.20 15:09 Сейчас в теме
Отбор.Вставить("СкладОтправитель", СкладОтправитель);
Отбор.Вставить("СкладПолучатель", СкладПолучатель);
Отбор.Вставить("ПометкаУдаления", Ложь);
Отбор.Вставить("Проведен", Истина);
Отбор.Вставить("Статус",ПредопределенноеЗначение("Перечисление.СтатусыПеремещенийТоваров.Отгружено"));
Отбор.Вставить("Дата",Дата);
16. digorec88 05.08.20 16:13 Сейчас в теме
&НаКлиенте
Процедура ОткрытьДокументыПеремещениеТоваров(Команда)
П = Новый Структура;
Отбор = Новый Структура;
Отбор.Вставить("СкладОтправитель", СкладОтправитель);
Отбор.Вставить("СкладПолучатель", СкладПолучатель);
Отбор.Вставить("ПометкаУдаления", Ложь);
Отбор.Вставить("Проведен", Истина);
Отбор.Вставить("Статус",ПредопределенноеЗначение("Перечисление.СтатусыПеремещенийТоваров.Отгружено"));
Отбор.Вставить("Дата",Дата);
П.Вставить("Отбор", Отбор);
ОткрытьФорму("Документ.ПеремещениеТоваров.Форма.бав_ФормаСпискаДляОбработкиПеремещениеСырья",П);
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
Дата = ТекущаяДата();
КонецПроцедуры
Показать


Если убрать вот это Отбор.Вставить("Дата",Дата);
то у меня выводится список. И вот в этом то и вопрос. ПометкаУдаления;Проведен;Дата это всё стандартные реквизиты.
17. EVKash 14 05.08.20 16:22 Сейчас в теме
(16) Если надо за текущую дату то попробуйте так.
	ПараметрыФормы = Новый Структура;
	
	Отбор = Новый Структура;
	Отбор = Новый Структура;
	Отбор.Вставить("СкладОтправитель", СкладОтправитель);
	Отбор.Вставить("СкладПолучатель", СкладПолучатель);
	Отбор.Вставить("ПометкаУдаления", Ложь);
	Отбор.Вставить("Проведен", Истина);
	Отбор.Вставить("Статус",ПредопределенноеЗначение("Перечисление.СтатусыПеремещенийТоваров.Отгружено"));
	
   	ПараметрыФормы.Вставить("Отбор", Отбор);
	
	ФиксированныеНастройки = Новый НастройкиКомпоновкиДанных;
	
	Отбор = ФиксированныеНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дата");
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно;
    Отбор.ПравоеЗначение = НачалоДня(Дата);
    Отбор.Использование = Истина;
    Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
	
    Отбор = ФиксированныеНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дата");
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
    Отбор.ПравоеЗначение = КонецДня(Дата);
    Отбор.Использование = Истина;
    Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
	
	ПараметрыФормы.Вставить("ФиксированныеНастройки", ФиксированныеНастройки);
	ПараметрыФормы.Вставить("МножественныйВыбор",Истина);
	
	ОткрытьФорму("Документ.ПеремещениеТоваров.Форма.бав_ФормаСпискаДляОбработкиПеремещениеСырья", ПараметрыФормы);
Показать
digorec88; +1 Ответить
20. PiotrLoginov 07.08.20 13:16 Сейчас в теме
ТС, остались вопросы ? Хорошо бы оставить информацию, чем все кончилось. Вариант из (17) подошел ?
18. VZyryanov 05.08.20 16:45 Сейчас в теме
Отбор по дате сделать отдельно:
    П.Вставить("Отбор", Отбор); //Здесь отбор без даты
    П.Вставить("ДатаОтбора", Дата);
    ОткрытьФорму("Документ.ПеремещениеТоваров.Форма.бав_ФормаСпискаДляОбработкиПеремещениеСырья",П);


В модуле формы Документ.ПеремещениеТоваров.Форма.бав_ФормаСпискаДляОбработкиПеремещениеСырья
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	Если Параметры.Свойство("ДатаОтбора") Тогда
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
			Список,"Дата",НачалоДня(Параметры.ДатаОтбора),ВидСравненияКомпоновкиДанных.БольшеИлиРавно,,Истина,
			РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);		
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
			Список,"Дата",КонецДня(Параметры.ДатаОтбора),ВидСравненияКомпоновкиДанных.МеньшеИлиРавно,,Истина,
			РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);		
	КонецЕсли;


КонецПроцедуры
Показать
digorec88; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот