Доброй ночи, господа! Или доброе утро! Это снова я.
Мне нужно, чтобы когда клиент оплатит очередной ремонт, я и только я мог делать отметку в документе об оплате.
На форме расходной я добавил атрибут Текст "СПЛАЧЕНО" с идентификатором СПЛАЧЕНО. Возле него поставил флажок с идентификатором Спл. Кроме того, флажок имеет формулу Сплачено(). Еще я добавил атрибут шапки Спл с типом число с одним разрядом. Далее, перед процедурой ПриОткрытии я прописал процедуру флажка Сплачено:
Процедура Сплачено()
Если Спл=0 тогда
Форма.СПЛАЧЕНО.Видимость(0);
Иначе
Форма.СПЛАЧЕНО.Видимость(1);
КонецЕсли;
КонецПроцедуры
Если ПолноеИмяПользователя() <> "Simeon" Тогда
Форма.Спл.Видимость(0);
Форма.Спл.Доступность(0);
Форма.СПЛАЧЕНО.Доступность(0);
КонецЕсли;
Если Спл=0 тогда
Форма.СПЛАЧЕНО.Видимость(0);
Иначе
Форма.СПЛАЧЕНО.Видимость(1);
КонецЕсли;
У вас случайно не закладки(слои) на форме?
Если да, то видимость элементов текущего слоя нужно прописывать при смене закладок
nysysimara @ Сегодня, 8:03
,
Да есть слои именно на этой форме. Подскажите, пожалуйста, как прописать, или где почитать. Или приведите маленький пример. Спасибо. Лучше пример. Там есть основной слой, совместный и доверенность. Три слоя.
видимость и доступность реквизитов нужно прописать в процедуре ПриВыбореЗакладки()
примерно так:
Процедура ПриВыбореЗакладки(Номер,Значение)
Если Значение = "Основной" Тогда
Форма.ИспользоватьСлой("Совместный,Основной",2);
//если реквизиты на слое Основной
Если ПолноеИмяПользователя() <> "Simeon" Тогда
Форма.Спл.Видимость(0);
Форма.Спл.Доступность(0);
Форма.СПЛАЧЕНО.Доступность(0);
КонецЕсли;
Если Спл=0 тогда
Форма.СПЛАЧЕНО.Видимость(0);
Иначе
Форма.СПЛАЧЕНО.Видимость(1);
КонецЕсли;
ИначеЕсли Значение = "Доверенность" Тогда
Форма.ИспользоватьСлой("Совместный,Доверенность",2);
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.ДобавитьЗначение("Основной","Основной");
Форма.Закладки.ДобавитьЗначение("Доверенность","Доверенность");
ПриВыбореЗакладки(1,"Основной");
nysysimara @ Сегодня, 13:36
, спасибо Вам. Вы мне очень помогли. Сегодня попробую.
ZUBR @ Сегодня, 20:56
,
У меня не получилось. Результат тот же. Дело в том, что в данном случае я не понимаю, что делаю. И у меня все реквизиты шапки в совместном слое, а табличная часть в основном. Я даже переместил нужный мне реквизит из совместного в основной слой, но ничего не помогло. Все равно при открытии текст СПЛАЧЕНО видимый, хоть флажок сброшен в нуль.
Вообще, нужно хорошо понимать, как оно работает, чтобы сделать то, что нужно. В синтакс помощнике нет достаточной информации(.
ZUBR @ Сегодня, 1:12
,
Только что рыл гугл. Там есть ссылки на разные форумы, в том числе и на этот. Но я там не нашел ответа на вопрос, в чем особенность программирования видимости атрибутов на форме с несколькими слоями. Может, здесь Видимость не действует, и надо только оперировать показом слоев? Кстати, в моем случае используются два слоя - основной и совместный. И оба должны быть видны. Потому что на совместном реквизиты шапки, а на основном табличная часть. Короче, пока не понимаю...
Если ПолноеИмяПользователя() <> "Simeon" Тогда
Умова спрацьовує, бо недоступність спрацьовує, яка зумовлена цією умовою.
Панове, я так і не зрозумів. Як при виборі закладок викликати СПЛАЧЕНО? Що це значить? Дякую.
Давайте сначала:
1) На каком слое расположен реквизиты "Спл" и "Сплачено"?
2) Где-то по коду у вас есть
Форма.ИспользоватьЗакладки(1);
Форма.ИспользоватьСлой("
Процедура Сплачено()
Если Спл=0 тогда
Форма.СПЛАЧЕНО.Видимость(0);
Иначе
Форма.СПЛАЧЕНО.Видимость(1);
КонецЕсли;
КонецПроцедуры
Процедура ПриВыбореЗакладки(Номер,Значение)
.......
Сплачено();
КонецПроцедуры
Процедура ПриОткрытии()
......
ПриВыбореЗакладки(1,"Основной");
КонецПроцедуры
Sharzem @ 25.10.19, 8:17
,
В мене була помилка. Треба було рядок
Процедура ПриОткрытии()
......
ПриВыбореЗакладки(1,"Основной");
КонецПроцедуры
Процедура ПриВыбореЗакладки(Номер,Значение)
.......
Сплачено();
КонецПроцедуры
Процедура Сплачено() Далее
Спасибо за информацию! Она очень ценна для таких новичков, как я)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua