Главбух - форум бухгалтеров, бухгалтерский форум про налоговый учет ОСНО, УСНО, ЕНВД, форум 1С.


Вернуться   Главбух форум бухгалтеров, бухгалтерский форум Главбух по налогам, учету, 1С. > Автоматизация > Программы: 1C 8.0, 8.1, 8.2, 8.3


Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.05.2014, 07:56   #1
статус: начинающий бухгалтер
 
Регистрация: 07.05.2014
Сообщений: 4
Спасибо: 0
Печаль Цикл для подсчета записей в таблице

Помогите добавить в код:
Процедура Кнопка4 - формирует отчет исходя из: сотрудника и ведомого им контрагента. Выдав в виде таблицы всех пациент из базы, проходящих по этому контрагенту за период.
Процедура Кнопка1 - формирует другой отчет в общем виде: сотрудники и ведомые за ними контрагенты.
Можно ли пересчитать количество пациентов, проходящих по контрагенту, и падающих в отчет по Кнопке4, в дополнительный столбец общего отчета : (кнопка1)
????
Здесь код обеих процедур, но куда добавить цикл, считающий пациентов ?

PHP код:
Процедура Кнопка4Нажатие(Элемент)
    
    
ТабДок Новый ТабличныйДокумент();    
    
Макет ПолучитьМакет("Макет");    
    
    
Область Макет.ПолучитьОбласть("Шапка");    
    
Область.Параметры.УслП "Отчет по оказанным услугам юр. лицам за период с " Строка(НачПериода) + " по " Строка(КонПериода) ;
    
    
Если ПолеВвода1.Пустая() Тогда
        Область
.Параметры.Стр2 "По всем организациям";
    
Иначе
        Область
.Параметры.Стр2 "Организация: " Строка(ПолеВвода1);        
    
КонецЕсли;    
    
    
Если ПолеВвода3.Пустая() Тогда
        Область
.Параметры.Стр3 "";
    
Иначе
        Область
.Параметры.Стр3 "Менеджер по продажам: " Строка(ПолеВвода3);        
    
КонецЕсли;    
    
    
Если ПолеВвода4.Пустая() Тогда
        Область
.Параметры.Стр4 "";
    
Иначе
        Область
.Параметры.Стр4 "Менеджер поддержки: " Строка(ПолеВвода4);        
    
КонецЕсли;    
    
    
ТабДок.Вывести(Область);    
    
    
    
Запрос Новый Запрос;
    
Запрос.Текст =
         
"ВЫБРАТЬ
         |    СУММА(НазначениеНаОсмотр.СуммаДокумента) КАК СуммаДокумента,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Код КАК Код,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Наименование КАК Владелец,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Ссылка КАК ВладелецСсылка,
         |    НазначениеНаОсмотр.Организация.Ссылка,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоПродажам КАК МенПрод,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоддержки КАК МенПодд
         |ИЗ
         |    Документ.НазначениеНаОсмотр КАК НазначениеНаОсмотр
         |ГДЕ
         |    НазначениеНаОсмотр.Дата >= &ДатаНач
         |    И НазначениеНаОсмотр.Дата <= &ДатаКон
         |    И НазначениеНаОсмотр.Проведен = &Истина
         |    И НазначениеНаОсмотр.ВыставитьКОплате = &Ист
         |    И НазначениеНаОсмотр.ОсновнойДоговор.ВидДоговора = &ВидДог"
;
         
         
         
        
Если не ПолеВвода1.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.Организация.Ссылка = &Орг" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Орг"ПолеВвода1);
        
        
Если не ПолеВвода2.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Ссылка = &Контрагент" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Контрагент"ПолеВвода2);
        
        
Если не ПолеВвода3.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоПродажам = &Мен1" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Мен1"ПолеВвода3);
        
        
Если не ПолеВвода4.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоддержки = &Мен2" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Мен2"ПолеВвода4);
         
         
         
        
Запрос.Текст Запрос.Текст +                   
        
"
         |СГРУППИРОВАТЬ ПО
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Код,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Наименование,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Ссылка,
         |    НазначениеНаОсмотр.Организация.Ссылка,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоПродажам,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоддержки
         |
         |УПОРЯДОЧИТЬ ПО
         |    Владелец"
;
        
         
        
Запрос.УстановитьПараметр("ДатаНач"НачПериода);
        
Запрос.УстановитьПараметр("ДатаКон"КонПериода);    
        
Запрос.УстановитьПараметр("Истина"Истина);    
        
Запрос.УстановитьПараметр("Ист"Ложь);
        
Запрос.УстановитьПараметр("ВидДог"Перечисления.ВидДоговора.Предприятие);        
    
    
        
Результат Запрос.Выполнить().Выбрать();
        
        
н 1;
        
СумОбщ 0;
        
Пока Результат.Следующий() цикл
            
            Область 
Макет.ПолучитьОбласть("Строка");    
            
Область.Параметры.н н;        
            
Область.Параметры.КонтрагентП Результат.Владелец;
            
Область.Параметры.СуммаП Результат.СуммаДокумента;
            
Область.Параметры.МенПродП Результат.МенПрод;            
            
Область.Параметры.ЭкономистП Результат.МенПодд;                        
            
СумОбщ СумОбщ Результат.СуммаДокумента;
            
            
ТабДок.Вывести(Область);
            
н н 1;
            
        
КонецЦикла;
        
        
Область Макет.ПолучитьОбласть("Подвал");    
        
Область.Параметры.СумОбщП =  СумОбщ;
        
ТабДок.Вывести(Область);
            
        
Табдок.Показать("Краткий финансовый отчет");        
    
КонецПроцедуры

Процедура ПриОткрытии
()
    
    
Орг Справочники.Организации.Выбрать();
    
Пока Орг.Следующий() Цикл 
        Если Орг
.Основная Истина Тогда
                
            ПолеВвода1 
Орг.Ссылка;
            
Прервать;
            
        
КонецЕсли;
    
КонецЦикла;
    
ЭлементыФормы.Флажок1.Значение Ложь;
    
КонецПроцедуры




Процедура Кнопка1Нажатие
(Элемент)
    
    
Если ПолеВвода2.Пустая() Тогда 
        Предупреждение
("Не заполнено поле контрагент");
        
Возврат;
    
КонецЕсли;
    
    
ТабДок Новый ТабличныйДокумент();    
    
Макет ПолучитьМакет("Макет1");    
    
    
Область Макет.ПолучитьОбласть("Шапка");    
    
Область.Параметры.УслП "Отчет по оказанным услугам юр. лицам за период с " Строка(НачПериода) + " по " Строка(КонПериода) ;
    
    
Если ПолеВвода1.Пустая() Тогда
        Область
.Параметры.КонтрП "По всем организациям";
    
Иначе
        Область
.Параметры.КонтрП "Организация: " Строка(ПолеВвода1);        
    
КонецЕсли;    
    
    
Если ПолеВвода3.Пустая() Тогда
        Область
.Параметры.Стр3 "";
    
Иначе
        Область
.Параметры.Стр3 "Менеджер по продажам: " Строка(ПолеВвода3);        
    
КонецЕсли;    
    
    
Если ПолеВвода4.Пустая() Тогда
        Область
.Параметры.Стр4 "";
    
Иначе
        Область
.Параметры.Стр4 "Менеджер поддержки: " Строка(ПолеВвода4);        
    
КонецЕсли;    
    
    
ТабДок.Вывести(Область);    
    
// ***************************************************************************************************************************    
    
    
    
    
    
Запрос Новый Запрос;
    
Запрос.Текст =
         
"ВЫБРАТЬ
         |    СУММА(НазначениеНаОсмотр.СуммаДокумента) КАК СуммаДокумента,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Код КАК Код,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Наименование КАК Владелец,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Ссылка КАК ВладелецСсылка,
         |    НазначениеНаОсмотр.Организация.Ссылка,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоПродажам КАК МенПрод,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоддержки КАК МенПодд
         |ИЗ
         |    Документ.НазначениеНаОсмотр КАК НазначениеНаОсмотр
         |ГДЕ
         |    НазначениеНаОсмотр.Дата >= &ДатаНач
         |    И НазначениеНаОсмотр.Дата <= &ДатаКон
         |    И НазначениеНаОсмотр.Проведен = &Истина
         |    И НазначениеНаОсмотр.ВыставитьКОплате = &Ист
         |    И НазначениеНаОсмотр.ОсновнойДоговор.ВидДоговора = &ВидДог"
;
         
         
         
        
Если не ПолеВвода1.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.Организация.Ссылка = &Орг" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Орг"ПолеВвода1);
        
        
Если не ПолеВвода2.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Ссылка = &Контрагент" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Контрагент"ПолеВвода2);
        
        
Если не ПолеВвода3.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоПродажам = &Мен1" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Мен1"ПолеВвода3);
        
        
Если не ПолеВвода4.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоддержки = &Мен2" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Мен2"ПолеВвода4);
         
         
         
        
Запрос.Текст Запрос.Текст +                   
        
"
         |СГРУППИРОВАТЬ ПО
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Код,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Наименование,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Ссылка,
         |    НазначениеНаОсмотр.Организация.Ссылка,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоПродажам,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоддержки"
;
        
         
        
Запрос.УстановитьПараметр("ДатаНач"НачПериода);
        
Запрос.УстановитьПараметр("ДатаКон"КонПериода);    
        
Запрос.УстановитьПараметр("Истина"Истина);    
        
Запрос.УстановитьПараметр("Ист"Ложь);
        
Запрос.УстановитьПараметр("ВидДог"Перечисления.ВидДоговора.Предприятие);        
    
    
        
Результат Запрос.Выполнить().Выбрать();
        
        
Пока Результат.Следующий() цикл
            
            Область 
Макет.ПолучитьОбласть("Строка");    
            
Область.Параметры.КонтрагентП Результат.Владелец;
            
Область.Параметры.СуммаП Результат.СуммаДокумента;
            
            
            
ТабДок.Вывести(Область);
            
        
КонецЦикла;
    
    
    
// ****************************************************************************************************    
    
    
    
    
    
    
    
Запрос Новый Запрос;
    
Запрос.Текст =
         
"ВЫБРАТЬ
         |    НазначениеНаОсмотр.СуммаДокумента КАК СуммаДокумента,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Код КАК Код,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Наименование КАК Владелец,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Ссылка КАК ВладелецСсылка,
         |    НазначениеНаОсмотр.Организация.Ссылка,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоПродажам КАК МенПрод,
         |    НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоддержки КАК МенПодд,
         |    НазначениеНаОсмотр.Ссылка КАК СсылкаДок,
         |    НазначениеНаОсмотр.Пациент.Наименование КАК Пациент
         |ИЗ
         |    Документ.НазначениеНаОсмотр КАК НазначениеНаОсмотр
         |ГДЕ
         |    НазначениеНаОсмотр.Дата >= &ДатаНач
         |    И НазначениеНаОсмотр.Дата <= &ДатаКон
         |    И НазначениеНаОсмотр.Проведен = &Истина
         |    И НазначениеНаОсмотр.ВыставитьКОплате = &Ист
         |    И НазначениеНаОсмотр.ОсновнойДоговор.ВидДоговора = &ВидДог"
;
         
        
Если не ПолеВвода1.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.Организация.Ссылка = &Орг" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Орг"ПолеВвода1);
        
        
Если не ПолеВвода2.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.ОсновнойДоговор.Владелец.Ссылка = &Контрагент" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Контрагент"ПолеВвода2);
        
        
Если не ПолеВвода3.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоПродажам = &Мен1" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Мен1"ПолеВвода3);
        
        
Если не ПолеВвода4.Пустая() Тогда
            Запрос
.Текст Запрос.Текст "
             |    И НазначениеНаОсмотр.ОсновнойДоговор.Владелец.МенеджерПоддержки = &Мен2" 
;
        
КонецЕсли;
        
Запрос.УстановитьПараметр("Мен2"ПолеВвода4);
         
         
        
Запрос.УстановитьПараметр("ДатаНач"НачПериода);
        
Запрос.УстановитьПараметр("ДатаКон"КонПериода);    
        
Запрос.УстановитьПараметр("Истина"Истина);    
        
Запрос.УстановитьПараметр("Ист"Ложь);
        
Запрос.УстановитьПараметр("ВидДог"Перечисления.ВидДоговора.Предприятие);        
    
    
        
Результат Запрос.Выполнить().Выбрать();
        
        
к 1;
        
Пока Результат.Следующий() цикл
            
            Область 
Макет.ПолучитьОбласть("Строка2");    
            
Область.Параметры.к1 к;        
            
Область.Параметры.ДокП       Результат.СсылкаДок;
            
Область.Параметры.СуммаДокП  Результат.СуммаДокумента;
            
Область.Параметры.ПациентП   Результат.Пациент;            
            
            
ТабДок.Вывести(Область);
            
            
            
            
Если Флажок1 Истина Тогда
            
                ДокОб 
Результат.ССылкаДок.ПолучитьОбъект();
                
Для Каждого СтрТЧ из ДокОб.Услуги Цикл 
                    
                    Область 
Макет.ПолучитьОбласть("Документы");                        
                    
Область.Параметры.УслугаП СтрТЧ.Услуга;
                    
Область.Параметры.СотрП СтрТЧ.Сотрудник;                    
                    
Область.Параметры.СпециальностьП СтрТЧ.СпециализацияВрача;                    
                    
Область.Параметры.ЦенаЗаУслП СтрТЧ.Цена;                                        
                    
                    
ТабДок.Вывести(Область);
                    
                
КонецЦикла;
                
                
                
КонецЕсли;
            
            
            
            
            
к к 1;
            
        
КонецЦикла;
    
        
Табдок.Показать("Развернутый финансовый отчет");                
    
    
    
КонецПроцедуры

Процедура ВыбПериодНажатие
(Элемент)
    
НастройкаПериода Новый НастройкаПериода;
    
НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01'КонПериодаКонецДня(КонПериода)));
    
НастройкаПериода.РедактироватьКакИнтервал Истина;
    
НастройкаПериода.РедактироватьКакПериод Истина;
    
НастройкаПериода.ВариантНастройки ВариантНастройкиПериода.Период;
    
Если НастройкаПериода.Редактировать() Тогда
        НачПериода 
НастройкаПериода.ПолучитьДатуНачала();
        
КонПериода НастройкаПериода.ПолучитьДатуОкончания();
    
КонецЕсли;
КонецПроцедуры


НачПериода 
НачалоМесяца(ТекущаяДата());
КонПериода ТекущаяДата(); 

alturgrey вне форума   Ответить с цитированием
Ответ



« Предыдущая тема | Следующая тема »

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не формирует проводки в журнале (формирование записей книги покупок) 8.2 Кристинка Программы: 1C 8.0, 8.1, 8.2, 8.3 5 16.10.2012 12:47
БП (Бухгалтерия предприятия) Формирование записей книги продаж RomanMS Программы: 1C 8.0, 8.1, 8.2, 8.3 1 12.03.2012 12:38
Программка для подсчета стажа для начисления больничного MarinaAnna Больничные листы 0 21.09.2011 00:49
Ошибки округления в таблице 3 формы 4-ФСС Александер555 Прочие налоги 1 04.09.2011 17:39
Ошибки округления в таблице 3 формы 4-ФСС Александер555 Зарплатные налоги и сборы 3 18.07.2011 12:37


Полезности: Что лучше: ООО или ИП? калькулятор НДС Книги по бухгалтерскому учету Иностранец в России: на что стоит обратить внимание при трудоустройстве
Какие понятия и определения используются в спорах о взыскании неосновательного обогащения в коттеджных поселках

Текущее время: 02:19. Часовой пояс GMT +3.


Реклама на форуме Главбух.ру

Правила форума


Goon Каталог сайтов
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot