Имя: Пароль:
1C
1С v8
Переборка ТЗ
0 Uchenica74
 
20.03.13
14:23
Добрый день!!! Подскажите пожалуйста, как правильно перебрать эту таблицу http://rghost.ru/44628552, что бы создать  документы 1)по Мастеру Абдулину и Цеху 1;   2) по Мастеру Абдулину и Цеху 2;  3)по Мастеру Баранову и Цеху 1; 4)по Мастеру Баранову и Цеху 2.Необходимо создать  4 разных документа. Думаю строке 0 колонке Мастер (0.Мастер) присвоить значение "Мастер", строке 0 колонке Цех(0.Цех) присвоить значение "Цех" и в цикл уже запускать не с 0-ой строки, а с 1-ой?
1 Фокусник
 
20.03.13
14:24
(0) Сделай копию тз, сверни ее по нужным колонкам.
2 Uchenica74
 
20.03.13
14:29
всмысле в запросе все организовать, а результат записать в новый докумет?
3 Wobland
 
20.03.13
14:29
(2) а результат запроса обойти и насоздавать документов
4 dimaldinho
 
20.03.13
14:29
Для Каждого ТекСтрока Из ТвояТаблица Цикл

Если ТекСтрока.Мастер = Абдулин и ТекСтрока.Цех = Цех1 Тогда ДобавитьСтрокуВПервыйДокумент КонецЕсли

Если ТекСтрока.Мастер = Абдулин и ТекСтрока.Цех = Цех2 Тогда ДобавитьСтрокуВоВторойДокумент КонецЕсли

...

КонецЦикла
5 mikecool
 
20.03.13
14:30
итоги в запросе по мастеру и цеху, обход - профит
6 Uchenica74
 
20.03.13
14:37
спасибо, сейчас попробую
7 Uchenica74
 
20.03.13
14:40
а если например было бы n количество строк, и нужно было бы создать документы в зависимости от количества итогов по мастеру и цеху, т.е. так же не известное число документов?
8 Wobland
 
20.03.13
14:46
(7) что такое количество итогов? я вот только что дописал формирование заранее неизвестного (разумеется) количества документов на основе дерева. показать?
9 Uchenica74
 
20.03.13
14:52
да)) показать)
10 Wobland
 
20.03.13
14:53
&НаСервере
Процедура СоздатьДокументы_срв()
   Кедр=РеквизитФормыВЗначение("Объект.Продажи");
   Для Каждого ТекСтрокаРаз Из Кедр.Строки Цикл
       Для Каждого ТекСтрокаДва Из ТекСтрокаРаз.Строки Цикл
           Для Каждого ТекСтрока Из ТекСтрокаДва.Строки Цикл
               Если НЕ ТекСтрока.Пометка Тогда
                   Продолжить;
               КонецЕсли;
               СоздатьДокумент(ТекСтрока);
           КонецЦикла;
       КонецЦикла;
   КонецЦикла;
КонецПроцедуры

&НаСервере
Процедура СоздатьДокумент(СтрокаДерева)
   док=Документы.ОтчетОРозничныхПродажах.СоздатьДокумент();
   док.Дата=СтрокаДерева.Дата;
   ...
   Для Каждого ТекСтрока Из СтрокаДерева.Строки Цикл
       НоваяСтрока=док.Товары.Добавить();
       НоваяСтрока.Номенклатура=ТекСтрока.Номенклатура;
       НоваяСтрока.Количество=ТекСтрока.Количество;
       НоваяСтрока.СтавкаНДС=ТекСтрока.СтавкаНДС;
       НоваяСтрока.СуммаНДС=ТекСтрока.СуммаНДС;
       НоваяСтрока.Сумма=ТекСтрока.ИтогПродаж;
       НоваяСтрока.Себестоимость=ТекСтрока.ИтогСебестоимости;
   КонецЦикла;
   док.Записать(?(Объект.СразуПроводить, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
   Сообщить("Создан "+док);
КонецПроцедуры
11 Wobland
 
20.03.13
14:55
эх, сейчас придёт кто-нибудь и скажет, что я плохо использовал ЗаполнитьЗначенияСвойств ;)
12 mzelensky
 
20.03.13
15:02
(10) не совсем понял...а в чем фишка?!
13 Wobland
 
21.03.13
06:00
(12) фишка в использовании дерева для задачи ТС. а это - пример того, как с этим деревом потом бороться ;)
Независимо от того, куда вы едете — это в гору и против ветра!