Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Дек 2017, 02:00
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Нумерация в отчете  (Прочитано 2666 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С
Здравствуйте!Можете пожалуйста подсказать мне что я делаю не так. У меня не отображается нумерация(2 столбик).Она Выводиться только по инструменту а по деталям не отображается...хотя фактически следует в правильном порядке. Может с таблицей надо что то подправить? Процедура Ведомость()
   Док = СоздатьОбъект("Документ.Диагностика"); 
                  
   Номер = 0;
   НомерГ = 0;
   Кол1  = 0;
   Сум   = 0;
   Табл  = СоздатьОбъект("Таблица");
   Табл.ИсходнаяТаблица("Интерскол");
   Табл.ВывестиСекцию("Шапка");
   Таб.ВыбратьСтроки();
   Пока Таб.ПолучитьСтроку() = 1 Цикл
      Кол       = 0;
      Номер       = Номер + 1;
      НомерГ = НомерГ +1;
      Док.НайтиДокумент(Таб.Док);
      А = Найти(Док.Инструмент,"Интерскол");
      B = Найти(Док.Инструмент,"Байкал");
      Если А>0 Тогда
         Модель   = Лев(СокрЛП(Док.Инструмент),А-1)+Прав(СокрЛП(Док.Инструмент),СтрДлина(Док.Инструмент)-А-9);
      ИначеЕсли B>0 Тогда
         Модель   = Лев(СокрЛП(Док.Инструмент),B-1)+Прав(СокрЛП(Док.Инструмент),СтрДлина(Док.Инструмент)-B-6);
      КонецЕсли;
         
      
      ДатаПрод   = Док.ДатаПродажи;
      ДатаРемонта   = Док.ДатаВыдачи;      
      Если  ПустоеЗначение(Док.СерийныйНомер) = 1 Тогда
               ЗавНомер    = "б/н";
      Иначе
               ЗавНомер      = Док.СерийныйНомер;
      КонецЕсли;                 
      Табл.ВывестиСекцию("Детали|Инст");
      Док.ВыбратьСтроки();
      Пока Док.ПолучитьСтроку() = 1 Цикл
          Если (Док.Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Материал) и (Док.НомерСтроки = 1) Тогда
            
            Деталь         = СокрЛП(Док.Товар)+" "+СокрЛП(Док.Товар.Код);
            Количество       = Док.Количество;         
            Цена         = Строка(Док.Итог("Всего"))+",00р.";
            Табл.ПрисоединитьСекцию("Детали|Деталь");
            Табл.ПрисоединитьСекцию("Детали|Итог");
            Кол          = Кол + Док.Количество;
            Сум            = Сум + Док.Итог("Всего");
            Кол1         = Кол1 + Док.Количество;            
         ИначеЕсли (Док.Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Материал) Тогда
            Деталь         = СокрЛП(Док.Товар)+" "+СокрЛП(Док.Товар.Код);
            Количество       = Док.Количество;         
            Цена         = Док.Итог("Всего");
             НомерГ = НомерГ + 1;
            Табл.ВывестиСекцию("Ит|Инст");
            Табл.ПрисоединитьСекцию("Детали|Деталь");
            Табл.ПрисоединитьСекцию("Ит|Итог");          
            Кол          = Кол + Док.Количество;
            Кол1         = Кол1 + Док.Количество;
         КонецЕсли;                                                             
      КонецЦикла;
   КонецЦикла;       
   Итоги   = Кол1;
   Сумма   = Строка(Сум)+",00р.";   
   Табл.ВывестиСекцию("Подвал");
   Табл.Показать("Отчет о выполненых работах", "");
КонецПроцедуры


Оффлайн Mitay_D

  • **
  • Сообщений: 85
  • РЕПУТАЦИЯ: 14
  • КПД: 16%
  • Регистрация: 2011-02-02
  • Сайт: 
  • Профессия: Программист 7.7
Табл.ВывестиСекцию("Ит|Инст");
в 2-1 столбец поставь <НомерГ>
Добавлено: 06 Ноя 2013, 08:54

Вот тебе пример
//*******************************************
Процедура Сформировать()
ин = 0;
дет = 0;
Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Для н = 1 По 5 Цикл   
ин = ин + 1;   
дет = дет + 1;
инструмент = "лобзик";
Таб.ВывестиСекцию("Инструменты|инст");
Для п = 1 по 2 Цикл   
Если п = 1 Тогда 
Таб.ПрисоединитьСекцию("Детали|Деталь"); 
Иначе
дет = дет + 1;
Таб.ВывестиСекцию("ит|инст");   
Таб.ПрисоединитьСекцию("Детали|Деталь");
КонецЕсли;
КонецЦикла;
КонецЦикла;
Таб.ТолькоПросмотр(1);
Таб.Опции(0,0,0,0);
Таб.Показать("");
КонецПроцедуры


Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Все очень просто: в одном из условий у вас не присоединяется часть табличного документа.
сделайте так:
...
Если (Док.Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Материал) и (Док.НомерСтроки = 1) Тогда
Табл.ВывестиСекцию("Ит|Инст");
...
только нужно учесть, что при этом выведутся и другие параметры этой области (Номер, Модель и т.д.). Вариантов решения несколько:
1. выделить колонку с номером (параметр НомерГ) в отдельную секцию, например, назвать ее "НомерГ", тогда код будет такой:
...
Если (Док.Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Материал) и (Док.НомерСтроки = 1) Тогда
Табл.ВывестиСекцию("Ит|НомерГ");
...
2. Сохранять все параметры в буфер, обнулять, выводить секцию, затем восстанавливать из буфера примерно так:
...
Если (Док.Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Материал) и (Док.НомерСтроки = 1) Тогда
тНомер = Номер;
тМодель = Модель;
Номер = "";
Модель = "";
Табл.ВывестиСекцию("Ит|Инст");
Номер = тНомер;
Модель = тМодель;
...
Добавлено: 06 Ноя 2013, 09:14

Mitay_D написал правильнее, мой вариант 1 неверный - так работать не будет.

тогда вариантов 2:
1. как предложил Mitay_D
2. как у меня описано - с помещением значений в буферные переменные

вариант 1 наверно проще и правильнее.

Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С
Сделал как предложил Mitay_D. Спасибо всем!!!


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
178 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
29 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 185
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal