Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> добавить фильтр в многострочную часть          
4andriy Подменю пользователя
сообщение 13.12.19, 18:41
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

Есть многострочная часть
Там размещенны реквизиты справочника

хотелось бы в многострочной части из справочника показывать только те строки где соблюдены условия
например:

Если Колличество>1

andrew76 Подменю пользователя
сообщение 14.12.19, 6:27
Сообщение #2

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

4andriy @ Вчера, 21:41 * ,

ИспользоватьСписокЭлементов(<СписокЗначений>)
Назначение:
Реализует фильтрацию элементов справочника, используя нединамический фильтр.
Параметры:
<СписокЗначений> - необязательный параметр. Значение типа - ''СписокЗначений'' - должен представлять собой список элементов справочника, выбранных для просмотра. Если это значение пустое, то фильтр отключается.
Замечание:
Метод доступен только в контексте Модуля формы списка справочника и относится ко всему текущему справочнику.

Спасибо сказали: 4andriy,

4andriy Подменю пользователя
сообщение 16.12.19, 15:00
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

andrew76 @ 14.12.19, 7:27 * ,

Процедура Показать()
СписокЭлементов = создатьОбъект("СписокЗначений");
Пока Контрагенты.ИНН() Цикл
Если (ИНН = 0)
Тогда
СписокЭлементов.ДобавитьЗначение(ИНН.ТекущийЭлемент());
КонецЕсли;
КонецЦикла;
ИспользоватьСписокЭлементов(СписокЭлементов);
КонецПроцедуры


У контрагента ИНН=0, но при нажатии на кнопку список полностью очищается и стает пустой


 ! 

Правила: 9
 


Сообщение отредактировал Vofka - 16.12.19, 15:09

andrew76 Подменю пользователя
сообщение 16.12.19, 16:24
Сообщение #4

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

4andriy @ Сегодня, 18:00 * ,

Вообще-то этот код лучше записать в процедуру ПриОткрытии() формы,
где расположена табличная часть справочника.
Реквизит ИНН какого типа ? Числовой или строковый ?
Количество элементов в списке проверяли? Может список значений пуст ?
Сколько уровней в справочнике ?

Примерно такой код:

Процедура Показать()
СписокЭлементов = создатьОбъект("СписокЗначений");
Контрагенты=СоздатьОбъект("Справочники.Контрагенты");
Контрагенты.ВыбратьЭлементы();

Пока Контрагенты.ПолучитьЭлемент()=1 Цикл
   Если Контрагенты.ИНН=0 Тогда
          СписокЭлементов.ДобавитьЗначение(Контрагенты.ТекущийЭлемент());
   КонецЕсли;
КонецЦикла;

ИспользоватьСписокЭлементов(СписокЭлементов);
КонецПроцедуры



У меня вышеуказанный код отработал правильно.Справочник в моем случае был одноуровневый.

Спасибо сказали: 4andriy,

4andriy Подменю пользователя
сообщение 16.12.19, 18:28
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

andrew76 @ Сегодня, 17:24 * ,

сделал так:

Процедура Показать()
СписокЭлементов = СоздатьОбъект("СписокЗначений");
Контрагенты=СоздатьОбъект("Справочник.Контрагенты");
Контрагенты.ВыбратьЭлементы();
Пока Контрагенты.ПолучитьЭлемент()=1 Цикл
   Если Контрагенты.ИНН="0" Тогда
          СписокЭлементов.ДобавитьЗначение(Контрагенты.ТекущийЭлемент());
   КонецЕсли;
КонецЦикла;
ИспользоватьСписокЭлементов(СписокЭлементов);
КонецПроцедуры


ИНН - строка
в списке елементы есть. при открытии список контрагентов у которых 0 в инн, после нажатия показать они пропадают все
1 уровень

тоесть открываю список в котором контрагенты с 0 и другое значение
после нажатия кнопки почему-то пропадает все

volodya1122 Подменю пользователя
сообщение 16.12.19, 20:15
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

4andriy @ Сегодня, 18:28 * ,
Так если у Вас ИНН точно строка то там скорее пусто а не ноль?
Если Контрагенты.ИНН="" Тогда

Спасибо сказали: 4andriy,

