|   |   | 
| 
 | v7: выборка нескольких элементов справочника | ☑ | ||
|---|---|---|---|---|
| 0
    
        nacinayu1c 13.09.11✎ 11:08 | 
        привет всем 
  вот код отчета Процедура Сформировать() спрВид = СоздатьОбъект("Справочник.ВидыНачисленийУдержаний"); спрВид.НайтиПоКоду(130); Вид = спрВид;//алименты //создадим печформу таблицы "Сформировать" Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); //выведем секцию шапка МесяцГод=" "; МесяцГод =Нрег(Формат(КонПериод,"дмммм")+" Месяц "+ ДатаГод(КонПериод)+".г"); Таб.ВывестиСекцию("Шапка"); //зададим параметры страницы Таб.Опции(0,0,Таб.ВысотаТаблицы(),0); Если ВыбСотрудники.Выбран() = 1 Тогда Стр = ВыбСотрудники; Иначе Стр = ""; КонецЕсли; //обратимся к бух итогам по счету 70 для получения сотрудника (Ответчика и суммы алиментов) Ит70 = СоздатьОбъект("БухгалтерскиеИтоги"); Ит70.ИспользоватьСубконто(ВидыСубконто.Сотрудники,Стр); Ит70.ИспользоватьСубконто(ВидыСубконто.НачисленияУдержания,Вид); Ит70.ВыполнитьЗапрос(НачМесяца(КонПериод),КонМесяца(КонПериод),"70",,,,"Месяц"); спрВид.НайтиПоКоду(163);//почтовый сбор Вид1 = спрВид; //сформируем и заполним данными секцию строка_1 НомСтроки = 0; Ит70.ВыбратьСубконто(1); Пока Ит70.ПолучитьСубконто(1) = 1 Цикл Ит70.ВыбратьСубконто(2); Пока Ит70.ПолучитьСубконто(2) = 1 Цикл НомСтроки = НомСтроки + 1; ФИО = Ит70.Субконто(1); спрИстец = СоздатьОбъект("Справочник.ПриказыДлительногоДействия"); спрИстец.ИспользоватьВладельца(Ит70.Субконто(1).ТекущийЭлемент()); Если спрИстец.НайтиПоНаименованию("Алименты") = 1 Тогда ФИОИСТ = спрИстец.Субконто1; ИстАдрес = спрИстец.Субконто1.ТекущийЭлемент().ПочтовыйАдрес; ФИОИСТЦА = (ФИОИСТ.Наименование + " , " + ИстАдрес); Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ФИОИСТ); Ит.ВыполнитьЗапрос(НачМесяца(КонПериод),КонМесяца(КонПериод),"76.1",,,,"Месяц"); Ит.ВыбратьСубконто(1); Пока Ит.ПолучитьСубконто(1) = 1 Цикл СуммаПер = Ит.КО(); Ит1 = СоздатьОбъект("БухгалтерскиеИтоги"); Ит1.ИспользоватьСубконто(ВидыСубконто.Сотрудники,Ит70.Субконто(1).ТекущийЭлемент()); Ит1.ИспользоватьСубконто(ВидыСубконто.НачисленияУдержания,Вид1); Ит1.ВыполнитьЗапрос(НачМесяца(КонПериод),КонМесяца(КонПериод),"70",,,,"Месяц"); Ит1.ВыбратьСубконто(1); Пока Ит1.ПолучитьСубконто(1) = 1 Цикл Ит1.ВыбратьСубконто(2); СуммаСб = Ит1.ДО(); СуммаАл = Ит.КО() + Ит1.ДО(); КонецЦикла; КонецЦикла; КонецЕсли; КонецЦикла; КонецЦикла; ИтСумма = СуммаАл + ИтСумма; ИтСбор = СуммаСб+ИтСбор; ИтСуммаПер = СуммаПер+ИтСуммаПер; Таб.ВывестиСекцию("Строка_1"); КонецЦикла; Таб.ВывестиСекцию("Итого"); Орг = Константа.Руководитель.Получить(КонПериод); Таб.ВывестиСекцию("Подвал"); Таб.ВывестиСекцию("Подвал1"); //Орг = Константа.Руководитель.Получить(КонПериод); ГлБух = Константа.ГлБухгалтер.Получить(КонПериод); Таб.ВывестиСекцию("Подвал2"); Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать",""); КонецПроцедуры как в цикле Пока Ит70.ПолучитьСубконто(1) = 1 Цикл выбрать несколько записей из спрИстец = СоздатьОбъект("Справочник.ПриказыДлительногоДействия"); спрИстец.ИспользоватьВладельца(Ит70.Субконто(1).ТекущийЭлемент()); Если спрИстец.НайтиПоНаименованию("Алименты") = 1 Тогда помогите пожалуйста это отчет по алиментам дело в том что у сотрудника оказалось две бывших жены вот он им и платит обоим но в отчете светится только одна | |||
| 1
    
        АЛьФ 13.09.11✎ 11:09 | 
        2(0) Убей его.     | |||
| 2
    
        nacinayu1c 13.09.11✎ 11:09 | 
        :))     | |||
| 3
    
        nacinayu1c 13.09.11✎ 11:11 | 
        как я понимаю нужно поставить цикл  перед
  спрИстец = СоздатьОбъект("Справочник.ПриказыДлительногоДействия"); спрИстец.ИспользоватьВладельца(Ит70.Субконто(1).ТекущийЭлемент()); Если спрИстец.НайтиПоНаименованию("Алименты") = 1 Тогда а какой цикл писать не знаю | |||
| 4
    
        nacinayu1c 13.09.11✎ 11:17 | 
        наверно я не правильно сформулировал вопрос извините но я не знаю как его еще можно задать     | |||
| 5
    
        nacinayu1c 13.09.11✎ 11:21 | 
        что ни кто не поможет     | |||
| 6
    
        viktor_vv 13.09.11✎ 11:24 | 
        Как-то так.
  Вот это вынеси за цикл. спрИстец = СоздатьОбъект("Справочник.ПриказыДлительногоДействия"); спрИстец.ИспользоватьВладельца(Ит70.Субконто(1).ТекущийЭлемент()); спрИстец.ВыбратьЭлементы(); Пока СпрИстец.ПолучитьЭлемент() = 1 Цикл Если спрИстец.Наименование <> "Алименты" Тогда // Здесь посмортри в справочнике, может есть более надежный реквизит для определения вида приказа. Продолжить ; КонецЕсли ; // Формируем строку для вывода. КонецЦикла ; | |||
| 7
    
        viktor_vv 13.09.11✎ 11:28 | 
        Ну и за остальной код сейчас будут бить, больно, ногами в живот :).     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |