|
v7: Как выводить информацию на печать в расходной накладной. | ☑ | ||
---|---|---|---|---|
0
YoungW
26.04.12
✎
17:18
|
Добрый день всем.
Вот имеется некоторая задача: Необходимо добавить в печатную форму документа «Выдача талонов» бланк накладной с талонами. В отличии от обычной расходной накладной он должен содержать колонку «Номера талонов». Информация по номерам талонов заносится в форму вместе с информацией по номенклатуре, количеству и цене расходуемого товара в текстовом виде по форме «с …… по ……». Номера содержат 12 цифр. Т.е., из табличной формы, в которую попадает данная информация, нужно извлечь информацию по номерам талонов. В расходной накладной построчно к каждому виду расходуемого топлива заносятся сведения по: № п/п, виду топлива, ед., количеству, цене б/НДС, цене с НДС, сумме без скидки, сумме без НДС, сумме с НДС, размеру НДС, номерам талонов. В конфигурации табличная часть документа имеет следующие наименования: ТМЦ, - тип значения Справочник.ТМЦ Топливо, - тип значения Справочник.ТМЦ Партия, - тип значения Справочник.Партии Кво, - тип значения <<число>> Коэффициент, - тип значения <<число>> Ед, - тип значения Справочник.ЕдиницыИзмерения ЦенаБезНДС, - тип значения <<число>> ЦенаСНДС, - тип значения <<число>> СуммаБезСкидки, - тип значения <<число>> Скидка, - тип значения <<число>> СуммаБезНДС, - тип значения <<число>> СуммаСНДС, - тип значения <<число>> НДС, - тип значения <<число>> НомерТалона, - тип значения <<строка>> Себестоимость, - тип значения <<число>> КвоВыдано, - тип значения <<число>> ОбычнаяЦена - тип значения <<число>> В модуле конфигуратора в Процедуре печати //Создается агрегатный объект «ТаблицаЗначений»: ТЗн = СоздатьОбъект("ТаблицаЗначений"); //Выгружаем многострочную часть в таблицу значений по реквизитам: ВыгрузитьТабличнуюЧасть(ТЗн); // Сворачиваем таблицу значений по соответствующим значениям колонок, т.е. заменяем все дублирующиеся строки на одну и суммируем значения колонок («указываем группируемые колонки», «указываем суммируемые колонки»): ТЗн.Свернуть("Топливо,ЦенаБезНДС,ЦенаСНДС,Ед,ОбычнаяЦена","Кво,НомерТалона,СуммаБезНДС,НДС,СуммаСНДС,Скидка"); Вариант решения: Нужно считать информацию с каждой строки в колонке «НомерТалона». Если колонка «Топливо» содержит одинаковое значение, свернуть строки. При этом в колонке «НомерТалона» нужно просуммировать текстовые значения колонок по маске [«с …… по ……»; «с …… по ……»] до появления 0-го значения. Или Можно просмотреть содержимое строк и при наличии в них информации по номерам талонов вывести на печать все строки Как минимум Нужно найти способ вывести в каждой строке информацию по номерам талонов (не той, в которой находится позиция курсора), а по каждой новой строке с новым видом топлива и в конце пробить суммы. В модуле формула <<НомераТалонов ()>>, размещенная в колонке Номера Талонов, выводит значение номеров талонов, на которых находится курсор, в каждой свернутой строке по видам топлива. Нужно найти это условие в модуле и отменить. P/S/ Сама таблица добавлена вручную методом копирования и ее можно выбрать из списка документов на печать. При этом, добавлена колонка "Номера талонов", вот пытаюсь понять какую функцию (или еще что) прописать в нее, чтобы показывались внесенные номера талонов в соответствующих строках. Помогите разобраться пожалуйста. |
|||
1
mikecool
26.04.12
✎
17:24
|
офигеть, это сколько же набирал то тексту...
|
|||
2
chief accountant
26.04.12
✎
17:25
|
Слишком много букав
(0) Научись выражаться ясно и коротко, а не техзадание постить |
|||
3
mikecool
26.04.12
✎
17:26
|
сделаю за 2тыр
|
|||
4
chief accountant
26.04.12
✎
17:27
|
(3) Мало, за прочтение (0) ещё 2т
|
|||
5
Он
26.04.12
✎
17:32
|
Это ТЗ?
Сколько? |
|||
6
YoungW
26.04.12
✎
17:33
|
то я пытался сам понять, что нужно сделать, поэтому получилось столько букв. Уж сильно не бейте)
|
|||
7
povar
26.04.12
✎
17:33
|
без пол литра не разобраться
|
|||
8
YoungW
26.04.12
✎
17:34
|
для программиста 1с уверен тут нет ничего сложного.
|
|||
9
Mikeware
26.04.12
✎
17:36
|
(8) несомненно. Сколько?
|
|||
10
YoungW
26.04.12
✎
17:38
|
Уж для меня лучше научиться ловить рыбу самому. Поэтому то и попросил помочь разораться.
|
|||
11
Mikeware
26.04.12
✎
17:39
|
(10) ну что ж, "для программиста 1с уверен тут нет ничего сложного".
разбирайся :-) |
|||
12
YoungW
26.04.12
✎
17:40
|
Понятно.
|
|||
13
povar
26.04.12
✎
17:40
|
(10) ученье - свет, а за свет нужно платить.
20 000 руб. мне 10000, тебе 5000 и 5000 Майку, который сделает (0) )) |
|||
14
пипец
26.04.12
✎
17:40
|
я так понял проблема много талонов на 1-у строку шоле ?
|
|||
15
mikecool
26.04.12
✎
17:41
|
(13) согласен ))
|
|||
16
YoungW
26.04.12
✎
17:42
|
Значит все поставлено на коммерческую основу... Надеялся, что тут есть фанаты своего дела)
|
|||
17
YoungW
26.04.12
✎
17:43
|
Талоны содержат 12 цифр. В каждой строке они вносятся по форме "с....пр.....".
|
|||
18
mikecool
26.04.12
✎
17:43
|
(16) ты прав - тут фанаты, и дела у каждого свои )
|
|||
19
Базис
naïve
26.04.12
✎
17:44
|
(16) Фанатов ВАШЕГО дела тут нет.
|
|||
20
Он
26.04.12
✎
17:44
|
(16) Тут ленивых халявщиков не любят.
|
|||
21
YoungW
26.04.12
✎
17:44
|
пипец, нет не много на одну строку. хочу понять, как инициализировать сами талоны в печатной форме. Как из выводить построчно.
|
|||
22
YoungW
26.04.12
✎
17:46
|
Я понимаю, что в каждом "огороде" есть свои правила и я здесь только появился. Всех правил не знаю. Не ругайте сильно. Что касается ленивости, надеюсь не сильно ленивый.
|
|||
23
пипец
26.04.12
✎
17:47
|
ТЗ на форму обработки (а ля обработка подбора по значению колонки) которая при закрытии вносит в строку как СЗ (хотя тут варианты с ограничением количества символов)
стругать документ = талон - на откуп того кто писАть будет ЗЫ а по сути не ТЗ в (0) а некое абстрактное изложение без контрольных точек |
|||
24
Eugene_life
26.04.12
✎
17:47
|
(22) В Макет разобрался как добавить колонку?
|
|||
25
YoungW
26.04.12
✎
17:49
|
Ну, конечно, так и есть, это я для себя писал (как уже излагал, хотел осмыслить с чего начинать и чем заканчивать).
|
|||
26
YoungW
26.04.12
✎
17:49
|
Eugene_life, в сам бланк я добавил колонку, в модуле это не прописал никак.
|
|||
27
Eugene_life
26.04.12
✎
17:53
|
(26) у тебя должна быть в модуле процедура "Печать". В ней заполняются параметры Макета. В ней по аналогии сделай заполнение своего
|
|||
28
YoungW
26.04.12
✎
17:54
|
||||
29
Sedoy
26.04.12
✎
17:54
|
Не взлетит....
|
|||
30
YoungW
26.04.12
✎
17:55
|
Да процедура имеется.
Процедура Печать() Перем ВыбЗначение; Меню = СоздатьОбъект("СписокЗначений"); Меню.ДобавитьЗначение("Акт","Акт"); Меню.ДобавитьЗначение("Спецификация","Спецификация"); Меню.ДобавитьЗначение("СпецификацияСоСкидкой","Спецификация со скидкой"); Меню.ДобавитьЗначение("Накладная","Накладная"); Меню.ДобавитьЗначение("НакладнаяСТалонами","Накладная с талонами"); // добавлена 2012.03.16 НакладнаяСТалонами (Игорь) Меню.ДобавитьЗначение("Просто","----------"); // просто проверка Меню.ДобавитьЗначение("Счет","Счёт-фактура"); Если Меню.ВыбратьЗначение(ВыбЗначение,"",,3,1) <> 1 Тогда Возврат; КонецЕсли; ТЗн = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(ТЗн); ТЗн.Свернуть("Топливо,ЦенаБезНДС,ЦенаСНДС,Ед,ОбычнаяЦена","Кво,НомерТалона,СуммаБезНДС,НДС,СуммаСНДС,Скидка"); Таб = СоздатьОбъект("Таблица"); глУстПропись(Гривня, "р"); тЗаказ = ""; фУкр = ?(Константа.ФормыНаУкраинском = Да, 1, 0); Если Заказ.Выбран() = 1 Тогда Если Заказ.Вид() = "Договор" Тогда тЗаказ = СокрЛП(Заказ.НомерДоговора) + " от " + Заказ.ДатаДок; КонецЕсли; КонецЕсли; Таб.ИсходнаяТаблица(ВыбЗначение); Если ВыбЗначение = "Накладная" Тогда Если Заказ.Выбран() = 1 Тогда тЗаказ = Заказ.ПредставлениеВида() + " № " +СокрЛП(Заказ.НомерДок) + " от " + Заказ.ДатаДок;; Если Заказ.Вид() = "Договор" Тогда тЗаказ = глУкр(Заказ.ПредставлениеВида()) + " № " +СокрЛП(Заказ.НомерДоговора) + ?(фУкр = 1, " від "," от ") + Заказ.ДатаДок; КонецЕсли; Иначе тЗаказ = "Без заказа"; КонецЕсли; КонецЕсли; Ном = 0; ТЗн.ВыбратьСтроки(); Таб.ВывестиСекцию("Шапка"); Пока ТЗн.ПолучитьСтроку() = 1 Цикл Ном = Ном + 1; Таб.ВывестиСекцию("Строка"); КонецЦикла; Если ВыбЗначение = "Спецификация_опт" Тогда ТекВысота = Таб.ВысотаТаблицы(); Обл = Таб.Область(9,10,ТекВысота,10); Обл.Объединить(); Обл = Таб.Область(9,11,ТекВысота,11); Обл.Объединить(); КонецЕсли; Сч = 0; Если (ВыбЗначение = "Спецификация")или (ВыбЗначение = "СпецификацияСоСкидкой") Тогда Таб.ВывестиСекцию("Дно_1"); Если АЗС.РазмерСписка() > 0 Тогда Таб.ВывестиСекцию("Дно_3"); Для Сч = 1 по АЗС.РазмерСписка() Цикл ТекАЗС = АЗС.ПолучитьЗначение(Сч); АдресАЗС = ТекАЗС.Адрес; Таб.ВывестиСекцию("Адрес"); КонецЦикла; КонецЕсли; Таб.ВывестиСекцию("Дно_2"); Иначе Таб.ВывестиСекцию("Дно"); КонецЕсли; Таб.Защита(Константа.ФлагЗащитыТаблиц); Таб.ПараметрыСтраницы(1,,,,,,,,,1,,); // автомасштаб Таб.ТолькоПросмотр(1); Таб.Опции(0,0,,); Таб.Показать("Выдача талонов",""); КонецПроцедуры |
|||
31
Eugene_life
26.04.12
✎
17:59
|
(28) В макете вместо <НомераТалонов1()> напиши <ТЗн.НомерТалона>
|
|||
32
Eugene_life
26.04.12
✎
17:59
|
(31) + и убедись, что у тебя это поле - выражение, а не текст.
|
|||
33
YoungW
26.04.12
✎
18:00
|
Думал на основании этого кода можно решить задачу....
ТЗн = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(ТЗн); ТЗн.Свернуть("Топливо,ЦенаБезНДС,ЦенаСНДС,Ед,ОбычнаяЦена","Кво,НомерТалона,СуммаБезНДС,НДС,СуммаСНДС,Скидка"); Или может не прав?( |
|||
34
Он
26.04.12
✎
18:00
|
(22) Ты попал. Тут только сильно ленивые привествуются.
|
|||
35
YoungW
26.04.12
✎
18:01
|
Eugene_life
сделал. Выводятся пустые поля. Информация не вытягивается.. |
|||
36
YoungW
26.04.12
✎
18:02
|
Пробовал уже это несколько ранее... Что только уже не подставлял туда.
|
|||
37
Eugene_life
26.04.12
✎
18:03
|
(35) у тебя точно колонка в Таб части называется "НомерТалона"? Тогда тебе ее складывать не нужно:
Вместо ТЗн.Свернуть("Топливо,ЦенаБезНДС,ЦенаСНДС,Ед,ОбычнаяЦена","Кво,НомерТалона,СуммаБезНДС,НДС,СуммаСНДС,Скидка"); нужно ТЗн.Свернуть("Топливо,ЦенаБезНДС,ЦенаСНДС,Ед,ОбычнаяЦена,НомерТалона","Кво,СуммаБезНДС,НДС,СуммаСНДС,Скидка"); |
|||
38
YoungW
26.04.12
✎
18:06
|
Угу и это пробовал. Убирал "ТЗн.Свернуть". Единственное в некоторых накладных бывает довольно много значений. И еще выводилась информация у меня по позиции на которой стоит курсор. Только туда вставлял функцию.
|
|||
39
Eugene_life
26.04.12
✎
18:10
|
(38) Если у тебя в табличной части есть значения, и названия совпадают - то должно выводиться. Попробуй всунуть:
Сообщить(ТЗн.НомерТалона); перед вот этой: Таб.ВывестиСекцию("Строка"); Ищи, где ошибка. Скорее всего - нет данных в ТЗн. |
|||
40
YoungW
26.04.12
✎
18:13
|
"Таб.ВывестиСекцию" - не нахожу в модуле(
|
|||
41
Eugene_life
26.04.12
✎
18:14
|
Пока ТЗн.ПолучитьСтроку() = 1 Цикл
Ном = Ном + 1; Таб.ВывестиСекцию("Строка"); КонецЦикла; |
|||
42
Mikeware
26.04.12
✎
18:15
|
(39) ошибка у него там же, где и всегда...
|
|||
43
Eugene_life
26.04.12
✎
18:15
|
(42) Где же?
|
|||
44
Mikeware
26.04.12
✎
18:17
|
(43) В ДНК... :-)
|
|||
45
YoungW
26.04.12
✎
18:17
|
Mikeware
я понимаю, что вам есть возможность гордиться своими знаниями в данном вопросе. Будьте снисходительны, если конечно хватить терпения. |
|||
46
YoungW
26.04.12
✎
18:17
|
Глупо надмеваться знаниями.
|
|||
47
YoungW
26.04.12
✎
18:19
|
Eugene_life спасибо большое. Буду ковыряться дальше. И всем спасибо за терпение.
|
|||
48
ЧеловекДуши
26.04.12
✎
18:23
|
(45)Ты пости ссылками, типо числом в скобках (0), так интересней.
Так же, судя по стонам, вы вообще кто по профессии? Ну не как не программист :) ... А еже ли вы Дворник, то мой вам совет, либо учитесь программировать и читаете две жёлтые книги по описанию языка 1С 7.7. Либо нанимаете программиста ;) |
|||
49
ЧеловекДуши
26.04.12
✎
18:24
|
+ Тут все фанаты, но халявщиков тут не любят ;)
|
|||
50
Mikeware
26.04.12
✎
18:25
|
(46) я не знаю, что такое "надмеваться", но могу сказать одно: либо учитесь (примеров , да и учебников достаточно), либо "вызывайте специалиста"©
подсказать сложный вопрос - запросто. а делать за вас вашу работу бесплатно - западло... |
|||
51
Vladal
26.04.12
✎
18:30
|
(21) Что-то для новичка ты в курсе дела, как пользоваться ссылками
|
|||
52
Vladal
26.04.12
✎
18:31
|
Халявщикам просьба обращаться в rfpro.ru/issues/5/3/
|
|||
53
zak555
26.04.12
✎
19:12
|
что делать-то надо ?
|
|||
54
YoungW
27.04.12
✎
09:36
|
Mikeware(46) я не знаю, что такое "надмеваться", но могу сказать одно: либо учитесь (примеров , да и учебников достаточно), либо "вызывайте специалиста"©
подсказать сложный вопрос - запросто. а делать за вас вашу работу бесплатно - западло... Поставил бы лайк под данным сообщением. Пошел читать желтую книжку... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |