kostya77 @ Сегодня, 10:53

,
//пример из конфигурации "торговля и склад" общий (полный) журнал.
//******************************************************************************
Процедура ПриВыбореКонтрагента()
Если КонтрагентДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Контрагент", КонтрагентДляОтбора);
КонтрагентДляОтбора = КонтрагентДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("");
КонецЕсли;
КонецПроцедуры
//******************************************************************************
Процедура ПриВыбореВидаДокумента()
Если ПустоеЗначение(ВидДокументаДляОтбора) = 1 Тогда
ВидДокументаДляОтбора=1;
КонецЕсли;
УстановитьОтбор(СписокВидовДокументов.ПолучитьЗначение(ВидДокументаДляОтбора), );
КонецПроцедуры
//******************************************************************************
Процедура ПриВыбореАвтора()
Если АвторДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Автор", АвторДляОтбора);
АвторДляОтбора = АвторДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("");
КонецЕсли;
КонецПроцедуры
//******************************************************************************
Процедура ПриВыбореТипа()
Если ПустоеЗначение(ТипДляОтбора)>0 Тогда
ТипДляОтбора=1;
КонецЕсли;
УстановитьОтбор("ТипУчета", ТипДляОтбора-1);
КонецПроцедуры
//******************************************************************************
Процедура ПриВыбореФирмы()
Если ФирмаДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Фирма", ФирмаДляОтбора);
ФирмаДляОтбора = ФирмаДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("");
КонецЕсли;
КонецПроцедуры
//******************************************************************************
//
Процедура ПриУстановкеБыстрогоОтбора()
Перем ТекущДок;
ТекущДок = ТекущийДокумент;
Если ВидОтбора.ТекущаяСтрока() = 6 Тогда // нет быстрого отбора
ЗначениеВВидеСтроки = "";
Форма.кнЗначение.Доступность(0);
УстановитьОтбор("");
ВидыОтбора("*");
Иначе // есть быстрый отбор
Форма.кнЗначение.Доступность(1);
Если ВидОтбора.ТекущаяСтрока() = 1 Тогда
ПриВыбореКонтрагента();
ЗначениеВВидеСтроки=Строка(КонтрагентДляОтбора);
ИначеЕсли ВидОтбора.ТекущаяСтрока() = 2 Тогда
ПриВыбореВидаДокумента();
СписокВидовДокументов.ПолучитьЗначение(ВидДокументаДляОтбора,ЗначениеВВидеСтроки);
ИначеЕсли ВидОтбора.ТекущаяСтрока() = 3 Тогда
ПриВыбореАвтора();
ЗначениеВВидеСтроки=Строка(АвторДляОтбора);
ИначеЕсли ВидОтбора.ТекущаяСтрока() = 4 Тогда
ПриВыбореТипа();
ТипыУчета.ПолучитьЗначение(ТипДляОтбора,ЗначениеВВидеСтроки);
ИначеЕсли ВидОтбора.ТекущаяСтрока() = 5 Тогда
ПриВыбореФирмы();
ЗначениеВВидеСтроки=Строка(ФирмаДляОтбора);
КонецЕсли;
ВидыОтбора("");
КонецЕсли;
Попытка
АктивизироватьОбъект(ТекущДок);
Исключение
КонецПопытки;
КонецПроцедуры // ПриУстановкеБыстрогоОтбора
//******************************************************************************
//
Процедура ВыборЗначения()
Перем ЗначениеИзменилось,СтароеЗначение,ВыбЗначение;
Если ВидОтбора.ТекущаяСтрока() = 6 Тогда // нет быстрого отбора
Возврат;
КонецЕсли;
ЗначениеИзменилось=0;
Если ВидОтбора.ТекущаяСтрока() = 1 Тогда
СтароеЗначение=КонтрагентДляОтбора;
ВыбЗначение = СоздатьОбъект("Справочник.Контрагенты");
Если ВыбЗначение.Выбрать("Выбор контрагента","Форма списка")=1 Тогда
КонтрагентДляОтбора = ВыбЗначение;
Если ВыбЗначение<>СтароеЗначение Тогда
ЗначениеИзменилось=1;
КонецЕсли;
КонецЕсли;
ИначеЕсли ВидОтбора.ТекущаяСтрока() = 2 Тогда
СтароеЗначение=ВидДокументаДляОтбора;
Если ПустоеЗначение(ВидДокументаДляОтбора)>0 Тогда
ВыбЗначение = "";
Иначе
ВыбЗначение = СписокВидовДокументов.ПолучитьЗначение(ВидДокументаДляОтбора);
КонецЕсли;
СписокВидовДокументов.ВыбратьЗначение(ВыбЗначение,"Выбор вида документов",,,0);
ВидДокументаДляОтбора = СписокВидовДокументов.НайтиЗначение(ВыбЗначение);
Если ВидДокументаДляОтбора<>СтароеЗначение Тогда
ЗначениеИзменилось=1;
КонецЕсли;
ИначеЕсли ВидОтбора.ТекущаяСтрока() = 3 Тогда
СтароеЗначение=АвторДляОтбора;
ВыбЗначение = СоздатьОбъект("Справочник.Пользователи");
Если ВыбЗначение.Выбрать("Выбор автора","Форма списка")=1 Тогда
АвторДляОтбора = ВыбЗначение;
Если ВыбЗначение<>СтароеЗначение Тогда
ЗначениеИзменилось=1;
КонецЕсли;
КонецЕсли;
ИначеЕсли ВидОтбора.ТекущаяСтрока() = 4 Тогда
СтароеЗначение=ТипДляОтбора;
Если ПустоеЗначение(ТипДляОтбора)>0 Тогда
ВыбЗначение = "";
Иначе
ВыбЗначение = ТипыУчета.ПолучитьЗначение(ТипДляОтбора);
КонецЕсли;
ТипыУчета.ВыбратьЗначение(ВыбЗначение,"Выбор типа учета",,,0);
ТипДляОтбора = ТипыУчета.НайтиЗначение(ВыбЗначение);
Если ТипДляОтбора<>СтароеЗначение Тогда
ЗначениеИзменилось=1;
КонецЕсли;
ИначеЕсли ВидОтбора.ТекущаяСтрока() = 5 Тогда
СтароеЗначение=ФирмаДляОтбора;
ВыбЗначение = СоздатьОбъект("Справочник.Фирмы");
Если ВыбЗначение.Выбрать("Выбор фирмы","Форма списка")=1 Тогда
ФирмаДляОтбора = ВыбЗначение;
Если ВыбЗначение<>СтароеЗначение Тогда
ЗначениеИзменилось=1;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ЗначениеИзменилось=1 Тогда
ПриУстановкеБыстрогоОтбора();
КонецЕсли;
КонецПроцедуры
kostya77 @ Сегодня, 11:21

,
в общем журнале