Вход | Регистрация


1С:Предприятие ::

Метки:

Неполадки с отчетом

Я
   Agibuba
 
27.05.04 - 10:01
Случилась такая история. На выходных на работу выходили бухгалтера и работали. После их плодотворной работы, в понедельник, перестал правильно функционировать один из отчетов. Проблема в следующем: если составлять отчет по всем товарам, то данные собираются просто отлично, а если для конкретного подразделения, то в отчет ничего не включается.
? Как восстановить данные, связанные именно с этими документами.
p.s. Для конкретного подразделения, отчет собирает данные только из одного типа документов
 
  Рекламное место пустует
   Agibuba
 
1 - 27.05.04 - 10:02
Буду очень признателен за любую помощь
   kadr
 
2 - 27.05.04 - 10:08
Восстановить??? А они у тебя разве терялись? Проанализируй программный код отчета.
   KALEX
 
3 - 27.05.04 - 10:18
посмотри, как документы привязываются к подразделениям. Может реквизит в документе "опустел".
   Agibuba
 
4 - 27.05.04 - 10:25
Проанализировал конфигурации сохраненней резерной базы и текущей рабочей. Идентичные
   kadr
 
5 - 27.05.04 - 10:34
И все графы, необходимые для формирования отчета правильно заполнены, да? Дата актуальности, например?
   Agibuba
 
6 - 27.05.04 - 10:37
В том то и дело, что документы проводильсь задним числом, кроме того у них менялись порядковые номера.
   lexa
 
7 - 27.05.04 - 10:38
Запусти отладчик и посмотри что происходит
   Agibuba
 
8 - 27.05.04 - 12:07
ВОт сам текст запроса!
Иначе
        АЗС13="АЗС 13"; АЗС14="АЗС 14"; АЗС15="АЗС 15"; АЗС17="АЗС 17"; АЗС19="АЗС 19"; АЗС22="АЗС 22"; 
        АЗС23="АЗС 23"; АЗС24="АЗС 24"; АЗС26="АЗС 26"; АЗС27="АЗС 27"; АЗС72="АЗС 72";
        АЗС73="АЗС 73";
        ВсегоКол13=0; ВсегоКол13л=0; ВсегоКол14=0; ВсегоКол14л=0;ВсегоКол15=0; ВсегоКол15л=0;
        ВсегоКол17=0; ВсегоКол17л=0;ВсегоКол19=0; ВсегоКол19л=0;ВсегоКол22=0; ВсегоКол22л=0;
        ВсегоКол23=0; ВсегоКол23л=0;ВсегоКол24=0; ВсегоКол24л=0;ВсегоКол26=0; ВсегоКол26л=0;
        ВсегоКол27=0; ВсегоКол27л=0;ВсегоКол72=0; ВсегоКол72л=0;ВсегоКол73=0; ВсегоКол73л=0;
        
        Таб.ИсходнаяТаблица("АЗС");
        Если ХР = 1 Тогда
            Таб.ВывестиСекцию("Секция_4");
        КонецЕсли;        
        Таб.ВывестиСекцию("ОтчетАЗС");
        ТекстЗапроса = 
        "//{{ЗАПРОС(Запрос)

        |Период с ДатаНачала по ДатаКонца;
        |Товар  = Документ.Т_Т_Накладная.Товар;        
        |ВидТовара  = Документ.Т_Т_Накладная.ВидТовара;        
        |Хранение  = Документ.Т_Т_Накладная.Хранение;        
        |ПРазгр  = Документ.Т_Т_Накладная.ПунктРазгрузки;        
        |ППогр  = Документ.Т_Т_Накладная.ПунктПогрузки;        
        |КолТН  = Документ.Т_Т_Накладная.Вес;     
        |КолТНл  = Документ.Т_Т_Накладная.Количество;     
        |Группировка Товар упорядочить по Товар.Наименование без групп;
        |Функция КолАЗС13=Сумма(КолТН) Когда (СокрЛП(ПРазгр)=АЗС13);
        |Функция КолАЗС14=Сумма(КолТН) Когда (СокрЛП(ПРазгр)=АЗС14);
        |Функция КолАЗС15=Сумма(КолТН) Когда (СокрЛП(ПРазгр)=АЗС15);
        |Функция КолАЗС17=Сумма(КолТН) Когда (СокрЛП(ПРазгр)=АЗС17);
        |Функция КолАЗС19=Сумма(КолТН) Когда (СокрЛП(ПРазгр)=АЗС19);
        |Функция КолАЗС22=Сумма(КолТН) Когда (СокрЛП(ПРазгр)=АЗС22);
        |Функция КолАЗС23=Сумма(КолТН) Когда (СокрЛП(ПРазгр)=АЗС23);
        |Функция КолАЗС24=Сумма(КолТН) Когда (СокрЛП(ПРазгр)=АЗС24);
        |Функция КолАЗС26=Сумма(КолТН) Когда (СокрЛП(ПРазгр)=АЗС26);
        |Функция КолАЗС27=Сумма(КолТН) Когда (СокрЛП(ПРазгр)=АЗС27);
        |Функция КолАЗС72=Сумма(КолТН) Когда (СокрЛП(ПРазгр)=АЗС72);
        |Функция КолАЗС73=Сумма(КолТН) Когда (СокрЛП(ПРазгр)=АЗС73);
        |Функция КолАЗС13л=Сумма(КолТНл) Когда (СокрЛП(ПРазгр)=АЗС13);
        |Функция КолАЗС14л=Сумма(КолТНл) Когда (СокрЛП(ПРазгр)=АЗС14);
        |Функция КолАЗС15л=Сумма(КолТНл) Когда (СокрЛП(ПРазгр)=АЗС15);
        |Функция КолАЗС17л=Сумма(КолТНл) Когда (СокрЛП(ПРазгр)=АЗС17);
        |Функция КолАЗС19л=Сумма(КолТНл) Когда (СокрЛП(ПРазгр)=АЗС19);
        |Функция КолАЗС22л=Сумма(КолТНл) Когда (СокрЛП(ПРазгр)=АЗС22);
        |Функция КолАЗС23л=Сумма(КолТНл) Когда (СокрЛП(ПРазгр)=АЗС23);
        |Функция КолАЗС24л=Сумма(КолТНл) Когда (СокрЛП(ПРазгр)=АЗС24);
        |Функция КолАЗС26л=Сумма(КолТНл) Когда (СокрЛП(ПРазгр)=АЗС26);
        |Функция КолАЗС27л=Сумма(КолТНл) Когда (СокрЛП(ПРазгр)=АЗС27);
        |Функция КолАЗС72л=Сумма(КолТНл) Когда (СокрЛП(ПРазгр)=АЗС72);
        |Функция КолАЗС73л=Сумма(КолТНл) Когда (СокрЛП(ПРазгр)=АЗС73);
        |Условие ((Товар.ПринадлежитГруппе(кк)=1) ИЛИ (Товар.ПринадлежитГруппе(Кк5)=1) ИЛИ (Товар.ПринадлежитГруппе(кк51)=1));
        |//}}ЗАПРОС

        ;

        Если СОКРЛП(Пункт) <> "" Тогда
                ТекстЗапроса = ТекстЗапроса+
                "Условие (ППогр = Пункт);";
        КонецЕсли;
        
        Если СОКРЛП(ВидТовар) <> "" Тогда
                ТекстЗапроса = ТекстЗапроса+
                "Условие (ВидТовара = ВидТовар);";
        КонецЕсли;



        Если ХР = 1 Тогда
                ТекстЗапроса = ТекстЗапроса+
                "Условие (Хранение = 1);";
        Иначе        
                ТекстЗапроса = ТекстЗапроса+
                "Условие (Хранение = 0);";
        КонецЕсли;

        
       // Если ошибка в запросе, то выход из процедуры

        Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
            Возврат;
        КонецЕсли;   
        Пока  Запрос.Группировка("Товар")=1 Цикл
            КолАЗС13=Запрос.КолАЗС13; КолАЗС13л=Запрос.КолАЗС13л; ВсегоКол13=ВсегоКол13+КолАЗС13; ВсегоКол13л=ВсегоКол13л+КолАЗС13л;
            КолАЗС14=Запрос.КолАЗС14; КолАЗС14л=Запрос.КолАЗС14л; ВсегоКол14=ВсегоКол14+КолАЗС14; ВсегоКол14л=ВсегоКол14л+КолАЗС14л;
            КолАЗС15=Запрос.КолАЗС15; КолАЗС15л=Запрос.КолАЗС15л; ВсегоКол15=ВсегоКол15+КолАЗС15; ВсегоКол15л=ВсегоКол15л+КолАЗС15л;
            КолАЗС17=Запрос.КолАЗС17; КолАЗС17л=Запрос.КолАЗС17л; ВсегоКол17=ВсегоКол17+КолАЗС17; ВсегоКол17л=ВсегоКол17л+КолАЗС17л;
            КолАЗС22=Запрос.КолАЗС22; КолАЗС22л=Запрос.КолАЗС22л; ВсегоКол22=ВсегоКол22+КолАЗС22; ВсегоКол22л=ВсегоКол22л+КолАЗС22л;
            КолАЗС19=Запрос.КолАЗС19; КолАЗС19л=Запрос.КолАЗС19л; ВсегоКол19=ВсегоКол19+КолАЗС19; ВсегоКол19л=ВсегоКол19л+КолАЗС19л;
            КолАЗС23=Запрос.КолАЗС23; КолАЗС23л=Запрос.КолАЗС23л; ВсегоКол23=ВсегоКол23+КолАЗС23; ВсегоКол23л=ВсегоКол23л+КолАЗС23л;
            КолАЗС24=Запрос.КолАЗС24; КолАЗС24л=Запрос.КолАЗС24л; ВсегоКол24=ВсегоКол24+КолАЗС24; ВсегоКол24л=ВсегоКол24л+КолАЗС24л;
            КолАЗС26=Запрос.КолАЗС26; КолАЗС26л=Запрос.КолАЗС26л; ВсегоКол26=ВсегоКол26+КолАЗС26; ВсегоКол26л=ВсегоКол26л+КолАЗС26л;
            КолАЗС27=Запрос.КолАЗС27; КолАЗС27л=Запрос.КолАЗС27л; ВсегоКол27=ВсегоКол27+КолАЗС27; ВсегоКол27л=ВсегоКол27л+КолАЗС27л;
            КолАЗС72=Запрос.КолАЗС72; КолАЗС72л=Запрос.КолАЗС72л; ВсегоКол72=ВсегоКол72+КолАЗС72; ВсегоКол72л=ВсегоКол72л+КолАЗС72л;
            КолАЗС73=Запрос.КолАЗС73; КолАЗС73л=Запрос.КолАЗС73л; ВсегоКол73=ВсегоКол73+КолАЗС73; ВсегоКол73л=ВсегоКол73л+КолАЗС73л;
            ТоварАЗС=Запрос.Товар;
            Если (КолАЗС13>0) или (КолАЗС14>0) или (КолАЗС15>0) или (КолАЗС17>0) или (КолАЗС19>0) или 
                (КолАЗС22>0) или (КолАЗС23>0) или (КолАЗС24>0) или (КолАЗС26>0) или (КолАЗС27>0) или (КолАЗС72>0) или 
                (КолАЗС73>0) Тогда
                Таб.ВывестиСекцию("СтрокаАЗС");
                Оживить(3);
            КонецЕсли;
        КонецЦикла;    
          Таб.ВывестиСекцию("ИтогАЗС");
          Таб.Опции(0,0,0,0, "Параметры печати отчета по нефтепродуктам" );

        Таб.ПараметрыСтраницы(2,100,,5,0,0,0,,,0,,);
        Таб.Показать("Отчет по нефтепродуктам отпущенным на АЗС","");
   КонецЕсли;
   lexa
 
9 - 27.05.04 - 12:13
а что является подразделением
   Agibuba
 
10 - 27.05.04 - 12:19
Отдельная АЗС
 
  Рекламное место пустует
   Z1
11 - 27.05.04 - 12:19
Условия
 "Условие (ППогр = Пункт);"; 
 "Условие (ВидТовара = ВидТовар);"; 
Меняй на
 "Условие (СокрЛП(ППогр)) = СокрЛП(Пункт));"; 
 "Условие (СокрЛП(ВидТовара) = СокрЛП(ВидТовар));"; 

А если у тетя еще 10 азс добавиться что делать будешь ?
   lexa
 
12 - 27.05.04 - 12:23
(11) а зачем?
   lexa
 
13 - 27.05.04 - 12:34
(10) а где выбирается АЗС и где в запросе условие по выбранной АЗС
   Agibuba
 
14 - 27.05.04 - 12:48
Азс выбирается при формировании Товаро-транспортной накладной и вносится в пункт погрузки
   lexa
 
15 - 27.05.04 - 15:50
а у тебя отчет суммирует данные по пункту разгрузки
   Композитор
 
16 - 27.05.04 - 15:56
(8) Судя по тому, что кусок Вашего кода начинается с "Иначе", можно предположить, что подобная хрень имеет место и после оператора "Если".
   Макс
17 - 27.05.04 - 16:06
(8) А можно вопрос не в тему? а если у тебя 100 азс будет??? что будешь делать? :)
   Композитор
 
18 - 27.05.04 - 16:08
(17) Заправщиком пойдет на одну из АЗС.
   SkyP
 
19 - 27.05.04 - 16:13
Джентльмены, по-моему, у (0) просто есть необходимость принудительно перепровести все документы с восстановлением последовательности...
Изменение документов, насколько я знаю, не влечёт за собой неправильную работу отчета...

При условии его правильной предидущей работы, естественно.
   427
 
20 - 27.05.04 - 16:16
3.14 ......ць
   KALEX
 
21 - 27.05.04 - 16:20
скип, а для кого придумана галочка "При изменении перепроводить"?
   Черт
 
22 - 27.05.04 - 16:21
(20) А ты случаем свой ник не по  числу 3.14 взял?
   Valery
 
23 - 27.05.04 - 16:40
Ну я думаю, что какбы бухгалтера плодотворно не работали, в код они не полезут.
Значит если и были какие-то изменения ,то в учетных данных.
Может подразделение с таким-же название ввели, ну что-такое. Наверняка ответ лежит на поверхности
   Agibuba
 
24 - 28.05.04 - 10:59
У меня и так их под сотню
   Agibuba
 
25 - 28.05.04 - 11:11
To 23 Плохо то что базу принял на себя недавно и еще во все тонкости не вник!
   lexa
 
26 - 28.05.04 - 11:47
добавь еще одну группировку ППогр, соответственно еще один цикл, и еще одну секцию ППогр, куда будешь выодить ППогр, заодно узнаешь по какаим ППогр должно выводится, а по каким нет
а выбор ППогр неплохо бы делать не из справочника, а из списка сформированного на основе запроса
   KALEX
 
27 - 28.05.04 - 12:31
Выгрузи результат запроса в визуальную ТЗ и посмотри что получается, может на мысль натолкнет
   Agibuba
 
28 - 31.05.04 - 08:32
Место ошибки обнаружил, но как исправить?

      |Условие ((Товар.ПринадлежитГруппе(кк)=1) ИЛИ (Товар.ПринадлежитГруппе(Кк5)=1) ИЛИ (Товар.ПринадлежитГруппе(кк51)=1));
Эта группировка не срабатывает, поэтому в цикл программа не входит и в отчет товары не включаются
   SnarkHunter
 
29 - 31.05.04 - 08:55
Создай список значений, например сзГруппы, помести в него твои группы (кк, кк51 и пр.) и вместо своего условия используй
|Условие (Товар в сзГрупп);
   lexa
 
30 - 31.05.04 - 11:19
А ты уверен, что товар из этих групп с содержится в документах, где П_Погр, выбранный тобой П_Погр?
   Agibuba
 
31 - 31.05.04 - 11:44
(30) Выбор П_Погр выбирается в диалоге из справочника
   lexa
 
32 - 31.05.04 - 12:14
(31) Да но не факт, что по все П_Погр в справочнике используются в доках.
//******************************************************************************

// Предопределенная процедура
//

Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога,ФлагСтандОбр)
    
    
    Если ИдентЭлемДиалога = \"П_Погр\" Тогда
       Запрос = СоздатьОбъект(\"Запрос\");
       СписППогр = СоздатьОбъект(\"СписокЗначений\");
       ТекстЗапроса = 
       \"//{{ЗАПРОС(Запрос) 

       |Период с ДатаНачала по ДатаКонца; 
       |ППогр  = Документ.Т_Т_Накладная.ПунктПогрузки;  
       |Группировка ППогр; 
       |\//}}ЗАПРОС 

       ; 
     Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
     КонецЕсли;
       Пока Запрос.Группировка() = 1 Цикл
           СписППогр.ДобавитьЗначение(Запрос.ППогр); 
       КонецЦикла;
       П_Погр.ИспользоватьСписокЭлементов(СписППогр);

    КонецЕсли;    
    
    
КонецПроцедуры// ПриНачалеВыбораЗначения()
   Agibuba
 
33 - 01.06.04 - 06:08
Спасибо всем кто откликнулся, особенно lexa. Lexa натолкнул на мысль своей процедурой. Проверив пункты погрузки, которые были без ошибок, я решил следом проверить и пункты разгрузки, которых гораздо больше и что же вы думаете, один из бухгалтеров переименовал пункты разгрузки под себя, а в модуле как видно Функция КолАЗС13=Сумма(КолТН) Когда (СокрЛП(ПРазгр)=АЗС13) они явно заданы. Переименовал и все заработало.
 
 
   SnarkHunter
 
34 - 01.06.04 - 06:27
Ну ты, надеюсь, сделал вывод, что использовать в запросе условия по наименованиям - практика порочная?
   Agibuba
 
35 - 01.06.04 - 06:45
А как лучше это дело обделать
   lexa
 
36 - 01.06.04 - 10:57
я бы сделал по другому, насколько я понимаю у тебя в качестве заголовков столбцов: убрал бы все функции по имени АЗС и оставил только две колт и колл, добавил бы группировку по ПРазгр. Тогда бы выводились только те ПРазгр, которые реально участвуют в доках. Посмотри любой отчет в котором изменяется кол-во выводимых столбцов. В типовой ТиС например - прайслист.



Список тем форума
Рекламное место пустует   Рекламное место пустует
Здесь во втором сообщении вам дадут решение, а в двадцатом дадут правильное решение. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует