Как проверить есть ли лишние значения в тч?
По теме из базы знаний
- Интеграция сервиса проверки идентификационных реквизитов юридических лиц по данным ЕГРН и 1С:Предприятие 8
- Как читать чужой код? Часть 3. Разбор и доработка запросов
- Зачем и как читать чужой код? Какой результат ожидаем получить? Основные подходы
- Выгрузка данных отчетов 1С в Power BI для аналитиков
- Новое в экосистеме 1С:ТОИР. Как пользовательский опыт влияет на развитие решения
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
То есть можно так сделать например
Для Каждого СтрокаТаблицы Из Таблица Цикл
Если Метаданные.Справочники.Содержит(СтрокаТаблицы.КакакоеТоПолеГдеИДокументыИСправочники.Метаданные()) Тогда
// это справочник
ИНаче
// это не справочник
Конецесли
Конеццикла
(3)Кажется я не правильно поставил вопрос.
у меня есть колонка в тч: Вид передачи. тип СправчоникСсылка
Так вот, если Вид передачи в этой тч = паспорт, или визитка, или бумага(это примеры) то тогда надо скрывать элемент с формы.
Но, если помимо паспорта или визитки или бумаги, есть допустим Ваза, то надо показать элемент на форме.
то есть там может быть паспорт, тогда скрываем элемент, может быть паспорт и визитка, тогда тоже скрываем,
а может быть паспорт и Ваза допустим, тогда элемент показываем
примерно так
у меня есть колонка в тч: Вид передачи. тип СправчоникСсылка
Так вот, если Вид передачи в этой тч = паспорт, или визитка, или бумага(это примеры) то тогда надо скрывать элемент с формы.
Но, если помимо паспорта или визитки или бумаги, есть допустим Ваза, то надо показать элемент на форме.
то есть там может быть паспорт, тогда скрываем элемент, может быть паспорт и визитка, тогда тоже скрываем,
а может быть паспорт и Ваза допустим, тогда элемент показываем
примерно так
(4) ну тогда совсем проще. То есть у вас есть какие значение справочника при которых какой то элемент должен показываться, а при каких то нет. Так вот можно так написать
Массив = Новый Массив;
Массив.Добавить(Справочник.ВидПередачи.НайтиПоКоду("КакойТоКод")); // то есть в массив добавляем те элементы при которых нужно точно отразить видимость элемента
Массив.Добавить(Справочник.ВидПередачи.НайтиПоКоду("КакойТоКод"));
НужноПоказатьЭлемент = Ложь;
Для Каждого ЭлементМассива Из Массив Цикл
Если Таблица.Найти(ЭлементМассива, "ВидПередачи") <> Неопрделено Тогда
НужноПоказатьЭлемент = Истина;
Прервать;
Конеццикла
Элемент.ИмяЭлемента.Видимость = НужноПоказатьЭлемент
Показать
(5)Сделал так, почему - то не работает, ошибок никаких нет
Массив = Новый Массив; // те виды передачи для которых есть страховка
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Буклет"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Втулки"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Выставочный экспонат"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Каталог"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Листовки"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Материалы"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Образец продукции"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Печать"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Подарки"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Претензия"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Радиокомпоненты"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Рекламные материалы"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("счетчик"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("УСПД"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Экспозиция"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Электронные компоненты"));
Массив.Добавить(Справочники.ВидыПередачиДляКурьерскойСлужбы.НайтиПоНаименованию("Электротехнич. продукция"));
Элементы.ГруппаСтрахованиеОтправителя.Доступность = Ложь;
Для Каждого ЭлементМассива Из Массив Цикл
Отбор = новый Структура();
Отбор.Вставить("ВидПередачи",ЭлементМассива);
Если Объект.СоставВложимого.НайтиСтроки(Отбор) <> Неопределено Тогда
Элементы.ГруппаСтрахованиеОтправителя.Доступность = Истина;
Прервать;
КонецЕсли;
Конеццикла
Показать
(6) Вот тут нужно написать по другому
Вместо
Нужно (у вас в результате же массив вернется, он либо пустой либо заполненный, не может быть НЕопределено
Вместо
Если Объект.СоставВложимого.НайтиСтроки(Отбор) <> Неопределено Тогда
Нужно (у вас в результате же массив вернется, он либо пустой либо заполненный, не может быть НЕопределено
Если Объект.СоставВложимого.НайтиСтроки(Отбор).Количество() <> 0 Тогда
(9)Да, я так и сделал через количество, но проблема в том что он проверяет все элементы в массиве, и каждый раз возвращает массив(найтистроки). получается если в массиве в моем 10 элементов, он(Если Объект.СоставВложимого.НайтиСтроки(Отбор)) возвращает 10 массивов , с этим ничего не поделать да?
И еще он проверяет пустое значение и почему-то возвращает массив.количество 1)))
Вообще вся эта конструкция привязана к тч в событие при изменении.
И еще он проверяет пустое значение и почему-то возвращает массив.количество 1)))
Вообще вся эта конструкция привязана к тч в событие при изменении.
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)