Версия для печати темы (https://pro1c.org.ua/index.php?s=899216578d6d1d9b7243c3b785ca4835&showtopic=51656)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Табличная часть - Возможность установить только просмотр на всю таблицу и не возможность добавить к тому столбец исключения

Автор: Gigi 22.04.19, 11:04

Всем привет!
Опять не хотел выходить на форум.
Короче... я вижу что с этой системой начинаешь решать одну ерунду ... потом видишь что слишком много времени уходит на ее решение и вопрос так и не решен.
И думаешь про себя ... делать больше нечего возиться со всем этим ... Поэтому в итоги просто вынужден бросить ... так как других дел валом.
Поэтому и тут вынужден опять выходить на форум и опять по поводу очередной ерунды.
Поэтому уважаемые не могли бы объяснить почему в системе 1С вот в таком стиле не получается?

ТекущийПользовательИмя=FxSub_Пользователи.ТекущийПользователь("Имя");
Если ТекущийПользовательИмя<>"Программер" Тогда
Элементы.["ТЧимя"].ТолькоПросмотр=Истина;
Элементы.ТЧимяФлажокДляПечати.ТолькоПросмотр=Ложь;
КонецЕсли;

Что нужно в итоги...
Что бы все колонки ТЧ были под "ТолькоЧтение", кроме одной из них.
Сделать это опционально не удобно ...
Ибо для этого нужно на каждый столбец вручную ставить: "ТолькоПросмотр". И все это ради одного несчастного столбца. А таких таблиц куча...
И представьте на каждую таблицу для каждого столбца нужно ставить "ТолькоПросмотр". А ведь уважающему себя программисту делать больше нечего кроме как заниматься этой х@й . Тем более, что для этого ведь куча других дел. Более важных.
Именно поэтому вынужден опять выходить на форум ..
Пожалуйста подскажите по быстрому ... как сделать эту ерунду. На которую не охота тратить время.
Что бы все колонки табличной части (НЕ ВАЖНО КАК ОНИ НАЗЫВАЮТСЯ) были под "ТолькоПросмотр", кроме одной колонки с именем на пример: "ФлажокДляПечати". И как сделать этой процедурно.
Я догадываюсь что для этого нужна процедура обхода всех элементов колонок ТЧ с нужным условием. Ибо система 1С ведь не умеет устанавливать параметр на все колонки , кроме указанного исключения.
И именно поэтому опять требует от программиста мудохаться с этой ерундой. И это наверно потому что сильно "блещет" гуманным отношением к не нему.
Ладно... опять извините ... просто опять делюсь приятными "ощущениями" от системы.
Короче ... кто ни будь не может скинуть код процедуры ... просто готовый код.
Сам шарил, но не нашел как можно обойти колонки табличной части... и не охота на это тратить время..
Так что нужен готовый код по быстрому.
Буду признателен!

Автор: Gigi 22.04.19, 12:32

Gigi @ Сегодня, 13:23 * ,

// Открытие формы
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ТекущийПользовательИмя=FxSub_Пользователи.ТекущийПользователь("Имя");
Если ТекущийПользовательИмя<>"Программер" Тогда
Элементы["ТЧ"].ТолькоПросмотр=Истина;
КонецЕсли;    
КонецПроцедуры

//Кнопка контекстоного менью  табличной части
&НаКлиенте
Процедура ФлажокУстановитьСнять(Команда)
ТекущаяСтрока=Элементы.["ТЧ"].ТекущиеДанные;
Если  ТекущаяСтрока.ФлажокДляПечати=Истина Тогда
ТекущаяСтрока.ФлажокДляПечати=Ложь;    
Иначе
ТекущаяСтрока.ФлажокДляПечати=Истина;    
КонецЕсли;
КонецПроцедуры

Спасибо за ноль отклика ..))
Вот как решил....
Надо же .... Вместо того что бы пользователь просто нажимал на эти несчастные флажки одной колонки ТЧ. Вместо этого он должен нажать на левую кнопку мыши и найти в контекстном меню строку: "Флажок распечатки - Установить/Снять " и нажать на нее. И только так обозначить те строки ТЧ который нужно распечатать.
Ничего не поедаешь ... как сама система гуманна к программисту так и программист к пользователю.
Так что вынужден был так ... так как меньше требует возни...
Нежели сидеть и для каждой колонки кроме одной из них устанавливать "ТолькоПросмотр". Потому что система 1С иначе не умеет. "Круто".
Ладно! Пока!

Автор: sava1 22.04.19, 13:34

типо так

Для каждого Колонка из Элементы.ТЧ.Колонки Цикл
       Если Колонка.Имя = "Флаг" тогда
                Колонка.ТолькоЧтение = 1;
       Иначе
                Колонка.ТолькоЧтение = ложь;
       КонецЕсли;
КонецЦикла

Автор: Gigi 22.04.19, 14:32

sava1 @ Сегодня, 14:34 * ,

Для каждого Колонка из Элементы.ТЧ_Показания.Колонки  Цикл
   Если Колонка.Имя = "ФлажокДляПечати" тогда
        Колонка.ТолькоЧтение = ложь;
   Иначе
        Колонка.ТолькоЧтение = Истина;
   КонецЕсли;
КонецЦикла

Аж магарич сделал бы Вам если так работал бы ))
Думаете я так не пробовал?
В том и дело что поле "Колонки " не находит... Что и пишет: "Поле объекта не обнаружено (Колонки)"
И вообще... такой строки в списке свойств Элементы.ТЧ.... как "Колонки " и нет.
Так что... ладно... проехали забили ...и забыли.
Но спасибо..
Хотя конечно лучше было бы путем обхода... чем выше указанным... через контекстное меню.

Автор: sava1 22.04.19, 14:59

обход на клиенте/сервере ?

пардон - вместо Колонки - ПодчиненныеЭлементы

Автор: Gigi 22.04.19, 16:03

sava1 @ Сегодня, 15:59 * ,
Ладно спасибо ... попробую ...
Гууу... по предыдущей теме
http://pro1c.org.ua/index.php?s=&showtopic=51581&view=findpost&p=151611
пока ничего не делал... времени не было... поэтому тот уже другой, более важный вопрос тоже повис..
Но как освобожусь придется продолжить тему если будут вопросы .. Равно как эту ... если и по этой они возникнут.
Ладно спасибо ... Пока!

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua