Имя: Пароль:
1C
1С v8
Вывод из формы в макет
0 sovsemnovichek
 
29.07.13
12:36
Помогите пожалйуста... Мне нужно вывести список материалов в макет, рассчитывая необходимые данные. Проблема: выводится только одна первая строка из всей группы товаров

ЭлементыФормы.ТабличныйДокумент.Очистить();
    Док =  ЭлементыФормы.ТабличныйДокумент;
    
    Заполнение = ПолучитьМакет("Макет");
    ОбластьШапка = Заполнение.ПолучитьОбласть("Шапка");
    Док.Вывести(ОбластьШапка);
    
    ОбластьСтрока = Заполнение.ПолучитьОбласть("Строка");
    
    Для Каждого  СтрокаТЧ ИЗ ТаблицаОстатки Цикл
        ОбластьСтрока.Параметры.Артикул = СтрокаТч.Номенклатура.Артикул;
        ОбластьСтрока.Параметры.Наименование = СтрокаТЧ.Номенклатура;
        ОбластьСтрока.Параметры.Остаток = СтрокаТЧ.КоличествоОстаток;
        
    Если   СтрокаТЧ.Количество <> 0 Тогда
        ОбластьСтрока.Параметры.Цена_закупка = СтрокаТЧ.Себестоимость/СтрокаТЧ.Количество;
    Иначе
        ОбластьСтрока.Параметры.Цена_закупка = 0;
    КонецЕсли;
    
    Если СтрокаТЧ.Количество <> 0 Тогда
        ОбластьСтрока.Параметры.Цена_розница = СтрокаТЧ.СуммаБезСкидок/СтрокаТЧ.Количество;
    Иначе
        ОбластьСтрока.Параметры.Цена_розница = 0;
    КонецЕсли;
    
        ОбластьСтрока.Параметры.В_наличии_дней = СтрокаТЧ.КоличествоДнейВНаличии;
        ОбластьСтрока.Параметры.Продано_за_период = СтрокаТЧ.Количество;
        
    Если   СтрокаТЧ.Количество <> 0 Тогда
        ОбластьСтрока.Параметры.Валовая_прибыль = (СтрокаТЧ.Сумма - СтрокаТЧ.Себестоимость)/СтрокаТЧ.Количество;
    Иначе
          ОбластьСтрока.Параметры.Валовая_прибыль = 0;
    КонецЕсли;
      
        ОбластьСтрока.Параметры.Сумма_полученной_валовой_прибыли =  СтрокаТЧ.Сумма - СтрокаТЧ.Себестоимость;
        ОбластьСтрока.Параметры.Средняя_продажа = СтрокаТЧ.Количество/СтрокаТЧ.КоличествоДнейВНаличии;
        ОбластьСтрока.Параметры.НЕТ_в_наличии = КоличествоДнейПериода/СтрокаТЧ.КоличествоДнейВНаличии;
        ОбластьСтрока.Параметры.Не_продано = ОбластьСтрока.Параметры.НЕТ_в_наличии * ОбластьСтрока.Параметры.Средняя_продажа;
        ОбластьСтрока.Параметры.Сумма_упущенной =  ОбластьСтрока.Параметры.Валовая_прибыль *  ОбластьСтрока.Параметры.Не_продано;
        ОбластьСтрока.Параметры.Прогноз = (КоличествоДнейДляРасчета * СтрокаТЧ.Количество - СтрокаТЧ.КоличествоОстаток) * ОбластьСтрока.Параметры.Валовая_прибыль;    
    КонецЦикла;
    
    Док.Вывести(ОбластьСтрока);
1 chelentano
 
29.07.13
12:37
(0) очевидно, что ты выводишь только одну строку
2 Нуф-Нуф
 
29.07.13
12:37
Док.Вывести(ОбластьСтрока); - всунь в цикл
3 Godofsin
 
29.07.13
12:37
Док.Вывести(ОбластьСтрока); в нутрь цикла
4 andreymongol82
 
29.07.13
12:37
Док.Вывести(ОбластьСтрока) - надо вовнутрь цикла поместить
5 Нуф-Нуф
 
29.07.13
12:37
сунь в цикл, будь мужиком, блеать!
6 Naumov
 
29.07.13
12:37
Док.Вывести(ОбластьСтрока); в цикл
7 chelentano
 
29.07.13
12:38
про Док.Вывести(ОбластьСтрока); в цикл уже было?
8 Капитан О
 
29.07.13
12:41
используй силу цикла
9 sovsemnovichek
 
29.07.13
12:48
просто вставить Док.Вывести(ОбластьСтрока); в этот же цикл да?
10 Капитан О
 
29.07.13
12:49
(9) не в этот же цикл, а в этот же цикл
11 Godofsin
 
29.07.13
12:49
(9) Нет, засовывай в другой цикл, который не этот цикл
12 chelentano
 
29.07.13
12:49
(9) читай (2), (3), (4), (5), (6), (7)
13 sovsemnovichek
 
29.07.13
12:50
ОбластьСтрока = Заполнение.ПолучитьОбласть("Строка");
    
    Для Каждого  СтрокаТЧ ИЗ ТаблицаОстатки Цикл
            ОбластьСтрока.Параметры.Артикул = СтрокаТч.Номенклатура.Артикул;
        ОбластьСтрока.Параметры.Наименование = СтрокаТЧ.Номенклатура;
        ОбластьСтрока.Параметры.Остаток = СтрокаТЧ.КоличествоОстаток;
        
    Если   СтрокаТЧ.Количество <> 0 Тогда
        ОбластьСтрока.Параметры.Цена_закупка = СтрокаТЧ.Себестоимость/СтрокаТЧ.Количество;
    Иначе
        ОбластьСтрока.Параметры.Цена_закупка = 0;
    КонецЕсли;
    
    Если СтрокаТЧ.Количество <> 0 Тогда
        ОбластьСтрока.Параметры.Цена_розница = СтрокаТЧ.СуммаБезСкидок/СтрокаТЧ.Количество;
    Иначе
        ОбластьСтрока.Параметры.Цена_розница = 0;
    КонецЕсли;
    
        ОбластьСтрока.Параметры.В_наличии_дней = СтрокаТЧ.КоличествоДнейВНаличии;
        ОбластьСтрока.Параметры.Продано_за_период = СтрокаТЧ.Количество;
        
    Если   СтрокаТЧ.Количество <> 0 Тогда
        ОбластьСтрока.Параметры.Валовая_прибыль = (СтрокаТЧ.Сумма - СтрокаТЧ.Себестоимость)/СтрокаТЧ.Количество;
    Иначе
          ОбластьСтрока.Параметры.Валовая_прибыль = 0;
    КонецЕсли;
      
        ОбластьСтрока.Параметры.Сумма_полученной_валовой_прибыли =  СтрокаТЧ.Сумма - СтрокаТЧ.Себестоимость;
        ОбластьСтрока.Параметры.Средняя_продажа = СтрокаТЧ.Количество/СтрокаТЧ.КоличествоДнейВНаличии;
        ОбластьСтрока.Параметры.НЕТ_в_наличии = КоличествоДнейПериода/СтрокаТЧ.КоличествоДнейВНаличии;
        ОбластьСтрока.Параметры.Не_продано = ОбластьСтрока.Параметры.НЕТ_в_наличии * ОбластьСтрока.Параметры.Средняя_продажа;
        ОбластьСтрока.Параметры.Сумма_упущенной =  ОбластьСтрока.Параметры.Валовая_прибыль *  ОбластьСтрока.Параметры.Не_продано;
        ОбластьСтрока.Параметры.Прогноз = (КоличествоДнейДляРасчета * СтрокаТЧ.Количество - СтрокаТЧ.КоличествоОстаток) * ОбластьСтрока.Параметры.Валовая_прибыль;    
        
        Док.Вывести(ОбластьСтрока);    
        
    КонецЦикла;
Так? =)
14 Godofsin
 
29.07.13
12:51
(13) ДАДАДАДАДАДА и ДА, блеать!
15 Капитан О
 
29.07.13
12:51
(13) что тебе требуется для самостоятельного ответа на поставленный вопрос?
16 sovsemnovichek
 
29.07.13
12:52
это не помогло, вот что!
17 Капитан О
 
29.07.13
12:53
(16) тогда нужно заменить прокладку
18 Нуф-Нуф
 
29.07.13
12:55
будь мужиком, блеать!
19 Godofsin
 
29.07.13
12:56
(16) Ты же нажал "Сохранить" и обновил конфу БД? И док-т, на котором тестируешь, имеет больше одной строки в ТЧ?
20 sovsemnovichek
 
29.07.13
13:54
Там много строк, и да, я нажал сохранить
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан