Имя: Пароль:
1C
 
Выбор плана счетов. v7.7
0 Василий
 
26.07.04
11:08
Пишу свою конфигурацию. В конфигураторе создал два плана счетов. Как сделать так, чтобы при выборе закладки одного из плана счетов управлять видимостью колонок ? Использование предопределенной процедуры <i>ПриВыбореЗакладки()</i> результата не дает (эта процедура не вызывается при выборе в закладках плана счетов). Кто знает подскажите.
1 Волшебник
 
26.07.04
13:45
Не очень понятно. Напиши подробнее.
2 Василий
 
26.07.04
14:09
Запускаем базу в режиме 1с:Предприятие.
Открываем планы счетов: Операции - План счетов.
Вижу перед собой открытый "Основной план" и закладку "Бюджетный план".
Имена планам счетов присвоил сам ("Основной план" и "Бюджетный план").
Как отлавить момент выбора закладки плана счетов ?
Пробовал процедурой ПриВыбореЗакладки(), но результат ноль.

з.ы. Прошу прощения за сумбур в первом вопросе.
3 Василий
 
26.07.04
18:39
Ответьте, плз.
4 Волшебник
 
26.07.04
18:43
Думаем...
5 Волшебник
 
26.07.04
18:57
Наверное, никак. В форме списка планов счетов закладки генерируются системой автоматически. Достучаться до них программно не получилось.
При вызове метода Форма.ИспользоватьЗакладки(1) пишет "Закладки уже задействованы".
Метод Форма.ИспользоватьЗакладки(0) игнорируется.

p.s. Переходи на 8.0.
6 Warlock
 
26.07.04
19:14
(0,2)Конкретизируй, зачем тебе это надо. Возможно проблему можно решить:
-дав на выбор только один план счетов;
-анализировать выбранный счет на принадлежность к плану счетов?
7 Press
 
26.07.04
19:38
Я вот нашел способ - по теории должен работать, однако на практике он валит 1С.
8 Василий
 
27.07.04
09:08
(7)В конфигураторе для объектов метаданных "Планы Счетов" существует несколько реквизитов.
Но большинство реквизитов участвуют только для одного из планов счетов, поэтому для улучшения "читабельности" хотел управлять видимостью колонок плана счетов.
Видно, не судьба в v7.7 ...
Хорошо ещё, что метод ПриНачалеВыбораЗначения() работает.
9 Press
 
27.07.04
09:42
Попробовал на 21 релизе вроде работает.
Перем ПрошлПлан;
//_____________________________________________________________________________
Функция Тест()  

   ПланСчетов = ТекущийСчет().ПланСчетов().ПорядковыйНомер();  
   
   Если ПланСчетов=0 Тогда
         Возврат \"\";    
   КонецЕсли;
   
   Если ПланСчетов<>ПрошлПлан Тогда
       Сообщить(ПланыСчетов.ЗначениеПоНомеру(ПланСчетов)); // Вот здесь то      
                                                        //событие и поймали...
   КонецЕсли;                        
   ПрошлПлан = ПланСчетов;  

     Возврат \"\";    
КонецФункции //Тест
..............................................
ПрошлПлан=1;

На форме, естественно, текст с формулой тест().
10 ws_mason
 
27.07.04
13:45
А если попробовать в процедурах:
ПриНачалеВыбораЗначения()
ОбработкаВыбораЗначения()
ПриВыбореСтроки()
проверять выбранное или выбираемое значение счета на принадлежность конкретному плану счетов?
11 427
 
27.07.04
14:10
(8) все нужное тебе примитивно реализуется в 7.7....

Это обычная форма... Со всеми вытекающими. Делаешь колонки для ВСЕХ возможных реквизитов... А при выборе нужного плана прячешь ненужные... см (10) - это наводка ... про водку....
12 Press
 
27.07.04
14:47
13 Василий
 
27.07.04
15:27
Я хочу управлять видимостью колонок планов счетов открываемых как МЕНЮ - Операции - План счетов (ОсновнаяФорма), а не для выбора.
(9) "На форме, естественно, текст с формулой тест()." Не совсем понятно, куда вставлять функцию тест().
(10,11) Не пригодно, т.к. форма открывается не для выбора. Предопределенная процедура ПриВыбореЗакладки() не работает; закладки инициированы программно.
(5) Прав.

Надо всё это для обычной демонстрации, да и выглядело бы красиво. А то, при показе планов счетов, не очень-то хочется объяснять какие реквизиты используются для данного плана, а какие нет.
14 dkuznecov
 
27.07.04
16:02
Помещаем на форму функцию (текст с формулой Управление())
В модуле пишем:
Функция Управление()
Если ИспользоватьПланСчетов()="Основной" Тогда
Форма.БлаБлаБла.Видимость(0);
КонецЕсли;
Возврат 0;
КонецФункции
15 cup of tea
 
27.07.04
16:03
Может я чего-то не понимаю, но по-моему задача совершенно тривиальная.
Планы Счетов - Формы списка - редактировать ->> в основной форме плана счетов на форму списка нужно разместить текстовую метку с формулой. ИспользоватьПланСчетов() в формуле возвратит значение интерактивно выбранного плана счетов, и в зависимости от выбранного плана можно сделать видимыми те или иные колонки.
16 Press
 
27.07.04
16:04
Хм.. На 21 тоже вылетает. Сбой похоже происходит при обращении к атрибуту ПланыСчетов, т.к. следующий код работает нормально:
Перем ПрошлПлан;
//_____________________________________________________________________________
Функция Тест()  

  ПланСч = ТекущийСчет().ПланСчетов().ПорядковыйНомер();  
 
  Если ПланСч=0 Тогда
        Возврат "";    
  КонецЕсли;
 
  Если ПланСч<>ПрошлПлан Тогда
   Если ПланСч=2 Тогда   //Номер нужного плана счетов
       Форма.Наименование.Видимость(0);   //Нужная колонка
   Иначе
       Форма.Наименование.Видимость(1);              
   КонецЕсли;            
  КонецЕсли;                        

  ПрошлПлан = ПланСч;  

  Возврат "";    
КонецФункции //Тест
..............................................
ПрошлПлан=1;  
(13)На форму списка плана счетов ложишь элемент диалога - Текст, на вкладке
дополнительно, формула - Тест().
17 cup of tea
 
27.07.04
16:07
(14) только не ИспользоватьПланСчетов()="Основной" , а ИспользоватьПланСчетов()=ПланыСчетов.Основной однако... :-)
18 Композитор
 
27.07.04
16:08
(17) Привет, Чашка!
19 cup of tea
 
27.07.04
16:09
Привет. Давно здесь не была )))
20 Press
 
27.07.04
16:17
(14,15) Ну, вот я так и знал что все должно быть просто и красиво :)
21 Василий
 
27.07.04
16:53
Всем спасибо. Очень помогло, хотя и коряво (через элемент диалога "Текст").
22 Василий
 
27.07.04
16:55
Считаю тему завершённой
23 cup of tea
 
27.07.04
16:56
(21) в 1с это нормально, а не коряво )))
24 427
 
27.07.04
18:07
два дня.... всем форумом....  ......ся - это уметь надо...
25 Press
 
27.07.04
18:41
(24)Главное что все таки  .....ли.