Имя: Пароль:
1C
1C 7.7
v7: Вывод номера документа и номенклатуры
,
0 julia_rostov
 
12.09.12
16:04
Всем привет, Есть вопрос, в отчете вывожу № документа, и мне нужно вывести всю номеклатуру по документу, потом следующий № документ и его номеклатуру. Подскажите как в цикле реализовать?
1 Волесвет
 
12.09.12
16:05
может запросом?
2 alex74
 
12.09.12
16:05
(1) нет, в семерке лучше в цикле
3 julia_rostov
 
12.09.12
16:06
Так запросом выводиться но не весь список номеклатуры...
по документу
4 Guk
 
12.09.12
16:07
лучше ничего не писать, а взять готовый реестр документов с ИТС. потому что если писать, это будет долго и в итоге все равно придется звать программиста...
5 Волесвет
 
12.09.12
16:07
мде
Док = СоздатьОбъект(Документ....);
Док.ВыбратьДокументы(ДатаН,ДатаК);
Пока Док.ПолучитьДокумент()=1 Цикл
Док.ВыбратьСтроки();
Пока Док.ПОлучитьСтроку()=1 Цикл

КонецЦикла;
КонецЦикла;
хз работает или нет, писал по памяти
6 julia_rostov
 
12.09.12
16:13
Я писала так))) выводит раз 30 послед строку в списке номеклатуры((((
7 alex74
 
12.09.12
16:13
(6) давай сюда свой код, и самую эротичную свою фотку
8 julia_rostov
 
12.09.12
16:15
Фотка не самая эротическая, так как на работе)))
9 Надсмотрщик
 
12.09.12
16:15
(6) За ответ на этот вопрос - только топлес!
10 alex74
 
12.09.12
16:16
(8) если вы так работаете, то как вы отдыхаете...
11 julia_rostov
 
12.09.12
16:18
Прошу не ругаться на ошибки(((
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;
   Док = СоздатьОбъект("Документ.Списание");
   Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода);

   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");

   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка(1) = 1 Цикл
       Таб.ВывестиСекцию("Списание");
       Если ВН=1 тогда
           Таб.ВывестиСекцию("Строка");  
       КонецЕсли;        
   КонецЦикла;  
   
   
   Пока Док.ПолучитьДокумент()=1 Цикл
       Док.ВыбратьСтроки();
       Пока Док.ПОлучитьСтроку()=1 Цикл
           
       КонецЦикла;
   КонецЦикла;

   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры
12 julia_rostov
 
12.09.12
16:18
Я на фотке как раз таки отдыхаю.
13 julia_rostov
 
12.09.12
16:19
извиняюсь вот это
Док = СоздатьОбъект("Документ.Списание");
   Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода);

   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");

   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка(1) = 1 Цикл
       Таб.ВывестиСекцию("Списание");
       Если ВН=1 тогда
           Таб.ВывестиСекцию("Строка");  
       КонецЕсли;        
   КонецЦикла;  

   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры
14 alex74
 
12.09.12
16:20
Док = СоздатьОбъект("Документ.Списание");
   Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода);

   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");

   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Док.ПолучитьДокумент()=1 Цикл
       Таб.ВывестиСекцию("Списание");
        Док.ВыбратьСтроки();
       Пока Док.ПОлучитьСтроку()=1 Цикл
           Таб.ВывестиСекцию("Строка");  
        КонецЦикла;
   КонецЦикла;  

   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры
15 GreyAngel
 
12.09.12
16:20
(13) Это что?
16 chief accountant
 
12.09.12
16:21
(13) Docprint.ert и забудь про свой велик
17 vladko
 
12.09.12
16:21
(13) в где сам запрос-то?
18 alex74
 
12.09.12
16:22
+ (14) и проверить чтобы в таблице в свойствах ячеек было прописано Док.ТекущийДокумент() и Док.Номенклатура или что там у вас
19 julia_rostov
 
12.09.12
16:22
Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Списание = Документ.Списание.ТекущийДокумент;
   |ДокПрихода = Документ.Списание.ДокПрихода;
   |ДокументОснование = Документ.Списание.ДокументОснование;
   |Клиент = Документ.Списание.Клиент;
   |Товар = Документ.Списание.Товар;
   |Сумма = Документ.Списание.Сумма;
   |Группировка Списание;
   |Условие(Клиент в ВыбКлиент);
   |"//}}ЗАПРОС
   ;
   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;
   Док = СоздатьОбъект("Документ.Списание");
   Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода);

   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");

   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка(1) = 1 Цикл
       Таб.ВывестиСекцию("Списание");
       Если ВН=1 тогда
           Таб.ВывестиСекцию("Строка");  
       КонецЕсли;        
   КонецЦикла;  

   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры
20 GreyAngel
 
12.09.12
16:22
(14) Вы таки уверены, что это будет работать? А если в полях этой самой строки стоят названия не аналогичные реквизитам документа?
21 palpetrovich
 
12.09.12
16:23
зачем запрос, хватит   и так:
Док = СоздатьОбъект("Документ.Списание");
   Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода);
Пока Док.ПолучитьДокумент()=1 Цикл
Таб.ВывестиСекцию("Списание");
       Док.ВыбратьСтроки();
       Пока Док.ПОлучитьСтроку()=1 Цикл
            Таб.ВывестиСекцию("Строка");
       КонецЦикла;
   КонецЦикла;
22 vladko
 
12.09.12
16:23
(2) в 7ке можно и запросом выводить табл.части документов нормально
23 vladko
 
12.09.12
16:30
(19) правильный ответ в (14), либо можно и чисто на запросе оставить, доработав запрос. Там во-первых нет функций, во-вторых нет группировки по строке документа