Добавить быстрый отбор

По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
15. NikR 30.03.07 08:36 Сейчас в теме
Помогите пожайлуста добавить быстрый отбор в журнал по поставщикам.
Я пробовал но в этом участке

Процедура ПриВыбореКонтрагента()
Если КонтрагентДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Контрагент", КонтрагентДляОтбора);
КонтрагентДляОтбора = КонтрагентДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("");
КонецЕсли;

КонецПроцедуры // ПриВыбореКонтрагента()

выдает что неправильный реквизит. Не могу определить ошибку
16. sashulyT 201 30.03.07 09:37 Сейчас в теме
строка:
КонтрагентДляОтбора = КонтрагентДляОтбора.ТекущийЭлемент();
лишняя

Если когда уберешь если не заработает, пиши полное сообщение об ошибке.
17. NikR 30.03.07 11:19 Сейчас в теме
Если эту строку убрать отбор не работает. А так выдает ошибку:

УстановитьОтбор("Контрагент", КонтрагентДляОтбора);
{Журнал.ДокументыПоПоставщикам.Форма.ФормаСписка.Модуль(23)}: Неверное имя реквизита!

Мне надо в журнал по поставщикам добавить быстрый отбор по контрагентам.
Как это сделать? У меня не получилось
18. NikR 30.03.07 11:22 Сейчас в теме
Вот полный модуль. Где ошибка?

////////////////////////////////////////////////////////////­////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ
//
Перем СписокДействий; // Список действий по документу

Перем КонтрагентДляОтбора, ФирмаДляОтбора, ЮрЛицоДляОтбора,
СкладДляОтбора, ВидДокументаДляОтбора, АвторДляОтбора, ПроектДляОтбора; // Переменные для отбора
Перем ЗначениеВВидеСтроки;

Перем ДокументОснованиеЖурнала; // если пустое, то открыта обычная форма журнала,
//******************************************************************************
// ПриВыбореКонтрагента()
Процедура ПриВыбореКонтрагента()

Если КонтрагентДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Контрагент", КонтрагентДляОтбора);
КонтрагентДляОтбора = КонтрагентДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("");
КонецЕсли;

КонецПроцедуры // ПриВыбореКонтрагента()

//******************************************************************************
// ПриУстановкеБыстрогоОтбора()
//
Процедура ПриУстановкеБыстрогоОтбора()
Перем ТекущДок;

//В форме журнала подчиненных документов отбора нет
Если ПустоеЗначение(ДокументОснованиеЖурнала) = 0 Тогда
Возврат;
КонецЕсли;

ТекущДок = ТекущийДокумент;
ОтборПо = ВидОтбора.ПолучитьЗначение(ВидОтбора.ТекущаяСтрока());

Если ВидОтбора.ТекущаяСтрока() = 1 Тогда // нет быстрого отбора

ЗначениеВВидеСтроки = "";
Форма.кнЗначение.Доступность(0);

УстановитьОтбор("");
ВидыОтбора("*");

Иначе // есть быстрый отбор

Форма.кнЗначение.Доступность(1);

Если ОтборПо = "по контрагенту" Тогда
ПриВыбореКонтрагента();
ЗначениеВВидеСтроки=Строка(КонтрагентДляОтбора);

КонецЕсли;

ВидыОтбора("");

КонецЕсли;

Попытка
АктивизироватьОбъект(ТекущДок);
Исключение
Сообщить(ОписаниеОшибки(),"!");
КонецПопытки;

КонецПроцедуры // ПриУстановкеБыстрогоОтбора()


//******************************************************************************
// ПоКнопкеЗначение()
//
Процедура ПоКнопкеЗначение()
Перем ЗначениеИзменилось,СтароеЗначение,ВыбЗначение;

ЗначениеИзменилось=0;
ОтборПо = ВидОтбора.ПолучитьЗначение(ВидОтбора.ТекущаяСтрока());


Если ОтборПо = "по контрагенту" Тогда
СтароеЗначение=КонтрагентДляОтбора;
ВыбЗначение = СоздатьОбъект("Справочник.Контрагенты");
Если ВыбЗначение.Выбрать("Выбор контрагента","Форма списка")=1 Тогда
КонтрагентДляОтбора = ВыбЗначение;
Если ВыбЗначение<>СтароеЗначение Тогда
ЗначениеИзменилось=1;
КонецЕсли;
КонецЕсли;
КонецЕсли;

Если ЗначениеИзменилось=1 Тогда
ПриУстановкеБыстрогоОтбора();
КонецЕсли;

КонецПроцедуры // ПоКнопкеЗначение()

//******************************************************************************
// ПриОбычномОткрытииЖурнала()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
// Описание:
// Выполняет необходимые действия при обычном открытии журнала
//
Процедура ПриОбычномОткрытииЖурнала()

// определение контрагента для отбора
КонтрагентДляОтбора =ВосстановитьЗначение("КонтрагентОтбораЖурнала");
КонтрагентДляОтбора= ?(ПустоеЗначение(КонтрагентДляОтбора)=1, ПолучитьПустоеЗначение("Справочник.Контрагенты"), КонтрагентДляОтбора);

КонецПроцедуры // ПриОбычномОткрытииЖурнала()
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриЗакрытии()

СохранитьЗначение("ТекДок",ТекущийДокумент);

//В форме журнала подчиненных документов отбора нет
Если ПустоеЗначение(ДокументОснованиеЖурнала) = 1 Тогда
СохранитьЗначение("КонтрагентОтбораЖурнала",КонтрагентДляОтбора);

СохранитьЗначение("ВидОтбораЖурнала",ВидОтбора.ТекущаяСтрока());
КонецЕсли;

КонецПроцедуры // ПриЗакрытии()

////////////////////////////////////////////////////////////­////////////////////

////////////////////////////////////////////////////////////­////////////////////
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ
//
//Инициализирум список действий по кнопке "Действия"
СписокДействий = СоздатьОбъект("СписокЗначений");
СписокДействий.ДобавитьЗначение("Структура подчиненности");
СписокДействий.ДобавитьЗначение("Отчет о движениях документа");
СписокДействий.ДобавитьЗначение("Отчет о бухгалтерских проводках");
СписокДействий.ДобавитьЗначение("Ввести на основании");
СписокДействий.ДобавитьЗначение("Скопировать в...");

СписокВидовДокументов = СоздатьОбъект("СписокЗначений");
Для Счетчик = 1 по Метаданные.Документ() Цикл
СписокВидовДокументов.ДобавитьЗначение(Метаданные.Документ(Счетчик).Идентификатор, Метаданные.Документ(Счетчик).Представление());
КонецЦикла;
СписокВидовДокументов.СортироватьПоПредставлению();

// Заполним список возможных видов быстрого отбора
ВидОтбора.ДобавитьЗначение(" < отсутствует > ");
ВидОтбора.ДобавитьЗначение("по контрагенту");

КонтрагентДляОтбора = СоздатьОбъект("Справочник.Контрагенты");
ВидДокументаДляОтбора = 1;

19. sashulyT 201 30.03.07 11:33 Сейчас в теме
На сколько я помню отбор работает только в "общем" журнале.
20. NikR 30.03.07 12:02 Сейчас в теме
А сделать в этом журнале
21. NikR 30.03.07 12:02 Сейчас в теме
Просто мне очень нужно
22. sashulyT 201 30.03.07 12:08 Сейчас в теме
Боюсь, что никак. Ограничение 1С.

Хотя подожди, люди подтянутся может кто, что делал подобное
23. poppy 01.04.07 12:13 Сейчас в теме
ИМХО задача частично решаема.

Необходимо создать еще один вид отбора, например, "Поставщик". В нем указать реквизиты "Контрагент" не всех документов, но некоторых.

Естно отбор можно использовать только в общих журналах. Поэтому, твой, NikR, журнал нужно перевести в общие.
24. O-Planet 6443 02.04.07 07:35 Сейчас в теме
> Просто мне очень нужно
Очень убедительно. Варианты:
1. Заново 1С написать самому.
2. Сделать журнал общим
3. Использовать вместо журнала обработку
4. Придумать что-то еще (не советую, но я бы поступил именно так)
25. CheBurator 2712 03.04.07 09:48 Сейчас в теме
5. Узнать что все-таки нужно юзеру (НЕ ТО КАК ОН ПРОСИТ РЕШИТЬ), а что ему нужно и ПОЧЕМУ. 95% уверен, что проблема решается без всяких извратов.
26. Ворона 03.04.07 10:54 Сейчас в теме
а может предложить вести вручную и складывать все в отдельные папочки? ;)
ничего делать и не надо будет)))
_
27. O-Planet 6443 05.04.07 14:05 Сейчас в теме
О! Ворона...
КЛЛЛАААДДДИИИИ фотку!!!
Оставьте свое сообщение

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