Имя: Пароль:
1C
1C 7.7
v7: Бухгалтерские итоги вывод нулевых остатков
0 Mt111
 
10.11.14
17:36
ребята помогите. 1с 7,7 сетевая Форт2000
есть код

Если Код = 1267 тогда         //GetGoodsInfo - остатки/цены товаров
            //[ИДЕНТИФИКАТОР ПОЛЬЗОВАТЕЛЯ];[ПРАЙС_ЛИСТ_ID];[ТИП ДАННЫХ];
            //тип данных:   1 - остатки        - [ТОВАР_ID];[ОСТАТОК];\r                                   
            СтрВыгр="256;";                      
            НомКода=Найти(Данные,";");
            Если НомКода=0 Тогда
                возврат "511";
            КонецЕсли;
            КодПольз=Сред(Данные,1,НомКода-1);
            СпрСот = СоздатьОбъект("Справочник.Сотрудники");
            СпрСот.НайтиПоРеквизиту("КодУПроизводителя",КодПольз,1);
            Обл=СоздатьОбъект("Справочник.Номенклатура");
            Обл = СпрСот.ГрТов;
            Если ПустоеЗначение(Обл) = 1 тогда
                Возврат "511;Не найдена группа прайса";
            КонецЕсли;
            
            Данные=Сред(Данные,НомКода+1);
            НомКода=Найти(Данные,";");
            Если НомКода=0 Тогда
                возврат "511";
            КонецЕсли;                            
            ТипДанных=Число(Сред(Данные,1,НомКода-1));
            СпрТов=СоздатьОбъект("Справочник.Номенклатура");
            //    Обл=СоздатьОбъект("Справочник.Номенклатура");
            //    Обл.найтиПокоду("737");
            ИТ = СоздатьОбъект("БухгалтерскиеИтоги");  
            Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура, Обл, 1);
            Ит.ВыполнитьЗапрос(ТекущаяДата()-1, ТекущаяДата(), СчетПоКоду("28.1"),,, 1,, "К");
            Ит.ВыбратьСубконто(ВидыСубконто.Номенклатура);
            Пока Ит.ПолучитьСубконто(ВидыСубконто.Номенклатура) = 1 Цикл
                тов=Ит.Субконто(ВидыСубконто.Номенклатура);
                Если Тов.ЭтоГруппа() = 1 тогда продолжить; конецЕсли;
                СтрВыгр = СтрВыгр+СокрЛП(Тов.Код)+Зпт+СокрЛП(Ит.СКД("К"))+Зпт+Разд;                
            КонецЦикла;          
            Возврат СтрВыгр;
            
            конецесли;



но выгружаются только те товары которые есть на остатках, каким образом можно добиться того чтобы выгружались и товары с нулевыми остатками
1 vicof
 
10.11.14
17:38
бухитоги не создавать. Выгружать справочник номенклатуры.
2 YFedor
 
10.11.14
17:38
(0) товары с нулевыми остатками - это все, что в справочнике номенклатуры?
3 KUBIK
 
10.11.14
17:40
Вместо этого цикла
            Ит.ВыбратьСубконто(ВидыСубконто.Номенклатура);
            Пока Ит.ПолучитьСубконто(ВидыСубконто.Номенклатура) = 1 Цикл

тов=Ит.Субконто(ВидыСубконто.Номенклатура);

сделай цикл по справочнику номенклатура
4 Mt111
 
10.11.14
17:40
(2) да но нужно чтобы была вся номенклатура с остатками
5 vicof
 
10.11.14
17:42
(4) Еще раз. Сначала выгружаешь справочник номенклатуры. Потом выгружаешь остатки.
6 lavalit
 
10.11.14
18:06
действуй по (4) циклом топай по номенклатуре и каждый раз смотри остатки....Группы сам смотри надо или нет... если есть остаток, то получишь номенклатуру с остатком если нет значит без остатка....
7 Mt111
 
10.11.14
18:22
(6) наверное так и буду делать
но это долго