Видимость колонок в табличной части

1. kgp 12 17.04.13 10:35 Сейчас в теме
Добрый день.
В типовой конфигурации "Бухгалтерия предприятия, редакция 3.0" в документе "Передача товаров" при выборе вида операции в табличной части товары, то показываются счета учета, то нет. Интересует с точки зрения программиста как это реализовано?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
31. Akuji 22 17.04.13 14:57 Сейчас в теме
а вот нашел:
Условное оформление формы смотрите
klaus38; Igorro82IT; huzden; 1v7; infostartfilipich; Akteur33; kgp; +7 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
39. CratosX 112 09.05.20 00:04 Сейчас в теме
(1)
Элементы.ТвояТаблица.ПодчиненныеЭлементы.ИмяКолонкиТвоейТаблицы.Видимость = Ложь;
user712426; klaus38; Happy_yahoo; user970589; DashuniaChirina; Igorro82IT; Lexx100; +7 Ответить
2. Milokko 17.04.13 11:02 Сейчас в теме
А показывает/не показывает колонки у одного пользователя или у разных?
Если у разных, то видимо в настройках пользователя так настроено
4. beldieff 17.04.13 11:05 Сейчас в теме
(2) Milokko,
А показывает/не показывает колонки у одного пользователя или у разных?

в документе "Передача товаров" при выборе вида операции в табличной части товары, то показываются счета учета, то нет
5. Milokko 17.04.13 11:16 Сейчас в теме
(4) beldieff,
Возможно, что разные пользователи это делают
6. Milokko 17.04.13 11:21 Сейчас в теме
(4) beldieff,
А если у одного, то тогда я согласен с Вами "Колонка.Видимость = Ложь" решит вопрос)
3. beldieff 17.04.13 11:04 Сейчас в теме
Колонка.Видимость = Ложь
7. kgp 12 17.04.13 11:23 Сейчас в теме
С настройками пользователей это не связано. Это срабатывает именно при выборе операции. Тоже искал что-то типа Колонка.Видимость , но ничего не нашел.
10. deniseek77 86 17.04.13 11:29 Сейчас в теме
(7) kgp,

&НаКлиенте
Процедура ВидОперацииПриИзменении(Элемент)

	ОпределитьСписокДоступныхВидовДоговоровПоОперации(Объект.ВидОперации, СписокВидовДоговоров, Объект.ДоговорКонтрагента);

	// Установить видимость реквизитов по виду операции.
	УправлениеФормой(ЭтаФорма);

	Если Объект.Товары.Количество() + Объект.ВозвратнаяТара.Количество() = 0 Тогда
		Возврат;
	КонецЕсли;

	Если НЕ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ИзПереработки") Тогда

		Если ПоказыватьВДокументахСчетаУчета Тогда
			ТекстВопроса = НСтр("ru = 'Установить счета учета в соответствии со значениями по умолчанию?'");
			Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , ,
							НСтр("ru='Изменения счетов учета при смене вида операции'"));
		Иначе
			Ответ = КодВозвратаДиалога.Да;
		КонецЕсли;

		Если Ответ = КодВозвратаДиалога.Да Тогда
			ЗаполнитьСчетаУчетаВТабЧасти("Товары",         Истина);
			ЗаполнитьСчетаУчетаВТабЧасти("ВозвратнаяТара", Истина);
		КонецЕсли;

	КонецЕсли;

КонецПроцедуры
Показать
12. kgp 12 17.04.13 11:39 Сейчас в теме
(10) deniseek77, уже ближе:)
Но где конкретно в процедуре ВидОперацииПриИзменении указано, что нужно отображать или не отображать счета учета?
16. Milokko 17.04.13 11:50 Сейчас в теме
(12) kgp,
ЗаполнитьСчетаУчетаВТабЧасти("Товары", Истина);
ЗаполнитьСчетаУчетаВТабЧасти("ВозвратнаяТара", Истина);
17. kgp 12 17.04.13 11:54 Сейчас в теме
(16) Milokko, Проверил, с этим никак не связано. Алгоритм до этих строк не доходит.
11. Milokko 17.04.13 11:38 Сейчас в теме
(7) kgp, Смотрите КоманднаяПанельФормыДействиеУстановитьОперацию() и УстановитьВидимость()
8. Akuji 22 17.04.13 11:26 Сейчас в теме
Процедура УстановитьВидимость()

	Колонки     = ЭлементыФормы.Товары.Колонки;
	КолонкиТары = ЭлементыФормы.ВозвратнаяТара.Колонки;

	УСН = НалоговыйУчетУСН.ПрименениеУСН(Организация, Дата);
	Предприниматель = ОбщегоНазначения.Предприниматель(Организация, Дата);
	
	Если ВидОперации = Перечисления.ВидыОперацийПередачаТоваров.ИзПереработки Тогда
				
		Колонки.СчетУчета.Видимость    = Ложь;
		Колонки.СчетПередачи.Видимость = Ложь;
Показать
9. Akuji 22 17.04.13 11:27 Сейчас в теме
правда это в 2.0, но в 3ке думаю так же
15. kgp 12 17.04.13 11:48 Сейчас в теме
(9) Akuji, Да в 2.0 было так просто, но в 3.0 голову сломал и не понимаю как это работает.
13. MalginD 15 17.04.13 11:43 Сейчас в теме
Процедура УправлениеФормой(Форма)

Элементы = Форма.Элементы;
Объект = Форма.Объект;

Элементы.ГруппаСчетаУчетаРасчетов.Видимость = Форма.ПоказыватьВДокументахСчетаУчета И Форма.ИспользоватьВозвратнуюТару;
14. kgp 12 17.04.13 11:45 Сейчас в теме
(13) MalginD, Это касается счетов учета расчетов, а меня интересуют счета учета в табличной части товары.
18. beldieff 17.04.13 12:30 Сейчас в теме
В отладчике нажать "отладка -- остановить" и поменять операцию.
19. isn 15 17.04.13 12:30 Сейчас в теме
Отследить какая процедура или функция отвечает за видимость довольно не сложно: поставь "Точка останова" в процедуре "передокрытием" выведи в табло "ЗначениеНужнойТебеКолонки".Видимость как только после выполнения процедуры или функции значение станет Ложь - там и располагается та самая процедура и функция.
21. kgp 12 17.04.13 13:27 Сейчас в теме
(19) isn, Не понял причем тут процедура "ПередОткрытием" и такой процедуры нет в модуле формы документа "Передача товаров". Видимость колонки меняется при выборе вида операции. Отладчиком тоже пытался отловить момент изменения видимости. Выводил в табло выражение ЭтаФорма.Элементы.ТоварыСчетУчета.Видимость и оно всегда возвращало значение ИСТИНА, но при этом колонка скрывалась.

p.s. Увеличил вознаграждение за ответ.
20. forever-lilya 5 17.04.13 12:38 Сейчас в теме
Считаю, что вопрос решен. Ответ №19. Закрывайте вопрос
22. Akuji 22 17.04.13 14:10 Сейчас в теме
там еще может зависеть от прав пользователя... если прав нет то и не увидишь
23. kgp 12 17.04.13 14:18 Сейчас в теме
(22) Akuji, В моем случае от прав не зависит т.к. изменение вида операции делается под одним пользователем.
24. Akuji 22 17.04.13 14:19 Сейчас в теме
хотя
Процедура УправлениеФормой(Форма)

	Элементы	= Форма.Элементы;
	Объект		= Форма.Объект;

	Элементы.ГруппаСчетаУчетаРасчетов.Видимость = Форма.ПоказыватьВДокументахСчетаУчета И Форма.ИспользоватьВозвратнуюТару;

	Элементы.ЗаполнитьПоПродукцииИСпецификации.Доступность = Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ВПереработку")
		ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ИзПереработки");
	Элементы.ЗаполнитьПродукциюПоОстаткам.Доступность = Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ИзПереработки");
	
	Элементы.ЗаполнитьПоОтчетуКомитенту.Доступность		= Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ПередачаТоваровКомитенту");
	Элементы.ДобавитьИзОтчетаКомитенту.Доступность		= Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ПередачаТоваровКомитенту");
	Элементы.ЗаполнитьПоОстаткамСчета002.Доступность	= Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ПередачаТоваровКомитенту");
	
КонецПроцедуры
Показать
25. Akuji 22 17.04.13 14:19 Сейчас в теме
Элементы.ГруппаСчетаУчетаРасчетов.Видимость - вот тут по идее
поспешил. это не про те.

