Древовидный справочник.Выбор группы.

  • Автор темы -
  • Дата начала
Статус
Закрыто для дальнейших ответов.

Гость
#1
Привет всем.
У меня возникла проблемма такого характера:
Есть древовидный справочник "ТерриториальныеОбразования" и справочник "НаселенныеПункты". (см.пример внизу). При ссылке поля "кодТерриториальногоОбразования" в справочнике "НаселенныеПункты" на справочник "ТерриториальныеОбразования" я не могу выбрать группу, могу только элемент.
Как заставить 1С выбирать группу? Как настроить древовидный справочник таким образом, чтобы можно было создавать только группы.
Должно быть решение, иначе 1С не язык программирования, а ..... ;).
Спасибо всем.

Пример данных в стравочнике "ТерриториальныеОбразования":
---------------------
ТерриториальныеОбразования
|->(01)Украина
|...|->(02)Днепропетровская область
|...|...|->(03)Криворожский район
|...|->(04)Киевская обл.
|->(05)Россия
---------------------

Пример данных в стравочнике "НаселенныеПункты":
|Код |Наименование|кодТерриториальногоОбразования|
--------------------------------------------------------------------
|_01_|Кривой Рог___| 02
|_02_|СиниеКуры___|03
|_03_|Киев________|01
--------------------------------------------------------------------
 

vitfil

IT-интегратор
02.04.2004
2 062
0
44
Минск
#2
Может, все же дело не в том, что
1С не язык программирования, а ..... smile.gif.
? Может, "стоит что-то в консерватории подправить?" © М.М.Жванецкий.
RTFM ЖЖК - это на будущее.
Но все же отвечу:
Как заставить 1С выбирать группу?
ВыборГруппы(1) в ПриОткрытии() спасет отца русской демократии.
Как настроить древовидный справочник таким образом, чтобы можно было создавать только группы.
У элемента при вводе нового пришем: СтатусВозврата(0); Возврат;

Все же читать документацию полезно. Иначе программисты - это не программисты, а ................... ;)
 

Гость
#3
Спасибо. Буду копать.
ЗЫ: Документации с толковым разделением по категориям нет. Лопачу все, что приближается к теме, причем в электронном варианте.
 

Гость
#4
Вроде разобрался. Выбор группы работает прекрасно, но запрет добавления элементов "криво" получается.
Для тех, у кого возникнет подобная ситуация, объясню более понятно.
01. Для разрешения выбора групп выберите из списка справочников нужный. После чего выберите редактирование нужной формы списка. Дальше выбираем закладку "Модуль" и добавляем процедуру(если она еще не создана) и добавляем в нее строчку "ВыборГруппы(1);":
//
Процедура ПриОткрытии()
ВыборГруппы(1);
КонецПроцедуры
//
02. Для запрета добавления в справочник элементов, которые не являются группой добавьте в тот же модуль:
//
Процедура ПриЗаписи()
Если ЭтоГруппа()=0 Тогда
СтатусВозврата(0); Возврат;
КонецЕсли
КонецПроцедуры
//
Правда, при такой реализации просто нельзя записать в справочник НеГруппу, но диалог добавления элемента все равно остается. А жаль.
Пробовал встроить распознавание в "Процедура ПриВводеСтроки()", но на этом этапе еще не известно, что мы добавляем в справочник: элемент или группу.
PS: Скорее всего можно использовать "Процедура ВводНового(<?>,)", но для этого прийдется вносить данные через документ. А мне этого не хочется, да и задача состояла в том, чтобы на уровне справочника запретить добавление элементов.
 

Гость
#5
Процедура ПриВводеСтроки()
Если ЭтоГруппа() = 1 Тогда
Предупреждение("Группа");
Иначе
Предупреждение("Элемент");
КонецЕсли;
СтатусВозврата(0);
КонецПроцедуры
Есть справка в конфигураторе. Там ВСЕ написано, однако....
 
L

lara

Гость
#6
Есть ишшо такая весч как Уровень(), можно запретить так
Если ТекущийЭлемент().Уровень()<4 Тогда
СтатусВозврата(0);
и т.п.
И пиши себе на здоровье элементы тока пятого уровня. А в корне до 4 не создашь
 

pavlo

New Member
22.10.2006
1
0
#7
Вроде разобрался. Выбор группы работает прекрасно, но запрет добавления элементов "криво" получается.
Для тех, у кого возникнет подобная ситуация, объясню более понятно.
01. Для разрешения выбора групп выберите из списка справочников нужный. После чего выберите редактирование нужной формы списка. Дальше выбираем закладку "Модуль" и добавляем процедуру(если она еще не создана) и добавляем в нее строчку "ВыборГруппы(1);":
//
Процедура ПриОткрытии()
ВыборГруппы(1);
КонецПроцедуры
//
нужно уточнить, что если из другой формы списка подбираете скажем номенклатуру, то в списке форм номенклатуры именно нужно ставить это, а не в списке форм вашего конкретного справочника куда подбираете ее :)
 
Статус
Закрыто для дальнейших ответов.