Имя: Пароль:
1C
1C 7.7
v7: Помогите с Циклом
,
0 nikit885
 
08.07.13
20:26
Здравствуйте Мистачане!
помогите разобраться с циклом, нужно отобрать значения с списка значения...
и установить их в ТЗ в ПКО
Строго не пинайте системщика!

Процедура СохранитьСоставную()
   Если СоставПКОСохр = 1 Тогда
       ДокПКОСостав = СоздатьОбъект("Документ.ПриходныйОрдерСостав");
       ДокПКОСостав.Новый();    
       ДокПКОСостав.ДатаДок = ДатаНакладной;
       ДокПКОСостав.Субконто2 = ВыбЭкспедитор.Наименование;
       //СпДокументов в нем хранятся значения, т.е доки путем отбора в журнале
       Пока СпДокументов = 1 Цикл
           ДокПКО = СпДокументов.ПолучитьЗначение(СпДокументов.РазмерСписка());            
       аггент = ДокПКО.Субконто1;
               //и далее должны были присваиваться other значения
       КонецЦикла;
       //глУстановитьРеквизитыДокумента(ДокументЭкспедитора);
       ДокПКОСостав.Записать();
       
   Иначе
       Предупреждение("галочка", 4);
       КонецЕсли;
КонецПроцедуры
1 2S
 
08.07.13
20:27
Пока СпДокументов = 1 Цикл
шо таке?
2 nikit885
 
08.07.13
20:28
(1) я эт таке пробовал...
3 2S
 
08.07.13
20:36
надо бухнуть сначала, я не в теме
5 КонецЦикла
 
08.07.13
20:41
Ой, соррию... воно туда вообще не зайдет, перед циклом надо написать СпДокументов = 1, а в теле цикла - менять
6 Мимохожий Однако
 
08.07.13
20:46
Попробуй вот так:
.
Для каждого ДокПКО из СпДокументов Цикл
аггент = ДокПКО.Субконто1;
...

КонецЦикла;
7 nikit885
 
08.07.13
20:48
(6) пробую...
8 Волшебник
 
08.07.13
20:58
(0) Вместо "Мистачане" пишут "мистяне"
9 Волшебник
 
08.07.13
20:59
или мистюки. В зависимости от вкладываемого смысла.
10 nikit885
 
08.07.13
20:59
(8) спасибо, буду знать.
11 Мимохожий Однако
 
08.07.13
21:09
А на планете Глюк были чатлане и пацаки
12 Мимохожий Однако
 
08.07.13
21:11
нет планета по другому называлась... может Плюк?
13 nikit885
 
08.07.13
22:34
мистяне
теперь вопрос по присваиванию значений
так не присваивается, ТЗ в  ДокПКОСостав = СоздатьОбъект("Документ.ПриходныйОрдерСостав"); пустая((


   Размер2 = СпДокументов.РазмерСписка();
   тзСостПКО = СОздатьОбъект("ТаблицаЗначений");
       тзСостПКО.НоваяКолонка("СоставнаяНакладная");
       тзСостПКО.НоваяКолонка("Экспедитор");
   тзСостПКО.НоваяКолонка("СуммаПКОСост");
   СчетчикЦикла2 = 0;
   Доки2 = СоздатьОбъект("СписокЗначений");
       
       Для СчетчикЦикла2 = 1 По Размер2 Цикл    
           Стр2 = "";
           Док2 = СпДокументов.ПолучитьЗначение(СчетчикЦикла2, Стр2);
           
           Если (Док2.ПометкаУдаления() = 0) И (Док2.Проведен() = 1) Тогда
               Доки2.ДобавитьЗначение(Док2.ТекущийДокумент(), Док2.ТекущийДокумент().НомерДок);
               Если Док2.Вид() = "РасходнаяТоваров" Тогда
               ДокПКОСостав.Субконто2 = Док2.Агент.Наименование;
               
               Док2.ДобавитьСтроку()
               тзСостПКО.НоваяСтрока();
               тзСостПКО.СоставнаяНакладная = Док2.НомерДок;
               тзСостПКО.Экспедитор = Док2.Агент.Наименование;
               тзСостПКО.СуммаПКОСост = Док2.Итог("СуммаБезНДС");
               
               
               

               КонецЕсли;
               КонецЕсли;
           КонецЦикла;
           ДокПКОСостав.Записать();
14 nikit885
 
08.07.13
23:06
help...
15 фобка
 
08.07.13
23:17
(13)
мыслим логически:
1. создали объект ДокПКОСостав
2. в семерке работа с объектами и ссылками идет не совсем явно, но все-таки в коде не хватает создания самого документа
3. Заполнили ДокПКОСостав в коде не видно такого, но есть некий Док2
4. Записали ДокПКОСостав
16 фобка
 
08.07.13
23:19
а в (0) все обозначено. Ну тогда пункт 3 - заполняем реквизиты ДокПКОСостав

что-то типа ДокПКОСостав.Рекв1 = "знач1", ДокПКОСостав.РЕкв2 = "знач2" и тп
17 nikit885
 
08.07.13
23:31
(16) не присваивается вообще, в отладчике показывает = 0, хотя значения я указал правильно

ДокПКОСостав.СоставнаяНакладная = тзСостПКО.СоставнаяНакладная;
               ДокПКОСостав.Экспедитор = тзСостПКО.Экспедитор;
               ДокПКОСостав.СуммаПКОСост =  тзСостПКО.СуммаПКОСост;
18 фобка
 
08.07.13
23:35
Если это реквизиты табличной части, а не шапки - с ними нужно подругому, через новая строка. Дата то к примеру у тебя заполнилась? Смотри в отладчике
19 фобка
 
08.07.13
23:39
(13) вообще, ни о чем. Если ты сначала заполнил из и потом из нее хочешь заполнять новый док, то и цикл у тебя должен быть по из, либо получение значений по номеру строк и колонок. В общем мешанина есть некоторая, надо сесть и спокойно разобраться в коде
20 фобка
 
08.07.13
23:40
"из" это тз, смартфон подменяет
21 nikit885
 
09.07.13
11:48
(19) спасибо большое, разобрался!
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан