Макет видимость колонку ( документ )

1. _7445_ 02.04.19 18:08 Сейчас в теме
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. В УТ 10.3. Надо сделать такой отбор - что если в пользователя есть полные права тогда макета отключился видимость колонках цена и сумма иначе показало нормально. Написал такой код -
ОбластьДанных  = Макет.ПолучитьОбласть(ИмяШапки + "|Данные");
Если РольДоступна("ПолныеПрава") Тогда
ОбластьДанных.Область("R16C9:R18C10").Видимость = Ложь;
КонецЕсли;

Но с отладкой показано что видимость всегда истина. По-этому колонки всегда отображается. Как исправится с этим?
Спасибо всем за ранее.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VictorRGB2 14 02.04.19 18:25 Сейчас в теме
видимостью на уровне макета управлять нельзя
можно задать область, включив в нее нужные данные, и подключать область к выводу в зависимости от прав пользователя
можно управлять видимостью уже на уровне табличного документа
например, так

// подключение области
Если РольДоступна("ПолныеПрава") Тогда
   ОбластьДанных  = Макет.ПолучитьОбласть(ИмяШапки + "|Данные");
КонецЕсли;

// вывод данных в области
Если РольДоступна("ПолныеПрава") Тогда
   ОбластьДанных.<Имя параметра> = <Значение параметра>;
ТабличныйДокумент.ОбластьДанных.Присоединить();
КонецЕсли;
Показать
user1194547; _7445_; +2 Ответить
3. _7445_ 02.04.19 18:42 Сейчас в теме
(2)Спасибо за вниманию
В коде так
ТабДокумент.Присоединить(ОбластьДанных);

Если изменить присоединить с ввести тогда форма макета уже потеряется.
Вы можете подробнее?
Полный код такой -
Функция ПечатьСписаниеТоваров()
	
	ПараметрыПечати = ПолучитьДанныеДляПечатиСписанияТоваров();

	Если ПараметрыПечати.ЭтоСкладНТТ Тогда
		ИмяШапки         = "ШапкаТаблицы";
		ИмяСтроки        = "Строка";
	Иначе
		ИмяШапки         = "ШапкаТаблицыНТТ";
		ИмяСтроки        = "СтрокаНТТ";
	КонецЕсли;

	ТабДокумент = Новый ТабличныйДокумент;
	ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СписаниеТоваров_Накладная";

	Макет = ПолучитьМакет("Накладная");

	// Выводим шапку накладной
	ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
	ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
	ТабДокумент.Вывести(ОбластьМакета);

	ОбластьМакета = Макет.ПолучитьОбласть("РевизитыОрганизации");
	ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
	ТабДокумент.Вывести(ОбластьМакета);

	ОбластьНомера  = Макет.ПолучитьОбласть(ИмяШапки + "|НомерСтроки");
	ОбластьКодов   = Макет.ПолучитьОбласть(ИмяШапки + "|КолонкаКодов");
	ОбластьТовар   = Макет.ПолучитьОбласть(ИмяШапки + "|Товар");
	ОбластьМест    = Макет.ПолучитьОбласть(ИмяШапки + "|Мест");
	ОбластьДанных  = Макет.ПолучитьОбласть(ИмяШапки + "|Данные");
		
	ТабДокумент.Вывести(ОбластьНомера);
	Если ПараметрыПечати.ВыводитьКоды Тогда
		ОбластьКодов.Параметры.Заполнить(ПараметрыПечати);
		ТабДокумент.Присоединить(ОбластьКодов);
	КонецЕсли;
	ТабДокумент.Присоединить(ОбластьТовар);
	ОбластьКолонкаТовар = Макет.Область("Товар");
	Если ПараметрыПечати.ВыводитьКоды Тогда
		ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки
		                                    + ?(ПараметрыПечати.ФлагПечатиМест, 0, Макет.Область("R14C5").ШиринаКолонки + Макет.Область("R14C6").ШиринаКолонки);
	Иначе
		ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки
		                                    + Макет.Область("КолонкаКодов").ШиринаКолонки
		                                    + ?(ПараметрыПечати.ФлагПечатиМест, 0, Макет.Область("R14C5").ШиринаКолонки + Макет.Область("R14C6").ШиринаКолонки);
	КонецЕсли;
	Если ПараметрыПечати.ФлагПечатиМест Тогда
		ТабДокумент.Присоединить(ОбластьМест);
	КонецЕсли;
	     

			 ТабДокумент.Присоединить(ОбластьДанных);
		

	ОбластьНомера = Макет.ПолучитьОбласть(ИмяСтроки + "|НомерСтроки");
	ОбластьКодов  = Макет.ПолучитьОбласть(ИмяСтроки + "|КолонкаКодов");
	ОбластьТовар  = Макет.ПолучитьОбласть(ИмяСтроки + "|Товар");
	ОбластьМест   = Макет.ПолучитьОбласть(ИмяСтроки + "|Мест");
	ОбластьДанных = Макет.ПолучитьОбласть(ИмяСтроки + "|Данные");

	СуммаИтого = 0;
	Ном        = 0;

	// Товары и тара
	Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл

		Если НЕ ЗначениеЗаполнено(ПараметрыПозиции.Номенклатура) Тогда
			Сообщить("Sətrlərin birində nomenklaturanın mənası doldurulmayıb - çapda sətr buraxılıb.", СтатусСообщения.Важное);
			Продолжить;
		КонецЕсли;

		ОбластьНомера.Параметры.Заполнить(ПараметрыПозиции);
		ТабДокумент.Вывести(ОбластьНомера);

		Если ПараметрыПечати.ВыводитьКоды Тогда
			ОбластьКодов.Параметры.Заполнить(ПараметрыПозиции);
			ТабДокумент.Присоединить(ОбластьКодов);
		КонецЕсли;

		ОбластьТовар.Параметры.Заполнить(ПараметрыПозиции);
		ТабДокумент.Присоединить(ОбластьТовар);

		Если ПараметрыПечати.ФлагПечатиМест Тогда
			ОбластьМест.Параметры.Заполнить(ПараметрыПозиции);
			ТабДокумент.Присоединить(ОбластьМест);
		КонецЕсли;

		ОбластьДанных.Параметры.Заполнить(ПараметрыПозиции);
				
		ТабДокумент.Присоединить(ОбластьДанных);
	

	КонецЦикла;

	// Вывести Итого
	ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
	ОбластьКодов  = Макет.ПолучитьОбласть("Итого|КолонкаКодов");
	ОбластьТовар  = Макет.ПолучитьОбласть("Итого|Товар");
	ОбластьМест   = Макет.ПолучитьОбласть("Итого|Мест");
	ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные");


	ТабДокумент.Вывести(ОбластьНомера);
	Если ПараметрыПечати.ВыводитьКоды Тогда
		ТабДокумент.Присоединить(ОбластьКодов);
	КонецЕсли;
	ТабДокумент.Присоединить(ОбластьТовар);
	Если ПараметрыПечати.ФлагПечатиМест Тогда
		ТабДокумент.Присоединить(ОбластьМест);
	КонецЕсли;
	ОбластьДанных.Параметры.Заполнить(ПараметрыПечати);
	ТабДокумент.Присоединить(ОбластьДанных);

	// Вывести Сумму прописью
	ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
	ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
	ТабДокумент.Вывести(ОбластьМакета);

	// Вывести подписи
	ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
	ТабДокумент.Вывести(ОбластьМакета);	 


	Возврат ТабДокумент;


КонецФункции // ПечатьСписаниеТоваров()
Показать

Если Имя Шапки = ШапкаТаблицыНТТ тогда надо делать отбор
4. VictorRGB2 14 02.04.19 19:48 Сейчас в теме
(3) не понял, с чего бы теряться форме макета?
везде где используется ОбластьДанных вставить проверку на права и при успешной проверке заполнять параметры области и присоединять ее
Оставьте свое сообщение

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