Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Добавить колонки в таблице значений? (http://forums.kuban.ru/f1040/dobavit-_kolonki_v_tablice_znachenij-2365916.html)

PaVlovich 20.03.2012 04:45

Добавить колонки в таблице значений?
 
Господа, вопрос такой. Есть у меня документ - ПереработкаМатериалов. Имеется поле реквизит шапки - выпуск. Реквизит табличной части - материал, т.е. что идет в состав готовой продукции, естественно с количеством. Нужно создать отчет где по строкам идем Выпуск, а по колонкам его затраты? Затупил не могу сообразить. Хелп?!

PaVlovich 20.03.2012 04:46

//*******************************************
Процедура Сформировать()

Таблица = СоздатьОбъект("Таблица");
Таблица.ИсходнаяТаблица("Таблица");
Таблица.ВывестиСекцию("Шапка");

ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Выпуск",,,,,);
ТЗ.НоваяКолонка("Материал",,,,,);
ТЗ.НоваяКолонка("КоличествоВыпуск","Число",,,,);
ТЗ.НоваяКолонка("Количество","Число",,,,);


Док = СоздатьОбъект("Документ.ПереработкаМатериалов");
Док.ВыбратьДокументы(НачДата,КонДата);

Пока Док.ПолучитьДокумент() = 1 Цикл
ТЗ.НоваяСтрока();
ТЗ.Выпуск = Док.Выпуск;
ТЗ.КоличествоВыпуск = Док.ИсхКоличество;
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() = 1 Цикл
ТЗ.Материал = Док.Материал;
ТЗ.Количество = Док.Количество;
КонецЦикла;
КонецЦикла;

ТЗ.Свернуть("Выпуск,Материал","КоличествоВыпуск,Количество");
Таблица.ВывестиСекцию("Шапка1|Заголовок");

ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
Таблица.ВывестиСекцию("Строка|Заголовок");
Таблица.ПрисоединитьСекцию("Строка|КолонкаМат");
КонецЦикла;


Таблица.ПараметрыСтраницы();
Таблица.Показать("Производственный отчет");

КонецПроцедуры

PaVlovich 20.03.2012 06:29

Обнаружил еще одну проблемку. В документах материалы добавляют по разному. Как их потом сворачивать?

PaVlovich 20.03.2012 06:33

Надо сделать таким образом чтобы при заполнении таблицы значений материалы как сортировались, по коду наверное?!

Чучундер 20.03.2012 06:37

Не изобретай велосипед.
воспользуйся готовыми инструментами.
[url]http://infostart.ru/public/14794/[/url]

Чучундер 20.03.2012 06:38

ну и сортировка - как удобно!
[url]http://infostart.ru/public/20280/[/url]

Чучундер 20.03.2012 06:40

ТЗ.НоваяСтрока();
ТЗ.Выпуск = Док.Выпуск;
ТЗ.КоличествоВыпуск = Док.ИсхКоличество;
- перенеси внутрь цикла по строкам документа...

PaVlovich 20.03.2012 06:44

Спасибо, посмотрю

PaVlovich 20.03.2012 06:57

Неее, такое не подходит

PaVlovich 20.03.2012 06:59

Может все таки поможет кто? Хотелось бы доделать начатое.

PaVlovich 20.03.2012 07:02

В итоге должно получится как то так
[url]http://www.imagepost.ru/?v=img_0163_4.jpg[/url]

Duke1C 20.03.2012 07:06

10-PaVlovich > Ну не можешь с выборкой разобраться,
воспользуйся конструктором запросов (делов на 5 минут) -
получишь уже готовый отчет в примитивной форме.
...
Группировка Выпуск
Группировка Материал [b]все вошедшие в запрос[/b]
...

PaVlovich 20.03.2012 07:10

12-Duke1C > Ни разу такого не делал. Просвети?!

PaVlovich 20.03.2012 07:11

Ээээ, у меня v77

который не честный 20.03.2012 07:14

Чегото я не понял, что должно получиться?
Так?
Мат1 Мат2 Мат3 МатN
Выпуск1 100 10 30 50
Выпуск2 200 130 50 10

Duke1C 20.03.2012 07:29

13-PaVlovich >Что просветить? Как пользоваться конструктором запросов?
Ты вообще запросами (про прямые молчу) пользовался когда-нибудь?
14-PaVlovich >Это я по коду в (2) еще понял

Duke1C 20.03.2012 07:46

Ну народ пошел... (чегой-то я сегодня добрый). [b]Дарю[/b]
Делаешь такую табличку:
[img]http://www.imagepost.ru/?v=2012-03-20_084305.jpg[/img]

Далее...

Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "Период с НачДата по КонДата;
|Договор = Документ.ПереработкаМатериалов.Выпуск;
|Количество = Документ.ПереработкаМатериалов.Количество;
|КоличествоВыпуск = Документ.ПереработкаМатериалов.ИсхКоличество
|Товар = Документ.ПереработкаМатериалов.Материал;
|Функция КоличествоСумма = Сумма(Количество);
|Функция КоличествоВыпускСумма = Сумма(КоличествоВыпуск);
|Группировка Выпуск без групп;
|Группировка Материал без групп все ВошедшиеВЗапрос;";

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Секц="Шап";Ном=0;
Пока Запрос.Группировка(1) = 1 Цикл
Ном=Ном+1;
ПечПродукция = Запрос.Выпуск;
ПечКолПрод = Запрос.КоличествоВыпускСумма;
ПечМатериал = Запрос.Материал;
Таб.ВывестиСекцию("Стр"+Секц+"|1");
Пока Запрос.Группировка(2) = 1 Цикл
ПечКол = Запрос.КоличествоСумма;
ПечКолЕд = ?(ПечКол=0,0,ПечКолПрод/ПечКол);
Таб.ПрисоединитьСекцию("Стр"+Секц+"|2");
КонецЦикла;
Секц="";
КонецЦикла;
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры

Пробуешь... Если и это не поможет, то.......

Чучундер 20.03.2012 07:47

пойду спать...

Duke1C 20.03.2012 07:47

Чет картинка не вставилась
[img]http://imagepost.ru/images/2/01/2012-03-20_084305.jpg[/img]

Duke1C 20.03.2012 07:48

Да что за... Короче вот ссылка:
[url]http://www.imagepost.ru/?v=2012-03-20_084305.jpg[/url]

Duke1C 20.03.2012 08:00

Млин, в тексте запроса не всё поменял:
вместо [b]Договор[/b] = [em]Выпуск[/em]
вместо [b]Товар [/b]= [em]Материал[/em]

Чучундер 20.03.2012 08:01

[img]http://exportpostach.com.ua/kipia/sreds_izmer/shtangenins/images/shcs200.jpg[/img]

Duke1C 20.03.2012 08:14

22-Чучундер >Не спиться?

Helen 1986 20.03.2012 08:18

фи, какой безграмотный одноЭсник

правильно пишется - НЕ СПИТСЯ?

который не честный 20.03.2012 08:23

Где автор то? И где ответ на 15?

Duke1C 20.03.2012 08:35

24-Helen 1986 >Я в курсе, что только Вы у нас идеальны, мадам.

Duke1C 20.03.2012 08:36

25-который не честный >Ответ на (15) в (11)

Helen 1986 20.03.2012 08:40

(26) просто я грамотней тебя

ValeraH 20.03.2012 08:48

(24) От контекста зависит, кому-то хочется спать, а кому-то выпить...

Duke1C 20.03.2012 08:59

29-Хоменко Валерий >Во, сразу видно - наш человек :)

PaVlovich 20.03.2012 09:21

Ребята, всем спасибо за ответы. Буду пробовать. Отвечу позже.

Duke1C 20.03.2012 09:22

31-PaVlovich >17+20+21 = все готово должно быть уже

PaVlovich 20.03.2012 09:46

Неее, не пашет. Не правильно. Создаю два документа. Выпуск берет с первого документа (Выпуск), а второй просто суммирует (КоличествоВыпуск), не видно ПечМатериал.

PaVlovich 20.03.2012 09:46

Простите мне надо было отойти.

PaVlovich 20.03.2012 10:05

32-Duke1C > Доведем дело до конца?!

PaVlovich 20.03.2012 10:13

32-Duke1C > Может тебе базу отправить чтоб наглядней было?

roma n 20.03.2012 10:34

36-PaVlovich > а чё только базу? денежку-то не забудь присовокупить
...
"Вы, чего, и конфеты за меня есть будете?" © Вовка в тридевятом царстве

PaVlovich 20.03.2012 10:43

37-roma n > Ты по моему тут вообще ничего не сделал. Судить не тебе. Нет у меня подобного опыта. Что играть в испорченный телефон, коль начал - думаю до ума довести можно.

Duke1C 20.03.2012 10:47

35-PaVlovich >Я итак уже все разжевал, табличку даже не поленился нарисовать (ссылку из 20 смотрел?).
Или автор ни разу не программист?

Duke1C 20.03.2012 10:49

Код то в (17) готовый (с учетом правок в 21, ибо накидывал на своей базе), чего не работает то?


Текущее время: 23:38. Часовой пояс GMT +3.