Вход | Регистрация

1С:Предприятие ::

Метки: 

Как добавить элемент?

Я
   Dmitry
 
27.02.04 - 02:13
В справочнике две группы. Как добавить элементв определенную группу справочника (программно).
Процедура ПриЗаписи()
       СпрКонтр = СоздатьОбъект("Справочник.Контрагенты");
    СпрКонтр.ВыбратьЭлементы(); 
    Пока СпрКонтр.ПолучитьЭлемент()=1 Цикл

    Если СпрКонтр.ЭтоГруппа()=1 Тогда 
         Если СпрКонтр.Наименование=Группа тогда
             СпрКонтр.Новый(Группа);
             СпрКонтр.Наименование=Наименование;
             СпрКонтр.Записать();
         КонецЕсли; 
    КонецЕсли;
    КонецЦикла; 
КонецПроцедуры 
Наименование и группа вводятся в диалоговом окне!
 
 
   skunk
 
1 - 27.02.04 - 02:42
   Дмитрий
 
2 - 27.02.04 - 02:42
Если СпрКонтр.Наименование=Группа тогда 
           Гр=СпрКонтр.ТекущийЭлемент();
           СпрКонтр.ИспользоватьРодителя(Гр);
           СпрКонтр.Новый(); 
           СпрКонтр.Наименование=Наименование; 
           СпрКонтр.Записать(); 
           Прервать;
        КонецЕсли; 

Только нафиг Группа делать текстовым? Делай типа "Справочник.Контрагенты". Хотя тут и без этого много тумана
   Dmitry
 
3 - 27.02.04 - 03:01
Дмитрий
Надо, что бы элемент добалялся в выбранную  группу (из пречислений). А так он добавляется прсто в справочник контрагенты!
   SnarkHunter
 
4 - 27.02.04 - 05:58
(3)Сам понимаешь о чем речь? Попробуй переформулировать с самого начала и поподробнее...
   Dmitry
 
5 - 27.02.04 - 08:03
В иерархическом справочнике "Контрагенты" есть две группы (Организации и Предприниматели). Изменять справочник можно только в диалоге. Подскажите как добавлять новый элемент справочника в определенную группу.
   skunk
 
6 - 27.02.04 - 08:05
млин по ссылки в (1) и поймешь
   Дмитрий
 
7 - 27.02.04 - 09:29
(3) ИспользоватьРодителя - и не в группу?
Может у тебя просто кнопка "Иерархический список" нажата?
   SnarkHunter
 
8 - 27.02.04 - 09:33
(7)Если он программно создает - ему кнопка по барабану...
   Дмитрий
 
9 - 27.02.04 - 09:43
(8) Может он потому программно и создает, потому что кнопка отжата. В таком случае добавлять новые элементы нельзя :)

А после программного добавления у него все равно все в одном списке :)
   SnarkHunter
 
10 - 27.02.04 - 09:43
(9)Вон ты о чем... Согласен... :-))
 
  Рекламное место пустует
   Dmitry
 
12 - 28.02.04 - 12:04
Дмитрий у меня все равно не получается.

Только нафиг Группа делать текстовым? Делай типа "Справочник.Контрагенты"

Если так сделать, то нельзя выбрать группу, можно выбрать только элемент. А мне надо группу. Я использую "Перечесления.ГруппыКонтрагентов"

Глюк в Этой строке
Если СпрКонтр.Наименование=Группа тогда....
Как-то неправильно сравнивает, условие выполняется, а элемент добавляется не в группу, а в корень справочника.

Уже и не знаю, что делать?
   327
13 - 28.02.04 - 12:43
для выбора группы надо добавить

SelectGroup(<?>)
Назначение:
Установить режим выборки групп при интерактивном выборе элемента справочника.
Параметры:
<Режим> - режим выборки групп:   1 - выбирать группы; 0 - не выбирать группы (необязателен, по умолчанию - 1).
Замечание:
Метод можно применять как объектов, созданных функцией СоздатьОбъект (интерактивный выбор осуществляется методом Выбрать), так и в диалогах для полей типа справочник.
По умолчанию, выборка элементов справочников для полей диалога в формах документов, журналов и справочников установлена без выбора групп, а в форме отчета - с выбором групп.


Перечисление.ГруппыКонтров .... бред сивого коня в лунную ночь....  Это что - для каждой новой группы добавлять строку в перечисление....

Для добавления элемента в выбранную группу
ГР - реквизит с выбранной группой 


if  гр.IsGroup()<> 1 тогда 
    DoMessageBox ("Бурундук - птица.. А элемент не группа"); 
    return; 
endIf;
СпрКонтр.New(); 
СпрКонтр.UseParent(Гр); 
СпрКонтр.Description=ЗаданноеНаименование; 
СпрКонтр.Write();
   Inside
14 - 28.02.04 - 12:46
А вы .Родителя не пробовали присваивать у создаваемого элемента, господа? :)
   Inside
15 - 28.02.04 - 12:53
+13) А зачем ИспользоватьРодителя вы всё время вталкиваете - я вообще не понимаю....

НовыйЭлемент.Родитель=НайденнаяГруппа;

Чё вообще флудить? Вон вторым постом вам линк кинули верный.
   327
16 - 28.02.04 - 12:58
Ёёёёё ... точно ... вместо
СпрКонтр.UseParent(Гр);
надо

СпрКонтр.Parent =Гр;  

.... чегой то помутнение в мозгах ...
   GrayT
 
17 - 28.02.04 - 12:58
"..наименование и группа вводяться в диалоговом окне..",
".. использую перечисление..".
Группа у тебя - это перечисление? Тогда ты наименование сравниваешь с перечислением. В отладчике смотрел, что значит условие выполняется - входит внутрь "тогда"?
И вообще все сумбурно. Если ты уже сидишь в новом элементе, зачем програмно создаешь еще один?
   Дмитрий
 
18 - 29.02.04 - 02:41
Блин, бред какой-то. Создавай элдементы нормальным образом и суй их в те группы, в какие захочешь:)
Хотя понятие "группы" у тебя не совсем адекватное :)


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует