|
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
|
Ну и за остальной код сейчас будут бить, больно, ногами в живот :).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |