![]() | [1] [2] |
Добавить колонки в таблице значений? Господа, вопрос такой. Есть у меня документ - ПереработкаМатериалов. Имеется поле реквизит шапки - выпуск. Реквизит табличной части - материал, т.е. что идет в состав готовой продукции, естественно с количеством. Нужно создать отчет где по строкам идем Выпуск, а по колонкам его затраты? Затупил не могу сообразить. Хелп?! |
//******************************************* Процедура Сформировать() Таблица = СоздатьОбъект("Таблица"); Таблица.ИсходнаяТаблица("Таблица"); Таблица.ВывестиСекцию("Шапка"); ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Выпуск",,,,,); ТЗ.НоваяКолонка("Материал",,,,,); ТЗ.НоваяКолонка("КоличествоВыпуск","Число",,,,); ТЗ.НоваяКолонка("Количество","Число",,,,); Док = СоздатьОбъект("Документ.ПереработкаМатериалов"); Док.ВыбратьДокументы(НачДата,КонДата); Пока Док.ПолучитьДокумент() = 1 Цикл ТЗ.НоваяСтрока(); ТЗ.Выпуск = Док.Выпуск; ТЗ.КоличествоВыпуск = Док.ИсхКоличество; Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку() = 1 Цикл ТЗ.Материал = Док.Материал; ТЗ.Количество = Док.Количество; КонецЦикла; КонецЦикла; ТЗ.Свернуть("Выпуск,Материал","КоличествоВыпуск,Количество"); Таблица.ВывестиСекцию("Шапка1|Заголовок"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл Таблица.ВывестиСекцию("Строка|Заголовок"); Таблица.ПрисоединитьСекцию("Строка|КолонкаМат"); КонецЦикла; Таблица.ПараметрыСтраницы(); Таблица.Показать("Производственный отчет"); КонецПроцедуры |
Обнаружил еще одну проблемку. В документах материалы добавляют по разному. Как их потом сворачивать? |
Надо сделать таким образом чтобы при заполнении таблицы значений материалы как сортировались, по коду наверное?! |
Не изобретай велосипед. воспользуйся готовыми инструментами. [url]http://infostart.ru/public/14794/[/url] |
ну и сортировка - как удобно! [url]http://infostart.ru/public/20280/[/url] |
ТЗ.НоваяСтрока(); ТЗ.Выпуск = Док.Выпуск; ТЗ.КоличествоВыпуск = Док.ИсхКоличество; - перенеси внутрь цикла по строкам документа... |
Спасибо, посмотрю |
Неее, такое не подходит |
Может все таки поможет кто? Хотелось бы доделать начатое. |
В итоге должно получится как то так [url]http://www.imagepost.ru/?v=img_0163_4.jpg[/url] |
10-PaVlovich > Ну не можешь с выборкой разобраться, воспользуйся конструктором запросов (делов на 5 минут) - получишь уже готовый отчет в примитивной форме. ... Группировка Выпуск Группировка Материал [b]все вошедшие в запрос[/b] ... |
12-Duke1C > Ни разу такого не делал. Просвети?! |
Ээээ, у меня v77 |
Чегото я не понял, что должно получиться? Так? Мат1 Мат2 Мат3 МатN Выпуск1 100 10 30 50 Выпуск2 200 130 50 10 |
13-PaVlovich >Что просветить? Как пользоваться конструктором запросов? Ты вообще запросами (про прямые молчу) пользовался когда-нибудь? 14-PaVlovich >Это я по коду в (2) еще понял |
Ну народ пошел... (чегой-то я сегодня добрый). [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); Таб.Показать("Сформировать", ""); КонецПроцедуры Пробуешь... Если и это не поможет, то....... |
пойду спать... |
Чет картинка не вставилась [img]http://imagepost.ru/images/2/01/2012-03-20_084305.jpg[/img] |
Да что за... Короче вот ссылка: [url]http://www.imagepost.ru/?v=2012-03-20_084305.jpg[/url] |
Млин, в тексте запроса не всё поменял: вместо [b]Договор[/b] = [em]Выпуск[/em] вместо [b]Товар [/b]= [em]Материал[/em] |
[img]http://exportpostach.com.ua/kipia/sreds_izmer/shtangenins/images/shcs200.jpg[/img] |
22-Чучундер >Не спиться? |
фи, какой безграмотный одноЭсник правильно пишется - НЕ СПИТСЯ? |
Где автор то? И где ответ на 15? |
24-Helen 1986 >Я в курсе, что только Вы у нас идеальны, мадам. |
25-который не честный >Ответ на (15) в (11) |
(26) просто я грамотней тебя |
(24) От контекста зависит, кому-то хочется спать, а кому-то выпить... |
29-Хоменко Валерий >Во, сразу видно - наш человек :) |
Ребята, всем спасибо за ответы. Буду пробовать. Отвечу позже. |
31-PaVlovich >17+20+21 = все готово должно быть уже |
Неее, не пашет. Не правильно. Создаю два документа. Выпуск берет с первого документа (Выпуск), а второй просто суммирует (КоличествоВыпуск), не видно ПечМатериал. |
Простите мне надо было отойти. |
32-Duke1C > Доведем дело до конца?! |
32-Duke1C > Может тебе базу отправить чтоб наглядней было? |
36-PaVlovich > а чё только базу? денежку-то не забудь присовокупить ... "Вы, чего, и конфеты за меня есть будете?" © Вовка в тридевятом царстве |
37-roma n > Ты по моему тут вообще ничего не сделал. Судить не тебе. Нет у меня подобного опыта. Что играть в испорченный телефон, коль начал - думаю до ума довести можно. |
35-PaVlovich >Я итак уже все разжевал, табличку даже не поленился нарисовать (ссылку из 20 смотрел?). Или автор ни разу не программист? |
Код то в (17) готовый (с учетом правок в 21, ибо накидывал на своей базе), чего не работает то? |
Текущее время: 23:38. Часовой пояс GMT +3. | [1] [2] |