Имя: Пароль:
1C
1С v8
НаКлиенте или НаСервере
, ,
0 Mtrlcnlk
 
26.05.20
11:39
Доюбрый день, сразу скажу код чужой. Есть ли тут критические ошибки и выполняется ли данная процедура наКлиенете или наСервере ?


&НаКлиенте
Процедура Печать(Элемент)
ТабДок = Новый ТабличныйДокумент;
Макет = Документы.ЭкзаменационнаяВедомость.ПолучитьМакет("Печать");

Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);

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

{Документ.ЭкзаменационнаяВедомость.МодульМенеджера(10,26)}: Переменная не определена (Дата)
Область.Параметры.Дата = <<?>>Дата; (Проверка: Сервер)
{Документ.ЭкзаменационнаяВедомость.МодульМенеджера(11,29)}: Переменная не определена (Семестр)
Область.Параметры.Семестр = <<?>>Семестр; (Проверка: Сервер)
{Документ.ЭкзаменационнаяВедомость.МодульМенеджера(12,25)}: Переменная не определена (Год)
Область.Параметры.Год = <<?>>Год; (Проверка: Сервер)
{Документ.ЭкзаменационнаяВедомость.МодульМенеджера(13,28)}: Переменная не определена (Группа)
Область.Параметры.Группа = <<?>>Группа; (Проверка: Сервер)
{Документ.ЭкзаменационнаяВедомость.МодульМенеджера(14,32)}: Переменная не определена (Дисциплина)
Область.Параметры.Дисциплина = <<?>>Дисциплина; (Проверка: Сервер)
{Документ.ЭкзаменационнаяВедомость.МодульМенеджера(15,35)}: Переменная не определена (Преподаватель)
Область.Параметры.Преподаватель = <<?>>Преподаватель; (Проверка: Сервер)
{Документ.ЭкзаменационнаяВедомость.МодульМенеджера(20,41)}: Переменная не определена (ТабличнаяЧасть1)
Для Каждого ТекСтрокаТабличнаяЧасть1 Из <<?>>ТабличнаяЧасть1 Цикл (Проверка: Сервер)
{Документ.ЭкзаменационнаяВедомость.МодульМенеджера(30,37)}: Переменная не определена (КоличествоЧасов)
Область.Параметры.КоличествоЧасов = <<?>>КоличествоЧасов; (Проверка: Сервер)
{Документ.ЭкзаменационнаяВедомость.МодульМенеджера(35,37)}: Переменная не определена (ЭтотОбъект)
ЗапросН.УстановитьПараметр("Ссылка",<<?>>ЭтотОбъект.Ссылка); (Проверка: Сервер)
{Документ.ЭкзаменационнаяВедомость.МодульМенеджера(55,37)}: Переменная не определена (ЭтотОбъект)
Запрос5.УстановитьПараметр("Ссылка",<<?>>ЭтотОбъект.Ссылка); (Проверка: Сервер)
{Документ.ЭкзаменационнаяВедомость.МодульМенеджера(61,37)}: Переменная не определена (ЭтотОбъект)
Запрос4.УстановитьПараметр("Ссылка",<<?>>ЭтотОбъект.Ссылка); (Проверка: Сервер)
{Документ.ЭкзаменационнаяВедомость.МодульМенеджера(67,37)}: Переменная не определена (ЭтотОбъект)
Запрос3.УстановитьПараметр("Ссылка",<<?>>ЭтотОбъект.Ссылка); (Проверка: Сервер)
{Документ.ЭкзаменационнаяВедомость.МодульМенеджера(73,37)}: Переменная не определена (ЭтотОбъект)
Запрос2.УстановитьПараметр("Ссылка",<<?>>ЭтотОбъект.Ссылка); (Проверка: Сервер)
2 Mtrlcnlk
 
26.05.20
11:43
выше ошибки которые будут если поставить на сервере
3 Галахад
 
гуру
26.05.20
11:44
В чем вопрос-то?
4 HEKPOH
 
26.05.20
11:45
На клиенте в толстом клиенте проверь работу
5 Ray Zexter
 
26.05.20
11:47
Судя по первой строке код выполняется на клиенте, ошибки можно проверить самому.
6 Mtrlcnlk
 
26.05.20
11:49
Если поставить на Клиенте, то при нажатие на кнопку печать будет ошибка - Метод объекта не обнаружен (Печать)
7 ГдеСобака Зарыта
 
26.05.20
11:59
Не выполнится ни на сервере, ни на клиенте. Надо разбивать
8 DmitriyDI
 
26.05.20
12:01
(7) выполнится в случае описанном в (4)
9 Жан Пердежон
 
26.05.20
12:01
(0) код для Толстого клиента only
10 ГдеСобака Зарыта
 
26.05.20
12:05
(8) Это клинический случай. Такие не рассматриваем)
11 AlvlSpb
 
26.05.20
12:06
(0) Код для ОФ, под УФ надо переделывать
12 ГдеСобака Зарыта
 
26.05.20
12:09
И ввобще нужно делать одним запросом. За такую лабораторку только тройку с минусом получишь максимум.
13 MyNick
 
26.05.20
13:16
(0) надо делить.
А лучше выкинь этот амнокод и перепиши нормально.
14 Franchiser
 
гуру
26.05.20
13:39
на сервере, запроса на клиенте не бывает.
15 D_E_S_131
 
26.05.20
13:47
(14) А что ты отобразишь через ТабДок.Показать() на сервере? А у ТС там и это тоже в общем коде.Правильное решение в (7), (11) и (13).
16 MyNick
 
26.05.20
14:32
(15) Я отображу? Я говорю делить (на клиент и сервер)
Но лучше выкинуть и написать заново.
17 MyNick
 
26.05.20
14:32
ой, сорян, не туда )