4andriy Подменю пользователя
сообщение 16.12.19, 20:17
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

volodya1122 @ Сегодня, 21:15 * ,
я специально прописывал 0
если делаю "" то все-равно пропадают все значения из таблицы

andrew76 Подменю пользователя
сообщение 17.12.19, 2:35
Сообщение #8

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Странно как-то фильтр работает.А если ИНН временно в числовой формат перевести (ради эксперимента)?

Спасибо сказали: 4andriy,

4andriy Подменю пользователя
сообщение 17.12.19, 12:14
Сообщение #9

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

andrew76 @ Сегодня, 3:35 * ,
в числовом работает, строковую не находит

но, почему-то появились какие-то значки каталога со знаком вопроса в начале выборки




 ! 

Правила: 8
 


Сообщение отредактировал Vofka - 17.12.19, 12:15

volodya1122 Подменю пользователя
сообщение 17.12.19, 12:33
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

4andriy @ Сегодня, 12:14 * ,
Попробуйте такое условие
Если ПустаяСтрока(Контрагенты.ИНН)=1 Тогда

Кажется для строковой переменной значение заполняется прбелами до полной длинны. Поэтому у вас в ИНН не "" или "0" а всегда заполнено так " " или "0 " (в смысле - например 12 пробелов).

Сообщение отредактировал volodya1122 - 17.12.19, 12:35

Спасибо сказали: 4andriy,

4andriy Подменю пользователя
сообщение 17.12.19, 13:49
Сообщение #11

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

volodya1122 @ Сегодня, 13:33 * ,
тоже об этом думал

а кто знает что за значения с знаками вопроса?

volodya1122 Подменю пользователя
сообщение 17.12.19, 14:08
Сообщение #12

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Цитата(4andriy @ 17.12.19, 13:49) *
а кто знает что за значения с знаками вопроса?

Перед ИспользоватьСписокЕлементов напишите
ИерархическийСписок(0,1);

Спасибо сказали: 4andriy,

4andriy Подменю пользователя
сообщение 18.12.19, 20:31
Сообщение #13

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

volodya1122 @ Вчера, 15:08 * ,
все работает, только пропадает сортировка, если перейти в действие - сортировка то тоже не активно.
пробовал:
Сортировка(Контрагенты.ИНН);


В ошибке пишет что "Неверное имя реквизита!"

volodya1122 Подменю пользователя
сообщение 19.12.19, 9:54
Сообщение #14

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Цитата(4andriy @ 18.12.19, 20:31) *
В ошибке пишет что "Неверное имя реквизита!"

1, Нужно писать так: Сортировка("ИНН");
2. Для реквизита ИНН в свойствах нужно поставить отметку "Сортировка"
3. Когда пишите ИспользоватьСписокЭлементов то сортировка работать небудет.
4. Попробуйте создать список в нужной последовательности. Используйте метод ПорядокРеквизита (до ВыбратьЭлементы)

Сообщение отредактировал volodya1122 - 19.12.19, 9:54

4andriy Подменю пользователя
сообщение 19.12.19, 14:24
Сообщение #15

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

volodya1122 @ Сегодня, 10:54 * ,
1. не пошло
2. включил
3. понятно
4. порядокреквизита("ИНН") поставил до выбрать елемент и результат 0.

может програмно сделать сорировку?

4andriy Подменю пользователя
сообщение 19.12.19, 16:16
Сообщение #16

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

4andriy @ Сегодня, 15:24 * ,
Сортировка("ИНН");

онибок не дает, но и не сортирует... странно

4andriy @ Сегодня, 17:07 * ,
ПорядокРеквизита("ИНН");
Контрагенты.ВыбратьЭлементы();

volodya1122 Подменю пользователя
сообщение 20.12.19, 9:16
Сообщение #17

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Цитата(4andriy @ 19.12.19, 16:16) *
ПорядокРеквизита("ИНН");
Контрагенты.ВыбратьЭлементы();

Думал что догадаетесь сами. Нужно писать так:
Контрагенты.ПорядокРеквизита("ИНН");
Контрагенты.ВыбратьЭлементы();


И еще я же написал. 1 в связке с 3 работать небудет

Спасибо сказали: 4andriy,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 4:23
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!