Имя: Пароль:
1C
1C 7.7
v7: Перебор справочника
0 chin77chin
 
11.10.12
10:49
Скажите пожалуйста, почему при такой конструкции я получаю только первый элемент справочника?

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

каску надоле, можно кидаться поминдорами. :)
1 zladenuw
 
11.10.12
10:50
ПолучитьЭлемент(<Режим>)
Назначение:
Получить из выборки следующий элемент справочника.
а сп почитать
2 ttk
 
11.10.12
10:51
(0) а для чего все это?
3 GLazNik
 
11.10.12
10:51
эмъ... цикл по Ит.... а обращаетесь к Конт (хотя собственно странно что возвращает первый... вроде и того возвращать не должен)
4 GreyAngel
 
11.10.12
10:52
У тебя идет выборка бухгалтерских итогов, а выводишь ты почему-то никак не связанный с ней элемент справочника Контрагенты. Чего хотел сделать-то?
5 DGorgoN
 
11.10.12
10:52
Конт.ВыбратьЭлементы();
   Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты);        
   Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
   Сообщить(Конт.ТекущийЭлемент());  
   КонецЦикла;

Где тут перебор справочника Конт=СоздатьОбъект("Справочник.Контрагенты");
6 ЧеловекДуши
 
11.10.12
10:53
ДНК, эх а седня только четверг :)
7 ADirks
 
11.10.12
10:53
поржал, спасибо :))

таки да, Ит с Конт как-то не связаны
8 ЧеловекДуши
 
11.10.12
10:53
(1)Ему не поможет, у автора каша в голове, он решил, если все сложить в кучу, то программа 1С сама все остальное сделает :DDDD
9 zladenuw
 
11.10.12
10:54
я вообще ответил на вопрос ТС. а что ему и для чего. на важно. а код в топку :)
10 Рэйв
 
11.10.12
10:55
(0)
замени

Сообщить(Конт.ТекущийЭлемент());

на
Сообщить(Ит.Субконто(1));

и наверное будет счастье тебе:-)
11 ЧеловекДуши
 
11.10.12
10:55
(9)То что в топку, это однозначно :)
12 borozavr
 
11.10.12
10:58
Процедура Сформировать()
   Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,, 1);
   Ит.ВыполнитьЗапрос(ДатНач, ДатКон, "62.1",,, 1,, "С");
   Ит.ВыбратьСубконто();        
   Пока Ит.ПолучитьСубконто() = 1 Цикл
   Сообщить(Ит.ТекущийЭлемент());  
   КонецЦикла;
КонецПроцедуры

Собсна..
13 Надсмотрщик
 
11.10.12
10:58
Я даже БРОНЗОВЕЮ читая нынешние ветки по клюшкам           ;-)))
14 borozavr
 
11.10.12
10:59
Сообщить(Ит.Субконто(1))
15 chin77chin
 
11.10.12
11:00
Мда...
Ловлю-ловлю помидоры. Но продолжу задавать вопросы. :)
Не претендую на звание даже начинающего.
Я хотел бы из этого цикла обратиться к реквизитам контрагента. Это реально? Как сделать?
16 antoneus
 
11.10.12
11:01
(3) должен, открывает выборку и встает на первый элемент.
17 chief accountant
 
11.10.12
11:02
(15) ответ в (14)
18 GreyAngel
 
11.10.12
11:03
(15) Из какого цикла? Какого контрагента?

1. Из цикла по бух. итогам?
2. Из цикла по справочнику контрагентов?
3. Еще из какого-нибудь цикла?
19 ЧеловекДуши
 
11.10.12
11:03
(15) Смотри в (10) и получай свои плюшки :)
Там и будет твой контрагент...
20 chin77chin
 
11.10.12
11:05
Из цикла по бух. итогам
21 chin77chin
 
11.10.12
11:08
Получив название в Ит.Субконто как мне выташить реквезит контрагента?
22 GreyAngel
 
11.10.12
11:10
(20) См.14
(21) Например так:

Конт=СоздатьОбъект("Справочник.Контрагенты");
Конт.НайтиЭлемент(Ит.Субконто(1));
23 ЧеловекДуши
 
11.10.12
11:11
(21)Какое название? О_о...
Пригласи специалиста... :)
24 ЧеловекДуши
 
11.10.12
11:12
(22)Зачем?
Он же не хочет записать изменение в карточку клиента :)

(21)Лучше вот так

Конт = Ит.Субконто(1); //Все что нужно, это всего лишь две желтые книги и усердие, их прочесть :)
25 viktor_vv
 
11.10.12
11:12
(22) На пур куа ?
Ит.Субконто(1).ИдентификаторРеквизита .

Если часто обращаться будешь, то

ТекКонтр = Ит.Субконто(1) ;
ЗначениеРеквизита = ТекКонтр.ИдентификаторРеквизита ;
26 chief accountant
 
11.10.12
11:12
(22) чаво-чаво?
27 GreyAngel
 
11.10.12
11:19
(24) Фиг его знает чего он хочет. Лучше пусть так, раз уж СП не читает.
(26) В чем проблема? Разве этот способ не работает? :)))
28 GreyAngel
 
11.10.12
11:20
(26) С людьми надо стараться говорить на их языке. :)
29 chief accountant
 
11.10.12
11:27
(28) в (22) конкретная фуйня
30 GreyAngel
 
11.10.12
11:28
(29) Можно аргументированее? Я всегда готов учиться.
31 chief accountant
 
11.10.12
11:31
(30) легко:
(22) ответ на (21) на что трое тебе сказали, что это лажа
32 chin77chin
 
11.10.12
11:31
Вот спасибо! :)
Все получилось.
Вы тут все такие няшки. :)
33 GreyAngel
 
11.10.12
11:33
(31) Для простого чтения реквизитов согласен. Но хз, что автор в действительности собрался делать.

Ладно, я вас понял. Оставим тему.
34 1Сергей
 
11.10.12
11:34
(31) хватит из себя тут умного корчить. Код (22) имеет место быть
35 chief accountant
 
11.10.12
11:37
(34) Для получения реквизита этот код нах не нужен
36 1Сергей
 
11.10.12
11:41
(35) Не периодического, да
37 ЧеловекДуши
 
11.10.12
11:46
(36)Да он в любом случае избыточен, ссылка на контрагента и так получена :)
38 chief accountant
 
11.10.12
11:55
(36) Сообщить(Ит.Субконто(1).МОЛ.Получить('11/10/2012'));
У тебя не работает???
39 1Сергей
 
11.10.12
12:07
(38) не работает
40 chief accountant
 
11.10.12
12:08
(39) мне тебя жаль
41 1Сергей
 
11.10.12
12:12
(40) не работает потому, что семерки нет под рукой :)
42 chief accountant
 
11.10.12
12:19
(41) в таком случае (34) тупой беспочвенный наезд :)
Ошибка? Это не ошибка, это системная функция.