Имя: Пароль:
1C
1C 7.7
v7: ИспользоватьСубконто и список значений не работает
0 dmaksimov
 
26.02.13
11:49
При установке списка значений в ИспользоватьСубконто получаем пустые бух итоги. Если устанавливаем конкретное значение из этого списка, то итоги расчитываются. В чем может быть проблема? Собственно код:

Для а=1 По СпТМЦ.РазмерСписка() Цикл
   БухИтог = СоздатьОбъект("БухгалтерскиеИтоги");
   БухИтог.ИспользоватьСубконто(ВидыСубконто.ТМЦ,СпТМЦ.ПолучитьЗначение(а),2);
   //БухИтог.ИспользоватьСубконто(ВидыСубконто.ТМЦ,СпТМЦ,2); //ТАК НЕ РАБОТАЕТ
   БухИтог.ВыполнитьЗапрос(НачДата, КонДата, Счет10,,,,"Проводка");
...
1 Джордж1
 
26.02.13
11:50
может там не 2 надо ставить - в типе фильтра?
2 dmaksimov
 
26.02.13
11:51
Пробовал все значения, это не помогает
3 Злопчинский
 
26.02.13
12:55
1. Убрать нахрен цикл.
2. Проверить что в СпТМЦ добавлены значения того же типа, что на субконто счет10
3. Проверить, какой счет задан в Счет10, а то получится что в сч10 - другой тип субконто.
4. выполнить
БухИтог = СоздатьОбъект("БухгалтерскиеИтоги");
БухИтог.ИспользоватьСубконто(ВидыСубконто.ТМЦ,СпТМЦ,2);
БухИтог.ВыполнитьЗапрос(НачДата, КонДата, Счет10
4 Злопчинский
 
26.02.13
12:59
и.. это.. я не спец по бухкомпоненте, но посчитать остатки и обороты с периодичностью "Проводка" - у меня вызывает сомнения...?
5 NikVars
 
26.02.13
14:30
(0) А так работает?
БухИтог.ИспользоватьСубконто(ВидыСубконто.ТМЦ,СпТМЦ,1);
6 dmaksimov
 
26.02.13
15:49
(3) НЕ РАБОТАЕТ ТАКОЙ КОД.
Я сам в шоке. Такое у меня используется повсеместно и всё идеально, но с этим я сломал голову.
Цикл я поставил для того, чтобы убедиться в правильности данных в списке.
Т.е. по списку не работает, а если я беру одно значение из этого списка,то всё хорошо.
7 dmaksimov
 
26.02.13
15:50
(4) По "проводкам" работает нормально.
8 Cthulhu
 
26.02.13
15:55
1) выкинь группы справочника из СЗ-фильтра (разверни до элементов)
2) Сч10 - в виде кода счета а не значения типа "Счет".
3) 2 >> 1
9 dmaksimov
 
26.02.13
15:55
(5) ИспользоватьСубконто с любыми фильтром (1,2,3) одинаково выдает нулевые итоги.
10 dmaksimov
 
26.02.13
15:59
(8)
1 - групп там нет, т.к. заполняется интерактивно пользователями, без возможности выбора групп.
2 - Счет у меня такой:
Счет10 = СчетПоКоду("10", ПланыСчетов.Основной);
3 - ??? не понял???
11 Cthulhu
 
26.02.13
16:05
(10):
а может и с возможностью.
Счет10="10"
"разворачичать", чонеясно?
=======
щя выяснится, что субкконто не то, и вообще...
(у меня - работает, кстати, вот только что проверил)))
12 dmaksimov
 
27.02.13
08:07
Похоже Бух Итоги не при чем.
Начал разбираться дальше, пока вижу проблему в списке значений, но, блин фигня какая-то. текМатериал и значение в списке - это один и тот же материал, но он не равен. В отладчике такая картина:

текМатериал.Код = "145602"
текМатериал.Вид() = "IBSМатериалы"
СпТМЦ.Принадлежит(текМатериал) = 0
СпТМЦ.ПолучитьЗначение(1).Вид() = "IBSМатериалы"
?(СпТМЦ.ПолучитьЗначение(1)=текМатериал,1,0) = 0
ТипЗначенияСтр(СпТМЦ.ПолучитьЗначение(1)) = "Справочник"
ТипЗначенияСтр(текМатериал) = "Справочник"
СпТМЦ.ПолучитьЗначение(1).Код = "145602"
СпТМЦ.Принадлежит(текМатериал) = 0
СпТМЦ.ПолучитьЗначение(1) = ПОДВЕС ПРЯМОЙ К ПП60Х27 ГКЛ
текМатериал = ПОДВЕС ПРЯМОЙ К ПП60Х27 ГКЛ
13 dmaksimov
 
27.02.13
08:19
Всем спасибо, кто писал.
Сам дурак. Для быстрого тестирования добавил в код заполнение списка (чтобы не заполнять руками) такой код:
   ТМЦ.НайтиПоКоду("145602",0);
   СпТМЦ.ДобавитьЗначение(ТМЦ);
А следовало писать
   СпТМЦ.ДобавитьЗначение(ТМЦ.ТекущийЭлемент());

Поэтому и БухИтоги по списку не работали.
14 zak555
 
27.02.13
08:20
убрать запрос из цикла
15 ЧеловекДуши
 
27.02.13
08:25
(0)Если ты любишь в цикле создавать объект

БухИтог = СоздатьОбъект("БухгалтерскиеИтоги");

То пиши лучше так

БухИтог = 0;
БухИтог = СоздатьОбъект("БухгалтерскиеИтоги");

И все будет хорошо, у 1С есть глюк на по этому случаю, т.е. объект на N-ом цикле перестает создаваться.

Тоже самое и с "Запросом", всегда в цикле обнуляй объект, коль любишь его там создавать, горе Программер :)
16 ЧеловекДуши
 
27.02.13
08:26
(14) Да пускай оставит... прослыт быдлокодером :)
17 Аццкий Чибуражко
 
27.02.13
09:17
забавно... каждый раз расчет бух. итогов в цикле по всему списку?...
попробуйте просто
БухИтог = СоздатьОбъект("БухгалтерскиеИтоги");
БухИтог.ИспользоватьСубконто(ВидыСубконто.ТМЦ,СпТМЦ);
БЕЗ ЦИКЛА!...
18 dmaksimov
 
27.02.13
12:18
(14) (15) (16) (17) Я по моему уже написал, что Бух итоги не работали по списку из-за криво составленного списка, см. (13)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn