Конфигуратор, помогите с написанием кода на сортировку документов по определенным реквизит
13.01.2010
23:20
#1
"т+с 9.2 Общий журнал документов
хочу сделать сортировку документов по кассам, на подобие как и по складам
к примеру , вывести все документы где в реквизитах упоминается касса №2
написал код по аналогии кода по сортировке по складам, визуально все работает, но только не сортирует документ а выводит весь список, как буд то нету сортировки
оброзец кода, с сравнением с кодом под склад
СкладДляОтбора, ВидДокументаДляОтбора, АвторДляОтбора, ПроектДляОтбора, КассаДляОтбора; // Переменные для отбора
Процедура ПриВыбореСклада()
Если СкладДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Склад", СкладДляОтбора);
СкладДляОтбора = СкладДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("""");
КонецЕсли;
КонецПроцедуры // ПриВыбореСклада()
Процедура ПриВыбореКассы()
Если КассаДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Касса", КассаДляОтбора);
КассаДляОтбора = КассаДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("""");
КонецЕсли;
КонецПроцедуры // ПриВыбореКассы()
Процедура ПриВыбореСклада()
Если СкладДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Склад", СкладДляОтбора);
СкладДляОтбора = СкладДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("""");
КонецЕсли;
КонецПроцедуры // ПриВыбореСклада()
Процедура ПриВыбореКассы()
Если КассаДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Касса", КассаДляОтбора);
КассаДляОтбора = КассаДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("""");
КонецЕсли;
КонецПроцедуры // ПриВыбореКассы()
ИначеЕсли ОтборПо = "по складу" Тогда
ПриВыбореСклада();
ЗначениеВВидеСтроки=Строка(СкладДляОтбора);
ИначеЕсли ОтборПо = "по кассе" Тогда
ПриВыбореПроекта();
ЗначениеВВидеСтроки=Строка(КассаДляОтбора);
ИначеЕсли ОтборПо = "по складу" Тогда
СтароеЗначение=СкладДляОтбора;
ВыбЗначение = СоздатьОбъект("Справочник.Склады");
Если ВыбЗначение.Выбрать("Выбор склада",)=1 Тогда
СкладДляОтбора = ВыбЗначение;
Если ВыбЗначение<>СтароеЗначение Тогда
ЗначениеИзменилось=1;
КонецЕсли;
КонецЕсли;
ИначеЕсли ОтборПо = "по кассе" Тогда
СтароеЗначение=КассаДляОтбора;
ВыбЗначение = СоздатьОбъект("Справочник.Кассы");
Если ВыбЗначение.Выбрать("Выбор кассы",)=1 Тогда
КассаДляОтбора = ВыбЗначение;
Если ВыбЗначение<>СтароеЗначение Тогда //
ЗначениеИзменилось=1;
КонецЕсли;
КонецЕсли;
// определение склада для отбора
СкладДляОтбора =ВосстановитьЗначение("СкладОтбораЖурнала");
СкладДляОтбора= ?(ПустоеЗначение(СкладДляОтбора)=1, ПолучитьПустоеЗначение("Справочник.Склады"), СкладДляОтбора);
// определение Кассы для отбора
КассаДляОтбора =ВосстановитьЗначение("КассаОтбораЖурнала");
КассаДляОтбора= ?(ПустоеЗначение(КассаДляОтбора)=1, ПолучитьПустоеЗначение("Справочник.Кассы"), КассаДляОтбора);
ИначеЕсли ОтборПо = "по складу" Тогда
Если глЕстьРеквизитШапки("Склад", ТекДок.Вид()) = 1 Тогда
СкладДляОтбора = ТекДок.Склад;
ИначеЕсли ОтборПо = "по кассе" Тогда
Если глЕстьРеквизитШапки("Касса", ТекДок.Вид()) = 1 Тогда
КассаДляОтбора = ТекДок.Касса; // общий реквизит документов
СохранитьЗначение("СкладОтбораЖурнала",СкладДляОтбора);
СохранитьЗначение("КассаДляОтбораЖурнала",КассаДляОтбора);
ВидОтбора.ДобавитьЗначение("по складу");
ВидОтбора.ДобавитьЗначение("по кассе")
СкладДляОтбора = СоздатьОбъект("Справочник.Склады");
КассаДляОтбора = СоздатьОбъект("Справочник.Кассы");
"
хочу сделать сортировку документов по кассам, на подобие как и по складам
к примеру , вывести все документы где в реквизитах упоминается касса №2
написал код по аналогии кода по сортировке по складам, визуально все работает, но только не сортирует документ а выводит весь список, как буд то нету сортировки
оброзец кода, с сравнением с кодом под склад
СкладДляОтбора, ВидДокументаДляОтбора, АвторДляОтбора, ПроектДляОтбора, КассаДляОтбора; // Переменные для отбора
Процедура ПриВыбореСклада()
Если СкладДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Склад", СкладДляОтбора);
СкладДляОтбора = СкладДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("""");
КонецЕсли;
КонецПроцедуры // ПриВыбореСклада()
Процедура ПриВыбореКассы()
Если КассаДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Касса", КассаДляОтбора);
КассаДляОтбора = КассаДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("""");
КонецЕсли;
КонецПроцедуры // ПриВыбореКассы()
Процедура ПриВыбореСклада()
Если СкладДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Склад", СкладДляОтбора);
СкладДляОтбора = СкладДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("""");
КонецЕсли;
КонецПроцедуры // ПриВыбореСклада()
Процедура ПриВыбореКассы()
Если КассаДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Касса", КассаДляОтбора);
КассаДляОтбора = КассаДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("""");
КонецЕсли;
КонецПроцедуры // ПриВыбореКассы()
ИначеЕсли ОтборПо = "по складу" Тогда
ПриВыбореСклада();
ЗначениеВВидеСтроки=Строка(СкладДляОтбора);
ИначеЕсли ОтборПо = "по кассе" Тогда
ПриВыбореПроекта();
ЗначениеВВидеСтроки=Строка(КассаДляОтбора);
ИначеЕсли ОтборПо = "по складу" Тогда
СтароеЗначение=СкладДляОтбора;
ВыбЗначение = СоздатьОбъект("Справочник.Склады");
Если ВыбЗначение.Выбрать("Выбор склада",)=1 Тогда
СкладДляОтбора = ВыбЗначение;
Если ВыбЗначение<>СтароеЗначение Тогда
ЗначениеИзменилось=1;
КонецЕсли;
КонецЕсли;
ИначеЕсли ОтборПо = "по кассе" Тогда
СтароеЗначение=КассаДляОтбора;
ВыбЗначение = СоздатьОбъект("Справочник.Кассы");
Если ВыбЗначение.Выбрать("Выбор кассы",)=1 Тогда
КассаДляОтбора = ВыбЗначение;
Если ВыбЗначение<>СтароеЗначение Тогда //
ЗначениеИзменилось=1;
КонецЕсли;
КонецЕсли;
// определение склада для отбора
СкладДляОтбора =ВосстановитьЗначение("СкладОтбораЖурнала");
СкладДляОтбора= ?(ПустоеЗначение(СкладДляОтбора)=1, ПолучитьПустоеЗначение("Справочник.Склады"), СкладДляОтбора);
// определение Кассы для отбора
КассаДляОтбора =ВосстановитьЗначение("КассаОтбораЖурнала");
КассаДляОтбора= ?(ПустоеЗначение(КассаДляОтбора)=1, ПолучитьПустоеЗначение("Справочник.Кассы"), КассаДляОтбора);
ИначеЕсли ОтборПо = "по складу" Тогда
Если глЕстьРеквизитШапки("Склад", ТекДок.Вид()) = 1 Тогда
СкладДляОтбора = ТекДок.Склад;
ИначеЕсли ОтборПо = "по кассе" Тогда
Если глЕстьРеквизитШапки("Касса", ТекДок.Вид()) = 1 Тогда
КассаДляОтбора = ТекДок.Касса; // общий реквизит документов
СохранитьЗначение("СкладОтбораЖурнала",СкладДляОтбора);
СохранитьЗначение("КассаДляОтбораЖурнала",КассаДляОтбора);
ВидОтбора.ДобавитьЗначение("по складу");
ВидОтбора.ДобавитьЗначение("по кассе")
СкладДляОтбора = СоздатьОбъект("Справочник.Склады");
КассаДляОтбора = СоздатьОбъект("Справочник.Кассы");
"
14.01.2010
21:14
#6
Отбор он и есть отбор - фильтрация, проще говоря, а по графам отбора сортировок нет. В журнале документов всегда один способ упорядочивания - по шкале времени. По крайней мере, в 7.7
14.01.2010
21:18
#7
если вы не заметили то там реализация, а в ней нету вообще реквизитов по кассе, и в отборе не числиться
рко и пко по разным кассам
как я и писал в первом посте вообще нету отбора, выводит полный список документов
рко и пко по разным кассам
как я и писал в первом посте вообще нету отбора, выводит полный список документов
15.01.2010
09:22
#8
сделай "журнал" на ТЗ и выводи, как хочешь (в какой последовательности) свои доки
Читают тему
(гостей: 1)