Имя: Пароль:
1C
1C 7.7
v7: Вывести единицы измерения 1С ПУБ
,
0 Pechka
 
07.09.12
16:41
Помогите вывести столбец - ед измерения для каждого подразделения..напрмиер для АТЦ - ед.изм = м/час..
Записала так,но выходит пустой столбец
Если ЗапросПоказателиДеятельности.Подразделение = "АТЦ" Тогда
ЕдИзм = "м/час" ;
КонецЕсли;

И вот мой код:
//******************************************************************************
//
Функция ПроверкаДат()
   Если ДатаНач > ПолучитьДатуТА() Тогда
       ДатаНач = ПолучитьДатуТА();
       Предупреждение("Начальная дата не может быть
                      |больше даты точки актуальности!");
       Возврат 0;
   ИначеЕсли ДатаНач > ДатаКон Тогда
       ДатаНач = ДатаКон;
       Предупреждение("Начальная дата не может быть больше
                      |конечной даты формирования отчета!");
       Возврат 0;
   КонецЕсли;
   Возврат 1;
КонецФункции // ПроверкаДат()

//*******************************************
//{{БУХГАЛТЕРСКИЙ ЗАПРОС(Сформировать)

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

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

       КонецЦикла;

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

//}}БУХГАЛТЕРСКИЙ ЗАПРОС  

Процедура ПриОткрытии()  
   
   
   

//{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА(Сформировать)
   ДатаНач = НачМесяца(ПолучитьДатуТА());
   ДатаКон = КонМесяца(ПолучитьДатуТА());

//{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА

КонецПроцедуры
1 AlexNew
 
07.09.12
16:44
Фото хорошее.
ЗапросПоказателиДеятельности.Подразделение.Наименование = "АТЦ"
Хотя все-равно криво.
2 Pechka
 
07.09.12
16:53
не получается(((
3 Byasha
 
07.09.12
17:00
Подразделение это элемент справочника. Ты сравниваешь ссылку на элемент со строкой. Условие выполянться не будет. Сравнивай с наименованием подразделения.
4 Pechka
 
07.09.12
17:01
напишите пожалуйста программно,как это должно выгляденть,я не понимаю(((
5 Byasha
 
07.09.12
17:04
Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "АТЦ" Тогда
ЕдИзм = "м/час" ;
КонецЕсли

"напишите пожалуйста программно,как это должно выгляденть,я не понимаю((("
Ё-мазай, а кто Вам тогда работу доверил?
6 Pechka
 
07.09.12
17:08
не идет так.
7 Pechka
 
07.09.12
17:09
и я учусь только..
8 m-serg74
 
07.09.12
17:10
так а куда ты вставляешь это ЕслиТогда
9 m-serg74
 
07.09.12
17:10
Пока ЗапросПоказателиДеятельности.Группировка("Владелец") = 1 Цикл  
                   
Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "АТЦ" Тогда
ЕдИзм = "м/час" ;
КонецЕсли
                   Таб.ВывестиСекцию("Строка");
                   
               КонецЦикла;
10 m-serg74
 
07.09.12
17:10
как то так наверное надо
11 Byasha
 
07.09.12
17:11
В секции строка, на той ячейке правой кнопкой мышки - свойства. На закладке текст, что указано в полях?
12 Byasha
 
07.09.12
17:12
Поле тип как задано, и ниже что в большом поле указано?
13 Pechka
 
07.09.12
17:15
m-serg74,я запсиала как вы сказали Если ЗапросПоказателиДеятельности.Подразделение.Наименование = "АТЦ" Тогда
ЕдИзм = "м/час" ;
КонецЕсли
                   Таб.ВывестиСекцию("Строка");
                   
               КонецЦикла;

У меня все подразделения заполнились м/час. и атц и цзл и др
14 Byasha
 
07.09.12
17:17
Перед проверкой условия добавь
ЕдИзм = ""
переменная установиться как пустая строка. Если условие выполнится - тогда она замениться на то что тебе нужно. Нет - будет пустой строкой.
15 m-serg74
 
07.09.12
17:25
(14) верно просто копировал то что было, (13) вы же все равно еще туда Подразделения и для них ЕдИзм будете добавлять
16 Pechka
 
10.09.12
07:45
Спасибо всем большое!!!
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн