Имя: Пароль:
1C
 
Как получить доступ к табличной части документа?
0 Velber
 
10.04.09
16:57
Как получить доступ к табличной части документа?
2 Ненавижу 1С
 
гуру
10.04.09
16:59
ТвояСсылка.ИмяТабличнойЧасти
или
ТвойОбъект.ИмяТабличнойЧасти
3 Ненавижу 1С
 
гуру
10.04.09
16:59
(0) что хочешь то?
4 Velber
 
10.04.09
17:00
У меня есть результат запроса откуда я вытаскиваю документ

Док = Выборка.Ссылка.ПолучитьОбъект();

А вот после как получить доступ к ТабличнойЧасти Услуги?
5 73
 
10.04.09
17:02
Док.Услуги
6 Ненавижу 1С
 
гуру
10.04.09
17:02
(4) может сразу в запросе их получить?
ну а так
Для каждого Стр из Док.Услуги Цикл
 //пробегаешь строки итератором Стр
КонецЦикла;
8 Velber
 
10.04.09
17:53
(6) Большое спасибо!!!!!!!!

А если их сразу в запросе получить, то как мне их потом обратно записать с изменениями?
9 YurOK_51
 
10.04.09
17:56
В табличной части есть реквизит Ссылка
Ссылка.ПолучитьОбъект()
Ссылка.Записать()
10 Velber
 
10.04.09
17:58
Запрос = Новый Запрос;
   Запрос.Текст =    
   "ВЫБРАТЬ
   |    ПоступлениеТоваровУслугУслуги.Ссылка,
   |    ПоступлениеТоваровУслугУслуги.СчетЗатрат,
   |    ПоступлениеТоваровУслугУслуги.СчетЗатратНУ,
   |    ПоступлениеТоваровУслугУслуги.СчетУчетаНДС,
   |    ПоступлениеТоваровУслугУслуги.Номенклатура,
   |    ПоступлениеТоваровУслугУслуги.Субконто1,
   |    ПоступлениеТоваровУслугУслуги.Субконто2,
   |    ПоступлениеТоваровУслугУслуги.Субконто3,
   |    ПоступлениеТоваровУслугУслуги.СубконтоНУ1,
   |    ПоступлениеТоваровУслугУслуги.СубконтоНУ2,
   |    ПоступлениеТоваровУслугУслуги.СубконтоНУ3
   |ИЗ
   |    Документ.ПоступлениеТоваровУслуг.Услуги КАК ПоступлениеТоваровУслугУслуги
   |ГДЕ
   |    ПоступлениеТоваровУслугУслуги.Ссылка <> НЕОПРЕДЕЛЕНО";
   Выборка = Запрос.Выполнить().Выбрать();    
   Пока Выборка.Следующий() Цикл
       
       Док = Выборка.Ссылка.ПолучитьОбъект();

Вот так я получил ссылку на объект документ, но как мне получить ссылку на объект табличной части Услуги
11 Salvador Limones
 
10.04.09
18:00
(10) Этого достаточно. Ты сразу получешь весь объект.
12 RealSaint
 
10.04.09
18:01
(10) Добавь в запрос поля из табличной части документа, а потом используй подчинённую выборку.
13 Velber
 
10.04.09
18:03
Так в запросе только поля из табличной части Услуги!

   |ИЗ
   |    Документ.ПоступлениеТоваровУслуг.Услуги КАК ПоступлениеТоваровУслугУслуги

А вот как дальше я не понимаю
14 RealSaint
 
10.04.09
18:06

       Запрос = Новый Запрос;
       Запрос.Текст =
       "ВЫБРАТЬ
       |    РасходнаяНакладная.Номер,
       |    РасходнаяНакладная.Дата,
       |    РасходнаяНакладная.ВалютаДокумента,
       |    РасходнаяНакладная.НоменклатурныйСостав.(
       |        НомерСтроки КАК НомерСтроки,
       |        Номенклатура,
       |        Номенклатура.НаименованиеПолное КАК НоменклатураПредставление,
       |        Количество,
       |        ЕдиницаИзмерения.ЕдиницаПоКлассификатору.НаименованиеКраткое КАК ЕдиницаИзмерения,
       |        ЦенаБезНДС,
       |        СуммаНДС,
       |        СуммаБезНДС,
       |        Сумма
       |    )
       |ИЗ
       |    Документ.РасходнаяНакладная КАК РасходнаяНакладная
       |ГДЕ
       |    РасходнаяНакладная.Ссылка = &Ссылка
       |
       |УПОРЯДОЧИТЬ ПО
       |    НомерСтроки";

       ВыборкаДокумент = Запрос.Выполнить().Выбрать();
       ВыборкаДокумент.Следующий();
       ВыборкаНоменклатурныйСостав = ВыборкаДокумент.НоменклатурныйСостав.Выбрать();
       Пока ВыборкаНоменклатурныйСостав.Следующий() Цикл
           
           
       КонецЦикла;


Вот что-то типа того.
15 Velber
 
10.04.09
18:08
(14) Спасибо, но я не про это, просто у меня сразу вывод данных из табличной части в запросе.

Вопрос в другом, как мне изменить эти данные и записать измененные данные назад в документ и перепровести.
16 RealSaint
 
10.04.09
18:11
(15) Что-то я не пойму суть проблемы. Объект документа у тебя есть, доступ к табличной части тебе уже показали. Очищаешь табличную часть, а потом в цикле запроса создаёшь новую строку табличной части и заполняешь её свойства. В чём сложность то?
17 73
 
10.04.09
18:14
(16)+ А потом записать Док с режимом Проведение, если перепровести надо.
Док.Записать(РежимЗаписиДокумента.Проведение)
18 Velber
 
10.04.09
18:15
Я получил ссылку на документ

Док = Выборка.Ссылка.ПолучитьОбъект();

Потом, допустим поменял значение СчетЗатрат = "40.01";
Как мне это измененное значение засунуть обратно документ?
19 73
 
10.04.09
18:17
В (18) ты получил не Ссылку, а Объект.

Записать() с нужным режимом.
20 RealSaint
 
10.04.09
18:19
(19) Опередил про объект. :-)
(18)

Док.СчетЗатрат = "40.01";
Док.Записать(РежимЗаписиДокумента.Проведение);
21 Velber
 
10.04.09
18:21
(20) а получается что Док.СчетЗатрат отстутствует, т.к. это реквизит табличной части Услуги.
22 Velber
 
10.04.09
18:22
Блин ребят, я вообще запутался, и прошу прощения что уже и вас запутал!
23 RealSaint
 
10.04.09
18:23
(21) Ну допустим, тупанул. Но ты на строку документа уже спозиционировался?
24 RealSaint
 
10.04.09
18:25
И для чего ты используешь выборку данных запросом?
25 Velber
 
10.04.09
18:26
Чтобы быстрее работало, нежели через поиск Выбрать
26 RealSaint
 
10.04.09
18:31
Думаю, проще будет так:

Док = ДокументСсылка.ПолучитьОбъект();
Для каждого СтрокаУслуги Из Док.Услуги Цикл
   СтрокаУслуги.СчетЗатрат = "40.01";
КонецЦикла;
Док.Записать(РежимЗаписиДокумента.Проведение);

И документ запросом получать не вижу смысла, он у тебя уже должен быть. Хотя может я не знаю тонкостей задачи...
27 Velber
 
10.04.09
18:32
Я вот тоже уже так делаю, спасибо!!!

ВСЕМ ОГРОМНОЕ СПАСИБО!!!