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