7.7 Отчет

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем aleksandrvolkov, 26 янв 2017.

  1. TopicStarter Overlay
    aleksandrvolkov
    Offline

    aleksandrvolkov

    Регистрация:
    23 ноя 2016
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток. Дали написать отчет, бьюсь с выводом одной секции уже 2 дня... Конфигурация ТиС 9.2.
    Нужно вывести табличку как во вложении,точнее,вывести данные в секции итог, но не понимаю, как это правильно сделать( в общем,из одной ТЗ я вытаскиваю все значения кроме сумм, из второй ТЗ нужно вытащить значения сумм и присоединить секцию строка|прав только после того, как все секции строка|сред присоединятся... помогите,пожалуйста((

    Вложения:

    • 123.PNG
      123.PNG
      Размер файла:
      21,6 КБ
      Просмотров:
      8
    • обработка.rar
      Размер файла:
      12,8 КБ
      Просмотров:
      1
    Последнее редактирование: 26 янв 2017
  2. TopicStarter Overlay
    aleksandrvolkov
    Offline

    aleksandrvolkov

    Регистрация:
    23 ноя 2016
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Подумал,немного изменил код, табличка начала появляться, но первое значение из ТЗ1 выводится в шапке...
    Код:
        
    Для К = 1 по ТЗВспом.КоличествоСтрок() цикл
            Код             = "( "+ТЗВспом.ПолучитьЗначение(К, "Код")+" )";
            Номенклатура = ТЗВспом.ПолучитьЗначение(К, "Номенклатура");
            Остаток         = ТЗВспом.ПолучитьЗначение(К, "Остаток");
            Сумма         = ТЗВспом.ПолучитьЗначение(К, "Сумма");
            Филиал         = ТЗВспом.ПолучитьЗначение(К, "Филиал");
            //
            //Для с = 1 по ТЗ1.КоличествоСтрок() цикл
            //    Товар = ТЗ1.получитьЗначение(с, "Номенклатура");
            //    СумОст= ТЗ1.ПолучитьЗначение(с, "Остаток");
            //    СумСум= ТЗ1.ПолучитьЗначение(с, "Сумма");
            //КонецЦикла;
            Если Номен <> Номенклатура тогда               
                Если Сумма<>0 тогда
                    Запас = Окр(Остаток/Сумма,4);
                Иначе
                    Запас = 0;
                КонецЕсли;
                Номен = Номенклатура;
                Для с = 1 по ТЗ1.КоличествоСтрок() цикл
                    Товар = ТЗ1.получитьЗначение(с, "Номенклатура");
                    СумОст= ТЗ1.ПолучитьЗначение(с, "Остаток");
                    СумСум= ТЗ1.ПолучитьЗначение(с, "Сумма");
                   
                    Если СумСум<>0 тогда
                        СумЗапас = окр(СумОст/СумСум,2);
                    Иначе
                        СумЗапас = 0;
                    КонецЕсли;
                   
                    если товар=номенклатура тогда
                        Таб.ПрисоединитьСекцию("Строка|Прав");
                    КонецЕсли;
                   
                КонецЦикла;
                Таб.ВывестиСекцию("Строка|Лев");
                Если сокр = 0 тогда
                    Таб.ПрисоединитьСекцию("Строка|Сред");
                КонецЕсли;
           иначе
                Если Сумма<>0 тогда
                    Запас = Окр(Остаток/Сумма,4);
                Иначе
                    Запас = 0;
                КонецЕсли;
                Если Сокр = 0 тогда
                    Таб.ПрисоединитьСекцию("Строка|Сред");
                КонецЕсли;
            КонецЕсли;
    КонецЦикла;
    

    Вложения:

    • 123.PNG
      123.PNG
      Размер файла:
      17,3 КБ
      Просмотров:
      9
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.883
    Симпатии:
    452
    Баллы:
    104
    Вывод секции поставь перед циклом по ТЗ1
  4. TopicStarter Overlay
    aleksandrvolkov
    Offline

    aleksandrvolkov

    Регистрация:
    23 ноя 2016
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    да,это помогло,спасибо большое.. а еще вопрос,наверху у меня выводятся названия филиалов, как сделать так, чтобы они объединилсь?
    типа такого
    филиал1 филиал2 филиал3
    с....по с....по с....по с....по с....по с....по
    Код:
    Процедура Сформировать()
       ТЗПериод.ВыбратьСтроки();
       КолПериодов = ТЗПериод.КоличествоСтрок();
       Если Сокр = 0 тогда
        Таб = СоздатьОбъект("Таблица");
         Таб.ИсходнаяТаблица("Таблица");
         Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
         Таб.ВывестиСекцию("Шапка1");
         Таб.ВывестиСекцию("Шапка|Лев");
       
         Если (ВыбРубли=1) и (ВыбШТ=0) ТОгда   
               зн = "руб.";
           ИначеЕсли (ВыбРубли=0) и (ВыбШТ=1) тогда 
               зн = "шт.";
           КонецЕсли;
           // 
         стр="";
         ТекСтрокаВТаблице = ТаблицаМФ.ТекущаяСтрока(2);
         Для н=1 по СписокЭлементовМФ.РазмерСписка() цикл
           ТТ = СписокЭлементовМФ.ПолучитьЗначение(н,стр);
             Для к=1 По КолПериодов Цикл
             НачДата = ТЗПериод.ПолучитьЗначение(к,"Период_С");
               КонДата  =  ТЗПериод.ПолучитьЗначение(к,"Период_По");
               Периодтек = "С "+НачДата+" по "+КонДата;
               Таб.ПрисоединитьСекцию("Шапка|Сред");
           КонецЦикла;
         КонецЦикла;
       
         Для к=1 По КолПериодов Цикл
           НачДата = ТЗПериод.ПолучитьЗначение(к,"Период_С");
             КонДата  =  ТЗПериод.ПолучитьЗначение(к,"Период_По");
             Периодтек = "С "+НачДата+" по "+КонДата;
             Таб.ПрисоединитьСекцию("Шапка|Прав");
         КонецЦикла;
       иначе
        Таб = СоздатьОбъект("Таблица");
         Таб.ИсходнаяТаблица("Таблица");
         Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
         Таб.ВывестиСекцию("Шапка1");
         Таб.ВывестиСекцию("Шапка|Лев");
       
         Если (ВыбРубли=1) и (ВыбШТ=0) ТОгда   
               зн = "руб.";
           ИначеЕсли (ВыбРубли=0) и (ВыбШТ=1) тогда 
               зн = "шт.";
           КонецЕсли;
       
         Для к=1 По КолПериодов Цикл
           НачДата = ТЗПериод.ПолучитьЗначение(к,"Период_С");
             КонДата  =  ТЗПериод.ПолучитьЗначение(к,"Период_По");
             Периодтек = "С "+НачДата+" по "+КонДата;
             Таб.ПрисоединитьСекцию("Шапка|Прав");
         КонецЦикла;
       КонецЕсли;
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.883
    Симпатии:
    452
    Баллы:
    104
    дополнительная тз, группировка и первоначальный цикл по ней
  6. TopicStarter Overlay
    aleksandrvolkov
    Offline

    aleksandrvolkov

    Регистрация:
    23 ноя 2016
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    и еще вопрос, в коде есть вывод шапки (где я пытался объединить ячейки), если во вкладке МФ не поставлю курсор на строку "По складам", в шапке будет выводиться номенклатура, в коде явно указываю
    ТаблицаМФ.ПолучитьСтрокуПоНомеру(2)
    но ему как-то по-барабану...
    Код:
    ТаблицаМФ.ПолучитьСтрокуПоНомеру(2);
      Для н=1 по СписокЭлементовМФ.РазмерСписка() цикл
    ТТ = СписокЭлементовМФ.ПолучитьЗначение(н,стр);
    Начало = Таб.ШиринаТаблицы()+1;
    //Таб.ПрисоединитьСекцию("Шапка2|Сред");
    
      Для к=1 По КолПериодов Цикл
    НачДата = ТЗПериод.ПолучитьЗначение(к,"Период_С");
      КонДата = ТЗПериод.ПолучитьЗначение(к,"Период_По");
      Периодтек = "С "+НачДата+" по "+КонДата;
      Таб.ПрисоединитьСекцию("Шапка|Сред");
    КонецЦикла;
    строка 2-таблица МФ по складам..
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.883
    Симпатии:
    452
    Баллы:
    104
    Строку таблицы мф вы получили... а список элементов мф нет
  8. TopicStarter Overlay
    aleksandrvolkov
    Offline

    aleksandrvolkov

    Регистрация:
    23 ноя 2016
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    список элементов МФ обновляется через глПриСменеСтрокиТаблицыМФ
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.883
    Симпатии:
    452
    Баллы:
    104
  10. TopicStarter Overlay
    aleksandrvolkov
    Offline

    aleksandrvolkov

    Регистрация:
    23 ноя 2016
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    блин..я думал что при смене вкладок будет вызываться...спасибо большое
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.883
    Симпатии:
    452
    Баллы:
    104
    Вы меняете программно, а при интерактивном изменении вызов процедуры происходит автоматически из формы.

Поделиться этой страницей