1C:Бухгалтерия
1С:CRM ПРОФ, КОРП
1С:ERP Управление предприятием 2
Платформа 1С v8.3
Корп. решения 1С
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. В УТ 10.3. Надо сделать такой отбор - что если в пользователя есть полные права тогда макета отключился видимость колонках цена и сумма иначе показало нормально. Написал такой код -
Но с отладкой показано что видимость всегда истина. По-этому колонки всегда отображается. Как исправится с этим?
Спасибо всем за ранее.
ОбластьДанных = Макет.ПолучитьОбласть(ИмяШапки + "|Данные");
Если РольДоступна("ПолныеПрава") Тогда
ОбластьДанных.Область("R16C9:R18C10").Видимость = Ложь;
КонецЕсли;
Но с отладкой показано что видимость всегда истина. По-этому колонки всегда отображается. Как исправится с этим?
Спасибо всем за ранее.
По теме из базы знаний
- Программное добавление кнопок копирования табличных частей во все документы с минимальными изменениями конфигурации (или вообще без изменения)
- Трекер задач - Управление задачами: Канбан доска
- Автоматизация печатной формы (автоформирование табличного документа на основе любой таблицы значений)
- Вывод дерева в табличный документ СКД
- Базовое понимание внедрения механизма печати в любом документе конфигурации на БСП
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
видимостью на уровне макета управлять нельзя
можно задать область, включив в нее нужные данные, и подключать область к выводу в зависимости от прав пользователя
можно управлять видимостью уже на уровне табличного документа
например, так
можно задать область, включив в нее нужные данные, и подключать область к выводу в зависимости от прав пользователя
можно управлять видимостью уже на уровне табличного документа
например, так
// подключение области
Если РольДоступна("ПолныеПрава") Тогда
ОбластьДанных = Макет.ПолучитьОбласть(ИмяШапки + "|Данные");
КонецЕсли;
// вывод данных в области
Если РольДоступна("ПолныеПрава") Тогда
ОбластьДанных.<Имя параметра> = <Значение параметра>;
ТабличныйДокумент.ОбластьДанных.Присоединить();
КонецЕсли;
Показать
(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.", СтатусСообщения.Важное);
Продолжить;
КонецЕсли;
ОбластьНомера.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Вывести(ОбластьНомера);
Если ПараметрыПечати.ВыводитьКоды Тогда
ОбластьКодов.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ОбластьТовар.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьТовар);
Если ПараметрыПечати.ФлагПечатиМест Тогда
ОбластьМест.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьМест);
КонецЕсли;
ОбластьДанных.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьДанных);
КонецЦикла;
// Вывести Итого
ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("Итого|КолонкаКодов");
ОбластьТовар = Макет.ПолучитьОбласть("Итого|Товар");
ОбластьМест = Макет.ПолучитьОбласть("Итого|Мест");
ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные");
ТабДокумент.Вывести(ОбластьНомера);
Если ПараметрыПечати.ВыводитьКоды Тогда
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьТовар);
Если ПараметрыПечати.ФлагПечатиМест Тогда
ТабДокумент.Присоединить(ОбластьМест);
КонецЕсли;
ОбластьДанных.Параметры.Заполнить(ПараметрыПечати);
ТабДокумент.Присоединить(ОбластьДанных);
// Вывести Сумму прописью
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
ТабДокумент.Вывести(ОбластьМакета);
// Вывести подписи
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ТабДокумент.Вывести(ОбластьМакета);
Возврат ТабДокумент;
КонецФункции // ПечатьСписаниеТоваров()
ПоказатьЕсли Имя Шапки = ШапкаТаблицыНТТ тогда надо делать отбор
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот