Переключение на Главную Страницу Страницы: 1 2 [3] 4 5  ОтправитьПечать
Очень популярная тема (более 25 ответов) Несоответствием базы с бекапом (число прочтений - 14213 )
Натуля
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 06. Октября 2009
Re: Несоответствием базы с бекапом
Ответ #30 - 06. Октября 2009 :: 10:18
Печать  
строку
     |Х_СостояниеФизлица<> Зн_ПустоеФизЛицо;
может нужно укозать как
           |Условие(Х_СостояниеФизлица<> Зн_ПустоеФизЛицо);

??
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Несоответствием базы с бекапом
Ответ #31 - 06. Октября 2009 :: 10:21
Печать  
Z1 просто очень сильно хочет тебе помочь, поэтому опять опечатался: забыл поставить ключевое слово "Условие" Подмигивание
Код
Выбрать все
Условие(Х_СостояниеФизлица<> Зн_ПустоеФизЛицо); 

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Несоответствием базы с бекапом
Ответ #32 - 06. Октября 2009 :: 10:25
Печать  
JohnyDeath писал(а) 06. Октября 2009 :: 10:21:
Z1 просто очень сильно хочет тебе помочь, поэтому опять опечатался: забыл поставить ключевое слово "Условие" Подмигивание
Код
Выбрать все
Условие(Х_СостояниеФизлица<> Зн_ПустоеФизЛицо); 


ну да опять опечатался запустить проверить то не на чем.
интересно если довести все до конца (а только в начале пути )сравнить начальное и конечное время выполнения.
  
Наверх
 
IP записан
 
Натуля
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 06. Октября 2009
Re: Несоответствием базы с бекапом
Ответ #33 - 06. Октября 2009 :: 10:52
Печать  
Время просто убийственное Плачущий
на сервере 15-20 минут
на остальных...... полтора часа ждала, дошло до 10 строки всего Плачущий

незнаю что и делать
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Несоответствием базы с бекапом
Ответ #34 - 06. Октября 2009 :: 10:54
Печать  
также не понятна функция Вью
в условие
Код
Выбрать все
")>0
 


  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Несоответствием базы с бекапом
Ответ #35 - 06. Октября 2009 :: 10:58
Печать  
Итак имеем  (вроде учтены все найденные опечатки)
Код
Выбрать все
	  Форм="1-Т";
	//На конец года
	ПредДата = КонМесяца(Дата2);
	ВыбДата = Дата(ПредДата+1);
	Зн_ПустоеФизЛицо=ПолучитьПустоеЗначение("Перечисление.СостояниеФизлица");
	Запрос = СоздатьОбъект("Запрос");
	Запрос.ВключитьSQL(0);
	ТекстЗапроса = "
|//{{ЗАПРОС(ДвижениеКадров)
	|Период с ВыбДата по ВыбДата;
	|ОбрабатыватьДокументы Все;
	|Х_Сотрудник 			=	Справочник.Сотрудники.ТекущийЭлемент;
	|Х_Подразделение 		= 	Справочник.Сотрудники.Подразделение;
	|Х_ДатаРождения 		= 	Справочник.Сотрудники.ДатаРождения;
	|Х_Категория 			= 	Справочник.Сотрудники.Должность.Категория;
	|Х_Образование	 	  = 	Справочник.Сотрудники.Образование;
	|Х_Ставка 			= 	Справочник.Сотрудники.Ставка;
	|Х_СостояниеФизлица 	= 	Справочник.Сотрудники.СостояниеФизлица;
	|Функция Кол 	= 	Счётчик();
	|Функция МОП 	= 	Счётчик() Когда(Х_Категория=Перечисление.КатегорииСотрудников.МОП);
	|Функция Служ 	= 	Счётчик() Когда(Х_Категория=Перечисление.КатегорииСотрудников.Служащие);
	|Функция Раб 	= 	Счётчик() Когда(Х_Категория=Перечисление.КатегорииСотрудников.Рабочие);
	|Функция Рук 	= 	Счётчик() Когда(Х_Категория=Перечисление.КатегорииСотрудников.Руководители);
	|Функция Спец 	= 	Счётчик() Когда(Х_Категория=Перечисление.КатегорииСотрудников.Специалисты);
	|Функция Жен 	= 	Счётчик() Когда(Х_Сотрудник.Пол.Наименование="""+"Женский"+""");
	|Условие(Х_СостояниеФизлица<> Зн_ПустоеФизЛицо);
    |";
	ЕстьПодразделения = 0;
	Если ТипЗначенияСтр(СписокПодразделений) = "СписокЗначений" Тогда
		Если СписокПодразделений.РазмерСписка() > 0 Тогда
			ЕстьПодразделения = 1;
			ТекстЗапроса = ТекстЗапроса + "
			|Условие(Х_Подразделение в СписокПодразделений);
		КонецЕсли;
	КонецЕсли;
	Сообщить("Строка 1");
	Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
		Возврат;
	КонецЕсли;
	К=0;
	Таблица=СоздатьОбъект("Таблица");
	Таблица.ИсходнаяТаблица(Форм);
	Таблица.ИспользоватьФормат("Ч-4.0. ");
	Таблица.ВывестиСекцию("Шапка");
	Таблица.ВывестиСекцию("Строка1");
	Сообщить("Строка 2");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие(Лев(Х_Образование,6)="""+"Высшее"+""");"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка2");
	Сообщить("Строка 3");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие(
		|(Лев(Х_Образование,18)="""+"Средне-техническое"+""")
		|или(Лев(Х_Образование,19)="""+"Среднее специальное"+""")
		|или(Лев(Х_Образование,12)="""+"Среднее проф"+""")
		|);"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка3");
	Сообщить("Строка 4");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие((
	  |(Лев(Х_Образование,6)<>"""+"Высшее"+""")
		|и(Лев(Х_Образование,18)<>"""+"Средне-техническое"+""")
		|и(Лев(Х_Образование,19)<>"""+"Среднее специальное"+""")
		|и(Лев(Х_Образование,12)<>"""+"Среднее проф"+""")
		|));"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка4");
	Сообщить("Строка 5");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие(
		|Число(ВыбДата-Х_ДатаРождения)/365.25<16
		|);"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка5");
 	  Сообщить("Строка 6");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие(
		|(Число(ВыбДата-Х_ДатаРождения)/365.25>=16)
		|и(Число(ВыбДата-Х_ДатаРождения)/365.25<18)
		|);"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка6");
	Сообщить("Строка 7");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие(
		|(Число(ВыбДата-Х_ДатаРождения)/365.25>=18)
		|и(Число(ВыбДата-Х_ДатаРождения)/365.25<25)
		|);"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка7");
	Сообщить("Строка 8");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие(
		|(Число(ВыбДата-Х_ДатаРождения)/365.25>=25)
		|и(Число(ВыбДата-Х_ДатаРождения)/365.25<30)
		|);"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка8");
	Сообщить("Строка 9");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие(
		|(Число(ВыбДата-Х_ДатаРождения)/365.25>=30)
		|и(Число(ВыбДата-Х_ДатаРождения)/365.25<40)
		|);"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка9");
	Сообщить("Строка 10");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие(
		|(Число(ВыбДата-Х_ДатаРождения)/365.25>=40)
		|и(Число(ВыбДата-Х_ДатаРождения)/365.25<50)
		|);"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка10");
	Сообщить("Строка 11");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие(
		|(Число(ВыбДата-Х_ДатаРождения)/365.25>=50)
		|и(Число(ВыбДата-Х_ДатаРождения)/365.25<55)
		|);"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка11");
	Сообщить("Строка 12");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие(
		|Число(ВыбДата-Х_ДатаРождения)/365.25>=55
		|);"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка12");
	Сообщить("Строка 13");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие(
		|(Число(ВыбДата-Х_ДатаРождения)/365.25>=55)
		|и(Х_Сотрудник.Пол.Наименование="""+"Женский"+""")
		|);"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка13");
	Сообщить("Строка 14");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие(
		|(Число(ВыбДата-Х_ДатаРождения)/365.25>=60)
		|и(Х_Сотрудник.Пол.Наименование="""+"Мужской"+""")
		|);"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка14");
	Сообщить("Строка 15");
	Если Запрос.Выполнить(ТекстЗапроса+
		"Условие(
		|(Х_Сотрудник.Пол.Наименование="""+"Женский"+""")
		|);"
		)=0 Тогда
		Возврат;
	КонецЕсли;
	Таблица.ВывестиСекцию("Строка15");
 

  
Наверх
 
IP записан
 
Натуля
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 06. Октября 2009
Re: Несоответствием базы с бекапом
Ответ #36 - 06. Октября 2009 :: 11:08
Печать  
всё работает правильно, но нереально долго Плачущий
есть ли вариант чтоб всё же она работала с SQL ??
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Несоответствием базы с бекапом
Ответ #37 - 06. Октября 2009 :: 11:13
Печать  
Натуля писал(а) 06. Октября 2009 :: 11:08:
всё работает правильно, но нереально долго Плачущий
есть ли вариант чтоб всё же она работала с SQL ??

Убери строку

Запрос.ВключитьSQL(0);

Сообщить без нее работает правильно или нет ?

  
Наверх
 
IP записан
 
Натуля
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 06. Октября 2009
Re: Несоответствием базы с бекапом
Ответ #38 - 06. Октября 2009 :: 11:15
Печать  
пробовала.... считает за 1 минуту результат плачевный(
сразу врёт Смущённый
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Несоответствием базы с бекапом
Ответ #39 - 06. Октября 2009 :: 11:18
Печать  
Натуля писал(а) 06. Октября 2009 :: 11:15:
пробовала.... считает за 1 минуту результат плачевный(
сразу врёт Смущённый

Понятно
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Несоответствием базы с бекапом
Ответ #40 - 06. Октября 2009 :: 11:27
Печать  
Давайте разберемся как решается задача
Мы формируем 15 запросов sql которые делают практически одно и тоже с незначительными условиями.
Причем происходит следующее так как 1с создает "нереальные"
для sql запросы то sql все равно возвращает на клиента
полный справочник Сотрудников и уже на клиенте
мы каждый раз по полному справочнику клиентов заново все считаем.

Основная идея получаем один раз из sql данные по сотрудникам
далее в программе 1с подсчитываем все количества.
Каждый занимается своим делом  sql формирует заведомо
правильный список сотрудников 1с правильно вычисляет количества. Эта же идея справедлива и для dbf - dbf база
тоже ресурс только стоимость его гораздо меньше.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Несоответствием базы с бекапом
Ответ #41 - 06. Октября 2009 :: 11:35
Печать  
номер релиза еще не спрашивали?
  

1&&2&&3
Наверх
 
IP записан
 
Натуля
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 06. Октября 2009
Re: Несоответствием базы с бекапом
Ответ #42 - 06. Октября 2009 :: 11:37
Печать  
ну тогда непонятно ...что происходит не так .... потому что отчёт из бэкапа формируется - правельно , значит модуль написан тоже верно и считает он верно
остаётся тока  - либо sql формирует не верные базы либо пока они идут к клиенту происходят какието сбои ....

хотя в этом отчёте общее кол-во сотрудников считается верно и в бэкапе и при работе с sql-м , а вот по должностям идёт загвоздка , тока в бэкапе формируется верно  (Служ,Раб и т.д.)
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Несоответствием базы с бекапом
Ответ #43 - 06. Октября 2009 :: 11:42
Печать  
trad писал(а) 06. Октября 2009 :: 11:35:
номер релиза еще не спрашивали?

не важно.
на всех одинаково.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Несоответствием базы с бекапом
Ответ #44 - 06. Октября 2009 :: 11:43
Печать  
Z1 писал(а) 06. Октября 2009 :: 11:42:
trad писал(а) 06. Октября 2009 :: 11:35:
номер релиза еще не спрашивали?

не важно.
на всех одинаково.

проверяли?
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 4 5 
ОтправитьПечать