Имя: Пароль:
1C
1C 7.7
v7: Неопределенный тип справочника
,
0 BLP
 
05.11.12
00:42
Есть...
Документ... внутри документа есть поле типа справочник. Раньше это был определенный вид... Но понадобилось, чтобы выбор делался не из одного какого-то справочника, а из двух. (так надо)...
Выставил вид справочника - неопределенный.
Проблема:
Но... теперь при щелчке на кнопке выбора справочника выдаются ВСЕ имеющиеся, а их оч.много (у меня)...
Вопрос:
Что нужно сделать, чтобы показывались для выбора только 2 вида справочников?
1 Voronve
 
05.11.12
00:44
.НеИзменятьВид и через список значений эмулировать выбор
2 welwel
 
05.11.12
00:46
ВидыДляВыбора(<?>)
Синтаксис:
ВидыДляВыбора(<СписокВидов>)
Назначение:
Установка выбираемых видов для справочника неопределенного вида.
3 BLP
 
05.11.12
00:47
а подробнее можно? пожалуйста...
4 BLP
 
05.11.12
00:49
не понял, что на кнопке выбора писать... и что в модуле
5 welwel
 
05.11.12
00:49
(2)+
Метод  можно использовать только для объектов-справочников неопределенного вида, созданных функцией СоздатьОбъект, либо определенных в конфигураторе как реквизит диалога или реквизит другого объекта.

см. СП, ЖКК
6 Voronve
 
05.11.12
00:50
(2) Не пойдеть - у него не создается справочник через СОздатьОбъект, а является элементом диалога.
(3) Синтаксис-помошник продать ? А так же учу искать в типовой ТиС по всем модулям. Дорого.
7 welwel
 
05.11.12
00:51
(6)
-> (5)
8 Voronve
 
05.11.12
00:53
хммм )
9 Отладчик
 
05.11.12
00:55
Назначить вид реквизиту не предлагать? Я прошу прощения - в 1с слаб, ибо не разбирался, но в данном случае мне кажется что где то я прав...
10 Отладчик
 
05.11.12
00:57
Там еще подчиненность есть. Хозяин, владелец, родичи... В ГБ формируется список справочников. А если совсем ступил - то движок тебе все нарисует.
11 Voronve
 
05.11.12
00:59
молодец ;)
12 1Сергей
 
05.11.12
06:51
(9) не в теме.
Правильный ответ в (2). Только, если реквизит в табличной части, то это надо делать в двух процедурах ПриВводеНовойСтроки и ПриНачалеРедактирования строки. За точность не ручаюсь
13 Тьма
 
05.11.12
10:07
Из украинской типовой БУ
Реквизит табличной части в УстДоступность()
//
ТМЦ.ВидыДляВыбора("ТМЦ,НеоборотныеАктивы");
//
реквизит шапки просто в основном модуле формы
ДокументОснование.ВидыДляВыбора("Перемещение, ПриходнаяНакладная");
14 BLP
 
05.11.12
10:28
Спасибо, 1Сергей и Voronve (Вам не за все, конечно, посты ;-)) )

Нет, у меня этот реквизит НЕ в табличной части... а внизу, где кнопки разные... ))
А я так и не понял, что или как записать в поле Функции у этого реквизита... И где писать НЕИзменятьВид?
Ну, честно, всю ночь гуглил, пытался разные варианты из предложенного выше... но не получилось... запутался совсем...
Надо очень!

P.S. К данному сабжу не относится...
А как Вы делаете ссылку в начале поста на другой, т.е. то, что в скобках (9) (5) и т.д. ? ))
15 BLP
 
05.11.12
10:35
Упс! Вижу, что у меня получилась ссылка на посты... Я думал, что надо где-то кликнуть... А получается, вручную вводить номер поста в скобках... Ну, хоть это стало понятным ))
16 ТакВотЖе
 
05.11.12
10:35
(14) Россия?
17 ТакВотЖе
 
05.11.12
10:38
Если Россия, то смотри в типовой бухгалтерии документ СчетФактура, процедура ПриНачалеВыбораЗначения.
18 viktor_vv
 
05.11.12
10:38
(14) Да не в поле Функции.

Напиши в ПриОткрытии()

ИдентификаторТвоегоРеквизита.ВидыДляВыбора("ВидСправочника1, ВидСправочника2");
19 BLP
 
05.11.12
10:43
(16) Да, но конфа не бухгалтерская )))
(18) СПА-СИ-БО! Вот это да! Проще НЕ бывает!
20 BLP
 
09.11.12
15:07
С вышеописанным все нормально, работает... но понадобилась необходимость немного изменить условия...

Все, что выше - касается случая, если реквизит с Неопределнным справочником установлен в теле документа...


Теперь мне нужна другая форма, которая во внешней обработке.

Есть кнопка с вызовом процедуры

Процедура блаблабла()
ВыбЗнач=СоздатьОбъект("Справочник");
// Указываю справочники, котороые будут предложены для выбора
ВыбЗнач.ВидыДляВыбора("АА, ББ");

Если ВыбЗнач.Вид()="АА" Тогда
  Адрес=ВыбЗнач.ТекущийЭлемент().АдрФ;
Иначе
  Адрес=ВыбЗнач.ТекущийЭлемент().АдрEN;
КонецЕсли;

КонецПроцедуры


Проблема в том, что "ЕСЛИ" не работает, т.е. всегда , какой бы ни был выбран справочник, выдается значение со справочника "ББ"

В чем проблема? Что не так делаю?
21 1Сергей
 
09.11.12
15:10
(20) Сначала выбор надо произвести
22 BLP
 
09.11.12
19:47
((( Ну,Ю не получается... Где именно нужно...
Уже по-всякому перепробовал, все время какие-то ошибки выскакивают, импа этих... Короче... запутался, а оч. надо ((

ВыбЗнач.Выбрать();    
{C:\USERS\ADMIN\11111\EXTFORMS\1C-MAIL-ENTRYFORM.ERT(627)}: Недостаточное число параметров передано при вызове функции/процедуры объекта
ВыбЗнач.ВыбратьЭлементы();    
{C:\USERS\ADMIN\11111\EXTFORMS\1C-MAIL-ENTRYFORM.ERT(627)}: Не задан вид.
Если ВыбЗнач.ВыбратьЭлементы.Вид()="Справочник.CatBreeders" Тогда  
{C:\USERS\ADMIN\1111\EXTFORMS\1C-MAIL-ENTRYFORM.ERT(631)}: Поле агрегатного объекта не обнаружено (ВыбратьЭлементы)
23 welwel
 
09.11.12
19:50
(20) ВыбЗнач нужно сначала спозиционировать
Например, если нужно, чтоб это сделал пользователь, методом Выбрать()
24 welwel
 
09.11.12
19:53
+(20) см. СП, ЖКК
25 BLP
 
09.11.12
22:04
Не понимаю...
Дело еще в том, что это не поле-реквизит диалога со Справочником...
А просто кнопка... с указанной на ней процедурой, которая и должна открыть окно с выбором справочников.... что и получается у меня... т.е. открывается окно, вс котором указаны для выбора 2 нужных мне справочника... Так надо...
А вот как дальше? (возможно я как-то не понятно объясняю... запутался сам)
26 welwel
 
09.11.12
22:20
(25)

ВыбЗнач=СоздатьОбъект("Справочник");
// Указываю справочники, котороые будут предложены для выбора

ВыбЗнач.ВидыДляВыбора("АА, ББ");

Если ВыбЗнач.Выбрать("Выберите блаблабла","ФормаСписка") = 0 Тогда
Возврат;
КонецЕсли;

и далее по тексту