В свойствах реквизита Параметры выбора
27. kgp 12 17.04.13 14:41 Сейчас в теме
(25) Akuji, Параметры выбора влияют на выбор, но не на видимость.
29. beldieff 17.04.13 14:42 Сейчас в теме
(27) kgp, Ну так поищи в тексте Если Объект.ВидОперации = БлаБла
26. Sevens 6 17.04.13 14:25 Сейчас в теме
Bоспользуйтесь поиском ;)
"СчетУчета.Видимость" может что и найдет.
28. kgp 12 17.04.13 14:41 Сейчас в теме
(26) Sevens, Пробовал ничего не найдено.
30. Akuji 22 17.04.13 14:49 Сейчас в теме
на отбор там да стоит параметр...

в описании процедуры сказано:
&НаКлиентеНаСервереБезКонтекста
// Процедура устанавливает видимость для тех колонок в табличной части
// "Товары", видимость которых определяется реквизитами документа.
//
// Параметры:
//  Нет.
//
Процедура УправлениеФормой(Форма)


хотя даж если всю ее закоментить видимость меняется...
"Товары", видимость которых определяется реквизитами документатут вот не понятно
31. Akuji 22 17.04.13 14:57 Сейчас в теме
а вот нашел:
Условное оформление формы смотрите
klaus38; Igorro82IT; huzden; 1v7; infostartfilipich; Akteur33; kgp; +7 Ответить
32. kgp 12 17.04.13 15:00 Сейчас в теме
(31) Akuji, ОГРОМНОЕ СПАСИБО!!!
33. user_2010 896 20.04.15 16:49 Сейчас в теме
Тоже нужно настроить видимость колонки табличной части. Вы разобрались как это сделать программно?
34. user_2010 896 21.04.15 12:08 Сейчас в теме
Отвечу сама себе - может кому-то пригодится

Чтобы изменить видимость элемента табличной части в управляемых формах, программно добавленного, нужно написать следующий код:
ЭтаФорма.Элементы["ИмяТабличнойЧастиИмяПоля"].Видимость = Истина;
s1mp4ny; IvanDK; Gendelf; slavikss; perepetulichka; viktorinka777; +6 Ответить
35. vovant 42 16.04.16 22:32 Сейчас в теме
Да, трудно было такое представить, но работает.
Сначала написал имя колонки всё же через точку.
ЭтаФорма.Элементы["ТЗ.Ссылка"].Видимость = Истина; Получил ошибку.
Убрал точку.
ЭтаФорма.Элементы["ТЗСсылка"].Видимость = Истина. Всё работает.

Спасибо.
Gendelf; Yackov; NN2P; slavikss; perepetulichka; +5 Ответить
36. mikl79 118 07.06.16 07:57 Сейчас в теме
(35) vovant, спасибо, помогло
почему не оставили как в 8.2?
почему нет приемственности, странные разработчики 1с
Cerberus1; +1 Ответить
37. AndiA 06.03.17 00:19 Сейчас в теме
Сейчас в 1С принято делать не в лоб (ЭтаФорма.Элементы.ИмяЭлемента.Видимость = ЛОЖЬ;), а через условное оформление. Смысл в том, что не нужно отслеживать состояние реквизита, от которого зависит нужно или нет отображать элемент, а можно задать условие при котором элемент отображается.
Привожу пример из УТ11:
Процедура УстановитьУсловноеОформлениеСкладаВТЧ(Форма,
												ИмяПоляВводаСклада = "ТоварыСклад") Экспорт
	
	УсловноеОформление = Форма.УсловноеОформление;
	ЭлементыФормы = Форма.Элементы;
	
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементыФормы[ИмяПоляВводаСклада].Имя);

	ОтборЭлемента = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СкладГруппа");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = Ложь;

	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
	
КонецПроцедуры
Показать

Смысл: у формы есть реквизит "СкладГруппа" от которого зависит отображение колонки "ТоварыСклад"
Bolnov; Gendelf; veiuper; krosaf4eg; +4 Ответить
38. dyuha 49 03.08.18 17:18 Сейчас в теме
Может понадобится кому. В тему.
Добавил реквизит программно в ТЧ. Не отображается. В отладке элемент есть. Видимость, Доступность - Истина. Мозг сломал. Открываю список. Списка нет.
Оказалось - функциональные опции. Включил одну и все появилось.
maldinitaly; +1 Ответить
Оставьте свое сообщение

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