Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
philophobia
1 / 1 / 3
Регистрация: 16.02.2016
Сообщений: 83
1

Определить табличный документ в отдельной процедуре

18.07.2016, 14:49. Просмотров 848. Ответов 2
Метки нет (Все метки)

Добрый день, подскажите, как на обычных формах вынести описание табличного документа в отдельную процедуру? Как это правильно сделать? Когда начинаю выносить, вылезает ошибка "Поле объекта ТабДокумент недоступно для записи"

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
Процедура КнопкаСформироватьНажатие(Кнопка)
    
    ТабДокумент = ЭлементыФормы.ТабДокумент;    
    ТабДокумент.Очистить();
    ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабДокумент.ПолеСлева = 5;
    ТабДокумент.ПолеСправа = 0;
    ТабДокумент.АвтоМасштаб = Истина;
    ТабДокумент.ТолькоПросмотр = Истина;
    
    Если ТекущаяСтатистика = ИСТИНА Тогда
        ВывестиСтатистику();
    КонецЕсли;
    
    Если СтатистикаПоВрачам = ИСТИНА Тогда
        СтатистикаПоВрачам();
    КонецЕсли;
    
    Если СтатистикаПоМенеджерам = ИСТИНА Тогда
        Менеджеры();
    КонецЕсли;
    
    Если Общий = ИСТИНА Тогда
        СформироватьОбщийОтчет();
    КонецЕсли;
    
КонецПроцедуры
 
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    
    НачалоПериода = НачалоМесяца(РабочаяДата);
    КонецПериода = КонецМесяца(РабочаяДата);
    
КонецПроцедуры
 
Процедура ВывестиСтатистику()
    
    ТабДокумент = ЭлементыФормы.ТабДокумент;    
    ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабДокумент.ПолеСлева = 5;
    ТабДокумент.ПолеСправа = 0;
    ТабДокумент.АвтоМасштаб = Истина;
 
    ЗапросСтатистика = Новый Запрос;
    ЗапросСтатистика.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                             |  ОУ_РешенияЖалобСрезПоследних.СтатусЖалобы КАК Статус, 
                             |  КОЛИЧЕСТВО(ОУ_РешенияЖалобСрезПоследних.СтатусЖалобы) * 1 КАК КоличествоЖалоб
                             |ИЗ
                             |  (ВЫБРАТЬ
                             |      МАКСИМУМ(ОУ_РешенияЖалобСрезПоследних.Период) КАК ПоследнееИзменение,
                             |      ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба КАК ДокументЖалоба
                             |  ИЗ
                             |      РегистрСведений.ОУ_РешенияЖалоб.СрезПоследних КАК ОУ_РешенияЖалобСрезПоследних
                             |  
                             |  СГРУППИРОВАТЬ ПО
                             |      ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба) КАК ВложенныйЗапрос
                             |      ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОУ_РешенияЖалоб.СрезПоследних КАК ОУ_РешенияЖалобСрезПоследних
                             |      ПО ВложенныйЗапрос.ПоследнееИзменение = ОУ_РешенияЖалобСрезПоследних.Период";
                    Если ЗначениеЗаполнено(НачалоПериода) И ЗначениеЗаполнено(КонецПериода) И ЗначениеЗаполнено(Филиал) Тогда
                    ЗапросСтатистика.Текст = ЗапросСтатистика.Текст + "
                        |ГДЕ
                        |   ОУ_РешенияЖалобСрезПоследних.Филиал = &Филиал
                        |   И ОУ_РешенияЖалобСрезПоследних.Период МЕЖДУ &НачалоПериода И &КонецПериода";
                    ИначеЕсли ЗначениеЗаполнено(Филиал) И НЕ ЗначениеЗаполнено(НачалоПериода) И НЕ ЗначениеЗаполнено(КонецПериода) Тогда
                    ЗапросСтатистика.Текст = ЗапросСтатистика.Текст + "
                        |ГДЕ
                        |   ОУ_РешенияЖалобСрезПоследних.Филиал = &Филиал";
                    ИначеЕсли НЕ ЗначениеЗаполнено(Филиал) И ЗначениеЗаполнено(НачалоПериода) И ЗначениеЗаполнено(КонецПериода) Тогда
                    ЗапросСтатистика.Текст = ЗапросСтатистика.Текст + "
                        |ГДЕ
                        |   ОУ_РешенияЖалобСрезПоследних.Период МЕЖДУ &НачалоПериода И &КонецПериода";
                    КонецЕсли;
    ЗапросСтатистика.Текст = ЗапросСтатистика.Текст +"
                        |
                        |СГРУППИРОВАТЬ ПО
                        |   ОУ_РешенияЖалобСрезПоследних.СтатусЖалобы";
                        
    ЗапросСтатистика.УстановитьПараметр("НачалоПериода", НачалоПериода);
    ЗапросСтатистика.УстановитьПараметр("КонецПериода", КонецПериода);
    ЗапросСтатистика.УстановитьПараметр("Филиал", Филиал);
            
    ВыборкаСтатистика = ЗапросСтатистика.Выполнить().Выбрать();
    МакетСтатистика = ПолучитьМакет("Статистика");
    
    ОбластьШапкаСтатус = МакетСтатистика.ПолучитьОбласть("ШапкаСтатус");
    ОбластьСтрокаСтатус = МакетСтатистика.ПолучитьОбласть("СтрокаСтатус");
    ОбластьИтогСтатус = МакетСтатистика.ПолучитьОбласть("ИтогСтатус");
    
    Процент = 0;           
    ОбщийПроцент = 100;
    ОбщееКоличество = 0;
    ТабДокумент.Вывести(ОбластьШапкаСтатус);
    Пока ВыборкаСтатистика.Следующий() Цикл
        ОбластьСтрокаСтатус.Параметры.Статус = ВыборкаСтатистика.Статус;
        ОбластьСтрокаСтатус.Параметры.КоличествоЖалоб = ВыборкаСтатистика.КоличествоЖалоб;
        ОбщееКоличество = ОбщееКоличество + ВыборкаСтатистика.КоличествоЖалоб;
        
        ТабДокумент.Вывести(ОбластьСтрокаСтатус);
    КонецЦикла;
    
    ОбластьИтогСтатус.Параметры.ОбщееКоличествоЖалоб = ОбщееКоличество;
    ОбластьИтогСтатус.Параметры.ОбщийПроцент =  ОбщийПроцент;
    ТабДокумент.Вывести(ОбластьИтогСтатус);
КонецПроцедуры  
 
