По теме из базы знаний
- Программное добавление кнопок копирования табличных частей во все документы с минимальными изменениями конфигурации (или вообще без изменения)
- Наглядные доп.реквизиты товара в табличной части документа за 5 минут
- Дружелюбный интерфейс итогов в диалоге табличных частей, для Управляемых форм.
- Когда много строк в документе: Удобный редактор табличных частей
- Табличная часть как поле ввода
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(7) kgp,
&НаКлиенте
Процедура ВидОперацииПриИзменении(Элемент)
ОпределитьСписокДоступныхВидовДоговоровПоОперации(Объект.ВидОперации, СписокВидовДоговоров, Объект.ДоговорКонтрагента);
// Установить видимость реквизитов по виду операции.
УправлениеФормой(ЭтаФорма);
Если Объект.Товары.Количество() + Объект.ВозвратнаяТара.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Если НЕ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ИзПереработки") Тогда
Если ПоказыватьВДокументахСчетаУчета Тогда
ТекстВопроса = НСтр("ru = 'Установить счета учета в соответствии со значениями по умолчанию?'");
Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , ,
НСтр("ru='Изменения счетов учета при смене вида операции'"));
Иначе
Ответ = КодВозвратаДиалога.Да;
КонецЕсли;
Если Ответ = КодВозвратаДиалога.Да Тогда
ЗаполнитьСчетаУчетаВТабЧасти("Товары", Истина);
ЗаполнитьСчетаУчетаВТабЧасти("ВозвратнаяТара", Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ПоказатьПроцедура УстановитьВидимость()
Колонки = ЭлементыФормы.Товары.Колонки;
КолонкиТары = ЭлементыФормы.ВозвратнаяТара.Колонки;
УСН = НалоговыйУчетУСН.ПрименениеУСН(Организация, Дата);
Предприниматель = ОбщегоНазначения.Предприниматель(Организация, Дата);
Если ВидОперации = Перечисления.ВидыОперацийПередачаТоваров.ИзПереработки Тогда
Колонки.СчетУчета.Видимость = Ложь;
Колонки.СчетПередачи.Видимость = Ложь;
Показать
Отследить какая процедура или функция отвечает за видимость довольно не сложно: поставь "Точка останова" в процедуре "передокрытием" выведи в табло "ЗначениеНужнойТебеКолонки".Видимость как только после выполнения процедуры или функции значение станет Ложь - там и располагается та самая процедура и функция.
(19) isn, Не понял причем тут процедура "ПередОткрытием" и такой процедуры нет в модуле формы документа "Передача товаров". Видимость колонки меняется при выборе вида операции. Отладчиком тоже пытался отловить момент изменения видимости. Выводил в табло выражение ЭтаФорма.Элементы.ТоварыСчетУчета.Видимость и оно всегда возвращало значение ИСТИНА, но при этом колонка скрывалась.
p.s. Увеличил вознаграждение за ответ.
p.s. Увеличил вознаграждение за ответ.
хотя
Процедура УправлениеФормой(Форма)
Элементы = Форма.Элементы;
Объект = Форма.Объект;
Элементы.ГруппаСчетаУчетаРасчетов.Видимость = Форма.ПоказыватьВДокументахСчетаУчета И Форма.ИспользоватьВозвратнуюТару;
Элементы.ЗаполнитьПоПродукцииИСпецификации.Доступность = Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ВПереработку")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ИзПереработки");
Элементы.ЗаполнитьПродукциюПоОстаткам.Доступность = Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ИзПереработки");
Элементы.ЗаполнитьПоОтчетуКомитенту.Доступность = Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ПередачаТоваровКомитенту");
Элементы.ДобавитьИзОтчетаКомитенту.Доступность = Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ПередачаТоваровКомитенту");
Элементы.ЗаполнитьПоОстаткамСчета002.Доступность = Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПередачаТоваров.ПередачаТоваровКомитенту");
КонецПроцедуры
Показать
на отбор там да стоит параметр...
в описании процедуры сказано:
хотя даж если всю ее закоментить видимость меняется...
"Товары", видимость которых определяется реквизитами документатут вот не понятно
в описании процедуры сказано:
&НаКлиентеНаСервереБезКонтекста
// Процедура устанавливает видимость для тех колонок в табличной части
// "Товары", видимость которых определяется реквизитами документа.
//
// Параметры:
// Нет.
//
Процедура УправлениеФормой(Форма)
хотя даж если всю ее закоментить видимость меняется...
"Товары", видимость которых определяется реквизитами документатут вот не понятно
Отвечу сама себе - может кому-то пригодится
Чтобы изменить видимость элемента табличной части в управляемых формах, программно добавленного, нужно написать следующий код:
ЭтаФорма.Элементы["ИмяТабличнойЧастиИмяПоля"].Видимость = Истина;
Чтобы изменить видимость элемента табличной части в управляемых формах, программно добавленного, нужно написать следующий код:
ЭтаФорма.Элементы["ИмяТабличнойЧастиИмяПоля"].Видимость = Истина;
Да, трудно было такое представить, но работает.
Сначала написал имя колонки всё же через точку.
ЭтаФорма.Элементы["ТЗ.Ссылка"].Видимость = Истина; Получил ошибку.
Убрал точку.
ЭтаФорма.Элементы["ТЗСсылка"].Видимость = Истина. Всё работает.
Спасибо.
Сначала написал имя колонки всё же через точку.
ЭтаФорма.Элементы["ТЗ.Ссылка"].Видимость = Истина; Получил ошибку.
Убрал точку.
ЭтаФорма.Элементы["ТЗСсылка"].Видимость = Истина. Всё работает.
Спасибо.
Сейчас в 1С принято делать не в лоб (ЭтаФорма.Элементы.ИмяЭлемента.Видимость = ЛОЖЬ;), а через условное оформление. Смысл в том, что не нужно отслеживать состояние реквизита, от которого зависит нужно или нет отображать элемент, а можно задать условие при котором элемент отображается.
Привожу пример из УТ11:
Смысл: у формы есть реквизит "СкладГруппа" от которого зависит отображение колонки "ТоварыСклад"
Привожу пример из УТ11:
Процедура УстановитьУсловноеОформлениеСкладаВТЧ(Форма,
ИмяПоляВводаСклада = "ТоварыСклад") Экспорт
УсловноеОформление = Форма.УсловноеОформление;
ЭлементыФормы = Форма.Элементы;
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементыФормы[ИмяПоляВводаСклада].Имя);
ОтборЭлемента = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СкладГруппа");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
КонецПроцедуры
ПоказатьСмысл: у формы есть реквизит "СкладГруппа" от которого зависит отображение колонки "ТоварыСклад"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот