Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как текст на форме сделать невидимым? Проблема 1С 7.70.003 торговля склад для Украины?          
ZUBR Подменю пользователя
сообщение 23.10.19, 0:42
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 231
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

Доброй ночи, господа! Или доброе утро! Это снова я.
Мне нужно, чтобы когда клиент оплатит очередной ремонт, я и только я мог делать отметку в документе об оплате.

На форме расходной я добавил атрибут Текст "СПЛАЧЕНО" с идентификатором СПЛАЧЕНО. Возле него поставил флажок с идентификатором Спл. Кроме того, флажок имеет формулу Сплачено(). Еще я добавил атрибут шапки Спл с типом число с одним разрядом. Далее, перед процедурой ПриОткрытии я прописал процедуру флажка Сплачено:


Процедура Сплачено()                   
Если Спл=0 тогда
        Форма.СПЛАЧЕНО.Видимость(0);
    Иначе
        Форма.СПЛАЧЕНО.Видимость(1);
    КонецЕсли;
КонецПроцедуры


Затем в теле процедуры ПриОткрытии прописал следующее:

Если  ПолноеИмяПользователя() <> "Simeon" Тогда
            Форма.Спл.Видимость(0);
            Форма.Спл.Доступность(0);
       Форма.СПЛАЧЕНО.Доступность(0);
    КонецЕсли;
    
    Если Спл=0 тогда  
         Форма.СПЛАЧЕНО.Видимость(0);
         Иначе
        Форма.СПЛАЧЕНО.Видимость(1);
    КонецЕсли;


А проблема в том, что при открытии документа текст СПЛАЧЕНО виден, хотя значение флажка ноль. Если же поставить флажок (единицу), а затем снова его сбросить (ноль), то есть, задействовать процедуру флажка Сплачено(), то текст пропадает. Однако, если закрыть документ с сохранением, а потом его снова открыть, текст СПЛАЧЕНО снова будет снова виден. Хотя, флажок остается в нуле. Почему текст виден, когда флажок по умолчанию в нуле при открытии? Как сделать, чтобы он не появлялся, когда флажок пустой? Спасибо!!!
Кстати, доступность работает по условию. То есть, другим пользователям флажок недоступен. И текст тоже. Но видимый.
Чтобы убедиться, что Спл=0 при открытии , я использовать Сообщить(Спл). Он таки был равен нулю. Но текст был видимым! 64000000.gif

nysysimara Подменю пользователя
сообщение 23.10.19, 7:03
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

У вас случайно не закладки(слои) на форме?
Если да, то видимость элементов текущего слоя нужно прописывать при смене закладок


Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

Спасибо сказали: ZUBR,

ZUBR Подменю пользователя
сообщение 23.10.19, 11:36
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 231
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

nysysimara @ Сегодня, 8:03 * ,
Да есть слои именно на этой форме. Подскажите, пожалуйста, как прописать, или где почитать. Или приведите маленький пример. Спасибо. Лучше пример. Там есть основной слой, совместный и доверенность. Три слоя.

nysysimara Подменю пользователя
сообщение 23.10.19, 12:36
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

видимость и доступность реквизитов нужно прописать в процедуре ПриВыбореЗакладки()
примерно так:
 Процедура ПриВыбореЗакладки(Номер,Значение)
    Если Значение = "Основной" Тогда
        Форма.ИспользоватьСлой("Совместный,Основной",2);
                //если реквизиты на слое Основной
                Если  ПолноеИмяПользователя() <> "Simeon" Тогда
                      Форма.Спл.Видимость(0);
                      Форма.Спл.Доступность(0);
                      Форма.СПЛАЧЕНО.Доступность(0);
                КонецЕсли;  
                Если Спл=0 тогда  
                      Форма.СПЛАЧЕНО.Видимость(0);
                Иначе
                      Форма.СПЛАЧЕНО.Видимость(1);
                КонецЕсли;
    ИначеЕсли Значение = "Доверенность" Тогда
        Форма.ИспользоватьСлой("Совместный,Доверенность",2);

и обязательно в процедуре ПриОткрытии после
Форма.ИспользоватьЗакладки(1);
    Форма.Закладки.ДобавитьЗначение("Основной","Основной");
    Форма.Закладки.ДобавитьЗначение("Доверенность","Доверенность");

прописать
ПриВыбореЗакладки(1,"Основной");


Сообщение отредактировал nysysimara - 23.10.19, 12:37


Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

Спасибо сказали: ZUBR,

ZUBR Подменю пользователя
сообщение 23.10.19, 19:56
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 231
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

nysysimara @ Сегодня, 13:36 * , спасибо Вам. Вы мне очень помогли. Сегодня попробую.

ZUBR Подменю пользователя
сообщение 24.10.19, 0:54
Сообщение #6

Завсегдатай
****
Группа: Пользователи
Сообщений: 231
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

ZUBR @ Сегодня, 20:56 * ,
У меня не получилось. Результат тот же. Дело в том, что в данном случае я не понимаю, что делаю. И у меня все реквизиты шапки в совместном слое, а табличная часть в основном. Я даже переместил нужный мне реквизит из совместного в основной слой, но ничего не помогло. Все равно при открытии текст СПЛАЧЕНО видимый, хоть флажок сброшен в нуль.
Вообще, нужно хорошо понимать, как оно работает, чтобы сделать то, что нужно. В синтакс помощнике нет достаточной информации(.

ZUBR @ Сегодня, 1:12 * ,
Только что рыл гугл. Там есть ссылки на разные форумы, в том числе и на этот. Но я там не нашел ответа на вопрос, в чем особенность программирования видимости атрибутов на форме с несколькими слоями. Может, здесь Видимость не действует, и надо только оперировать показом слоев? Кстати, в моем случае используются два слоя - основной и совместный. И оба должны быть видны. Потому что на совместном реквизиты шапки, а на основном табличная часть. Короче, пока не понимаю...

volodya1122 Подменю пользователя
сообщение 24.10.19, 9:14
Сообщение #7

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Цитата(ZUBR @ 24.10.19, 1:54) *
Дело в том, что в данном случае я не понимаю, что делаю.

Попробую пояснити те що написала nysysimara. В 1с7 повноцінних закладок немає. Візуальний ефект закладок реалізований іншим методом.
1. В процедурі ПриОткрытии() відбувається ініціалізація візуального показу закладок. Тут появляються тільки самі закладки (тільки значки на форрмі якими переключаються закладки), а реквізити на формі розміщені абсолютно всі (із всіх слоїв). Щоб показати елементи конкретного слою при відкритті справочника якраз і прописано виклик із ПриИткритии процедури ПриВыбореЗакладки(1,"Основной");
2. В самій процедурі ПриВыбореЗакладки аналізується яка закладка нажата і показується елементи відповідних слоїв (в одній закладкі показано елементи двох слоїв).
3. Процедура ПриВыбореЗакладки виконується пільки при відкритті форми справочника (в даному випадку) і при виборі закладки.
4. При відкритті форми флажок "Спл" мав би дорівнювати нулю (якшо інше не задано прорамою. Або це не реквізик справочника.
5. Коли на формі ви міняєте значення флажка тоді потрібно на флажок повісити виклик процедури ПриВыбореЗакладки(1,"Основной") або іншої, яка б міняда видимість/доступність іншого реквізиту.

Якщо щось не получається/нерозумієте, то пишіть конкретніше, із приведенням тексту модуля.

Ще може бути що ця частина не спрацьовує:
Если  ПолноеИмяПользователя() <> "Simeon" Тогда

Перевірте чи взагалі програма заходить в цю умову

Sharzem Подменю пользователя
сообщение 24.10.19, 17:30
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

Цитата(volodya1122 @ 24.10.19, 10:14) *
В 1с7 повноцінних закладок немає

44000000.gif
Цитата(volodya1122 @ 24.10.19, 10:14) *
Попробую пояснити те що написала nysysimara

Цитата(volodya1122 @ 24.10.19, 10:14) *
Процедура ПриВыбореЗакладки виконується пільки при відкритті форми справочника (в даному випадку) і при виборі закладки.

Цитата(volodya1122 @ 24.10.19, 10:14) *
4. При відкритті форми флажок "Спл" мав би дорівнювати нулю (якшо інше не задано прорамою. Або це не реквізик справочника.

Цитата(volodya1122 @ 24.10.19, 10:14) *
5. Коли на формі ви міняєте значення флажка тоді потрібно на флажок повісити виклик процедури ПриВыбореЗакладки(1,"Основной") або іншої, яка б міняда видимість/доступність іншого реквізиту.

faceoff.gif
12201689.gif
Еххх, Вова, Вова... Нагородив городу... Це Вам не найвища математика. Тут людині потрібно при відкритті викликати ПриВыбореЗакладки() та при виборі закладки викликати Сплачено()... А Ви стільки всього нагородили.....

Nysysimara також... Мабуть, 7.7. вже забули...


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

Спасибо сказали: ZUBR,

ZUBR Подменю пользователя
сообщение 24.10.19, 22:04
Сообщение #9

Завсегдатай
****
Группа: Пользователи
Сообщений: 231
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

Умова спрацьовує, бо недоступність спрацьовує, яка зумовлена цією умовою.
Панове, я так і не зрозумів. Як при виборі закладок викликати СПЛАЧЕНО? Що це значить? Дякую.

nysysimara Подменю пользователя
сообщение 25.10.19, 6:32
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

Давайте сначала:
1) На каком слое расположен реквизиты "Спл" и "Сплачено"?
2) Где-то по коду у вас есть
Форма.ИспользоватьЗакладки(1);

и
Форма.ИспользоватьСлой("

если да, то в каких процедурах


Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

Sharzem Подменю пользователя
сообщение 25.10.19, 7:17
Сообщение #11

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

ZUBR @ Вчера, 23:04 * ,
Цитата
Як при виборі закладок викликати СПЛАЧЕНО?

Процедура Сплачено()                   
    Если Спл=0 тогда
        Форма.СПЛАЧЕНО.Видимость(0);
    Иначе
        Форма.СПЛАЧЕНО.Видимость(1);
    КонецЕсли;
КонецПроцедуры

Процедура ПриВыбореЗакладки(Номер,Значение)
       .......
       Сплачено();
КонецПроцедуры

Процедура ПриОткрытии()
       ......
       ПриВыбореЗакладки(1,"Основной");
КонецПроцедуры

Все.

Сообщение отредактировал Sharzem - 25.10.19, 7:18


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

Спасибо сказали: ZUBR,

volodya1122 Подменю пользователя
сообщение 25.10.19, 8:26
Сообщение #12

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Цитата(Sharzem @ 25.10.19, 8:17) *
Все.

Майже все.... Ще потрібно на флажок "Спл" повісити процедуру " Сплачено() ".

Хоча і те що написала Nysysimara робочий варіант

Сообщение отредактировал volodya1122 - 25.10.19, 8:29

ZUBR Подменю пользователя
сообщение 28.10.19, 0:09
Сообщение #13

Завсегдатай
****
Группа: Пользователи
Сообщений: 231
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

Sharzem @ 25.10.19, 8:17 * ,
В мене була помилка. Треба було рядок

Процедура ПриОткрытии()
       ......
       ПриВыбореЗакладки(1,"Основной");
КонецПроцедуры


помістити в самий кінець процедури. І тоді все запрацювало.
Доречі, замість Сплачено()
Процедура ПриВыбореЗакладки(Номер,Значение)
       .......
       Сплачено();
КонецПроцедуры


я там прописав саму процедуру. Вона коротка. Бо еоли прописуєш Сплачено(), то вискакує помилка, що не знаходить таку процедуру. Здається, все. Дуже всім дякую!!! 32000000.gif

nysysimara Подменю пользователя
сообщение 28.10.19, 7:52
Сообщение #14

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

Цитата(ZUBR @ 28.10.19, 0:09) *
не знаходить таку процедуру

сама процедура Сплачено() должна располагаться до своего вызова
или в начале после описания переменных добавить строку
Процедура Сплачено() Далее



Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

Спасибо сказали: ZUBR,

ZUBR Подменю пользователя
сообщение 28.10.19, 18:54
Сообщение #15

Завсегдатай
****
Группа: Пользователи
Сообщений: 231
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

Спасибо за информацию! Она очень ценна для таких новичков, как я)

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 16:07
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!