![]() |
Динамически выводимые колонки в отчет 7.7 Задача вроде простая но не как не складывается. Вопрос: не знаю как совместить динамически выводимую шапку с динамически выводимыми строками отчета,чтобы строки попадали в нужный столбец только что сформированной шапки или одновременно с ней. Пример задачи: 1.Априори не известно какой период выберит пользователь, но точно не меньше месяца , а то и двух и более. 2.Нужно собрать за выбранный период доки продажи в шапке которых, числится дата окончания отсрочки оплаты, ну и сумма дока (оплачен не оплачен этот док - эта часть уже реализована). 3.Собрать все эти даты, все оставшиеся задолженности опять же подокументно, сгруппировать в недели и вывести в отчет. 4.Отчет состоит из следущих колонок: Динамически сформированные колонки за каждую дату в выбранном диапазоне сгруппированные по неделям, в строках которых напротив каждого дока сгруппированная (за неделю) сумма долга. Ну и будет что то вроде - на 41 неделе ожидаемая оплата 10р, на 42 - 100р. ну и так далее в зависимости от выбранного диапазона. Как это реализовать??? Всем заранее спасибо. |
В конфигураторе реализовать. Чего не получается то? Шахматку смотрел уже? |
нет пошел смотреть |
0-alex55 > Вот для ЗиКи примеры: [url]http://1c.proclub.ru/modules/mydownloads/personal.php?cid=24&lid=5048[/url] [url]http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=5616[/url] В первой обработке: столбцы по месяцам (в зависимости от периода выборки), во второй - по видам расчета, которые применялись к сотруднику. |
при обходе столбцов сравнивем дату в нашем доке с датой столбца и присваивать переменной, которая выводится в ячейке, 0 или значение из дока. выводим ячейку. |
второй вариант. пихаем все цифры сначала в ТЗ. затем обходим ТЗ и выводим отчет. |
Приветствую всех. Огромное спасибо за дельные советы. Решил воспользоваться советом (4), но застрял на поиске значения по координатам ячейки макета. ИсхТабл = СоздатьОбъект("Таблица"); ИсхТабл.ИсходнаяТаблица("Таблица"); затем идет цикл, вывожу шапку отечета в которой есть дата (одна колонка, одна дата). ИсхТабл.ПрисоединитьСекцию("Шапка|Секция_ДатаДиапазона"); и вот место где застрял пытаюсь определить значение ячейки только, что выведено диапазона: нужно обойти 3 строку и P колонок в зависимости от кол-ва дней: вот исходник, но Для Р=1 По КоличесвтоДней Цикл НачКоорд = 10 + Р; Адр="R3"+"C"+Строка(НачКоорд); ЗначЯч=ИсхТабл.ЗначениеТекущейЯчейки(Адр); Сообщить(""+Адр+" значение: "+ЗначЯч); КонецЦикла; ЗначЯч - выводит пустое значение, не знаю, что делать. Где не прав????? |
(6)Зачем считать ячейки. Проще всего использовать в цикле "ПрисоединитьСекцию" |
(6) если так хочется ЗначениеТекущейЯчейки, то в жкк есть [b]Замечание.[/b] Для того, чтобы иметь доступ к этому методу, необходимо, чтобы переменная, содержащая таблицу, была объявлена как переменная моду*ля, а не локальная переменная процедуры. В этом случае во всех процеду*рах программного модуля вы сможете использовать данный метод и, на основании значения текущей ячейки, формировать, например, более под*робные отчеты. |
(7) Вывожу шапку динамически с датами а считаю для того, чтобы сравнить дату только что выведенной шапки с датой текущего документа и выкинуть в нужную колонку оставшуюся сумму долга. |
(8) объявил переменную "ИсхТабл" и не только ее как переменную модуля результат 0. |
(10) для чего нужен этот метод прочитай в сп если нужно узнать, что выведено в ячейке по нужному адресу обычно пользуют метод+атрибут таблицы Область(..).Текст |
(9)Используй список значений. Заноси все даты из шапки в список на этапе вывода шапки. Далее дату документа ищешь в списке. Номер позиции в списке плюс число начальных нединамических колонок и будет искомой колонкой. |
Разобрался ! Правильно будет так: Для Р=1 По КоличесвтоДней Цикл НачКоорд = 10 + Р; Адр="R3"+"C"+Строка(НачКоорд); ЗначЯч=ИсхТабл.Область(Адр); Сообщить(""+Адр+" значение: "+ЗначЯч.Текст); КонецЦикла; тогда "ЗначЯч.Текст" выводит значение ячейки!! Всем спасибо!! |
(12) тоже вариант сейчас попробую!!! |
Ха Вот прикол, а как теперь установить в нужную ячейку свое значение? Наверное тоже через ЗначЯч=ИсхТабл.Область(Адр)??? или каки други вариаты есть???? |
15-alex55 > В ячейке поставь тип "Выражение". Заполни её выражением "ТраЛяЛя". Перед ПрисоединитьСекцию() - переменой ТраЛяЛя присваивай что тебе нужно. |
Уже вроде все разжевали ) Читай (16) и делай так. Забудь ты про эти ячейки. "ПрисоединитьСекцмю()" )) |
Для Р=НачДата По Кондата Цикл Если Р = МойДок.ДатаДок Тогда ЗначениеВЯчейкеМакета = Док.НужноеЗначение; Иначе ЗначениеВЯчейкеМакета = ""; КонецЕсли; Если Р = НачДата Тогда ИсхТабл.ВывестиСекцию("СтрокаМоегоМакета| КолонкаМоегоМакета"); Иначе ИсхТабл.ПрисоединитьСекцию("СтрокаМоегоМакета| КолонкаМоегоМакета"); КонецЕсли; КонецЦикла; |
(18)Обычно еще проще. Сначала выводится основная секция, содержащая некий объект учета (Покупатель, товар, ...), а потом в цикле по периодам (дни, недели, месяцы,...) присоединяется секция со значением требуемого ресурса. То есть условие Если Р = МойДок.ДатаДок будет лишним |
19-USSR > это дело вкуса. вдруг попадётся документ в выборке, который вообще в отчет не должен попадать :-)) |
(20) Попробуй как нибудь попрограммировать целенаправленно, а не наугад. Некоторым, мне например, нравится. |
(0) уже все есть. (Гагарин) Шахматка по долгам . очередная мелкая полезняшка: Раскладка долгов по контрагентам в шахматку по периодам, с разделением долгов на текущие и просроченные. Возможность задавать произвольную шкалу периодов. . Отчет выполнен в привычном виде для типовой конфигурации "Торговля и Склад". Включены возможности штатных механизмов: настройка/обновить, множественный фильтр и пр. Особо отличается от "аналогов" возможностью и простотой задания шкалы долгов. В упрощенном виде позволяет получить состав текущих и просроченных долгов. В развернутом виде - можно детализировать до кредитного документа (образовавшего долг) с раскладкой периодов с любой подробностью. . [url]http://infostart.ru/upload/iblock/851/s7.png[/url] . [url]http://infostart.ru/upload/iblock/ff9/s0.png[/url] . [url]http://infostart.ru/public/71643/[/url] |
[img]http://infostart.ru/upload/iblock/851/s7.png[/img] [img]http://infostart.ru/upload/iblock/ff9/s0.png[/img] |
возможно пригодится . 1C v.7.7 Готовое решение. Не требует настройки. Не требует допрограммирования. Альтернативный вариант типового графика платежей в новой "обертке" с некоторыми упрощениями: позволяет видеть долги в привычном для бухгалтера/менеджера календаре-ежедневнике... . ... график платежей (облегченная версия) учитывает только "реализации" с отсрочкой платежа; ... два режима формирования: истинный и накопительный: - истинный: отвечает на вопрос "какую сумму платежа ожидаем в данный день?"; - накопительный: отвечает на вопрос "какую сумму платежа ожидаем в данный день при условии если клиент продинамит предыдущую запланированную оплату?" ... сложновато? а кто обещал, что будет легко? поясню на примере: сегодня, 29 августа, и типа звонит клиент и говорит, "...слышь, Петрович, я у тебя там на отсрочке платежа сижу в 21 день, так вот у мну сейчас денег нет - товар в грузии застрял из-за [filolog]сцуко[/filolog] Сцукашвили... и долго не будет, поэтому все что я тебе _должен буду платить по отсрочке - ты на эти деньги не рассчитывай, я все тебе прощаю ;-), заплатить смогу только не раньше середины октября - ты мне можешь сказать, сколько я буду должен заплатить, ну, например, 25 октября?"... я смело отвечаю: могу! жмакаю в октябрь и смотрю 2 цифры.. агамс... если будешь платить 25 октября - то придется проплатить 13 лимонов + 3 лимона того, что уже просрачил на сегодня.. итого 16 лимонов... проценты за просрачку я с тебя не возьму - проставишься баней и девочками... ок? и все путем... . [img]http://infostart.ru/upload/iblock/63e/2008-09-01_203423.jpg[/img] [img]http://infostart.ru/upload/iblock/3b0/2008-08-29__002.jpg[/img] . [url]http://infostart.ru/public/16293/[/url] |
Предлагаю забанить Чучундера НАВСЕГДА. По причинам: 1) Развращает своими разработками юные неокрепшие мозги типа (0); 2) Скрытая реклама детектед; 3) И ваще он небритый и наглый. |
НУ КРАСАВА!!! Вау!!! |
(22-24)КРАСАВА!!! |
Текущее время: 14:11. Часовой пояс GMT +3. |