Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Даже незнаю как сделать это прямым запросом (число прочтений - 1131 )
slai
YaBB Newbies
*
Отсутствует



Сообщений: 2
Зарегистрирован: 03. Апреля 2012
Пол: Мужской
Даже незнаю как сделать это прямым запросом
03. Апреля 2012 :: 10:18
Печать  
НачВремя = глДатаВремяОднимЧислом(ВыбНачПериода,Время1);
     КонВремя = глДатаВремяОднимЧислом(ВыбКонПериода,Время2);
     
     Таб = СоздатьОбъект("Таблица");
     Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Секция_11");
   Таб.ВывестиСекцию("Заголовок");
     //Расшифровка = СоздатьОбъект("СписокЗначений");
     //Расшифровка.Установить("ВыбНачПериода",ВыбНачПериода);
     //Расшифровка.Установить("ВыбКонПериода",ВыбКонПериода);
           
     Ит = СоздатьОбъект("БухгалтерскиеИтоги");
     //пока убираем пока группы, потом вернем

//   Ит.ИспользоватьСубконто(ВидыСубконто.МКБ10, ВыбСубконто2, 1, 1);
   Ит.ИспользоватьСубконто(ВидыСубконто.МКБ10, ВыбСубконто2, 1, );
     Ит.ИспользоватьСубконто(ВидыСубконто.Подстанции, Подстанция, 1);
     Ит.ИспользоватьСубконто(ВидыСубконто.ТипыБригад, ВыбСубконто1, 1);
     Ит.ИспользоватьСубконто(ВидыСубконто.ТипыТравм, ВыбСубконто3, 1);
     Ит.ИспользоватьСубконто(ВидыСубконто.ВызовыСП,, 1);
     Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "ДБТ",,, 1,, "С");
     
     
     ТЗ = СоздатьОбъект("ТаблицаЗначений");
     ТЗ.НоваяКолонка("Диагноз", "Справочник.МКБ10");
     ТЗ.НоваяКолонка("ТЗТравмы", "ТаблицаЗначений");
     ТЗ.НоваяКолонка("Всего","Число", 5, 0);
     ТЗ.НоваяКолонка("ДоГода","Число", 5, 0);
     ТЗ.НоваяКолонка("Госпит","Число", 5, 0);
     ТЗ.НоваяКолонка("Умерло","Число", 5, 0);
     ТЗТравмыО = СоздатьОбъект("ТаблицаЗначений");
     ТЗТравмыО.НоваяКолонка("ТипТравмы", "Справочник.ТипыТравм");
     ТЗТравмыО.НоваяКолонка("Всего","Число", 5, 0);
     ТЗТравмыО.НоваяКолонка("ДоГода","Число", 5, 0);
     ТЗТравмыО.НоваяКолонка("Госпит","Число", 5, 0);
     ТЗТравмыО.НоваяКолонка("Умерло","Число", 5, 0);
     //Ит.ВыбратьПериоды();
     //Пока Ит.ВыбратьПериоды() = 1 Цикл
     Док = СоздатьОбъект("Документ.Вызов");
     ОсновнойДиагноз = СоздатьОбъект("Справочник.МКБ10");
     ТипТравмы = СоздатьОбъект("Справочник.ТипыТравм");
     Ит.ВыбратьСубконто(ВидыСубконто.МКБ10,,,,,"Код");

     Пока Ит.ПолучитьСубконто(ВидыСубконто.МКБ10) = 1 Цикл
           
           ИтДиагноз = Ит.Субконто(ВидыСубконто.МКБ10);
           ОсновнойДиагноз = ИтДиагноз;
           Ит.ВыбратьСубконто(ВидыСубконто.Подстанции);
           Пока Ит.ПолучитьСубконто(ВидыСубконто.Подстанции) = 1 Цикл
                 
                 Ит.ВыбратьСубконто(ВидыСубконто.ТипыБригад);
                 Пока Ит.ПолучитьСубконто(ВидыСубконто.ТипыБригад) = 1 Цикл
                       Ит.ВыбратьСубконто(ВидыСубконто.ТипыТравм);
                             Пока Ит.ПолучитьСубконто(ВидыСубконто.ТипыТравм) = 1 Цикл
                                   ТипТравмы = Ит.Субконто(ВидыСубконто.ТипыТравм);
                                   НомСтрокиТравмы = 0;
                                   Если ТЗТравмыО.НайтиЗначение(ТипТравмы,НомСтрокиТравмы,"ТипТравмы") = 0 Тогда
                                         ТЗТравмыО.НоваяСтрока();
                                         ТЗТравмыО.ТипТравмы = ТипТравмы;
                                   Иначе
                                         ТЗТравмыО.ПолучитьСтрокуПоНомеру(НомСтрокиТравмы);
                                   КонецЕсли;
                                   Ит.ВыбратьСубконто(ВидыСубконто.ВызовыСП);
                                   
                                   Пока Ит.ПолучитьСубконто(ВидыСубконто.ВызовыСП) = 1 Цикл
                                          НомСтроки = 0;
                                         Док = Ит.Субконто(ВидыСубконто.ВызовыСП);
                                         Если (Док.Минуты < НачВремя) ИЛИ (Док.Минуты > КонВремя) Тогда
                                               Продолжить;
                                         КонецЕсли;
                                     
                                       Если ТЗ.НайтиЗначение(ОсновнойДиагноз,НомСтроки,"Диагноз") = 0 Тогда
                                               ТЗ.НоваяСтрока();
                                               ТЗ.Диагноз = ОсновнойДиагноз;
                                               ТЗТравмы = СоздатьОбъект("ТаблицаЗначений");
                                               ТЗТравмы.НоваяКолонка("ТипТравмы", "Справочник.ТипыТравм");
                                               ТЗТравмы.НоваяКолонка("Всего","Число", 5, 0);
                                               ТЗТравмы.НоваяКолонка("ДоГода","Число", 5, 0);
                                               ТЗТравмы.НоваяКолонка("Госпит","Число", 5, 0);
                                               ТЗТравмы.НоваяКолонка("Умерло","Число", 5, 0);
                                         Иначе
                                               ТЗ.ПолучитьСтрокуПоНомеру(НомСтроки);
                                               ТЗТравмы = СоздатьОбъект("ТаблицаЗначений");
                                               ТЗТравмы = ТЗ.ТЗТравмы;
                                         КонецЕсли;
                                         
                                         ОформлениеВызова = Док.ОформлениеВызова;
                                         НомСтрокиТравмы = 0;
                                         Если ТЗТравмы.НайтиЗначение(ТипТравмы,НомСтрокиТравмы,"ТипТравмы") = 0 Тогда
                                               ТЗТравмы.НоваяСтрока();
                                               ТЗТравмы.ТипТравмы = ТипТравмы;
                                         Иначе
                                               ТЗТравмы.ПолучитьСтрокуПоНомеру(НомСтрокиТравмы);
                                         КонецЕсли;
                                         ТЗ.Всего = ТЗ.Всего + 1;
                                         ТЗТравмы.Всего = ТЗТравмы.Всего + 1;
                                         ТЗТравмыО.Всего = ТЗТравмыО.Всего + 1;
                                         Если ОформлениеВызова.РезультатВыезда = Перечисление.РезультатыВызова.ДоставленВСтационар Тогда
                                               Если ОформлениеВызова.КудаДоставлен = Перечисление.КудаДоставлен.ДляГоспитализации Тогда
                                                     Если ОформлениеВызова.ОтказОтГоспитализации = 0 Тогда
                                                           ТЗ.Госпит = ТЗ.Госпит + 1;
                                                           ТЗТравмы.Госпит = ТЗТравмы.Госпит + 1;
                                                           ТЗТравмыО.Госпит = ТЗТравмыО.Госпит + 1;
                                                     КонецЕсли;
                                               КонецЕсли;
                                               
                                         ИначеЕсли ОформлениеВызова.РезультатВыезда = Перечисление.РезультатыВызова.СмертьВПрисутствииБригады Тогда
                                               ТЗ.Умерло = ТЗ.Умерло + 1;
                                               ТЗТравмы.Умерло = ТЗТравмы.Умерло + 1;
                                               ТЗТравмыО.Умерло = ТЗТравмыО.Умерло + 1;
                                         ИначеЕсли ОформлениеВызова.РезультатВыезда = Перечисление.РезультатыВызова.СмертьДоПриездаБригады Тогда
                                               ТЗ.Умерло = ТЗ.Умерло + 1;
                                               ТЗТравмы.Умерло = ТЗТравмы.Умерло + 1;
                                               ТЗТравмыО.Умерло = ТЗТравмыО.Умерло + 1;
                                         КонецЕсли;
                                         Если ОформлениеВызова.ВозрастЛет = 0 Тогда
                                               Если Док.ПоступлениеВызова.ДанныеОтсутствуют = 0 Тогда
                                                     
  
Наверх
 
IP записан
 
slai
YaBB Newbies
*
Отсутствует



Сообщений: 2
Зарегистрирован: 03. Апреля 2012
Пол: Мужской
Re: Даже незнаю как сделать это прямым запросом
Ответ #1 - 03. Апреля 2012 :: 10:22
Печать  
[quote author=slai link=1333448285/0#0 date=1333448285]НачВремя = глДатаВремяОднимЧислом(ВыбНачПериода,Время1);
     КонВремя = глДатаВремяОднимЧислом(ВыбКонПериода,Время2);
     
     Таб = СоздатьОбъект("Таблица");
     Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Секция_11");
   Таб.ВывестиСекцию("Заголовок");
     //Расшифровка = СоздатьОбъект("СписокЗначений");
     //Расшифровка.Установить("ВыбНачПериода",ВыбНачПериода);
     //Расшифровка.Установить("ВыбКонПериода",ВыбКонПериода);
           
     Ит = СоздатьОбъект("БухгалтерскиеИтоги");
     //пока убираем пока группы, потом вернем

//   Ит.ИспользоватьСубконто(ВидыСубконто.МКБ10, ВыбСубконто2, 1, 1);
   Ит.ИспользоватьСубконто(ВидыСубконто.МКБ10, ВыбСубконто2, 1, );
     Ит.ИспользоватьСубконто(ВидыСубконто.Подстанции, Подстанция, 1);
     Ит.ИспользоватьСубконто(ВидыСубконто.ТипыБригад, ВыбСубконто1, 1);
     Ит.ИспользоватьСубконто(ВидыСубконто.ТипыТравм, ВыбСубконто3, 1);
     Ит.ИспользоватьСубконто(ВидыСубконто.ВызовыСП,, 1);
     Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "ДБТ",,, 1,, "С");
     
     
     ТЗ = СоздатьОбъект("ТаблицаЗначений");
     ТЗ.НоваяКолонка("Диагноз", "Справочник.МКБ10");
     ТЗ.НоваяКолонка("ТЗТравмы", "ТаблицаЗначений");
     ТЗ.НоваяКолонка("Всего","Число", 5, 0);
     ТЗ.НоваяКолонка("ДоГода","Число", 5, 0);
     ТЗ.НоваяКолонка("Госпит","Число", 5, 0);
     ТЗ.НоваяКолонка("Умерло","Число", 5, 0);
     ТЗТравмыО = СоздатьОбъект("ТаблицаЗначений");
     ТЗТравмыО.НоваяКолонка("ТипТравмы", "Справочник.ТипыТравм");
     ТЗТравмыО.НоваяКолонка("Всего","Число", 5, 0);
     ТЗТравмыО.НоваяКолонка("ДоГода","Число", 5, 0);
     ТЗТравмыО.НоваяКолонка("Госпит","Число", 5, 0);
     ТЗТравмыО.НоваяКолонка("Умерло","Число", 5, 0);
     //Ит.ВыбратьПериоды();
     //Пока Ит.ВыбратьПериоды() = 1 Цикл
     Док = СоздатьОбъект("Документ.Вызов");
     ОсновнойДиагноз = СоздатьОбъект("Справочник.МКБ10");
     ТипТравмы = СоздатьОбъект("Справочник.ТипыТравм");
     Ит.ВыбратьСубконто(ВидыСубконто.МКБ10,,,,,"Код");

     Пока Ит.ПолучитьСубконто(ВидыСубконто.МКБ10) = 1 Цикл
           
           ИтДиагноз = Ит.Субконто(ВидыСубконто.МКБ10);
           ОсновнойДиагноз = ИтДиагноз;
           Ит.ВыбратьСубконто(ВидыСубконто.Подстанции);
           Пока Ит.ПолучитьСубконто(ВидыСубконто.Подстанции) = 1 Цикл
                 
                 Ит.ВыбратьСубконто(ВидыСубконто.ТипыБригад);
                 Пока Ит.ПолучитьСубконто(ВидыСубконто.ТипыБригад) = 1 Цикл
                       Ит.ВыбратьСубконто(ВидыСубконто.ТипыТравм);
                             Пока Ит.ПолучитьСубконто(ВидыСубконто.ТипыТравм) = 1 Цикл
                                   ТипТравмы = Ит.Субконто(ВидыСубконто.ТипыТравм);
                                   НомСтрокиТравмы = 0;
                                   Если ТЗТравмыО.НайтиЗначение(ТипТравмы,НомСтрокиТравмы,"ТипТравмы") = 0 Тогда
                                         ТЗТравмыО.НоваяСтрока();
                                         ТЗТравмыО.ТипТравмы = ТипТравмы;
                                   Иначе
                                         ТЗТравмыО.ПолучитьСтрокуПоНомеру(НомСтрокиТравмы);
                                   КонецЕсли;
                                   Ит.ВыбратьСубконто(ВидыСубконто.ВызовыСП);
                                   
                                   Пока Ит.ПолучитьСубконто(ВидыСубконто.ВызовыСП) = 1 Цикл
                                          НомСтроки = 0;
                                         Док = Ит.Субконто(ВидыСубконто.ВызовыСП);
                                         Если (Док.Минуты < НачВремя) ИЛИ (Док.Минуты > КонВремя) Тогда
                                               Продолжить;
                                         КонецЕсли;
                                     
                                       Если ТЗ.НайтиЗначение(ОсновнойДиагноз,НомСтроки,"Диагноз") = 0 Тогда
                                               ТЗ.НоваяСтрока();
                                               ТЗ.Диагноз = ОсновнойДиагноз;
                                               ТЗТравмы = СоздатьОбъект("ТаблицаЗначений");
                                               ТЗТравмы.НоваяКолонка("ТипТравмы", "Справочник.ТипыТравм");
                                               ТЗТравмы.НоваяКолонка("Всего","Число", 5, 0);
                                               ТЗТравмы.НоваяКолонка("ДоГода","Число", 5, 0);
                                               ТЗТравмы.НоваяКолонка("Госпит","Число", 5, 0);
                                               ТЗТравмы.НоваяКолонка("Умерло","Число", 5, 0);
                                         Иначе
                                               ТЗ.ПолучитьСтрокуПоНомеру(НомСтроки);
                                               ТЗТравмы = СоздатьОбъект("ТаблицаЗначений");
                                               ТЗТравмы = ТЗ.ТЗТравмы;
                                         КонецЕсли;
                                         
                                         ОформлениеВызова = Док.ОформлениеВызова;
                                         НомСтрокиТравмы = 0;
                                         Если ТЗТравмы.НайтиЗначение(ТипТравмы,НомСтрокиТравмы,"ТипТравмы") = 0 Тогда
                                               ТЗТравмы.НоваяСтрока();
                                               ТЗТравмы.ТипТравмы = ТипТравмы;
                                         Иначе
                                               ТЗТравмы.ПолучитьСтрокуПоНомеру(НомСтрокиТравмы);
                                         КонецЕсли;
                                         ТЗ.Всего = ТЗ.Всего + 1;
                                         ТЗТравмы.Всего = ТЗТравмы.Всего + 1;
                                         ТЗТравмыО.Всего = ТЗТравмыО.Всего + 1;
                                         Если ОформлениеВызова.РезультатВыезда = Перечисление.РезультатыВызова.ДоставленВСтационар Тогда
                                               Если ОформлениеВызова.КудаДоставлен = Перечисление.КудаДоставлен.ДляГоспитализации Тогда
                                                     Если ОформлениеВызова.ОтказОтГоспитализации = 0 Тогда
                                                           ТЗ.Госпит = ТЗ.Госпит + 1;
                                                           ТЗТравмы.Госпит = ТЗТравмы.Госпит + 1;
                                                           ТЗТравмыО.Госпит = ТЗТравмыО.Госпит + 1;
                                                     КонецЕсли;
                                               КонецЕсли;
                                               
                                         ИначеЕсли ОформлениеВызова.РезультатВыезда = Перечисление.РезультатыВызова.СмертьВПрисутствииБригады Тогда
                                               ТЗ.Умерло = ТЗ.Умерло + 1;
                                               ТЗТравмы.Умерло = ТЗТравмы.Умерло + 1;
                                               ТЗТравмыО.Умерло = ТЗТравмыО.Умерло + 1;
                                         ИначеЕсли ОформлениеВызова.РезультатВыезда = Перечисление.РезультатыВызова.СмертьДоПриездаБригады Тогда
                                               ТЗ.Умерло = ТЗ.Умерло + 1;
                                               ТЗТравмы.Умерло = ТЗТравмы.Умерло + 1;
                                               ТЗТравмыО.Умерло = ТЗТравмыО.Умерло + 1;
                                         КонецЕсли;
                                         Если ОформлениеВызова.ВозрастЛет = 0 Тогда
                                               Если Док.ПоступлениеВызова.ДанныеОтсутствуют = 0 Тогда
                                                     [/quote]
ТЗ.ДоГода = ТЗ.ДоГода + 1;
                                                     ТЗТравмы.ДоГода = ТЗТравмы.ДоГода + 1;
                                                     ТЗТравмыО.ДоГода = ТЗТравмыО.ДоГода + 1;
                                               КонецЕсли;
                                         КонецЕсли;
                                         ТЗ.ТЗТравмы = ТЗТравмы;
                                   КонецЦикла;
                             КонецЦикла;
                       КонецЦикла;
                 КонецЦикла;
           КонецЦикла;
           
     
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Даже незнаю как сделать это прямым запросом
Ответ #2 - 03. Апреля 2012 :: 10:59
Печать  
Посмотреть в эту сторону, для начала
http://www.1cpp.ru/forum/YaBB.pl?num=1181817217
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать