Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Другие темы раздела
1С Загрузка Данных Из Терминала Сбора Данных В Требование-накладную Упп https://www.cyberforum.ru/ 1c/ thread2067145.html
В УПП 8.2 стандартно предусмотрена загрузка из терминала сбора данных в документ "ПоступлениеТоваровИУслуг". По этому образцу пытаюсь сделать загрузку в требование-накладную. Для этого в модуль формы...
1С Отчет .rcf
Здравствуйте! У меня такой вопрос, при создании макета для отчета .rcf получается одна колонка слишком широкая (наименование), и из за этого документ не помещается на лист А4! подскажите пожалуйста...
нестандартный автообмен 1С
1cv77 файловая + 3 периферийных организован автообмен в один из дней произошел сбой и группа документов не попала с периферии в центральную базу. дальше все восстановилось кроме не попавших в...
1С Запрос к табличной части Всем бодрого времени суток! Помогите новичку составить запрос. Есть документ "Закупка", в нём реквизит "Товар" (ссылается на справочник "Номеклатура") и табличная часть "СписокМагазинов" с... https://www.cyberforum.ru/ 1c/ thread2067142.html
1С Формирование табличной части https://www.cyberforum.ru/ 1c/ thread2067141.html
Формирование табличной части. Подскажите как можно в реквизиты табличной части добавить записи из справочника, чтобы в шапке таблицы был список из справочника. И подскажите литературу по 1с 8.2....
1С 1С 7.7 тис 964
Запустили базу 1 ноября - регистры были заполнены только ОстаткамиТМЦ и ПартиямиНаличие. Начали работу. существует на одного покупателя заявка от 1 числа, строка выписки банка от 1 числа, реализация...
срок действия Dll 1С
в проге 1С 7,7 есть самописная библиотека dll, так вот с 01.11.2010 года она перестала работать из-за этого вылазит куча ошибок как получилось я на компе поставил системное время на октябрь,...
1С Редактирование внешней печатной формы в 1С V7.7 День добрый всем спецам! Прошу помощи! Нужно чтобы во внешней печатной форме в столбце "ТМЦ" (в добавок к "наименованию") через пробел добавлялся артикул. Код обработки: https://www.cyberforum.ru/ 1c/ thread2067138.html
1С удаленный доступ к 1С 8.1 https://www.cyberforum.ru/ 1c/ thread2067137.html
Здравствуйте! Вопрос такого характера. Переходим на 1С:Предприятие 8.1 (8.1.13.41). Кто работал подскажите плиз. Как лучше подключить клиента (пользователя) если они расположены в разных городах....
1С 7.7 Не удаляется документ Добрый день! Хочу удалить из конфигурации старый документ, который уже не используется, но выдается сообщение: Данный объект использован в: Журнал.Реализация Журнал Реализация обычный, в... https://www.cyberforum.ru/ 1c/ thread2067136.html
otturkryy
0

Цикл Для Подсчета Записей В Таблице

14.05.2014, 09:24. Просмотров 7361. Ответов 10
Метки (Все метки)

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


.SpoilerTarget">Спойлер: Раскрывающийся Текст
Процедура Кнопка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, КонПериода, КонецДня(КонПериода)));
НастройкаПериода.Редактировать КакИнтервал = Истина;
НастройкаПериода.Редактировать КакПериод = Истина;
НастройкаПериода.ВариантНастро йки = ВариантНастройкиПериода.Период ;
Если НастройкаПериода.Редактировать () Тогда
НачПериода = НастройкаПериода.ПолучитьДатуН ачала();
КонПериода = НастройкаПериода.ПолучитьДатуО кончания();
КонецЕсли;
КонецПроцедуры


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

Вернуться к обсуждению:
Цикл Для Подсчета Записей В Таблице
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2014, 09:24
Готовые ответы и решения:

Цикл для подсчета записей в таблице
Помогите добавить в код: Процедура Кнопка4 - формирует отчет исходя из: сотрудника и ведомого им...

Цикл для нумерации записей в таблице
Народ подскажите как написать цикл нумерации записей в таблице? Добавлено через 17 минут у меня...

Цикл по одной таблице и обновление соответствующих записей в другой
Всем привет!!! Вопрос наверное совсем новичковый ... нужно в цикле пройтись по записям таблицы А1...

Цикл для подсчета строк ф файле.
какой цикл надо задать чтобы из файла читалось столько строк сколько есть в файле..именно строк а...

10
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.