Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Вывод реквизита          
wmatik Подменю пользователя
сообщение 18.11.11, 23:56
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 294
Спасибо сказали: 1 раз
Рейтинг: 0

1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)
При создании отчета столкнулась с вот такой проблемой: в табличной части документа расположены реквизиты месяца года с типом значения число,т.к. в них располагается сумма. И последней колонкой идет итог за год. В отчет должна идти итоговая сумма (за год), и в другую ячейку таблицы должен идти месяц, в котором заполнена сумма. У меня получается выводить только сумму конкретной колонки месяца, а вот необходимо чтобы выводило в отчет месяц (например, "январь"):
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;

    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериод по ВыбКонПериод;
    |Обрабатывать НеПомеченныеНаУдаление;
    |КодДК = Документ.ПланЗакупок.КодДК;  
    |Закупки = Документ.ПланЗакупок.Закупки;    
    |Примечание = Документ.ПланЗакупок.Примечание;
    |СуммаЗаГод = Документ.ПланЗакупок.СуммаЗаГод;  
    |мес1 = Документ.ПланЗакупок.мес1;
    |мес2 = Документ.ПланЗакупок.мес2;  
    |ПериодГод =Документ.ПланЗакупок.ПериодГод;
    |Ответственный = Документ.ПланЗакупок.Ответственный;    
    |Функция Всего = Сумма(СуммаЗаГод);  
    |Группировка КодДК;
    |Группировка Примечание;
    |Условие (ПериодГод = ВыбПериод);
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    
    ЭтотГод = СокрЛП(ПериодСтр(НачГода(ВыбНачПериод),КонГода(ВыбНачПериод)));
    
    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл
        Если (ПустоеЗначение(ВыбКод) = 0)и((Лев(СокрЛП(Запрос.КодДК),СтрДлина(СокрЛП(ВыбКод))) <> СокрЛП(ВыбКод))или(СтрДлина(СокрЛП(ВыбКод))>СтрДлина(СокрЛП(Запрос.КодДК)))) Тогда
            Продолжить;
        КонецЕсли;
        ТекДок = Запрос.КодДК; // Заполнение полей КодДК
        Закупки = Запрос.Закупки;
        Подразделение = Запрос.Ответственный.Подразделение;
        Ответственный = Формат(Запрос.Ответственный.Подразделение, "Сn") +" "+"-"+" "+Запрос.Ответственный;

        Пока Запрос.Группировка(2) = 1 Цикл
            
            Выводить = 0;
            Если (СвышеСтаТысяч = 1) И (Запрос.СуммаЗаГод > 100000 ) Тогда
                Выводить = 1;
            ИначеЕсли (СвышеСтаТысяч = 0) И (Запрос.СуммаЗаГод  < 100000 ) Тогда
                Выводить = 1;
            Иначе
                Выводить = 0;
            КонецЕсли;
                
            Если Выводить = 1 Тогда
                СуммаЗаГод = СокрЛП(Формат(Запрос.СуммаЗаГод,"Ч020.")+"  "+"("+Формат(Запрос.СуммаЗаГод,"ЧП")+"  "+"у т.ч. ПДВ"+"  "+"-"+"  "+Окр(((Число(Запрос.СуммаЗаГод))/6),2)+")");
                мес = Запрос.мес1 + Запрос.мес2;

                
            Таб.ВывестиСекцию("Секция_1");  
            Итог = Итог + Запрос.Всего;    
            КонецЕсли;

        КонецЦикла;
    КонецЦикла;

    Таб.ВывестиСекцию("Итог");

    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

Ardi Подменю пользователя
сообщение 19.11.11, 0:01
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

ничо не понятно.
видео в студию.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

wmatik Подменю пользователя
сообщение 19.11.11, 0:06
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 294
Спасибо сказали: 1 раз
Рейтинг: 0

что значит видео?


Так выглядит документ


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

MATEVI Подменю пользователя
сообщение 19.11.11, 0:07
Сообщение #4

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0

Ниче тоже не понял. Напишите функцию Если колонка 1 тогда "январь". Или что вообще надо то???

wmatik Подменю пользователя
сообщение 19.11.11, 0:15
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 294
Спасибо сказали: 1 раз
Рейтинг: 0

Надо чтобы в отчет колонкой выводило месяц в котором стоит сумма

это что нереально? или я непонятно описала суть проблемы?


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

Pepe Подменю пользователя
сообщение 19.11.11, 18:15
Сообщение #6

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1434
Из: Ужгород
Спасибо сказали: 761 раз
Рейтинг: 230

Если у вас дата, воспользуйтесь ДатаМесяц(), если только число, то создайте массив с наименованиями месяца и по номеру его определяйте.

Спасибо сказали: wmatik,

mister-x Подменю пользователя
сообщение 19.11.11, 18:23
Сообщение #7

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

я б через ТЗ реалізував (вивантажував), перевіряв тоді разом по даній колонці в ТЗ (кожна колонка - окремий місяць), якщо разом <> 0, тоді приєднуєм секцію у шапку і стрічку

Спасибо сказали: wmatik,

-=VJ=- Подменю пользователя
сообщение 20.11.11, 21:57
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 402
Из: Киев
Спасибо сказали: 73 раз
Рейтинг: 0

Цитата(wmatik @ 19.11.11, 0:15) *
или я непонятно описала суть проблемы?


Да уж, немного. Лично мне пришлось раз пять перечитать, чтобы въехать.
Как я понял, сумма за год у вас играет роль лишь сводящей разбросанные колонки в одну, потому что сумма может стоять в любой колонке, но только раз за год.
В любом случае вам нужно делать переменные запроса на все колонки месяца и при формировании таблицы перебирать их, чтобы определить, в каком же месяце упала сумма.
Вариант второй, попроще - сделать колонку в документе, куда будет ставиться сразу прописное значение месяца начисления, тогда при формировании достаточно получать эту колонку.
Хотя если я не прав, и суммы у Вас могут быть в разные месяцы несколько раз за год, тогда остается только первый вариант.


Signature
Живу на VJ.net.ua.
Спілкуюсь в ЖЖ

Спасибо сказали: wmatik,

wmatik Подменю пользователя
сообщение 21.11.11, 20:51
Сообщение #9

Оратор
*****
Группа: Пользователи
Сообщений: 294
Спасибо сказали: 1 раз
Рейтинг: 0

Спасибо всем за участие, в итоге я сделал так как предложил -=VJ=-, а именно,
Цитата
Вариант второй, попроще - сделать колонку в документе, куда будет ставиться сразу прописное значение месяца начисления, тогда при формировании достаточно получать эту колонку.

Все получилось


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 25.05.24, 12:43
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!