Процедура СтатистикаПоВрачам()
    
    ТабДокумент = ЭлементыФормы.ТабДокумент;    
    ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабДокумент.ПолеСлева = 5;
    ТабДокумент.ПолеСправа = 0;
    ТабДокумент.АвтоМасштаб = Истина;
    ТабДокумент.ТолькоПросмотр = Истина;
    
    ЗапросПоВрачам = Новый Запрос;
    ЗапросПоВрачам.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                           |    ВложенныйЗапрос.ДокументЖалоба КАК Жалоба,
                           |    ОУ_РешенияЖалобСрезПоследних.Пациент КАК Пациент,
                           |    ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба.Проблема КАК Проблема,
                           |    ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба.ОбъектЖалобы КАК Сотрудник,
                           |    ОУ_РешенияЖалобСрезПоследних.Филиал
                           |ИЗ
                           |    (ВЫБРАТЬ
                           |        МАКСИМУМ(ОУ_РешенияЖалобСрезПоследних.Период) КАК ПоследнееИзменение,
                           |        ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба КАК ДокументЖалоба
                           |    ИЗ
                           |        РегистрСведений.ОУ_РешенияЖалоб.СрезПоследних КАК ОУ_РешенияЖалобСрезПоследних
                           |    
                           |    СГРУППИРОВАТЬ ПО
                           |        ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба) КАК ВложенныйЗапрос
                           |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОУ_РешенияЖалоб.СрезПоследних(, ) КАК ОУ_РешенияЖалобСрезПоследних
                           |        ПО ВложенныйЗапрос.ПоследнееИзменение = ОУ_РешенияЖалобСрезПоследних.Период";           
                    Если ЗначениеЗаполнено(НачалоПериода) И ЗначениеЗаполнено(КонецПериода) И ЗначениеЗаполнено(Филиал) Тогда
                     ЗапросПоВрачам.Текст = ЗапросПоВрачам.Текст + "
                        |ГДЕ
                        |   ОУ_РешенияЖалобСрезПоследних.Филиал = &Филиал
                        |   И ОУ_РешенияЖалобСрезПоследних.Период МЕЖДУ &НачалоПериода И &КонецПериода
                        |   И ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба.ОбъектЖалобы <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)";
                    ИначеЕсли ЗначениеЗаполнено(Филиал) И НЕ ЗначениеЗаполнено(НачалоПериода) И НЕ ЗначениеЗаполнено(КонецПериода) Тогда
                     ЗапросПоВрачам.Текст = ЗапросПоВрачам.Текст + "
                        |ГДЕ
                        |   ОУ_РешенияЖалобСрезПоследних.Филиал = &Филиал
                        |   И ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба.ОбъектЖалобы <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)";
                    ИначеЕсли НЕ ЗначениеЗаполнено(Филиал) И ЗначениеЗаполнено(НачалоПериода) И ЗначениеЗаполнено(КонецПериода) Тогда
                     ЗапросПоВрачам.Текст = ЗапросПоВрачам.Текст + "
                        |ГДЕ
                        |   ОУ_РешенияЖалобСрезПоследних.Период МЕЖДУ &НачалоПериода И &КонецПериода
                        |   И ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба.ОбъектЖалобы <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)";
                    ИначеЕсли НЕ ЗначениеЗаполнено(Филиал) И НЕ ЗначениеЗаполнено(НачалоПериода) И НЕ ЗначениеЗаполнено(КонецПериода) Тогда
                        ЗапросПоВрачам.Текст = ЗапросПоВрачам.Текст + "
                        |ГДЕ 
                        |   ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба.ОбъектЖалобы <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)";
                    КонецЕсли;
                    ЗапросПоВрачам.Текст = ЗапросПоВрачам.Текст +"
                        |УПОРЯДОЧИТЬ ПО
                        |   Сотрудник
                        |ИТОГИ ПО
                        |   Сотрудник ИЕРАРХИЯ";
                        
    ЗапросПоВрачам.УстановитьПараметр("НачалоПериода", НачалоПериода);
    ЗапросПоВрачам.УстановитьПараметр("КонецПериода", КонецПериода);
    ЗапросПоВрачам.УстановитьПараметр("Филиал", Филиал);
            
    ВыборкаПоВрачам = ЗапросПоВрачам.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    МакетПоВрачам = ПолучитьМакет("СтатистикаПоВрачам");                        
    
    ОбластьШапка = МакетПоВрачам.ПолучитьОбласть("Шапка"); 
    ОбластьСтрока = МакетПоВрачам.ПолучитьОбласть("Строка");
    ОбластьСтрокаПациент = МакетПоВрачам.ПолучитьОбласть("СтрокаПациент");
        
    ТабДокумент.Вывести(ОбластьШапка);
    ТабДокумент.НачатьАвтогруппировкуСтрок();
    Нпп = 1;
        
    Пока ВыборкаПоВрачам.Следующий() Цикл   
                
        ВыборкаВрач = ВыборкаПоВрачам.Выбрать();
        ОбластьСтрокаПациент.Параметры.Заполнить(ВыборкаПоВрачам);
        ТабДокумент.Вывести(ОбластьСтрокаПациент,1); 
 
        Пока ВыборкаВрач.Следующий() Цикл
            ОбластьСтрока.Параметры.Нпп = Нпп;
            ОбластьСтрока.Параметры.Жалоба = ВыборкаВрач.Жалоба;
            ОбластьСтрока.Параметры.РасшифровкаЖалобы = ВыборкаВрач.Жалоба;
            ОбластьСтрока.Параметры.Проблема = ВыборкаВрач.Проблема;
            ОбластьСтрока.Параметры.Пациент = ВыборкаВрач.Пациент;
            Нпп = Нпп + 1;
            ТабДокумент.Вывести(ОбластьСтрока,2);
        КонецЦикла;
    КонецЦикла;
    ТабДокумент.ЗакончитьАвтогруппировкуСтрок();
