Имя: Пароль:
1C
 
Как добавить строку в табличную часть?
0 Domovoi
 
19.03.10
12:28
Выборка = Справочники.Поставщики.Выбрать();
Пока Выборка.Следующий() Цикл
   Если Строка(Выборка.Актуальность)="Используется" Тогда
   ОбъектДок = Документы.Приход.ПолучитьСсылку().Ссылка.ПолучитьОбъект();
   //ОбъектДок = Документы.Приход.ПолучитьСсылку().ПолучитьОбъект();
   НоваяСтрока = ОбъектДок.Поставщики.Добавить();
   НоваяСтрока.Наименование = Выборка.Наименование;
   ОбъектДок.Записать();
   КонецЕсли;
КонецЦикла;

В чем ошибка?
1 butterbean
 
19.03.10
12:29
(0) зачем .Ссылка.ПолучитьОбъект()???
2 Domovoi
 
19.03.10
12:30
(1)Ну тогда так?
Документы.Приход.ПолучитьСсылку().ПолучитьОбъект();
3 Domovoi
 
19.03.10
12:30
(+2)Хотя я и так и так пробовал
4 Mitriy
 
19.03.10
12:30
ОбъектДок = Выборка.Ссылка.ПолучитьОбъект();
5 also
 
19.03.10
12:30
(2) ты че хочешь то? Документ новый создать?
6 Domovoi
 
19.03.10
12:31
хочу добавить строку в табличную часть
7 also
 
19.03.10
12:31
(4) так там ДОкумент.Приход вроде
8 Mitriy
 
19.03.10
12:31
(4) тьфу ты...
9 also
 
19.03.10
12:31
(6) Какого документа?
10 Domovoi
 
19.03.10
12:32
(9)Документ Приход
11 also
 
19.03.10
12:32
Или ты это в модуле документа выполняешь? А вообще почитал бы СП про метод ПолучиьтСсылку()
12 Рэйв
 
19.03.10
12:32
(0)Вынеси
   ОбъектДок = Документы.Приход.ПолучитьСсылку().Ссылка.ПолучитьОбъект();
до цикла,
а
   ОбъектДок.Записать();
после цикла
13 Живой Ископаемый
 
19.03.10
12:32
2(6) e тебя Документы.Приход - уже скорее ссылка (ну может быть еще строка) - потому что запрос Объектов не возвращает. А ты делаешь еще ПолучитьСсылку() - зачем?
Поэтому просто
ОбъектДок = Документы.Приход.ПолучитьОбъект();

И будет лучше если скажешь, что за ошибка
14 Живой Ископаемый
 
19.03.10
12:33
а, о... боже...
15 also
 
19.03.10
12:33
(10) я понимаю что приход, но КАКОГО? Нового, старого...Если док уже есть в базе, его найти как-то надо
16 Рэйв
 
19.03.10
12:33
+ПолучитьСсылку().Ссылка  - лишнее
17 butterbean
 
19.03.10
12:33
(2) тебе нужно в какой-то конкретный документ все записать?
18 Mitriy
 
19.03.10
12:33
ОбъектДок = Документы.Приход.СоздатьДокумент(); ??
19 Domovoi
 
19.03.10
12:34
(13)Так так же нельзя. Пути к такому методу нет. а если впучную написать то ошибка.

Я это деляю из модуля документа.
20 Живой Ископаемый
 
19.03.10
12:34
Короче, дядька - ты не нашел Документ - сначала найди его - по номеру там или еще как-то, а уже потом получи его как объект и фигачь в него строки
21 Живой Ископаемый
 
19.03.10
12:34
2(19) и строки хочешь добавить в него же?
22 Mitriy
 
19.03.10
12:35
(19) мда... может, тебе почитать?..
что-нибудь художественное...
23 Domovoi
 
19.03.10
12:35
Я это делаю из модуля этого же документа. Зачем мне его искать?
24 also
 
19.03.10
12:35
о боже...
25 Domovoi
 
19.03.10
12:35
и строки в не го же
26 Живой Ископаемый
 
19.03.10
12:35
НоваяСтрока = ИмяТабличнойЧастиДока.Добавить();
27 Живой Ископаемый
 
19.03.10
12:36
2(23) во-первых ты в (0) этого не сказал. Во-вторых - зачем вообще писать этот бред?
28 also
 
19.03.10
12:36
(23) а зачем ты сделал вот это:

.ПолучитьСсылку().Ссылка.ПолучитьОбъект()?

Вот как ты к этому пришел? чисто интересно
29 Domovoi
 
19.03.10
12:37
(27)Ну я прочитал в книге и стал пробовать.
30 also
 
19.03.10
12:37
(29) Что ты там прочитал?
31 Domovoi
 
19.03.10
12:37
(28) там сказано было ссылкадокумента.ПолучитьОбъект()
32 Domovoi
 
19.03.10
12:37
Ну я и пытался получить ссылку.
33 Живой Ископаемый
 
19.03.10
12:38
2(28) я только что посмотрел его код внимательно - новая строка - это у него по идеее элемент справочника Поставщики... это вообще трындец.
====
2(29) Капец, а если бы тебе попалась в руки Книга Бытия, ты бы попытался сотворить Мир за 6 дней?
34 also
 
19.03.10
12:38
(31) Ты находишься в модуле объекта..Не надо тебе ниче получать..
35 Mitriy
 
19.03.10
12:38
(32) на фига, если ты уже в объекте находишься?
36 Живой Ископаемый
 
19.03.10
12:38
2(31) и что - в книге это делают тоже в модуле документа? или в каком-то другом месте?
37 also
 
19.03.10
12:39
Кстати а че накинулись..Может книжка такая? :)))
38 Domovoi
 
19.03.10
12:39
(36)Там это не пишут
39 Domovoi
 
19.03.10
12:40
Короче мне нада было добавить строку в табличную часть и я стал искать, что нашел то и попробовал. (Если б платформу писали нормально, например как Delphi, то и проблем никаких не возникалоб)
40 Живой Ископаемый
 
19.03.10
12:41
2(39) Ну понятно, это не ты такой тупой, это платформу такую написали... И конечно понятночто на Делфи пишут нормальные пацаны, а на в8 - какие-то замшелые полудурки
41 Mitriy
 
19.03.10
12:42
(39) ну-ну... если что-то не получается, то первым делом надо заклеймить позором... без этого 1С-ник не получится...
42 Живой Ископаемый
 
19.03.10
12:42
все, ушел. а то у Волбешника на меня зуб, еще забанит к чорду...
43 Domovoi
 
19.03.10
12:47
(40) (41)Да при чем тут это. Я может тоже тупой. Delphi я в пример просто привел(Я ж не говорю что на 1с програмирруют недопрограммисты а на Delphi проффесионалы). Просто если уже они внедрили "точку", то нужно было отработать ее, а не просто для красоты поставить.
44 Живой Ископаемый
 
19.03.10
12:48
2(43) так просто скажи как называется табличная часть документа
45 NewNick
 
19.03.10
12:53
(43) если под "внедрили "точку", то нужно было отработать ее, а не просто для красоты поставить." подразумевалась контекстная подсказка то она там есть - начинай искать.
любопытно. а я то все думал зачем люди в яп "точку внедряют". а оно вон как оказывается ))
46 Domovoi
 
19.03.10
12:57
(45)Она не везде называется контекстная подсказка, да и малоли может не все знают, поэтому проще было назвать "точка". То что она там есть я как то заметил, только вот она не все как нада отображает. Иногда лишние функции(процедуры), а иногда то что есть она не показывает.
47 Живой Ископаемый
 
19.03.10
12:57
Выборка = Справочники.Поставщики.Выбрать();
Пока Выборка.Следующий() Цикл
   Если Строка(Выборка.Актуальность)="Используется" Тогда
   //не надо получать никаких ссылок и тем более объектов - ты уже в объекте, он называется ЭТОТОБЪЕКТ, но даже это имя указывать не обязательно - кстати - это точно так же как в Делфи
   //ОбъектДок = Документы.Приход.ПолучитьСсылку().Ссылка.ПолучитьОбъект();
   //ОбъектДок = Документы.Приход.ПолучитьСсылку().ПолучитьОбъект();

   //НоваяСтрока = ОбъектДок.Поставщики.Добавить();//НЕТ - ни в коем случае!
   НоваяСтрока = ИМЯТабличнойЧастиТвоегоДока.Добавить();
   НоваяСтрока.Контрагент = Выборка.Ссылка;//При условии что в табличной части есть поле Контрагент,
   //И конечно не надо записывать документ после КАЖДОЙ строки
   //ОбъектДок.Записать();
   КонецЕсли;
КонецЦикла;
//возможно даже и этого не надо - тут и так транзакция записи
ОбъектДок.Записать();

Твоя точка - Это комбинация клавиш Контрол+Пробел
48 Живой Ископаемый
 
19.03.10
12:57
2(46) Вход в в8 мимо букварей - слабореален.
49 NewNick
 
19.03.10
12:59
(46) между "не все как надо" и "не все что я могу понять" две большие разницы )
50 Domovoi
 
19.03.10
13:01
(47)Да я знаю. Ты ж видешь в коде что я пользуюсь.
(49)Ну если я ставлю точку а нужный мне метод не высвечивается, а дописав его руками работает, то кто кривой? я или разработчики?
51 Живой Ископаемый
 
19.03.10
13:03
2(50) Если ты ставишь точку а нужный метод не высвечивается - значит переменная, после которой ты ставишь точку - нетипизирована, и Среда не знает какой контекст тебе предоставить - так что да, ты кривой.
52 Дикообразко
 
19.03.10
13:05
Контрол+Космос
53 NewNick
 
19.03.10
13:10
(50) судя по этому
ОбъектДок = Документы.Приход.ПолучитьСсылку().Ссылка.ПолучитьОбъект();

платформа просто сообразила что иногда высвечивать методы абсолютно не стоит, так как этим злоупотребляют))
54 Domovoi
 
19.03.10
15:42
(51),(53)Чтоб не быть голословным.
//В документе
ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ОсновныеДействияФормыОК
а дальше ставлю точку а там пусто, но если прописать вручную то работает.
ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ОсновныеДействияФормыОК.Доступность=0;
И ничего заумного я не делал, просто последовательно писал путь до элемента и 1с сама меня сопровождала, а когда добрался, то показывает, что ни свойств, ни методов, ни функций - ничего нет. И это нормально???
55 Живой Ископаемый
 
19.03.10
15:48
2(54) см. 48.. Или переходи на 77, там это реализовано. Опенконфом
Программист всегда исправляет последнюю ошибку.