Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как обозначить пустой результат списка
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
Gigi
Привет Всем!
Уважаемые форумчане!
На подскажете к как обозначить пустой результат списка.
На пример такого отбора:

&НаКлиенте
Процедура Отобор_СубТочки()
ЗначениеОтбора="" +Объект.Код;
СтолбецОтбора="СнабжКод";    
//==========================
Если ЗначениеОтбора="" Тогда
ЗначениеОтбора="----";
КонецЕсли;
//==========================
Отбор = СубТочкиСписок.Отбор.Элементы;
СубТочкиСписок.Отбор.Элементы.Очистить();
//==========================
ЭлементОтбора=СубТочкиСписок.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ПравоеЗначение=ЗначениеОтбора;
ЭлементОтбора.ЛевоеЗначение=Новый ПолеКомпоновкиДанных(СтолбецОтбора);
ЭлементОтбора.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование=ИСТИНА;
//==========================
//Сообщить(КАК ОБОЗНАЧИТЬ ЕСЛИ РЕЗУЛЬТАТ ОТБОРА ПУСТ. Т.е когда не было не одного совпадения);
КонецПроцедуры

Это нужно для того, что бы самому вставленную кнопку, в случае пустого динамического списка, сделать недоступной.

Буду признателен!
Flexy
Gigi @ Сегодня, 12:40 необходимо зарегистрироваться для просмотра ссылки ,
Как получаете количество записей в динамическом списке при изменении отбора?
logist
У динамического списка нет количества элементов. что бы понять что результат отбора пустой надо выполнить аналогичный запрос с отбором, иначе никак.
Gigi
logist @ Сегодня, 13:00 необходимо зарегистрироваться для просмотра ссылки ,
Блин! Ну а как тогда быть?
Цитата(logist @ 29.05.17, 13:00) необходимо зарегистрироваться для просмотра ссылки
аналогичный запрос с отбором

Это нагрузка.... только так и никак иначе?
мне просто нужно, что бы кнопка стала недоступной... как в командной панели по стандарту.
ведь когда список пуст, на пример кнопка "удалить" становиться ведь недоступной. И в стандартном режиме, как то ведь это работает,.?... без проблем.
просто нужно то же самое, только с самим вложенной кнопкой.
Только для этого не знаю как обозначить пустой результат отбора.. при любом событии... на пример при изменении значения отбора, или при открытии... не важно.
Flexy
Gigi @ Сегодня, 13:12 необходимо зарегистрироваться для просмотра ссылки ,
Велосипед smile.gif
&НаКлиенте
Процедура Отобор_СубТочки()
ЗначениеОтбора="" +Объект.Код;
СтолбецОтбора="СнабжКод";    
//==========================
Если ЗначениеОтбора="" Тогда
ЗначениеОтбора="----";
КонецЕсли;
//==========================
Отбор = СубТочкиСписок.Отбор.Элементы;
СубТочкиСписок.Отбор.Элементы.Очистить();
//==========================
ЭлементОтбора=СубТочкиСписок.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ПравоеЗначение=ЗначениеОтбора;
ЭлементОтбора.ЛевоеЗначение=Новый ПолеКомпоновкиДанных(СтолбецОтбора);
ЭлементОтбора.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование=ИСТИНА;
//==========================
// Flexy
Элементы.МояКнопка.Доступность = Не Элементы.Список.ТекущаяСтрока = Неопределено;
//-----
КонецПроцедуры
logist
Цитата(Gigi @ 29.05.17, 14:12) необходимо зарегистрироваться для просмотра ссылки
только так и никак иначе?

Откуда ж я знаю, вы себе придумали задачу, и придумали что надо сделать именно так... Возможно всё это можно сделать по другому, и оптимально, только надо понимать задачу в целом, а не тот конкретный кусок в который вы уперлись и решили огласить тут.

Цитата(Gigi @ 29.05.17, 13:40) необходимо зарегистрироваться для просмотра ссылки
ЗначениеОтбора="" +Объект.Код;

это же не php (или откуда вы это взяли), если Код явно имеет тип строка то не зачем ставить кавычки, и не зачем создавать эту переменную.
Gigi
Flexy @ Сегодня, 13:22 необходимо зарегистрироваться для просмотра ссылки ,
Цитата(Flexy @ 29.05.17, 13:22) необходимо зарегистрироваться для просмотра ссылки
// Flexy
Элементы.МояКнопка.Доступность = Не Элементы.Список.ТекущаяСтрока = Неопределено;

Не знаю велосипед или мотоцикл но НЕ РАБОТАЕТ!!!!
Имя кнопки: "СубТочка_Отменить".
В отладчике, на месте:
Элементы.СубТочка_Отменить.Доступность

Пишет, что поле: "СубТочка_Отменить" не найдено.
logist
Цитата(Gigi @ 29.05.17, 14:47) необходимо зарегистрироваться для просмотра ссылки
Пишет, что поле: "СубТочка_Отменить" не найдено.

Значит имя кнопки не такое, или её нет на форме.
Gigi
logist @ Сегодня, 13:51 необходимо зарегистрироваться для просмотра ссылки ,
Как нет

smile.gifsmile.gifsmile.gifsmile.gifsmile.gif
Flexy
Gigi @ Сегодня, 13:55 необходимо зарегистрироваться для просмотра ссылки ,
Давайте скрин где размещена кнопка. Или на пальцах объясняйте.
logist
Цитата(Flexy @ 29.05.17, 14:59) необходимо зарегистрироваться для просмотра ссылки
Или на пальцах объясняйте.

В прошлый раз уже объясняли на пальцах, это затянется надолго)))

Цитата(Gigi @ 29.05.17, 14:55) необходимо зарегистрироваться для просмотра ссылки
Как нет

Ну если отладчик говорит что нет - значит нет, всё просто smile.gif
Gigi
Цитата(Flexy @ 29.05.17, 13:59) необходимо зарегистрироваться для просмотра ссылки
Давайте скрин где размещена кнопка. Или на пальцах объясняйте.


Кнопка на форме размещена в командной панели динамического списка.


Хотя я перенес ее прямо на форму ... все равно не находит зараза.

Пишет:
Поле объекта не обнаружено (СубТочка_Отменить)
Flexy
Цитата(Gigi @ 29.05.17, 14:12) необходимо зарегистрироваться для просмотра ссылки
Кнопка на форме размещена в командной панели динамического списка.

Ну дык, так и пишите: Элементы.Список.КоманданаяПанель.ПодчиненныеЭлементы.МояКнопка ... как-то так.
Petre
Gigi @ Сегодня, 15:12 необходимо зарегистрироваться для просмотра ссылки ,
Еще раз после просмотренных скриншотов: у вас НЕТ элемента "СубТочка_Отменить".
Gigi
Flexy @ Сегодня, 14:15 необходимо зарегистрироваться для просмотра ссылки ,
Гуууу... да что же это в самом деле... опять для до передела простого аж велосипед заново....


//Для теста сделал так:
Элементы.СубТочкиСписок.КоманданаяПанель.ПодчиненныеЭлементы.СубТочка_Отменить.Доступность = ЛОЖЬ
//пишет: в поле не обнаружено КоманданаяПанель


Ладно! вижу что лажа.. сделать до предела простое это наверно целое дело. Так не получается ... сьяк не хочет. Тупизм! Опять вечно капризничает!
с VBA в Экселе было проще!
Придется обойтись без того, что хотел сделать.
Flexy
Цитата(Gigi @ 29.05.17, 14:27) необходимо зарегистрироваться для просмотра ссылки
КоманданаяПанель faceoff.gif

logist
Цитата(Gigi @ 29.05.17, 15:27) необходимо зарегистрироваться для просмотра ссылки
Тупизм! Опять вечно капризничает!
с VBA в Экселе было проще!

Точно так же могу сказать с точки зрения программиста 1с, делая что-то в VBA - в 1С было бы проще, а там тупизм какой-то. Всего лишь потому, что я в этом не разбираюсь. Продолжая винить в этом всё/всех кроме себя, вы будете зарывать в себя в еще большую яму. Берегите нервы, они источник всех болезней wink.gif
Bernet
Gigi @ Сегодня, 15:27 необходимо зарегистрироваться для просмотра ссылки ,
Оно же вам в конфигураторе должно подсказывать когда нажимаете ".", пройдите полный путь, посмотрите как достучаться, элементарно если так не можете понять, откройте отладчик, поставте точку остановы где-нибудь и посмотрите что у вас есть в "Элементы", пораскрывайте ветки, найдите свою кнопку, выделите её мышкой и получите сверху полный путь к ней =)

Цитата
Берегите нервы, они источник всех болезней
золотые слова, знаю не по наслышке, у очень близкого человека на этой почве рак развился....
Gigi
Bernet @ Сегодня, 14:31 необходимо зарегистрироваться для просмотра ссылки ,
Ладно! Попытаюсь .... чуть успокоившись.
Но в любом случае спасибо!


Gigi @ Сегодня, 14:35 необходимо зарегистрироваться для просмотра ссылки ,
Сработало!
Я понял в чем была ошибка.
Дело в том, что во вкладке "Команды" кнопка так и называется: "СубТочка_Отменить". Как и видно на первом скине.
И как только ее (кнопку) переносишь на форму ее имя уже меняется. И складывается в зависимости от того, где размещена
Так что, вот так сработала:
Элементы.СубТочкиСписокСубТочка_Отменить.Доступность = ЛОЖЬ;

Наконец то...
Но без Вашей помощи не обошлось бы.
Так что всем финальное спасибо! smile.gifsmile.gif
Vofka
Цитата(Gigi @ 29.05.17, 15:27) необходимо зарегистрироваться для просмотра ссылки
Ладно! вижу что лажа.. сделать до предела простое это наверно целое дело. Так не получается ... сьяк не хочет. Тупизм! Опять вечно капризничает!

Зачем же вы лезете в эту "тупую" 1С?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.