7.7 Внешний отчет по бюджетке

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

  1. TopicStarter Overlay
    MURzilKA
    Offline

    MURzilKA

    Регистрация:
    25 дек 2007
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Привет :)

    С 1С работаю совсем мало... мозг уже кипит :D ... потому прошу помощи...

    Загвоздка вот в чем:
    сделала внешний отчет, захотелось мне "красоты" - добавила эти злосчастные кнопки "Обновить" и "Настройка". Вроде везде все прописала и указала, но "Настройка" работает, документики все по лупе открываются, а вот кнопка "Обновить" упорно не желает работать B)

    Смотрела здесь уже темки про эти кнопки, но видать что-то делаю не так, а что понять не могу :D

    и еще, как сделать, чтобы при подборе счета (по которому будет составляться отчет) открывался не весь план счетов, а выборка.

    Очень буду рада дельному совету :unsure:
  2. TopicStarter Overlay
    MURzilKA
    Offline

    MURzilKA

    Регистрация:
    25 дек 2007
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Все ж таки у меня чё т получилась, кнопка "Обновить" работает, НО только в том случае, если закрыто диалоговое окно отчета !?
  3. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    Код:
    //обновить
    Перем Расшифровка, Обновить, таб;  
    
    Функция РасшифровкаОбновить(Обновить)  
    Расшифровка.Установить("Обновить", Обновить);
    Возврат Расшифровка;           
    КонецФункции 
    //обновить
    
    Процедура Сформировать() 
    
    //обновить
    Если (ТипЗначенияСтр(Таб) <> "Таблица") ИЛИ (Обновить = 0) Тогда
    Таб = СоздатьОбъект("Таблица");
    Иначе
    Таб.Очистить();
    КонецЕсли; 
    
    Расшифровка = СоздатьОбъект("СписокЗначений");
    Расшифровка.Установить("Отчет", "РеестрПродаж");
    
    Расшифровка.Установить("ДатаНачала", ДатаНачала);
    Расшифровка.Установить("ДатаОкончания", ДатаОкончания);
    //обновить
    
    Таб.ИсходнаяТаблица("Сформировать");
    Таб.ВывестиСекцию("Шапка"); 
    Док = СоздатьОбъект("Документ.Реализация");
    Док.ВыбратьДокументы(ДатаНачала, ДатаОкончания);
    Пока Док.ПолучитьДокумент() = 1 Цикл
    Если Док.Проведен() = 1 Тогда 
    Док.ВыбратьСтроки();
    Пока Док.ПолучитьСтроку() = 1 Цикл
    Склад = Док.Склад.Наименование;
    Клиент = Док.Контрагент.Наименование;
    Товар = Док.Номенклатура.ПолнНаименование; 
    Масса = Док.Количество;
    Цена = Док.Цена;
    Стоимость = Док.Сумма; 
    НомерМашины = Док.Партия.НомерМашины;
    НомерПартии = Док.Партия.НомерПартии;
    НомерГТД = Док.Партия.ГТД;
    Таб.ВывестиСекцию("Строка");  
    КонецЦикла;
    КонецЕсли;
    КонецЦикла; 
    Таб.Опции(0,0,0,0);
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать","");
    КонецПроцедуры
    
    Процедура ПриОткрытии()
    ДатаНачала = НачМесяца(ТекущаяДата());
    ДатаОкончания = КонМесяца(ТекущаяДата());
    
    //обновить
    Если глФлагРасшифровки = 1 Тогда 
    Обновить = глОбновить;
    ДатаПриходаВМоскву        = глРасшифровка.Получить("ДатаНачала");
    ДатаПоступления         = глРасшифровка.Получить("ДатаОкончания"); 
    Иначе
    Обновить = 0;
    КонецЕсли;  
    
    Если Обновить <> 0 Тогда
    Таб = глТаблица;
    КонецЕсли;           
    
    Если Обновить <> 0 Тогда
    Сформировать();
    СтатусВозврата(0);
    Возврат;       
    КонецЕсли;
    //обновить
    КонецПроцедуры
    
    
    когда-то в древности писал этот отчетик... все, что связанно с кнопкой обновить взято в соответствующие коментарии... только вот кнопки настройка там не было... сравни со своим, может найдешь отличие :)
  4. TopicStarter Overlay
    MURzilKA
    Offline

    MURzilKA

    Регистрация:
    25 дек 2007
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Евгений, СПАСИБо :)

    Но че т ни как не пойму, почему "Обновить" срабатывает только после закрытия диалога отчета.

    Вот, что у меня...

    Код:
    Перем    Расшифровка;       
    Перем   Обновить;
    Перем   Путь, Имя;  
    Перем   Т;                  
    ...
    
    Функция РасшифровкаОбновить(Обновить)       
    
    Если ФС.СуществуетФайл(Путь + Имя) = 1 Тогда
    //Обычные кнопки обновить, настройка
    Расшифровка.Установить("Обновить", Обновить); 
    Возврат Расшифровка;  
    Иначе        
    Сообщить("Удален или перемещен файл обработки формирования отчета !!","!");
    СтатусВозврата(0);
    Возврат 0;  
    КонецЕсли;
    
    КонецФункции //РасшифровкаОбновить   
    
    ...
    
    Процедура Сформировать(ФлагЗакрытияФормы = 0)     
    
    ...
    
    Расшифровка = СоздатьОбъект("СписокЗначений");   
    Путь = ""; Имя = "";  
    РасположениеФайла(Путь,Имя);                        
    Расшифровка.Установить("Отчет",         Путь + Имя); 
    Расшифровка.Установить("ВыбНачПериода", ВыбНачПериода);
    Расшифровка.Установить("ВыбКонПериода", ВыбКонПериода);  
    Расшифровка.Установить("ВыбраннаяФирма",ВыбраннаяФирма);
    Расшифровка.Установить("ПоВсемРУ",      ПоВсемРУ);   
    Расшифровка.Установить("Счет",          Счет);   
    Расшифровка.Установить("Обновить",      0);
    
    ...
    
    //печать    
    Т = СоздатьОбъект("Таблица");
    Если глФлагРасшифровки = 1 Тогда
    Если Обновить = 1 Тогда
    Т = глТаблица;   
    Т.Очистить();
    КонецЕсли;
    КонецЕсли; 
    
    Если СвернутьКОСГУ=0 Тогда 
    Т.ИсходнаяТаблица("Сформировать");
    Т.ВывестиСекцию("Настройка");  
    Т.ВывестиСекцию("Шапка"); 
    Т.Опции(0,0,Т.ВысотаТаблицы(),0);
    
    ТабРасчет.ВыбратьСтроки();
    Пока ТабРасчет.ПолучитьСтроку()=1 Цикл 
    Расшифровка.Установить("Документ",ТабРасчет.Документ);
    Расшифровка.Установить("СодержаниеПроводки", ТабРасчет.СодержаниеПроводки); 
    Т.ВывестиСекцию("Строка");  
    
    КонецЦикла;
    Т.ВывестиСекцию("Подвал");
    Т.ТолькоПросмотр(1);
    Т.Показать("Сформировать","");
    Иначе   
    ...
    КонецЕсли;
    
    Если (ФлагЗакрытияФормы = 1) Или (Обновить = 2) Тогда
    СтрокаДействийФормы = "#Закрыть";
    КонецЕсли;
    
    КонецПроцедуры
    
    
    Процедура ПриОткрытии() 
    
    Если глФлагРасшифровки = 1 Тогда 
    Обновить =глРасшифровка.Получить("Обновить"); 
    Обновить = глОбновить;
    ВыбНачПериода = глРасшифровка.Получить("ВыбНачПериода");
    ВыбКонПериода = глРасшифровка.Получить("ВыбКонПериода");  
    ВыбраннаяФирма      = глРасшифровка.Получить("ВыбраннаяФирма");
    ПоВсемРУ = глРасшифровка.Получить("ПоВсемРУ");  
    Счет = глРасшифровка.Получить("Счет");
    
    Если Обновить <> 0 Тогда
    Т = глТаблица;
    КонецЕсли;
    
    Если Обновить =1 Тогда 
    Сформировать();
    СтатусВозврата(0);
    Возврат;
    КонецЕсли;
    Иначе
    Обновить = 0;
    ВыбНачПериода = НачМесяца(РабочаяДата());
    ВыбКонПериода = КонМесяца(РабочаяДата());
    Спр=СоздатьОбъект("Справочник.Фирмы");
    Спр.ВыбратьЭлементы();
    Спр.ПолучитьЭлемент();
    ВыбраннаяФирма=Спр.ТекущийЭлемент(); 
    ПоВсемРУ = 0;
    КонецЕсли;    
    
    
    ВыбНачПериода = НачалоПериодаБИ();
    ВыбКонПериода = КонецПериодаБИ();
    
    КонецПроцедуры
    
    Используйте тэг
    Код:
    [/color]
  5. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    попробуй это:
    Код:
     
    Если глФлагРасшифровки = 1 Тогда 
    Обновить =глРасшифровка.Получить("Обновить"); 
    Обновить = глОбновить;
    ВыбНачПериода = глРасшифровка.Получить("ВыбНачПериода");
    ВыбКонПериода = глРасшифровка.Получить("ВыбКонПериода");  
    ВыбраннаяФирма      = глРасшифровка.Получить("ВыбраннаяФирма");
    ПоВсемРУ = глРасшифровка.Получить("ПоВсемРУ");  
    Счет = глРасшифровка.Получить("Счет");
    
    Если Обновить <> 0 Тогда
    Т = глТаблица;
    КонецЕсли;
    
    Если Обновить =1 Тогда 
    Сформировать();
    СтатусВозврата(0);
    Возврат;
    КонецЕсли;
    Иначе
    Обновить = 0;
    ВыбНачПериода = НачМесяца(РабочаяДата());
    ВыбКонПериода = КонМесяца(РабочаяДата());
    Спр=СоздатьОбъект("Справочник.Фирмы");
    Спр.ВыбратьЭлементы();
    Спр.ПолучитьЭлемент();
    ВыбраннаяФирма=Спр.ТекущийЭлемент(); 
    ПоВсемРУ = 0;
    КонецЕсли;    
    
    
    поменять на это:
    но не уверен... глянул мельком прям на форуме...
    Код:
     
    Если глФлагРасшифровки = 1 Тогда 
    Обновить =глРасшифровка.Получить("Обновить"); 
    Обновить = глОбновить;
    ВыбНачПериода = глРасшифровка.Получить("ВыбНачПериода");
    ВыбКонПериода = глРасшифровка.Получить("ВыбКонПериода");  
    ВыбраннаяФирма      = глРасшифровка.Получить("ВыбраннаяФирма");
    ПоВсемРУ = глРасшифровка.Получить("ПоВсемРУ");  
    Счет = глРасшифровка.Получить("Счет");
    Иначе
    Обновить = 0;
    ВыбНачПериода = НачМесяца(РабочаяДата());
    ВыбКонПериода = КонМесяца(РабочаяДата());
    Спр=СоздатьОбъект("Справочник.Фирмы");
    Спр.ВыбратьЭлементы();
    Спр.ПолучитьЭлемент();
    ВыбраннаяФирма=Спр.ТекущийЭлемент(); 
    ПоВсемРУ = 0;
    КонецЕсли;    
    
    Если Обновить <> 0 Тогда
    Т = глТаблица;
    КонецЕсли;
    
    Если Обновить =1 Тогда 
    Сформировать();
    СтатусВозврата(0);
    Возврат;
    КонецЕсли;
    
    
  6. TopicStarter Overlay
    MURzilKA
    Offline

    MURzilKA

    Регистрация:
    25 дек 2007
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    уже пробовала, не катит ...
  7. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    а через отладчик гоняла? отладчик ничем не помог? без отладчика что-либо сложно сказать... дай мдшничек...
  8. TopicStarter Overlay
    MURzilKA
    Offline

    MURzilKA

    Регистрация:
    25 дек 2007
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    :unsure:

    Счет.ИспользоватьРодителя(СчетПоКоду("301"),0) - выдаются 301 счета

    Очень хотца, чтоб выдавались только счета 302.01, 303.01, 303.02 и 304.03.

    Подскажите, пожалуйста, как это сделать.
  9. TopicStarter Overlay
    MURzilKA
    Offline

    MURzilKA

    Регистрация:
    25 дек 2007
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Не могу сообразить в каком месте нужно стопорнуть, чтобы он зацепил кнопку "Обновить".
    мдшничек 15 Мб, мож лучше ert ? Или подскажи как это в отладчике поймать, я тогда еще сама помучаю.
  10. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    давай ерт, я гляну, а потом все расскажу :)
  11. TopicStarter Overlay
    MURzilKA
    Offline

    MURzilKA

    Регистрация:
    25 дек 2007
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Ура! Получилось! Кнопочки работают :)

    Не много изменила отчет и добавила один символ в глобальном модуле :)

    Подсобил вот этот пример:
    http://www.infostart.ru/profile/174/projects/941/

    Евгений, еще раз спасибо за помощь :)

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