|
v7: Не работает отчет после перехода с файловой базы на серверную | ☑ | ||
---|---|---|---|---|
0
Soul771
02.07.13
✎
12:55
|
Добрый день.
Помогите, пожалуйста, найти ошибку, бьемся уже неделю.... Была файловая база, перешли на sql-сервер. Конфигурация самописная, на 7.7. После перехода не формируется отчет, выдает ошибку 1 , после того, как несколько раз нажимаешь enter, выдает ошибку 2. На файловом варианте все работает... Код и скрины прилагаю. ммм... а как вставить скрины, подскажите, не нашла кнопку?... отчет :"объем реализации с разбивкой по месяцам", в фильтре выбирается период, валюта и клиент (покупатели). код Перем Массивкол[20]; //******************************************* Процедура Сформировать() Заг=""; Если ВыбКлиент.Выбран()=0 Тогда Предупреждение("Выберите клиента или группу!"); Возврат; КонецЕсли; Запрос=СоздатьОбъект("Запрос"); Если ДатаКонца>=ПолучитьДатуТА() Тогда ТекстЗап="Период С { ДатаНачала };"; Иначе ТекстЗап="Период С { ДатаНачала } По { ДатаКонца } ;"; КонецЕсли; ТекстЗап=ТекстЗап+" |Док=Регистр.Реализация.ТекущийДокумент,Регистр.УчетЗатрат.ПоДокументу; |Клиент=Регистр.Реализация.Клиент; |Признак=Регистр.Реализация.ПризнакОперации; |ВидТовара=Регистр.Реализация.Товар.ВидТовара,Регистр.УчетЗатрат.Услуга.ВидТовара;"; Если Валюта=1 Тогда ТекстЗап=ТекстЗап+" |Реал=Регистр.Реализация.СуммаРуб; |РеалВ=Регистр.Реализация.СуммаРубВ; |Себ = Регистр.Реализация.СебестРуб,Регистр.УчетЗатрат.СуммаРуб; |СебВ= Регистр.Реализация.СебестРубВ;"; Иначе ТекстЗап=ТекстЗап+" |Реал=Регистр.Реализация.СуммаSFT; |РеалВ=Регистр.Реализация.СуммаSFTВ; |Себ= Регистр.Реализация.СебестSFT,Регистр.УчетЗатрат.СуммаSFT; |СебВ= Регистр.Реализация.СебестSFTВ;"; КонецЕсли; ТекстЗап=ТекстЗап+" |Функция СуммаРеал=Сумма(Реал); |Функция СуммаРеалВ=Сумма(РеалВ); |Функция СуммаСеб=Сумма(Себ); |Функция СуммаСебВ=Сумма(СебВ); |Условие ((ВидТовара=Перечисление.ВидыТоваров.Товар) ИЛИ (ВидТовара=Перечисление.ВидыТоваров.Услуга));"; Таб=СоздатьОбъект("Таблица"); Если (ВыбКлиент.ЭтоГруппа()=1) Тогда For i=1 to 20 do МассивКол[i]=0; enddo; ТекстЗап=ТекстЗап+"Условие (Клиент.ПринадлежитГруппе(ВыбКлиент)=1);"; Заг="По клиентам группы "+ВыбКлиент.Наименование; ТекстЗап=ТекстЗап+" |Группировка Клиент без групп упорядочить по Клиент.ОфициальноеНаименование; |Группировка Месяц; |Группировка Док ; |"; Флаг=Запрос.Выполнить(ТекстЗап); Если Флаг=0 тогда Возврат; КонецЕсли; Таб.ИсходнаяТаблица("Таблица1"); Таб.ВывестиСекцию("Выбор|Клиент"); ДатаП=ДатаНачала; Ном=0; КолМес=0; Пока ДатаП<ДатаКонца Цикл Мес= Формат(ДатаП,"ДММММГГ"); КолМес=КолМес+1; Таб.ПрисоединитьСекцию("Выбор|Месяц"); ДатаП=ДобавитьМесяц(ДатаП,1); КонецЦикла; Таб.ПрисоединитьСекцию("Выбор|Всего"); Сум=0; СумП=0; Рнт=0; ИтогКол=0; СумИт=0; Пока Запрос.Группировка("Клиент") = 1 Цикл Если (Запрос.Клиент.ЭтоГруппа()=1) Тогда Продолжить; КонецЕсли; Клнт=Запрос.Клиент; Ном=Ном+1; Таб.ВывестиСекцию("Строка|Клиент"); ДатаП=ДатаНачала; ОбщКол=0; Сч=1; Пока ДатаП<ДатаКонца Цикл Мес= Формат(ДатаП,"ДММММГГ"); Кол=0; СумП=0; Рнт=0; Запрос.Получить(Клнт,,); Пока Запрос.Группировка("Месяц") =1 Цикл МесКл=Запрос.Месяц+" г."; Если Мес=МесКл Тогда СумП=Запрос.СуммаРеал+Запрос.СуммаРеалВ; Себест=Запрос.СуммаСеб+Запрос.СуммаСебВ; СумИт=СумИт+СумП; Рнт=?(Себест<>0,Окр((СумП/Себест-1)*100,2),100); Пока Запрос.Группировка("Док")=1 Цикл Кол=Кол+1; КонецЦикла; КонецЕсли; КонецЦикла; МассивКол[Сч]=МассивКол[Сч]+Кол; Таб.ПрисоединитьСекцию("Строка|Месяц"); ДатаП=ДобавитьМесяц(ДатаП,1); ОбщКол=ОбщКол+Кол; Сч=Сч+1; КонецЦикла; ИтгП=Запрос.СуммаРеал+Запрос.СуммаРеалВ; Себест=Запрос.СуммаСеб+Запрос.СуммаСебВ; СРнт=?(Себест<>0,Окр((ИтгП/Себест-1)*100,2),100); Таб.ПрисоединитьСекцию("Строка|Всего"); ИтогКол=ИтогКол+ОбщКол; КонецЦикла; Таб.ВывестиСекцию("Итог|Клиент"); ОбщИтогКол=0; For i=1 to КолМес do ИтогКол=МассивКол[i]; ОбщИтогКол=ОбщИтогКол+ИтогКол; Таб.ПрисоединитьСекцию("Итог|Месяц"); Enddo; Таб.ПрисоединитьСекцию("Итог|Всего"); Иначе ТекстЗап=ТекстЗап+"Условие (Клиент={ВыбКлиент});"; ТекстЗап=ТекстЗап+" |Группировка Клиент без групп; |Группировка Месяц; |Группировка Док; |"; Флаг=Запрос.Выполнить(ТекстЗап); Если Флаг=0 тогда Возврат; КонецЕсли; Ном=1; Таб.ВывестиСекцию("Выбор|Клиент"); Итг=0; ИтгП=0; ОбщКол=0; Пока Запрос.Группировка("Клиент") = 1 Цикл Пока Запрос.Группировка("Месяц") = 1 Цикл СумП=Запрос.СуммаРеал+Запрос.СуммаРеалВ; Себест=Запрос.СуммаСеб+Запрос.СуммаСебВ; Рнт=?(Себест=0,100,Окр((СумП/Себест-1)*100,2)); Кол=0; Мес=Запрос.Месяц ; Пока Запрос.Группировка("Док") = 1 Цикл Кол=Кол+1; КонецЦикла; Таб.ПрисоединитьСекцию("Выбор|Месяц"); ОбщКол=ОбщКол+Кол; КонецЦикла; Если Запрос.СуммаРеал<>0 Тогда ИтгП=Запрос.СуммаРеал +Запрос.СуммаРеалВ ; Себест=Запрос.СуммаСеб+Запрос.СуммаСебВ; СРнт=?(Себест<>0,Окр((ИтгП/Себест-1)*100,2),100); Таб.ПрисоединитьСекцию("Выбор|Всего"); КонецЕсли; КонецЦикла; КонецЕсли; Таб.ТолькоПросмотр(1); Таб.Опции(0,0,5,0); Таб.ПараметрыСтраницы(2,100,1,20,10,10); Таб.Показать("Реализация по клиентам",""); КонецПроцедуры //------------------------------- ДатаНачала=НачГода(РабочаяДата()); ДатаКонца=РабочаяДата(); Валюта=1; ошибка 1: Значение не представляет агрегатный объект(ПринадлежитГруппе):8 ошибка 2: Пока Запрос.Группировка("Месяц"=1) Цикл {Отчет.Клиент_по_месяцам.Форма.Модуль(81}: Не было обращения к старшим уровням выборки. |
|||
1
1Сергей
02.07.13
✎
12:56
|
//ТекстЗап=ТекстЗап+"Условие (Клиент.ПринадлежитГруппе(ВыбКлиент)=1);";
ТекстЗап=ТекстЗап+"Условие (Клиент В ВыбКлиент);"; |
|||
2
Soul771
02.07.13
✎
13:38
|
Спасибо большое!!! :)
Первая ошибка ушла, а вторая все равно вылазит, не формируется... |
|||
3
Godofsin
02.07.13
✎
13:41
|
Пока Запрос.Группировка("Месяц") =1 цикл
|
|||
4
dedmoroz777
02.07.13
✎
13:49
|
//Запрос.Получить(Клнт,,);
|
|||
5
Soul771
02.07.13
✎
13:50
|
Да, так и есть, я ошибочно скобочку поставила не в том месте, когда перепечатывала сообщение об ошибке)
не формируется..... |
|||
6
Godofsin
02.07.13
✎
13:54
|
на будущее: saveimg.ru через подобные ссайты можно скрины выкладывать здесь.
|
|||
7
Soul771
02.07.13
✎
14:03
|
dedmoroz777, огромное спасибо!!!Получилось! ура-ура!!
всем спасибо, ребята :-) |
|||
8
Soul771
08.07.13
✎
10:23
|
Поспешила написать, что все работает(( После изменений в отчете задвоение по периоду, например, выбираю период-3 месяца, выводятся сначала 3 месяца и за ними еще раз 3 теже 3 месяца, но цифры разные..
|
|||
9
Dolly_EV
08.07.13
✎
11:14
|
(8) 77 на СКЛе с группировкой "Период" в черном запросе весьма своеобразно работает
|
|||
10
Dolly_EV
08.07.13
✎
14:06
|
(0) и во втором варианте, когда ВыбКлиент - НЕ группа:
ИМХО, вместо Таб.ВывестиСекцию("Выбор|Клиент"); Итг=0; ИтгП=0; ОбщКол=0; Пока Запрос.Группировка("Клиент") = 1 Цикл должно быть: Итг=0; ИтгП=0; ОбщКол=0; Пока Запрос.Группировка("Клиент") = 1 Цикл Таб.ВывестиСекцию("Выбор|Клиент"); |
|||
11
Dolly_EV
08.07.13
✎
14:07
|
+(10) - (8) тогда ине будет "задвоений" по месяцам - месяцы выводятся по РАЗНЫМ клиентам несколько раз в вашем варианте
|
|||
12
Soul771
08.07.13
✎
16:17
|
Спасибо, Dolly_EV!
Заменила, как посоветовали, задвоение ушло, но появилась сверху строка с непонятными данными.... вот скрин того, что получилось [URL=http://saveimg.ru/show-image.php?id=23c7339a03fadaaae5dae6b96e962130] [IMG]http://saveimg.ru/thumbnails/08-07-13/63caea17634dfbf17d58f7836bee3937.jpg[/IMG][/URL] а это то, что было до изменений [URL=http://saveimg.ru/show-image.php?id=8e911a820b8f54715ee1c50de26bbfa7] [IMG]http://saveimg.ru/thumbnails/08-07-13/e89ab042c2e045b192ecf38f71a59410.png[/IMG][/URL] |
|||
13
Soul771
08.07.13
✎
16:20
|
скрин после изменений
http://saveimg.ru/show-image.php?id=23c7339a03fadaaae5dae6b96e962130 скрин до изменений http://saveimg.ru/show-image.php?id=8e911a820b8f54715ee1c50de26bbfa7 |
|||
14
Dolly_EV
09.07.13
✎
03:33
|
(13) епт... в (10) - верни все на место.
после Пока Запрос.Группировка("Клиент") = 1 Цикл добавь Таб.ВывестиСекцию("Строка|Клиент"); ниже Таб.ПрисоединитьСекцию("Выбор|Месяц"); Таб.ПрисоединитьСекцию("Выбор|Всего"); замени на Таб.ПрисоединитьСекцию("Строка|Месяц"); Таб.ПрисоединитьСекцию("Строка|Всего"); |
|||
15
Soul771
12.07.13
✎
13:08
|
Dolly_EV,большое спасибо за помощь!
Получилось реализовать, оставив и изменив только первую часть условия(т.е. тот кусок кода, который был для групп). Сейчас хочу все-таки понять,что же не так во второй части) О результатах отпишусь) |
|||
16
пипец
12.07.13
✎
13:15
|
Запрос.ВключитьSQL(0) еще не предлагали ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |