Имя: Пароль:
1C
1С v8
Не выводиться Табличный документ на Сервере
0 fanatic1
 
22.08.13
17:02
Ребята выручайте... на Локальной базе все работает, а когда запускаю на Серверной 1с не хочет открывать Таб Документ....
&НаСервере
Функция ВернутьДлинуПоСтроке(ХарактеристикаНаименование)
    
     Если ЗначениеЗаполнено(ХарактеристикаНаименование) = 1 тогда
         ИмяХарактеристики= сокрлп(ХарактеристикаНаименование);
         //считаем что в характеристике указана именно длина
         ИмяХарактеристики = СтрЗаменить(Имяхарактеристики," ",Символы.ПС);
         Попытка
             Длина = Число(СтрПолучитьСтроку(ИмяХарактеристики,1));
         исключение
             Длина = 0;
         КонецПопытки;
         Возврат Длина;
     Иначе
         Возврат 0;
     конецесли;
    
КонецФункции

&НаСервере
Функция СформироватьТабДокумент()
     Если Номенклатура <> Справочники.Номенклатура.ПустаяСсылка() Тогда
     Запрос = Новый Запрос;
     Запрос.Текст =
     "ВЫБРАТЬ
     |    РеализацияТоваровУслугТовары.Ссылка КАК Реализация,
     |    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
     |    РеализацияТоваровУслугТовары.Количество КАК Количество,
     |    РеализацияТоваровУслугТовары.хлысты,
     |    РеализацияТоваровУслугТовары.Коэффициент,
     |    РеализацияТоваровУслугТовары.Характеристика
     |ИЗ
     |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
     |ГДЕ
     |    РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
     |    И РеализацияТоваровУслугТовары.хлысты <> 0
     |    И РеализацияТоваровУслугТовары.Номенклатура = &Номенклатура
     |
     |СГРУППИРОВАТЬ ПО
     |    РеализацияТоваровУслугТовары.Количество,
     |    РеализацияТоваровУслугТовары.Ссылка,
     |    РеализацияТоваровУслугТовары.Номенклатура,
     |    РеализацияТоваровУслугТовары.хлысты,
     |    РеализацияТоваровУслугТовары.Коэффициент,
     |    РеализацияТоваровУслугТовары.Характеристика";
    
     ДатаНачала = ПериодОтчета.ДатаНачала;
     ДатаОкончания = ПериодОтчета.ДатаОкончания;
     Номенклатура = Номенклатура;
         Табло=Новый ТабличныйДокумент;

        
    
     Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
     Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
    
    
    

     Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
     табРезультат = Запрос.Выполнить().Выгрузить();
     табРезультат.Колонки.Добавить("Разница");
     Для Каждого СтрокаТаб Из табРезультат Цикл
         Если Не СтрокаТаб.Количество = ВернутьДлинуПоСтроке(СтрокаТаб.Характеристика)*СтрокаТаб.Коэффициент*СтрокаТаб.хлысты Тогда
               СтрокаТаб.Разница =  СтрокаТаб.Количество -  (ВернутьДлинуПоСтроке(СтрокаТаб.Характеристика)*СтрокаТаб.Коэффициент*СтрокаТаб.хлысты)/1000;
               СтрокаТаб.Разница = Окр(СтрокаТаб.Разница, -2);
               //Сообщить(СтрокаТаб.Ссылка);
            
         КонецЕсли;
     КонецЦикла;
      

            
    
    Построитель=Новый ПостроительОтчета;
    Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(ТабРезультат);
    Построитель.Вывести(Табло);
    Табло.Показать();
        
Иначе
     Запрос = Новый Запрос;
     Запрос.Текст =
     "ВЫБРАТЬ
     |    РеализацияТоваровУслугТовары.Ссылка КАК Реализация,
     |    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
     |    РеализацияТоваровУслугТовары.Количество КАК Количество,
     |    РеализацияТоваровУслугТовары.хлысты,
     |    РеализацияТоваровУслугТовары.Коэффициент,
     |    РеализацияТоваровУслугТовары.Характеристика
     |ИЗ
     |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
     |ГДЕ
     |    РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
     |    И РеализацияТоваровУслугТовары.хлысты <> 0
     |    И РеализацияТоваровУслугТовары.Номенклатура В ИЕРАРХИИ(&Номенклатура)
     |
     |СГРУППИРОВАТЬ ПО
     |    РеализацияТоваровУслугТовары.Количество,
     |    РеализацияТоваровУслугТовары.Ссылка,
     |    РеализацияТоваровУслугТовары.Номенклатура,
     |    РеализацияТоваровУслугТовары.хлысты,
     |    РеализацияТоваровУслугТовары.Коэффициент,
     |    РеализацияТоваровУслугТовары.Характеристика
     |
     |УПОРЯДОЧИТЬ ПО
     |    Номенклатура";
    
     ДатаНачала = ПериодОтчета.ДатаНачала;
     ДатаОкончания = ПериодОтчета.ДатаОкончания;
     Номенклатура = Номенклатура;
         ТабДок=Новый ТабличныйДокумент;

        
    
     Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
     Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
    
    
    

     Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
     табРезультат = Запрос.Выполнить().Выгрузить();
     табРезультат.Колонки.Добавить("Разница");
     Для Каждого СтрокаТаб Из табРезультат Цикл
         Если Не СтрокаТаб.Количество = ВернутьДлинуПоСтроке(СтрокаТаб.Характеристика)*СтрокаТаб.Коэффициент*СтрокаТаб.хлысты Тогда
              СтрокаТаб.Разница =  СтрокаТаб.Количество -  (ВернутьДлинуПоСтроке(СтрокаТаб.Характеристика)*СтрокаТаб.Коэффициент*СтрокаТаб.хлысты)/1000;
              СтрокаТаб.Разница = Окр(СтрокаТаб.Разница, 3);
              //Сообщить(СтрокаТаб.Ссылка);
            
         КонецЕсли;
     КонецЦикла;
      

            
    
    Построитель=Новый ПостроительОтчета;
    Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(ТабРезультат);
    Построитель.Вывести(ТабДок);
    ТабДок.Показать();
    
    
               КонецЕсли;
    
    КонецФункции



&НаКлиенте
Процедура Сформировать(Команда)
        
    СформироватьТабДокумент();
        
КонецПроцедуры
1 H A D G E H O G s
 
22.08.13
17:03
Помогаю:
меняй профессию
2 ДенисЧ
 
22.08.13
17:04
Отличное решение - показать бездушной железяке сформированный отчёт... Она будет рада...
3 zladenuw
 
22.08.13
17:07
Построитель=Новый ПостроительОтчета;
    Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(ТабРезультат);
    Построитель.Вывести(ТабДок);
    Возврат ТабДок;
    
    
               КонецЕсли;
    
    КонецФункции



&НаКлиенте
Процедура Сформировать(Команда)
        
    ТабДок = СформироватьТабДокумент();
    ТабДок.Показать()    
КонецПроцедуры
4 H A D G E H O G s
 
22.08.13
17:07
(2) Ты ущемляешь права бездушных железяк, нетолерантная ты личность!
Программист всегда исправляет последнюю ошибку.