КонецПроцедуры
 
Процедура ПриОткрытии()
    
    ЭтаФорма.ЭлементыФормы.АдминистраторРегистратуры.Доступность = ЛОЖЬ;
    Общий = ИСТИНА;
        
КонецПроцедуры
 
Процедура СтатистикаПоМенеджерамПриИзменении(Элемент)
    
    Если СтатистикаПоМенеджерам = ИСТИНА Тогда
        ЭлементыФормы.АдминистраторРегистратуры.Доступность = ИСТИНА Иначе
            ЭлементыФормы.АдминистраторРегистратуры.Доступность = ЛОЖЬ;
        КонецЕсли;
        
КонецПроцедуры
 
Процедура Менеджеры ()
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2016, 14:49
Ответы с готовыми решениями:

Табличный документ - скролл
День добрый, не могу реализовать банальную весчь: есть форма с полем табличного документа, в...

Табличный документ автомасштаб
Здрасти. создал табДок = новый табличный документ. ТабДок.Автомасштаб = Истина; при выводе на...

Вывод отчета в табличный документ
Отчет необходимо реализовать как с использованием системы компоновки данных, так и с программным...

Не выводятся данные в табличный документ
что не так? ТабДок = ЭлементыФормы.ТабДок; Макет = ПолучитьМакет (&quot;Макет&quot;); ОбластьШапка =...

Сохранение формул расчета в табличный документ
Добрый день. В Бухгалтерии Предприятия 3.0 сделана доработка: документ с некой таблицей. В...

2
felicita_091
8 / 8 / 2
Регистрация: 24.10.2012
Сообщений: 429
18.07.2016, 15:04 2
Лучший ответ Сообщение было отмечено philophobia как решение

Решение

philophobia,
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
Процедура КнопкаСформироватьНажатие(Кнопка)
    
    ТабДокумент = ЭлементыФормы.ТабДокумент;    
    ТабДокумент.Очистить();
    ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабДокумент.ПолеСлева = 5;
    ТабДокумент.ПолеСправа = 0;
    ТабДокумент.АвтоМасштаб = Истина;
    ТабДокумент.ТолькоПросмотр = Истина;
    
    Если ТекущаяСтатистика = ИСТИНА Тогда
        ВывестиСтатистику(ТабДокумент);
    КонецЕсли;
    
    Если СтатистикаПоВрачам = ИСТИНА Тогда
        СтатистикаПоВрачам(ТабДокумент);
    КонецЕсли;
    
    Если СтатистикаПоМенеджерам = ИСТИНА Тогда
        Менеджеры();
    КонецЕсли;
    
    Если Общий = ИСТИНА Тогда
        СформироватьОбщийОтчет();
    КонецЕсли;
    
КонецПроцедуры
 
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    
    НачалоПериода = НачалоМесяца(РабочаяДата);
    КонецПериода = КонецМесяца(РабочаяДата);
    
КонецПроцедуры
 
Процедура ВывестиСтатистику(ТабДокумент)
   
    ЗапросСтатистика = Новый Запрос;
    ЗапросСтатистика.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                             |  ОУ_РешенияЖалобСрезПоследних.СтатусЖалобы КАК Статус, 
                             |  КОЛИЧЕСТВО(ОУ_РешенияЖалобСрезПоследних.СтатусЖалобы) * 1 КАК КоличествоЖалоб
                             |ИЗ
                             |  (ВЫБРАТЬ
                             |      МАКСИМУМ(ОУ_РешенияЖалобСрезПоследних.Период) КАК ПоследнееИзменение,
                             |      ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба КАК ДокументЖалоба
                             |  ИЗ
                             |      РегистрСведений.ОУ_РешенияЖалоб.СрезПоследних КАК ОУ_РешенияЖалобСрезПоследних
                             |  
                             |  СГРУППИРОВАТЬ ПО
                             |      ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба) КАК ВложенныйЗапрос
                             |      ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОУ_РешенияЖалоб.СрезПоследних КАК ОУ_РешенияЖалобСрезПоследних
                             |      ПО ВложенныйЗапрос.ПоследнееИзменение = ОУ_РешенияЖалобСрезПоследних.Период";
                    Если ЗначениеЗаполнено(НачалоПериода) И ЗначениеЗаполнено(КонецПериода) И ЗначениеЗаполнено(Филиал) Тогда
                    ЗапросСтатистика.Текст = ЗапросСтатистика.Текст + "
                        |ГДЕ
                        |   ОУ_РешенияЖалобСрезПоследних.Филиал = &Филиал
                        |   И ОУ_РешенияЖалобСрезПоследних.Период МЕЖДУ &НачалоПериода И &КонецПериода";
                    ИначеЕсли ЗначениеЗаполнено(Филиал) И НЕ ЗначениеЗаполнено(НачалоПериода) И НЕ ЗначениеЗаполнено(КонецПериода) Тогда
                    ЗапросСтатистика.Текст = ЗапросСтатистика.Текст + "
                        |ГДЕ
                        |   ОУ_РешенияЖалобСрезПоследних.Филиал = &Филиал";
                    ИначеЕсли НЕ ЗначениеЗаполнено(Филиал) И ЗначениеЗаполнено(НачалоПериода) И ЗначениеЗаполнено(КонецПериода) Тогда
                    ЗапросСтатистика.Текст = ЗапросСтатистика.Текст + "
                        |ГДЕ
                        |   ОУ_РешенияЖалобСрезПоследних.Период МЕЖДУ &НачалоПериода И &КонецПериода";
                    КонецЕсли;
    ЗапросСтатистика.Текст = ЗапросСтатистика.Текст +"
                        |
                        |СГРУППИРОВАТЬ ПО
                        |   ОУ_РешенияЖалобСрезПоследних.СтатусЖалобы";
                        
    ЗапросСтатистика.УстановитьПараметр("НачалоПериода", НачалоПериода);
    ЗапросСтатистика.УстановитьПараметр("КонецПериода", КонецПериода);
    ЗапросСтатистика.УстановитьПараметр("Филиал", Филиал);
            
    ВыборкаСтатистика = ЗапросСтатистика.Выполнить().Выбрать();
    МакетСтатистика = ПолучитьМакет("Статистика");
    
    ОбластьШапкаСтатус = МакетСтатистика.ПолучитьОбласть("ШапкаСтатус");
    ОбластьСтрокаСтатус = МакетСтатистика.ПолучитьОбласть("СтрокаСтатус");
    ОбластьИтогСтатус = МакетСтатистика.ПолучитьОбласть("ИтогСтатус");
    
    Процент = 0;           
    ОбщийПроцент = 100;
    ОбщееКоличество = 0;
    ТабДокумент.Вывести(ОбластьШапкаСтатус);
    Пока ВыборкаСтатистика.Следующий() Цикл
        ОбластьСтрокаСтатус.Параметры.Статус = ВыборкаСтатистика.Статус;
        ОбластьСтрокаСтатус.Параметры.КоличествоЖалоб = ВыборкаСтатистика.КоличествоЖалоб;
        ОбщееКоличество = ОбщееКоличество + ВыборкаСтатистика.КоличествоЖалоб;
        
        ТабДокумент.Вывести(ОбластьСтрокаСтатус);
    КонецЦикла;
    
    ОбластьИтогСтатус.Параметры.ОбщееКоличествоЖалоб = ОбщееКоличество;
    ОбластьИтогСтатус.Параметры.ОбщийПроцент =  ОбщийПроцент;
    ТабДокумент.Вывести(ОбластьИтогСтатус);
КонецПроцедуры  
 
Процедура СтатистикаПоВрачам(ТабДокумент)   
    ЗапросПоВрачам = Новый Запрос;
    ЗапросПоВрачам.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                           |    ВложенныйЗапрос.ДокументЖалоба КАК Жалоба,
                           |    ОУ_РешенияЖалобСрезПоследних.Пациент КАК Пациент,
                           |    ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба.Проблема КАК Проблема,
                           |    ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба.ОбъектЖалобы КАК Сотрудник,
                           |    ОУ_РешенияЖалобСрезПоследних.Филиал
                           |ИЗ
                           |    (ВЫБРАТЬ
                           |        МАКСИМУМ(ОУ_РешенияЖалобСрезПоследних.Период) КАК ПоследнееИзменение,
                           |        ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба КАК ДокументЖалоба
                           |    ИЗ
                           |        РегистрСведений.ОУ_РешенияЖалоб.СрезПоследних КАК ОУ_РешенияЖалобСрезПоследних
                           |    
                           |    СГРУППИРОВАТЬ ПО
                           |        ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба) КАК ВложенныйЗапрос
                           |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОУ_РешенияЖалоб.СрезПоследних(, ) КАК ОУ_РешенияЖалобСрезПоследних
                           |        ПО ВложенныйЗапрос.ПоследнееИзменение = ОУ_РешенияЖалобСрезПоследних.Период";           
                    Если ЗначениеЗаполнено(НачалоПериода) И ЗначениеЗаполнено(КонецПериода) И ЗначениеЗаполнено(Филиал) Тогда
                     ЗапросПоВрачам.Текст = ЗапросПоВрачам.Текст + "
                        |ГДЕ
                        |   ОУ_РешенияЖалобСрезПоследних.Филиал = &Филиал
                        |   И ОУ_РешенияЖалобСрезПоследних.Период МЕЖДУ &НачалоПериода И &КонецПериода
                        |   И ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба.ОбъектЖалобы <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)";
                    ИначеЕсли ЗначениеЗаполнено(Филиал) И НЕ ЗначениеЗаполнено(НачалоПериода) И НЕ ЗначениеЗаполнено(КонецПериода) Тогда
                     ЗапросПоВрачам.Текст = ЗапросПоВрачам.Текст + "
                        |ГДЕ
                        |   ОУ_РешенияЖалобСрезПоследних.Филиал = &Филиал
                        |   И ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба.ОбъектЖалобы <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)";
                    ИначеЕсли НЕ ЗначениеЗаполнено(Филиал) И ЗначениеЗаполнено(НачалоПериода) И ЗначениеЗаполнено(КонецПериода) Тогда
                     ЗапросПоВрачам.Текст = ЗапросПоВрачам.Текст + "
                        |ГДЕ
                        |   ОУ_РешенияЖалобСрезПоследних.Период МЕЖДУ &НачалоПериода И &КонецПериода
                        |   И ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба.ОбъектЖалобы <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)";
                    ИначеЕсли НЕ ЗначениеЗаполнено(Филиал) И НЕ ЗначениеЗаполнено(НачалоПериода) И НЕ ЗначениеЗаполнено(КонецПериода) Тогда
                        ЗапросПоВрачам.Текст = ЗапросПоВрачам.Текст + "
                        |ГДЕ 
                        |   ОУ_РешенияЖалобСрезПоследних.ДокументЖалоба.ОбъектЖалобы <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)";
                    КонецЕсли;
                    ЗапросПоВрачам.Текст = ЗапросПоВрачам.Текст +"
                        |УПОРЯДОЧИТЬ ПО
                        |   Сотрудник
                        |ИТОГИ ПО
                        |   Сотрудник ИЕРАРХИЯ";
                        
    ЗапросПоВрачам.УстановитьПараметр("НачалоПериода", НачалоПериода);
    ЗапросПоВрачам.УстановитьПараметр("КонецПериода", КонецПериода);
    ЗапросПоВрачам.УстановитьПараметр("Филиал", Филиал);
            
    ВыборкаПоВрачам = ЗапросПоВрачам.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    МакетПоВрачам = ПолучитьМакет("СтатистикаПоВрачам");                        
    
    ОбластьШапка = МакетПоВрачам.ПолучитьОбласть("Шапка"); 
    ОбластьСтрока = МакетПоВрачам.ПолучитьОбласть("Строка");
    ОбластьСтрокаПациент = МакетПоВрачам.ПолучитьОбласть("СтрокаПациент");
        
    ТабДокумент.Вывести(ОбластьШапка);
    ТабДокумент.НачатьАвтогруппировкуСтрок();
    Нпп = 1;
        
    Пока ВыборкаПоВрачам.Следующий() Цикл   
                
        ВыборкаВрач = ВыборкаПоВрачам.Выбрать();
        ОбластьСтрокаПациент.Параметры.Заполнить(ВыборкаПоВрачам);
        ТабДокумент.Вывести(ОбластьСтрокаПациент,1); 
 
        Пока ВыборкаВрач.Следующий() Цикл
            ОбластьСтрока.Параметры.Нпп = Нпп;
            ОбластьСтрока.Параметры.Жалоба = ВыборкаВрач.Жалоба;
            ОбластьСтрока.Параметры.РасшифровкаЖалобы = ВыборкаВрач.Жалоба;
            ОбластьСтрока.Параметры.Проблема = ВыборкаВрач.Проблема;
            ОбластьСтрока.Параметры.Пациент = ВыборкаВрач.Пациент;
            Нпп = Нпп + 1;
            ТабДокумент.Вывести(ОбластьСтрока,2);
        КонецЦикла;
    КонецЦикла;
    ТабДокумент.ЗакончитьАвтогруппировкуСтрок();
КонецПроцедуры
 
Процедура ПриОткрытии()
    
    ЭтаФорма.ЭлементыФормы.АдминистраторРегистратуры.Доступность = ЛОЖЬ;
    Общий = ИСТИНА;
        
КонецПроцедуры
 
Процедура СтатистикаПоМенеджерамПриИзменении(Элемент)
    
    Если СтатистикаПоМенеджерам = ИСТИНА Тогда
        ЭлементыФормы.АдминистраторРегистратуры.Доступность = ИСТИНА Иначе
            ЭлементыФормы.АдминистраторРегистратуры.Доступность = ЛОЖЬ;
        КонецЕсли;
        
КонецПроцедуры
1
philophobia
1 / 1 / 3
Регистрация: 16.02.2016
Сообщений: 83
18.07.2016, 15:19  [ТС] 3
felicita_091, сапсибо, разобралась
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2016, 15:19

Как вывести табличный документ на форму?
Управляемая форма, платформа 8.3. Есть реквизит формы &quot;ОборотыСчетаДок&quot; тип ТабличныйДокумент....

Табличный документ печатается с пустыми страницами
Здравствуйте. Вывожу на печать документ в собственной конфигурации 1с 8.3. Команду печати создал...

Табличный Документ
Доброго времени суток проблемка заключается в следующем имеется код Процедура...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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