По теме из базы знаний
- Быстрый отбор в форме списка (выбора) справочника
- Быстрые отборы в списках типовых конфигураций
- Инструменты бухгалтера: Быстрые отборы в списках
- Быстрый отбор по первой букве в любом списке
- Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Помогите пожайлуста добавить быстрый отбор в журнал по поставщикам.
Я пробовал но в этом участке
Процедура ПриВыбореКонтрагента()
Если КонтрагентДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Контрагент", КонтрагентДляОтбора);
КонтрагентДляОтбора = КонтрагентДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("");
КонецЕсли;
КонецПроцедуры // ПриВыбореКонтрагента()
выдает что неправильный реквизит. Не могу определить ошибку
Я пробовал но в этом участке
Процедура ПриВыбореКонтрагента()
Если КонтрагентДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Контрагент", КонтрагентДляОтбора);
КонтрагентДляОтбора = КонтрагентДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("");
КонецЕсли;
КонецПроцедуры // ПриВыбореКонтрагента()
выдает что неправильный реквизит. Не могу определить ошибку
Если эту строку убрать отбор не работает. А так выдает ошибку:
УстановитьОтбор("Контрагент", КонтрагентДляОтбора);
{Журнал.ДокументыПоПоставщикам.Форма.ФормаСписка.Модуль(23)}: Неверное имя реквизита!
Мне надо в журнал по поставщикам добавить быстрый отбор по контрагентам.
Как это сделать? У меня не получилось
УстановитьОтбор("Контрагент", КонтрагентДляОтбора);
{Журнал.ДокументыПоПоставщикам.Форма.ФормаСписка.Модуль(23)}: Неверное имя реквизита!
Мне надо в журнал по поставщикам добавить быстрый отбор по контрагентам.
Как это сделать? У меня не получилось
Вот полный модуль. Где ошибка?
//////////////////////////////////////////////////////////// ////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ
//
Перем СписокДействий; // Список действий по документу
Перем КонтрагентДляОтбора, ФирмаДляОтбора, ЮрЛицоДляОтбора,
СкладДляОтбора, ВидДокументаДляОтбора, АвторДляОтбора, ПроектДляОтбора; // Переменные для отбора
Перем ЗначениеВВидеСтроки;
Перем ДокументОснованиеЖурнала; // если пустое, то открыта обычная форма журнала,
//******************************************************************************
// ПриВыбореКонтрагента()
Процедура ПриВыбореКонтрагента()
Если КонтрагентДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Контрагент", КонтрагентДляОтбора);
КонтрагентДляОтбора = КонтрагентДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("");
КонецЕсли;
КонецПроцедуры // ПриВыбореКонтрагента()
//******************************************************************************
// ПриУстановкеБыстрогоОтбора()
//
Процедура ПриУстановкеБыстрогоОтбора()
Перем ТекущДок;
//В форме журнала подчиненных документов отбора нет
Если ПустоеЗначение(ДокументОснованиеЖурнала) = 0 Тогда
Возврат;
КонецЕсли;
ТекущДок = ТекущийДокумент;
ОтборПо = ВидОтбора.ПолучитьЗначение(ВидОтбора.ТекущаяСтрока());
Если ВидОтбора.ТекущаяСтрока() = 1 Тогда // нет быстрого отбора
ЗначениеВВидеСтроки = "";
Форма.кнЗначение.Доступность(0);
УстановитьОтбор("");
ВидыОтбора("*");
Иначе // есть быстрый отбор
Форма.кнЗначение.Доступность(1);
Если ОтборПо = "по контрагенту" Тогда
ПриВыбореКонтрагента();
ЗначениеВВидеСтроки=Строка(КонтрагентДляОтбора);
КонецЕсли;
ВидыОтбора("");
КонецЕсли;
Попытка
АктивизироватьОбъект(ТекущДок);
Исключение
Сообщить(ОписаниеОшибки(),"!");
КонецПопытки;
КонецПроцедуры // ПриУстановкеБыстрогоОтбора()
//******************************************************************************
// ПоКнопкеЗначение()
//
Процедура ПоКнопкеЗначение()
Перем ЗначениеИзменилось,СтароеЗначение,ВыбЗначение;
ЗначениеИзменилось=0;
ОтборПо = ВидОтбора.ПолучитьЗначение(ВидОтбора.ТекущаяСтрока());
Если ОтборПо = "по контрагенту" Тогда
СтароеЗначение=КонтрагентДляОтбора;
ВыбЗначение = СоздатьОбъект("Справочник.Контрагенты");
Если ВыбЗначение.Выбрать("Выбор контрагента","Форма списка")=1 Тогда
КонтрагентДляОтбора = ВыбЗначение;
Если ВыбЗначение<>СтароеЗначение Тогда
ЗначениеИзменилось=1;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ЗначениеИзменилось=1 Тогда
ПриУстановкеБыстрогоОтбора();
КонецЕсли;
КонецПроцедуры // ПоКнопкеЗначение()
//******************************************************************************
// ПриОбычномОткрытииЖурнала()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
// Описание:
// Выполняет необходимые действия при обычном открытии журнала
//
Процедура ПриОбычномОткрытииЖурнала()
// определение контрагента для отбора
КонтрагентДляОтбора =ВосстановитьЗначение("КонтрагентОтбораЖурнала");
КонтрагентДляОтбора= ?(ПустоеЗначение(КонтрагентДляОтбора)=1, ПолучитьПустоеЗначение("Справочник.Контрагенты"), КонтрагентДляОтбора);
КонецПроцедуры // ПриОбычномОткрытииЖурнала()
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриЗакрытии()
СохранитьЗначение("ТекДок",ТекущийДокумент);
//В форме журнала подчиненных документов отбора нет
Если ПустоеЗначение(ДокументОснованиеЖурнала) = 1 Тогда
СохранитьЗначение("КонтрагентОтбораЖурнала",КонтрагентДляОтбора);
СохранитьЗначение("ВидОтбораЖурнала",ВидОтбора.ТекущаяСтрока());
КонецЕсли;
КонецПроцедуры // ПриЗакрытии()
//////////////////////////////////////////////////////////// ////////////////////
//////////////////////////////////////////////////////////// ////////////////////
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ
//
//Инициализирум список действий по кнопке "Действия"
СписокДействий = СоздатьОбъект("СписокЗначений");
СписокДействий.ДобавитьЗначение("Структура подчиненности");
СписокДействий.ДобавитьЗначение("Отчет о движениях документа");
СписокДействий.ДобавитьЗначение("Отчет о бухгалтерских проводках");
СписокДействий.ДобавитьЗначение("Ввести на основании");
СписокДействий.ДобавитьЗначение("Скопировать в...");
СписокВидовДокументов = СоздатьОбъект("СписокЗначений");
Для Счетчик = 1 по Метаданные.Документ() Цикл
СписокВидовДокументов.ДобавитьЗначение(Метаданные.Документ(Счетчик).Идентификатор, Метаданные.Документ(Счетчик).Представление());
КонецЦикла;
СписокВидовДокументов.СортироватьПоПредставлению();
// Заполним список возможных видов быстрого отбора
ВидОтбора.ДобавитьЗначение(" < отсутствует > ");
ВидОтбора.ДобавитьЗначение("по контрагенту");
КонтрагентДляОтбора = СоздатьОбъект("Справочник.Контрагенты");
ВидДокументаДляОтбора = 1;
////////////////////////////////////////////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ
//
Перем СписокДействий; // Список действий по документу
Перем КонтрагентДляОтбора, ФирмаДляОтбора, ЮрЛицоДляОтбора,
СкладДляОтбора, ВидДокументаДляОтбора, АвторДляОтбора, ПроектДляОтбора; // Переменные для отбора
Перем ЗначениеВВидеСтроки;
Перем ДокументОснованиеЖурнала; // если пустое, то открыта обычная форма журнала,
//******************************************************************************
// ПриВыбореКонтрагента()
Процедура ПриВыбореКонтрагента()
Если КонтрагентДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Контрагент", КонтрагентДляОтбора);
КонтрагентДляОтбора = КонтрагентДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("");
КонецЕсли;
КонецПроцедуры // ПриВыбореКонтрагента()
//******************************************************************************
// ПриУстановкеБыстрогоОтбора()
//
Процедура ПриУстановкеБыстрогоОтбора()
Перем ТекущДок;
//В форме журнала подчиненных документов отбора нет
Если ПустоеЗначение(ДокументОснованиеЖурнала) = 0 Тогда
Возврат;
КонецЕсли;
ТекущДок = ТекущийДокумент;
ОтборПо = ВидОтбора.ПолучитьЗначение(ВидОтбора.ТекущаяСтрока());
Если ВидОтбора.ТекущаяСтрока() = 1 Тогда // нет быстрого отбора
ЗначениеВВидеСтроки = "";
Форма.кнЗначение.Доступность(0);
УстановитьОтбор("");
ВидыОтбора("*");
Иначе // есть быстрый отбор
Форма.кнЗначение.Доступность(1);
Если ОтборПо = "по контрагенту" Тогда
ПриВыбореКонтрагента();
ЗначениеВВидеСтроки=Строка(КонтрагентДляОтбора);
КонецЕсли;
ВидыОтбора("");
КонецЕсли;
Попытка
АктивизироватьОбъект(ТекущДок);
Исключение
Сообщить(ОписаниеОшибки(),"!");
КонецПопытки;
КонецПроцедуры // ПриУстановкеБыстрогоОтбора()
//******************************************************************************
// ПоКнопкеЗначение()
//
Процедура ПоКнопкеЗначение()
Перем ЗначениеИзменилось,СтароеЗначение,ВыбЗначение;
ЗначениеИзменилось=0;
ОтборПо = ВидОтбора.ПолучитьЗначение(ВидОтбора.ТекущаяСтрока());
Если ОтборПо = "по контрагенту" Тогда
СтароеЗначение=КонтрагентДляОтбора;
ВыбЗначение = СоздатьОбъект("Справочник.Контрагенты");
Если ВыбЗначение.Выбрать("Выбор контрагента","Форма списка")=1 Тогда
КонтрагентДляОтбора = ВыбЗначение;
Если ВыбЗначение<>СтароеЗначение Тогда
ЗначениеИзменилось=1;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ЗначениеИзменилось=1 Тогда
ПриУстановкеБыстрогоОтбора();
КонецЕсли;
КонецПроцедуры // ПоКнопкеЗначение()
//******************************************************************************
// ПриОбычномОткрытииЖурнала()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
// Описание:
// Выполняет необходимые действия при обычном открытии журнала
//
Процедура ПриОбычномОткрытииЖурнала()
// определение контрагента для отбора
КонтрагентДляОтбора =ВосстановитьЗначение("КонтрагентОтбораЖурнала");
КонтрагентДляОтбора= ?(ПустоеЗначение(КонтрагентДляОтбора)=1, ПолучитьПустоеЗначение("Справочник.Контрагенты"), КонтрагентДляОтбора);
КонецПроцедуры // ПриОбычномОткрытииЖурнала()
//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриЗакрытии()
СохранитьЗначение("ТекДок",ТекущийДокумент);
//В форме журнала подчиненных документов отбора нет
Если ПустоеЗначение(ДокументОснованиеЖурнала) = 1 Тогда
СохранитьЗначение("КонтрагентОтбораЖурнала",КонтрагентДляОтбора);
СохранитьЗначение("ВидОтбораЖурнала",ВидОтбора.ТекущаяСтрока());
КонецЕсли;
КонецПроцедуры // ПриЗакрытии()
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ
//
//Инициализирум список действий по кнопке "Действия"
СписокДействий = СоздатьОбъект("СписокЗначений");
СписокДействий.ДобавитьЗначение("Структура подчиненности");
СписокДействий.ДобавитьЗначение("Отчет о движениях документа");
СписокДействий.ДобавитьЗначение("Отчет о бухгалтерских проводках");
СписокДействий.ДобавитьЗначение("Ввести на основании");
СписокДействий.ДобавитьЗначение("Скопировать в...");
СписокВидовДокументов = СоздатьОбъект("СписокЗначений");
Для Счетчик = 1 по Метаданные.Документ() Цикл
СписокВидовДокументов.ДобавитьЗначение(Метаданные.Документ(Счетчик).Идентификатор, Метаданные.Документ(Счетчик).Представление());
КонецЦикла;
СписокВидовДокументов.СортироватьПоПредставлению();
// Заполним список возможных видов быстрого отбора
ВидОтбора.ДобавитьЗначение(" < отсутствует > ");
ВидОтбора.ДобавитьЗначение("по контрагенту");
КонтрагентДляОтбора = СоздатьОбъект("Справочник.Контрагенты");
ВидДокументаДляОтбора = 1;
ИМХО задача частично решаема.
Необходимо создать еще один вид отбора, например, "Поставщик". В нем указать реквизиты "Контрагент" не всех документов, но некоторых.
Естно отбор можно использовать только в общих журналах. Поэтому, твой, NikR, журнал нужно перевести в общие.
Необходимо создать еще один вид отбора, например, "Поставщик". В нем указать реквизиты "Контрагент" не всех документов, но некоторых.
Естно отбор можно использовать только в общих журналах. Поэтому, твой, NikR, журнал нужно перевести в общие.
> Просто мне очень нужно
Очень убедительно. Варианты:
1. Заново 1С написать самому.
2. Сделать журнал общим
3. Использовать вместо журнала обработку
4. Придумать что-то еще (не советую, но я бы поступил именно так)
Очень убедительно. Варианты:
1. Заново 1С написать самому.
2. Сделать журнал общим
3. Использовать вместо журнала обработку
4. Придумать что-то еще (не советую, но я бы поступил именно так)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот