Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите, кто чем сможет:)))  (Прочитано 8823 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Aleks_ckjy
Гость
« : 05-02-2009 20:57 » 

Добрый день, ВСЕМ!

Стоит 1С 7.7
Есть вот такой файлик <УчКарточка.ert>: вся нужная инфа уместилась в ём:), только, незадача - выводиться инфа про одного человека, а надобно в виде таблицы на всех человеков...
ВОПРОС: как зациклить работу данного файла и "вытянуть", выдаваемую инфу в строку и, желательно, записать всё в DBF-ку!!?

...и ещё один вопрос...
Есть внешняя информация: ФИО, паспорт, Банковские реквизиты и т.д. Нужно всё это "затянуть" в 1С, чтобы не вводить дважды.
ВОПРОС: как сие сделать!!?

ПРИМЕЧАНИЕ: если в XML-файле, то как узнать тэги, которые распознаёт 1С?

Код:
Перем ПС;   
Перем ДогВ,ДогУ,Уч,Вкл;   
Перем Док;           
Перем БИ,СчП01_01,СчП01_02,СчП01_03,СчП01_04,СчП02_02,СчП13,СчП24,СчП12,СчП23;
Перем РазмерВыплаты,СрокВыплат;         
Перем СуммаВкладаФиз  ,  СуммаВкладаЮр  , СуммаИДФиз ,  СуммаИДЮр  , СуммаУК ;           
Перем СуммаВыкупНачисл , СуммаВыкупВыпл ;   
Перем СуммаНаследНачисл , СуммаНаследВыпл ;     
Перем НДФЛ;

//*******************************************

Процедура ПолучитьСрокВыплат()
Перем Схема;
Схема=ПС.ПенсионнаяСхема;
Если Схема.ФиксированныеВыплаты = 0 Тогда
Если Схема.ТипПенсионнойСхемы = Перечисление.ТипыПенсионныхСхем.СрочныхВыплат Тогда
СрокВыплат = ПС.Срок;
РазмерВыплаты = "Не фиксирована";
ИначеЕсли  Схема.ТипПенсионнойСхемы = Перечисление.ТипыПенсионныхСхем.ФиксированныхВыплат Тогда
РазмерВыплаты = ПС.Выплата.Получить(ДатаОтчета);
СрокВыплат = "";  //так в программе НПФ
ИначеЕсли  Схема.ТипПенсионнойСхемы = Перечисление.ТипыПенсионныхСхем.ПожизненныхВыплат Тогда
СрокВыплат = "Пожизненные выплаты";
РазмерВыплаты = "Не фиксирована";
КонецЕсли;
Иначе
Если Схема.ТипПенсионнойСхемы = Перечисление.ТипыПенсионныхСхем.СрочныхВыплат Тогда
СрокВыплат = ПС.Срок;
РазмерВыплаты = ПС.Выплата.Получить(ДатаОтчета);
ИначеЕсли  Схема.ТипПенсионнойСхемы = Перечисление.ТипыПенсионныхСхем.ФиксированныхВыплат Тогда
РазмерВыплаты = ПС.Выплата.Получить(ДатаОтчета);
СрокВыплат = "";  //так в программе НПФ
ИначеЕсли  Схема.ТипПенсионнойСхемы = Перечисление.ТипыПенсионныхСхем.ПожизненныхВыплат Тогда
СрокВыплат = "Пожизненные выплаты";
РазмерВыплаты = ПС.Выплата.Получить(ДатаОтчета);
КонецЕсли;
КонецЕсли;
КонецПроцедуры

//*******************************************           

Функция ПолучитьСостояниеДоговора( )   
Перем   СостояниеДоговора   ;
Перем стр;         
СостояниеДоговора =  ПС. СостояниеДоговора  .Получить(ДатаОтчета);
Если  СостояниеДоговора  = Перечисление.ЖизньДоговора.НакопительныйПериод     Тогда     
стр ="Накопительный период";
ИначеЕсли   СостояниеДоговора = Перечисление.ЖизньДоговора.ВыплатнойПериод      Тогда 
стр ="Выплатной период";
ИначеЕсли   СостояниеДоговора  = Перечисление.ЖизньДоговора.ДоговорРасторгнут     Тогда   
стр ="Договор расторгнут";
ИначеЕсли   СостояниеДоговора  = Перечисление.ЖизньДоговора.ДоговорЗавершен      Тогда     
стр ="Договор завершен";
ИначеЕсли   СостояниеДоговора  = Перечисление.ЖизньДоговора.УчастникУмер    Тогда     
стр ="Участник умер";
КонецЕсли;
Если   ПС.Приостановлен.Получить(ДатаОтчета) =1   Тогда       
стр=стр+". Действие договора приостановлено";
КонецЕсли;          
Возврат стр;
КонецФункции                                                                                                           
//_____________________________________________________________________________
Процедура ПолучитьСуммы()
Перем  СумБИ;
БИ.ИспользоватьПланСчетов(ПланыСчетов.ПР);
БИ.Опции(1,0)  ;
БИ.ИспользоватьСубконто(ВидыСубконто.Вкладчики,Вкл.ТекущийЭлемент(),2);
БИ.ИспользоватьСубконто(ВидыСубконто.Участники,Уч.ТекущийЭлемент(),2);
БИ.ИспользоватьСубконто(ВидыСубконто.Договоры, ДогВ.ТекущийЭлемент() ,2);

БИ.ВыполнитьЗапрос(,ДатаОтчета , "П01.01,П01.02,П01.03,П01.04,П02.02,П13,П24,П12,П23",,,1);
БИ.ВыбратьСчета();       
СуммаВкладаФиз  =0;
СуммаВкладаЮр     =0;   
СуммаИДФиз       =0;     
СуммаИДЮр           =0;
СуммаИДЮр           =0;
СуммаУК                 =0;         

СуммаВыкупНачисл  =0;
СуммаВыкупВыпл     =0;         

СуммаНаследНачисл  =0;
СуммаНаследВыпл     =0;                   

СумБИ=0;
Пока БИ.ПолучитьСчет() = 1 Цикл               
СумБИ=     БИ.СКД()  - БИ.СКК()   ;
Если    БИ.Счет =  СчП01_01       Тогда   
СуммаВкладаФиз = СумБИ;
ИначеЕсли  БИ.Счет  =  СчП01_02        Тогда     
СуммаВкладаЮр = СумБИ;
ИначеЕсли   БИ.Счет =   СчП01_03     Тогда 
СуммаИДФиз = СумБИ;
ИначеЕсли   БИ.Счет =   СчП01_04     Тогда   
СуммаИДЮр = СумБИ;
ИначеЕсли   БИ.Счет =   СчП02_02    Тогда     
СуммаУК = СумБИ;   
ИначеЕсли    БИ.Счет =  СчП13      Тогда   
СуммаВыкупНачисл  = СумБИ;
ИначеЕсли  БИ.Счет  =  СчП24  Тогда     
СуммаВыкупВыпл = СумБИ;     
ИначеЕсли    БИ.Счет =  СчП12      Тогда   
СуммаНаследНачисл  = СумБИ;
ИначеЕсли  БИ.Счет  =  СчП23  Тогда     
СуммаНаследВыпл = СумБИ;
КонецЕсли;              
КонецЦикла;          
КонецПроцедуры //ПолучитьСуммы
//_______________________________________________________________________
//Процедура ПолучитьСуммыВкладов()   
// Перем  СумБИ;
// БИ.ИспользоватьПланСчетов(ПланыСчетов.ПР);
// БИ.Опции(1,0)  ;
// //БИ.ВключатьСубсчета(-1,0);   
// БИ.ИспользоватьСубконто(ВидыСубконто.Вкладчики,Вкл.ТекущийЭлемент(),2);
// БИ.ИспользоватьСубконто(ВидыСубконто.Участники,Уч.ТекущийЭлемент(),2);
// БИ.ИспользоватьСубконто(ВидыСубконто.Договоры, ДогВ.ТекущийЭлемент() ,2);
//
// БИ.ВыполнитьЗапрос(,ДатаОтчета , "П01.01,П01.02,П01.03,П01.04,П02.02",,,1);
// БИ.ВыбратьСчета();       
// СуммаВкладаФиз  =0;
// СуммаВкладаЮр     =0;   
// СуммаИДФиз       =0;     
// СуммаИДЮр           =0;
// СуммаИДЮр           =0;
// СуммаУК                 =0;
//
// СумБИ=0;
// Пока БИ.ПолучитьСчет() = 1 Цикл               
// СумБИ=     БИ.СКД()  - БИ.СКК()   ;
// Если    БИ.Счет =  СчП01_01       Тогда   
// СуммаВкладаФиз = СумБИ;
// ИначеЕсли  БИ.Счет  =  СчП01_02        Тогда     
// СуммаВкладаЮр = СумБИ;
// ИначеЕсли   БИ.Счет =   СчП01_03     Тогда 
// СуммаИДФиз = СумБИ;
// ИначеЕсли   БИ.Счет =   СчП01_04     Тогда   
// СуммаИДЮр = СумБИ;
// ИначеЕсли   БИ.Счет =   СчП02_02    Тогда     
// СуммаУК = СумБИ;
// КонецЕсли;              
// КонецЦикла;          
//КонецПроцедуры         
////_______________________________________________________________________
//Процедура ПолучитьСуммуВыкупную()                     
// Перем  СумБИ;
// БИ.ИспользоватьПланСчетов(ПланыСчетов.ПР);
// БИ.Опции(1,0)  ;
// //БИ.ВключатьСубсчета(-1,0);   
// БИ.ИспользоватьСубконто(ВидыСубконто.Вкладчики,Вкл.ТекущийЭлемент(),2);
// БИ.ИспользоватьСубконто(ВидыСубконто.Участники,Уч.ТекущийЭлемент(),2);
// БИ.ИспользоватьСубконто(ВидыСубконто.Договоры, ДогВ.ТекущийЭлемент() ,2);
//
// БИ.ВыполнитьЗапрос(,ДатаОтчета , "П13,П24",,,1);
// БИ.ВыбратьСчета();       
// СуммаВыкупНачисл  =0;
// СуммаВыкупВыпл     =0;   
//
// СумБИ=0;
// Пока БИ.ПолучитьСчет() = 1 Цикл               
// СумБИ=     БИ.СКД()  - БИ.СКК()   ;
// Если    БИ.Счет =  СчП13      Тогда   
// СуммаВыкупНачисл  = СумБИ;
// ИначеЕсли  БИ.Счет  =  СчП24  Тогда     
// СуммаВыкупВыпл = СумБИ;
// КонецЕсли;              
// КонецЦикла;          
//КонецПроцедуры         
////_______________________________________________________________________
//Процедура ПолучитьСуммуНаследникам()                     
// Перем  СумБИ;
// БИ.ИспользоватьПланСчетов(ПланыСчетов.ПР);
// БИ.Опции(1,0)  ;
// //БИ.ВключатьСубсчета(-1,0);   
// БИ.ИспользоватьСубконто(ВидыСубконто.Вкладчики,Вкл.ТекущийЭлемент(),2);
// БИ.ИспользоватьСубконто(ВидыСубконто.Участники,Уч.ТекущийЭлемент(),2);
// БИ.ИспользоватьСубконто(ВидыСубконто.Договоры, ДогВ.ТекущийЭлемент() ,2);
//
// БИ.ВыполнитьЗапрос(,ДатаОтчета , "П12,П23",,,1);
// БИ.ВыбратьСчета();       
// СуммаНаследНачисл  =0;
// СуммаНаследВыпл     =0;   
//
// СумБИ=0;
// Пока БИ.ПолучитьСчет() = 1 Цикл               
// СумБИ=     БИ.СКД()  - БИ.СКК()   ;
// Если    БИ.Счет =  СчП12      Тогда   
// СуммаНаследНачисл  = СумБИ;
// ИначеЕсли  БИ.Счет  =  СчП23  Тогда     
// СуммаНаследВыпл = СумБИ;
// КонецЕсли;              
// КонецЦикла;          
//КонецПроцедуры                                                             
//_____________________________________________________________________________
Процедура ПолучитьНДФЛ()
Перем Сч;           
НДФЛ=0;
Сч=СоздатьОбъект("Счет.ПР");
Если Сч.НайтиПоКоду("ПNL") = 0 Тогда
Возврат;
КонецЕсли;
БИ.ИспользоватьПланСчетов(ПланыСчетов.ПР);
БИ.Опции(1,0)  ;
БИ.ИспользоватьСубконто(ВидыСубконто.Вкладчики,Вкл.ТекущийЭлемент(),2);
БИ.ИспользоватьСубконто(ВидыСубконто.Участники,Уч.ТекущийЭлемент(),2);
БИ.ИспользоватьСубконто(ВидыСубконто.Договоры, ДогВ.ТекущийЭлемент() ,2);
БИ.ВыполнитьЗапрос(,ДатаОтчета , Сч,,,1);
НДФЛ =  БИ.СКД()  - БИ.СКК()   ;
КонецПроцедуры //ПолучитьНДФЛ
//_______________________________________________________________________
Процедура ОбновитьДоговора()     
СписокДоговоров.УдалитьВсе();
СпрПС = СоздатьОбъект("Справочник.ПенсионныеСчета");
Док   =   СоздатьОбъект("Документ.ПенсионныйДоговор");
Сотр=УчастникНПФ;
        СпрПС.ВыбратьЭлементыПоРеквизиту("Участник",Сотр,0,0);
        Пока СпрПС.ПолучитьЭлемент()=1 Цикл
сДог=СпрПС.ТекущийЭлемент().Владелец;
// Ищем Документ, которым был создан найденный ПС
Если СпрПС.ПометкаУдаления() = 1 Тогда
Продолжить;
КонецЕсли;
Если Док.НайтиПоНомеру(сДог.Наименование)=1 Тогда
Док.ВыбратьСтроки();
Есть=0;
Пока Док.ПолучитьСтроку()=1 Цикл
Если Док.ФИО=Сотр Тогда
Есть=1;
Прервать;
КонецЕсли;
КонецЦикла;
Если Есть=1 Тогда
СписокДоговоров.ДобавитьЗначение(Док.ТекущийДокумент(), "№"+Строка(Док.НомерДок)+" от "+Строка(Док.ДатаДок));
Иначе
// Если в основном Договоре Участника нет,
// то ищем его в Дополнительных Соглашениях
допДок=СоздатьОбъект("Документ.ДополнительноеСоглашение");
допДок.ВыбратьДокументы(Док.ДатаДок,);
Есть=0;
Пока допДок.ПолучитьДокумент()=1 Цикл
Пока допДок.ПолучитьСтроку()=1 Цикл
Если допДок.ФИО=Сотр Тогда
Есть=1;
Прервать;
КонецЕсли;
КонецЦикла;
Если Есть=1 Тогда
СписокДоговоров.ДобавитьЗначение(допДок.ТекущийДокумент(), "№"+Строка(Док.НомерДок)+" от "+Строка(Док.ДатаДок));
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла; 
Если СписокДоговоров.РазмерСписка()>0 Тогда
СписокДоговоров.ТекущаяСтрока(1);
КонецЕсли;
КонецПроцедуры



// Параметр -  СпЗнач (ДокПД + Участник)
Процедура Сформировать()
Перем Парам;     
Перем Таб;       
Перем  СуммаНачислНаследникам, СуммаВыплНаследникам, СуммаНачислВыкуп, СуммаВыплВыкуп;
Перем ДатаПриобретенияПрав;
Перем   СостояниеДоговора   ;
ПС     =   СоздатьОбъект("Справочник.ПенсионныеСчета");   
ДогВ =   СоздатьОбъект("Справочник.Договоры");   
ДогУ =   СоздатьОбъект("Справочник.Договоры"); 
Вкл    =   СоздатьОбъект("Справочник.Контрагенты"); 
Уч      =   СоздатьОбъект("Справочник.Контрагенты");   
Док   =   СоздатьОбъект("Документ.ПенсионныйДоговор");   
Если ТипЗначения( Форма.Параметр )  = 0 Тогда                  // Интерактивно
//Если (ПустоеЗначение(УчастникНПФ) = 1)  ИЛИ   ( ПустоеЗначение(ДоговорУчастникНПФ)   = 1  )      Тогда             
// Предупреждение("Задайте Участника и Договор", 10);
// Возврат;
//Иначе
// Уч.НайтиЭлемент( УчастникНПФ )  ;   
// ДогУ.ИспользоватьВладельца( Уч.ТекущийЭлемент()) ;
// ДогУ.НайтиЭлемент( ДоговорУчастникНПФ  )  ;     
// Если  Док.НайтиПоНомеру(СокрЛП(ДогУ.Наименование),Дата("01.01.1980")) = 0 Тогда         
// Предупреждение("Документ ПенсионныйДоговор не найден!", 10);   
// Возврат;
// КонецЕсли;  
//КонецЕсли;   
Если СписокДоговоров.РазмерСписка() = 0 Тогда
Предупреждение("Участник "+УчастникНПФ+" не найден ни в одном договоре");
Возврат;
Иначе
Док = СписокДоговоров.ПолучитьЗначение(СписокДоговоров.ТекущаяСтрока());
КонецЕсли;   

Уч = УчастникНПФ;

ИначеЕсли ТипЗначенияСтр( Форма.Параметр )  = "СписокЗначений" Тогда    //По кнопке   из Док ПД     
Док.НайтиДокумент(Парам.ПолучитьЗначение(1) );           
Если  Док.Проведен()   =  0 Тогда         
Предупреждение("Документ ПенсионныйДоговор не проведен!", 10);   
Возврат;
КонецЕсли;              
Уч.НайтиЭлемент(  Парам.ПолучитьЗначение(2) )  ;   
ДогУ.ИспользоватьВладельца( Уч.ТекущийЭлемент()) ;
Если   ДогУ.НайтиПоНаименованию( СокрЛП(Док.НомерДок), ,1 )  =  0 Тогда         
Предупреждение("Договор Участника не найден!", 10);   
Возврат;
КонецЕсли;              
Если   ДогУ.ТипДоговора <> Перечисление.ТипыДоговоров.Пенсионный  Тогда         
Предупреждение("Договор Участника не Пенсионный!", 10);   
Возврат;
КонецЕсли;              
Иначе              //Неправильный вызов По кнопке   (программная ошибка)         
Сообщить("Некорректный вызов");
Возврат;

КонецЕсли;       

Если Уч.ВидКонтрагента <> Перечисление.ВидыКонтрагентов.ЧастноеЛицо     Тогда   
Предупреждение("ВидКонтрагента Не ЧастноеЛицо   !", 10);   
Возврат;
КонецЕсли;        

Вкл.НайтиЭлемент(  Док.Вкладчик )  ;         
ДогВ.ИспользоватьВладельца( Вкл.ТекущийЭлемент()) ;     
Если   ДогВ.НайтиПоНаименованию( СокрЛП(Док.НомерДок), ,1 )  =  0 Тогда         
Предупреждение("Договор Вкладчика не найден!", 10);   
Возврат;
КонецЕсли;              
ПС.ИспользоватьВладельца( ДогВ.ТекущийЭлемент()) ;   
Если   ПС.НайтиПоРеквизиту( "Участник",Уч.ТекущийЭлемент(),0 )  =  0 Тогда         
Предупреждение("ПС участника не найден!", 10);   
Возврат;
КонецЕсли;              
СостояниеДоговора=  ПолучитьСостояниеДоговора( )  ;       
ДатаПриобретенияПрав = "";
Если ПустоеЗначение(Уч.ДатаНазначенияГП) = 0 Тогда
ДатаПриобретенияПрав = Уч.ДатаНазначенияГП ;
ИначеЕсли ПустоеЗначение(Уч.ДатаРождения) = 0 Тогда
Если Уч.Пол = Перечисление.Пол.Женский Тогда
ДатаПриобретенияПрав = ДобавитьМесяц(Уч.ДатаРождения,12*55);
Иначе
ДатаПриобретенияПрав = ДобавитьМесяц(Уч.ДатаРождения,12*60);
КонецЕсли;
КонецЕсли;

//Сумма на счете             

//ПолучитьСуммыВкладов();            //БИ на П01,П02
ПолучитьСуммы();         

ПолучитьНДФЛ();

Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Шапка"); 
Таб.ВывестиСекцию("Пустая");
Таб.ВывестиСекцию("Участник");     
Таб.ВывестиСекцию("Пустая");
Таб.ВывестиСекцию("ПС");   
Если    ПустоеЗначение(ПС.ДатаОткрытияСчета) <> 1       Тогда   
Таб.ВывестиСекцию("Открыт");       
КонецЕсли;
Если    ПустоеЗначение(ПС.ДатаРасторжения) <> 1       Тогда   
Таб.ВывестиСекцию("Расторг");       
КонецЕсли;
Таб.ВывестиСекцию("Пустая");
Таб.ВывестиСекцию("Договор");

Если Док.Вкладчик.ВидКонтрагента =Перечисление.ВидыКонтрагентов.ЧастноеЛицо Тогда
Таб.ВывестиСекцию("ВклФиз"); 
Иначе       
Таб.ВывестиСекцию("ВклЮр");             
КонецЕсли;            
//Если ПС.ПенсионнаяСхема.ТипСчета=  Перечисление.ТипыЛицевыхСчетов.ИПС Тогда
//
//Иначе               
//Таб.ВывестиСекцию("СПСЮр"); 
//КонецЕсли;            
Таб.ВывестиСекцию("Схема");   
Таб.ВывестиСекцию("Пустая");
Таб.ВывестиСекцию("Даты");
Таб.ВывестиСекцию("Пустая");
Таб.ВывестиСекцию("Пустая");

Если    (СуммаВкладаФиз  <> 0)  ИЛИ ( СуммаИДФиз  <> 0 )Тогда
Таб.ВывестиСекцию("ВзносыФиз");       
КонецЕсли;            

Если   (СуммаВкладаЮр  <> 0 ) ИЛИ ( СуммаИДЮр    <> 0 ) Тогда
Таб.ВывестиСекцию("ВзносыЮр");       
КонецЕсли;            

Если    СуммаУК <> 0   Тогда
Таб.ВывестиСекцию("СПСЮр");     
КонецЕсли;            

Если   ( СуммаВкладаФиз  =0 ) И ( СуммаИДФиз =0) И ( СуммаВкладаЮр=0) И ( СуммаИДЮр  =0) И ( СуммаУК =0)   Тогда
Таб.ВывестиСекцию("Сум0");
КонецЕсли;
Если   НДФЛ   <> 0   Тогда
Таб.ВывестиСекцию("НДФЛ"); 
КонецЕсли;           
Если      ПС. СостояниеДоговора  .Получить(ДатаОтчета) = Перечисление.ЖизньДоговора.ВыплатнойПериод  Тогда   
ПолучитьСрокВыплат(); 
Таб.ВывестиСекцию("Пенсии");   
КонецЕсли;           
//Если      ПС. СостояниеДоговора  .Получить(ДатаОтчета)  = Перечисление.ЖизньДоговора.ДоговорРасторгнут  Тогда   
// ПолучитьСуммуВыкупную();       
Если    СуммаВыкупНачисл  <> 0   Тогда
Таб.ВывестиСекцию("НачислВыкуп");   
КонецЕсли;            
Если   СуммаВыкупВыпл   <> 0   Тогда
Таб.ВывестиСекцию("ВыплВыкуп");   
КонецЕсли;         
// Таб.ВывестиСекцию("Пустая");
//КонецЕсли;           
//Если      ПС. СостояниеДоговора  .Получить(ДатаОтчета) = Перечисление.ЖизньДоговора.УчастникУмер Тогда       
// ПолучитьСуммуНаследникам();     
Если    СуммаНаследНачисл  <> 0   Тогда
Таб.ВывестиСекцию("НачислНаслед");   
КонецЕсли;            
Если   СуммаНаследВыпл   <> 0   Тогда
Таб.ВывестиСекцию("ВыплНаслед"); 
КонецЕсли;           

//КонецЕсли;           
Таб.ВывестиСекцию("Пустая");
Таб.ВывестиСекцию("Пустая");
Таб.ВывестиСекцию("Пустая");
Таб.ВывестиСекцию("Пустая");
Таб.ВывестиСекцию("Банк");

Таб.ТолькоПросмотр(1);
//Таб.Опции(0, 0, ФиксСтрок, 0, "ОпцииПечатиАнализСчетаПоСубконто", "АнализСчетаПоСубконто");
//Т.ОбластьПечати(2);
//Т.ПовторятьПриПечатиСтроки(ФиксСтрок-1,ФиксСтрок);
Таб.ПараметрыСтраницы(1,,,,,,,,, 1);
Таб.Показать("Учетная карточка участника НПФ "+СокрЛП(Уч.ПолнНаименование)+" на дату "+ДатаОтчета, "");
КонецПроцедуры                           


//______________________________________________________
ДатаОтчета =   РабочаяДата();                       
БИ  = СоздатьОбъект("БухгалтерскиеИтоги");             

СчП01_01=СчетПоКоду("П01.01",ПланыСчетов.ПР);
СчП01_02=СчетПоКоду("П01.02",ПланыСчетов.ПР);
СчП01_03=СчетПоКоду("П01.03",ПланыСчетов.ПР);
СчП01_04=СчетПоКоду("П01.04",ПланыСчетов.ПР);
СчП02_02=СчетПоКоду("П02.02",ПланыСчетов.ПР);
СчП13=СчетПоКоду("П13",ПланыСчетов.ПР);
СчП24=СчетПоКоду("П24",ПланыСчетов.ПР);
СчП12=СчетПоКоду("П12",ПланыСчетов.ПР);
СчП23=СчетПоКоду("П23",ПланыСчетов.ПР);
//СчП04=СчетПоКоду("П04",ПланыСчетов.ПР);
//СчП05=СчетПоКоду("П05",ПланыСчетов.ПР);
//СчП11=СчетПоКоду("П11",ПланыСчетов.ПР);
//СчП30=СчетПоКоду("П30",ПланыСчетов.ПР);
//СчП31=СчетПоКоду("П31",ПланыСчетов.ПР);
« Последнее редактирование: 05-02-2009 22:39 от Finch » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 05-02-2009 23:17 » 

как зациклить работу данного файла...
Используй ПриОткрытии() в этой обработке и ОткрытьФорму() в другой обработке, которая циклом пройдется по всем людям и передаст их в УчКарточка.ert
Есть внешняя информация: ФИО, паспорт, Банковские реквизиты и т.д....
Поищи в интернете - есть универсальные импорты справочников (обычно из текстовых файлов или Excel). Вполне может быть и из xml. Они обычно настраиваемые: какое поле файла какому реквизиту присвоить.
Записан
Aleks_ckjy
Гость
« Ответ #2 : 06-02-2009 21:06 » 

Добрый день, ВСЕМ!

Я не искушён в программировании в 1С, так что, Kivals, пжлста, чуть поподробнее разобъясни, как всё-таки зациклить работу УчКарточка.ert... Если можно - малюсенький ПРИМЕРЧИК:)

По второму вопросу - СПАСИБО! Уже ищу:))))))
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 06-02-2009 21:38 » 

Пишешь обработку, в которой по нажатию кнопки выполняется:
Код:
Цикл (по нужным элементам списка) Начало
Конт=СоздатьОбъект("СписокЗначений");
Конт.Установить("Режим","МойРежимОбработки"); // любой идентификатоор, который потом проверишь
Конт.Установить("Значение",(нужный элемент));
ОткрытьФормуМодально("Отчет",Конт,"Полный\путь\к\файлу\УчКарточка.ert");
КонецЦикла

Для обхода всех элементов справочника сотрудники этот цикл выглядит так:
Код:
Спр=СоздатьОбъект("Справочник.Сотрудники");
Спр.ВыбратьЭлементы(0);
Пока Спр.ПолучитьЭлемент(1)=1 Цикл
Конт=СоздатьОбъект("СписокЗначений");
Конт.Установить("Режим","МойРежимОбработки"); // любой идентификатоор, который потом проверишь
Конт.Установить("Значение",Спр.ТекущийЭлемент());
ОткрытьФормуМодально("Отчет",Конт,"Полный\путь\к\файлу\УчКарточка.ert");
КонецЦикла;

В обработе создаешь процедуру ПриОткрытии (или если она есть - вставлешь код в начало):
Код:
Процедура ПриОткрытии()
// В Форма.Параметр передается второй параметр процедуры ОткрытьФорму[Модально]
Если ТипЗначенияСтр(Форма.Параметр)="СписокЗначений" Тогда
Режим=Форма.Параметр.Получить("Режим");
Если Режим="МойРежимОбработки" Тогда // проверяем идентификатор
СтатусВозврата(0); // Форму открывать не будет
(ЗначениеФормы)=Форма.Параметр.Получить("Значение"); // получаем нужный элемент
Сформировать(); // выполняем нужную процедуру
Возврат; // больше здесь ничего не делаем
КонецЕсли;
КонецЕсли;
КонецПроцедуры // ПриОткрытии()
Записан
Aleks_ckjy
Гость
« Ответ #4 : 08-02-2009 17:28 » new

С_П_А_С_И_Б_О!!!

Завтра начну экспериментировать... В инете, тоже, кое-что надыбил:)
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines