|
v8: для каких целей используются временные запросы? | ☑ | ||
---|---|---|---|---|
0
Сергей-88
01.09.11
✎
10:39
|
расскажите для каких целей используются временные запросы?
|
|||
1
golden-pack
01.09.11
✎
10:40
|
почитать не але ?
|
|||
2
butterbean
01.09.11
✎
10:40
|
а что это такое??
|
|||
3
Grusswelle
01.09.11
✎
10:40
|
Нет ничего более постоянного, чем временное.
Телепатирую: вероятно, речь идёт о временных таблицах в запросах? |
|||
4
zak555
01.09.11
✎
10:40
|
может временные таблицы ?
|
|||
5
golden-pack
01.09.11
✎
10:40
|
(4) кэп )
|
|||
6
Сергей-88
01.09.11
✎
10:42
|
да
|
|||
7
Wobland
01.09.11
✎
10:42
|
(2) ну вот захотел я, скажем, получить все группы из номенклатуры и показать в отчёте. создаю запрос. временно, временно(!), вывожу его данные. всё, запрос больше не нужен
|
|||
8
Ненавижу 1С
гуру
01.09.11
✎
10:43
|
мне нравятся пакетные
|
|||
9
Defender aka LINN
01.09.11
✎
10:43
|
(6) Ctrl+Shift+F -> "ПОМЕСТИТЬ".
И сразу увидишь, для каких целей они используются. |
|||
10
Defender aka LINN
01.09.11
✎
10:44
|
(7) А что есть постоянный запрос в таком случае? :)
|
|||
11
Дикообразко
01.09.11
✎
10:44
|
(8) ты известный извращенец
|
|||
12
Wobland
01.09.11
✎
10:46
|
(10) а постоянный запрос нужен постоянно. есть у меня один про остатки товаров ;)
|
|||
13
Ненавижу 1С
гуру
01.09.11
✎
10:47
|
(11) обоснуй, колючий
|
|||
14
Сергей-88
01.09.11
✎
10:51
|
мне кажется он нужен если запрос сложный, и нужно выбрать данные из уже какого то запроса, а про остатки и группы, да это проще обычным сделать. я разве не прав?
|
|||
15
Ненавижу 1С
гуру
01.09.11
✎
10:52
|
(14) если подзапрос используется более одного раза
да, если сложная логика проще разбить |
|||
16
dmpl
01.09.11
✎
10:52
|
(0) Временные таблицы нужны 1) для упрощения понимания логики запроса и 2) для ускорения исполнения запроса при неоднократном использовании данных временных таблиц и 3) для выборки данных в запрос, когда источником данных является таблица значений. Если же речь идет о менеджере временных таблиц - то основное его использование - получение нескольких результатов запроса (разное форматирование и группировки или отборы) с использованием одних и тех же исходных данных (которые во временных таблицах лежат).
|
|||
17
Stim213
01.09.11
✎
10:53
|
Постоянство запросов- это извечно больная тема.
|
|||
18
IamAlexy
01.09.11
✎
10:53
|
(14) ага.. жутко радует в типовых вставки в запросы типа " + частьзапросапоуслугам + " :) :) :)
вроде и запрос не сложный (в той же ЗУПе в 100000 раз сложнее и больше запросы) а однако надо же - пейсатель печатных форм плин запрос по услугам выносит отдельно... ну не баран ли? |
|||
19
Сергей-88
01.09.11
✎
10:54
|
стоп, временные таблицы запросов и менеджер временных таблиц что разные вещи???
|
|||
20
mzelensky
01.09.11
✎
10:54
|
(14) удобно если одни и теже данные являются составной частью РАЗНЫХ запросов. По Примеру из (7) скажем нужны тебе номенклатурные группы опрекделенные...при этом нужны в одном запросе и потом чуть позже (позже по коду) в еще одном...вот тогда удобно сформировать эту временную таблицу 1 раз, а потом использовать уже готовые данные в 2 разных запросах...
но я поддерживаю (8) |
|||
21
dmpl
01.09.11
✎
10:55
|
(19) А то. Пакетный запрос (это набор временных таблиц + основной запрос) можно выполнять без менеджера временных таблиц.
|
|||
22
Escander
01.09.11
✎
10:55
|
(19)разные, временные таблицы могут прямо внутри запроса уничтожаться а могут быть переданы и далее неоднократно быть использованы
|
|||
23
mzelensky
01.09.11
✎
10:56
|
(16) первое вычеркни - нифига они не упрощают!
Например выборка во временную находится в одном месте, а потом работа с ней через 200 строк кода...или вообще в другой процедуре - и где тут удобство??? |
|||
24
Ненавижу 1С
гуру
01.09.11
✎
10:56
|
(23) в пакетном упрощают
|
|||
25
mzelensky
01.09.11
✎
10:57
|
(24) в пакетном однозначно!
|
|||
26
dmpl
01.09.11
✎
10:57
|
(23) А какая разница - листать 200 строк вверх (для поиска временной таблицы) или вниз (для поиска подзапроса, из которого выбираются данные)? Зато когда в виде ВТ запрос легче исправить.
|
|||
27
mzelensky
01.09.11
✎
11:00
|
тут уже наверное речь больше идет о стилях программирования...каждый делает так, как ему удобно!
|
|||
28
Сергей-88
01.09.11
✎
11:00
|
а что тогда такое пакетные запросы??
|
|||
29
Ненавижу 1С
гуру
01.09.11
✎
11:02
|
(28) использование временных запросов в одном тексте с основным
http://www.nastroy-ka.ru/mgeneral/14--1.html |
|||
30
Поручик
01.09.11
✎
11:02
|
(28) Запросы в пакете.
|
|||
31
Поручик
01.09.11
✎
11:03
|
(28) Дятел. Учу работать с гуглом. Дорого.
http://www.google.ru/search?q=%F7%F2%EE%20%F2%E0%EA%EE%E5%20%EF%E0%EA%E5%F2%ED%FB%E5%20%E7%E0%EF%F0%EE%F1%FB |
|||
32
Сергей-88
01.09.11
✎
11:10
|
суть временных - помещают запрос в таблицу, суть пакетных-помещают запрос в таблицу. а разница то какая???
|
|||
33
Сергей-88
01.09.11
✎
11:11
|
Запрос = Новый Запрос;
Запрос.Текст = " |ВЫБРАТЬ | Номенклатура, СУММА(Количество) КАК Количество |ПОМЕСТИТЬ ДокТЧ |
|||
34
Сергей-88
01.09.11
✎
11:11
|
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МВТ; Запрос.Текст = " |ВЫБРАТЬ | Номенклатура, СУММА(Количество) КАК Количество |ПОМЕСТИТЬ ДокТЧ |
|||
35
dmpl
01.09.11
✎
11:12
|
(32) Временные таблицы можно использовать с другим текстом запроса. В пакетном режиме после выполнения запроса все временные таблицы уничтожаются.
|
|||
36
Сергей-88
01.09.11
✎
11:12
|
2 одинаковых
|
|||
37
Сергей-88
01.09.11
✎
11:13
|
с другим это каким? вроде я сейчас смотрю на пакетный запрос и он используется сначало в одном месте а потом в другом запросе
|
|||
38
dmpl
01.09.11
✎
11:22
|
(37) Например
1-й запрос получает суммы и надбавки:
Второй запрос получает список надбавок (для формирования списка колонок):
В итоге, у нас есть 2 результата запроса: в одном только список надбавок, в другом - суммы по надбавкам и регистраторам. Можно и еще 2 результата получить - суммы по регистраторам и суммы по надбавкам. А запрос к БД происходил всего 1 раз (это же, кстати, гарантирует, что цифры во всех запросах будут одинаковые. |
|||
39
Сергей-88
01.09.11
✎
11:31
|
а как потом получить данные допустим из запроса первого?
|
|||
40
Escander
01.09.11
✎
11:39
|
(39)результат работы пакетного запроса - объект типа "РезультатЗапроса". Т.е. выборка самого последнего в пакете запроса/объединения запросов. Что-бы сохранить временные таблицы - используйте МенеждерВеремнныхТаблиц. В СП как-бэ изложено.
|
|||
41
Сергей-88
01.09.11
✎
11:40
|
Escander у тебя стаж 10 мес и ты уже все выучил. офигеть
|
|||
42
dmpl
01.09.11
✎
11:41
|
(39)
При использовании менеджера временных таблиц:
С пакетным запросом такое не пройдет. |
|||
43
amiko
01.09.11
✎
11:47
|
(41) давно ли период регистрации на мисте стал коррелировать со стажем работы с 1С?
а по сабжу: теория баз данных, или в институтах уже этому не учат? |
|||
44
Сергей-88
01.09.11
✎
11:50
|
amiko а где можно почитать про теорию базы данных?
|
|||
45
Поручик
01.09.11
✎
11:52
|
(44) Ещё раз (31)
http://www.google.ru/search?&q=теория баз данных |
|||
46
Поручик
01.09.11
✎
11:53
|
||||
47
Сергей-88
01.09.11
✎
12:08
|
ни фига себе теория))
|
|||
48
ptiz
01.09.11
✎
12:12
|
(0) Найди в ЗУПе функцию ДанныеОВзносахПоКатегориям и посмотри в ней текст запроса.
Потом подумай, как бы он выглядел без временных таблиц. А ведь такое было в ЗУП времен 8.0.... какие там запросы красивые были :) |
|||
49
Сергей-88
01.09.11
✎
12:14
|
ptiz можешь сюда код кинуть ее? нету ЗУПА
|
|||
50
ptiz
01.09.11
✎
12:16
|
Функция ДанныеОВзносахПоКатегориям(ДатаАктуальности, ПервыйОтчетныйПериод, ПоследнийОтчетныйПериод, Организация, МассивФизлиц = Неопределено, КомментироватьРасчет = Ложь, ДанныеКомментирования = Неопределено) Экспорт
Если КомментироватьРасчет Тогда // инициализируем данные комментария ДанныеКомментирования = Новый Структура("РаспределениеСУчетомПринятыхПФРДанных, РасчетКоэффициентовСтраховая, РасчетКоэффициентовНакопительная, ПрошлыеПериоды, Итоги, РасчетСотрудников, Переплаты", Ложь, Новый ТаблицаЗначений, Новый ТаблицаЗначений, Новый ТаблицаЗначений, Новый ТаблицаЗначений, Новый ТаблицаЗначений, Новый ТаблицаЗначений); КонецЕсли; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; ПроцедурыПерсонифицированногоУчета.ПоместитьВМенеджерСоответствиеТарифаКатегории(Запрос.МенеджерВременныхТаблиц); Запрос.УстановитьПараметр("ДатаЗаменыЕСН", ПроведениеРасчетов.ДатаЗаменыЕСНСтраховымиВзносами()); Запрос.УстановитьПараметр("ОтчетныйПериод", ПервыйОтчетныйПериод); Запрос.УстановитьПараметр("ОтчетныйГод", Год(ПервыйОтчетныйПериод)); Запрос.УстановитьПараметр("КонецОтчетногоПериода", ПроцедурыПерсонифицированногоУчета.ОкончаниеОтчетногоПериодаПерсучета(ПервыйОтчетныйПериод)); Запрос.УстановитьПараметр("ДатаАктуальности", ДатаАктуальности); Запрос.УстановитьПараметр("КонецПериодаУплаты", Мин(ДатаАктуальности, ПроцедурыПерсонифицированногоУчета.ОкончаниеОтчетногоПериодаПерсучета(ПервыйОтчетныйПериод))); Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("ГоловнаяОрганизация", ОбщегоНазначения.ГоловнаяОрганизация(Организация)); Запрос.УстановитьПараметр("ДатаНовойРедакцииЗакона212", ПроведениеРасчетов.ДатаРасширенияПеречняЛьготныхТарифовСтраховыхВзносов()); Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | СведенияПринятыеПФР.КомплектДокументов |ПОМЕСТИТЬ ВТПринятоВПФР |ИЗ | РегистрСведений.СведенияПринятыеПФР КАК СведенияПринятыеПФР |ГДЕ | СведенияПринятыеПФР.КомплектДокументов <> ЗНАЧЕНИЕ(Документ.ПередачаСЗВ4вПФР.ПустаяСсылка) | И СведенияПринятыеПФР.Организация = &Организация | И СведенияПринятыеПФР.ОтчетныйПериодПерсучетаПФР < &ОтчетныйПериод"; Если Запрос.Выполнить().Выгрузить()[0].Количество = 0 Тогда // это первый вариант алгоритма Запрос.УстановитьПараметр("НеОтбиратьФизлиц", Не ЗначениеЗаполнено(МассивФизлиц)); Если МассивФизлиц = Неопределено Тогда МассивФизлиц = Новый Массив; КонецЕсли; Запрос.УстановитьПараметр("МассивФизлиц", МассивФизлиц); Запрос.Текст = "ВЫБРАТЬ | МИНИМУМ(УплатаСтраховыхВзносов.ОтчетныйПериодПерсучетаПФР) КАК НачалоРасчетногоПериода |ИЗ | РегистрНакопления.РасчетыПоСтраховымВзносам КАК УплатаСтраховыхВзносов |ГДЕ | УплатаСтраховыхВзносов.Период МЕЖДУ &ОтчетныйПериод И &КонецПериодаУплаты | И УплатаСтраховыхВзносов.ОтчетныйПериодПерсучетаПФР >= &ДатаЗаменыЕСН | И УплатаСтраховыхВзносов.Организация = &Организация | И УплатаСтраховыхВзносов.ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.ВидыПлатежейВГосБюджет.Налог) | И (УплатаСтраховыхВзносов.ПФРСтраховая <> 0 | ИЛИ УплатаСтраховыхВзносов.ПФРНакопительная <> 0) | И УплатаСтраховыхВзносов.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)"; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() и ЗначениеЗаполнено(Выборка.НачалоРасчетногоПериода) Тогда Запрос.УстановитьПараметр("НачалоПериодаУплаты", ?(Выборка.НачалоРасчетногоПериода > ПервыйОтчетныйПериод, ПервыйОтчетныйПериод, Выборка.НачалоРасчетногоПериода)); Иначе Запрос.УстановитьПараметр("НачалоПериодаУплаты", ПервыйОтчетныйПериод); КонецЕсли; Запрос.Текст = "ВЫБРАТЬ | ФизическиеЛица.Ссылка КАК ФизЛицо |ПОМЕСТИТЬ ВТФизЛица |ИЗ | Справочник.ФизическиеЛица КАК ФизическиеЛица |ГДЕ | ФизическиеЛица.Ссылка В(&МассивФизлиц) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СтраховыеВзносыИсчисленныеОбороты.ФизЛицо КАК ФизЛицо, | СтраховыеВзносыИсчисленныеОбороты.Период КАК МесяцОтчетногоПериода, | КОНЕЦПЕРИОДА(СтраховыеВзносыИсчисленныеОбороты.Период, МЕСЯЦ) КАК Период, | ВЫБОР | КОГДА СтраховыеВзносыИсчисленныеОбороты.Период < ДАТАВРЕМЯ(2010, 7, 1, 0, 0, 0) | ТОГДА ДАТАВРЕМЯ(2010, 1, 1, 0, 0, 0) | КОГДА СтраховыеВзносыИсчисленныеОбороты.Период < ДАТАВРЕМЯ(2011, 1, 1, 0, 0, 0) | ТОГДА ДАТАВРЕМЯ(2010, 7, 1, 0, 0, 0) | ИНАЧЕ НАЧАЛОПЕРИОДА(СтраховыеВзносыИсчисленныеОбороты.Период, КВАРТАЛ) | КОНЕЦ КАК ОтчетныйПериод, | СтраховыеВзносыИсчисленныеОбороты.ПФРСтраховаяОборот + ВЫБОР | КОГДА СтраховыеВзносыИсчисленныеОбороты.Период < &ДатаНовойРедакцииЗакона212 | ТОГДА 0 | ИНАЧЕ СтраховыеВзносыИсчисленныеОбороты.ПФРСтраховаяЕНВДОборот | КОНЕЦ КАК ПФРСтраховаяОборот, | СтраховыеВзносыИсчисленныеОбороты.ПФРНакопительнаяОборот + ВЫБОР | КОГДА СтраховыеВзносыИсчисленныеОбороты.Период < &ДатаНовойРедакцииЗакона212 | ТОГДА 0 | ИНАЧЕ СтраховыеВзносыИсчисленныеОбороты.ПФРНакопительнаяЕНВДОборот | КОНЕЦ КАК ПФРНакопительнаяОборот, | ВЫБОР | КОГДА СтраховыеВзносыИсчисленныеОбороты.Период < &ДатаНовойРедакцииЗакона212 | ТОГДА СтраховыеВзносыИсчисленныеОбороты.ПФРСтраховаяЕНВДОборот | ИНАЧЕ 0 | КОНЕЦ КАК ПФРСтраховаяЕНВДОборот, | ВЫБОР | КОГДА СтраховыеВзносыИсчисленныеОбороты.Период < &ДатаНовойРедакцииЗакона212 | ТОГДА СтраховыеВзносыИсчисленныеОбороты.ПФРНакопительнаяЕНВДОборот | ИНАЧЕ 0 | КОНЕЦ КАК ПФРНакопительнаяЕНВДОборот |ПОМЕСТИТЬ ВТИсчисленоПоЗЛ |ИЗ | РегистрНакопления.СтраховыеВзносыИсчисленные.Обороты( | &НачалоПериодаУплаты, | &КонецОтчетногоПериода, | Месяц, | ОбособленноеПодразделение = &Организация | И (&НеОтбиратьФизлиц | ИЛИ ФизЛицо В | (ВЫБРАТЬ | ФизЛица.ФизЛицо | ИЗ | ВТФизЛица КАК ФизЛица))) КАК СтраховыеВзносыИсчисленныеОбороты | |ИНДЕКСИРОВАТЬ ПО | ФизЛицо |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СрезПоследнихДат.МесяцОтчетногоПериода, | СрезПоследнихДат.Физлицо КАК Физлицо |ПОМЕСТИТЬ ВТИнвалиды |ИЗ | (ВЫБРАТЬ | Периоды.МесяцОтчетногоПериода КАК МесяцОтчетногоПериода, | Периоды.ФизЛицо КАК Физлицо, | МАКСИМУМ(СведенияОбИнвалидностиФизлиц.Период) КАК Период | ИЗ | ВТИсчисленоПоЗЛ КАК Периоды | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОбИнвалидностиФизлиц КАК СведенияОбИнвалидностиФизлиц | ПО Периоды.Период >= СведенияОбИнвалидностиФизлиц.Период | И Периоды.ФизЛицо = СведенияОбИнвалидностиФизлиц.Физлицо | | СГРУППИРОВАТЬ ПО | Периоды.ФизЛицо, | Периоды.МесяцОтчетногоПериода) КАК СрезПоследнихДат | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОбИнвалидностиФизлиц КАК СведенияОбИнвалидностиФизлиц | ПО СрезПоследнихДат.Период = СведенияОбИнвалидностиФизлиц.Период | И СрезПоследнихДат.Физлицо = СведенияОбИнвалидностиФизлиц.Физлицо |ГДЕ | СведенияОбИнвалидностиФизлиц.Инвалидность | |ИНДЕКСИРОВАТЬ ПО | Физлицо, | СрезПоследнихДат.МесяцОтчетногоПериода |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | Периоды.МесяцОтчетногоПериода, | ЕСТЬNULL(УчетнаяПолитикаНалоговыйУчет.ВидТарифаСтраховыхВзносов, ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОбщийНалоговыйРежим)) КАК ВидТарифаСтраховыхВзносов |ПОМЕСТИТЬ ВТВидыТарифныхСтавокОрганизаций |ИЗ | (ВЫБРАТЬ | Периоды.МесяцОтчетногоПериода КАК МесяцОтчетногоПериода, | УчетнаяПолитикаНалоговыйУчет.Организация КАК Организация, | МАКСИМУМ(УчетнаяПолитикаНалоговыйУчет.Период) КАК ПериодРегистра | ИЗ | ВТИсчисленоПоЗЛ КАК Периоды | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаНалоговыйУчет КАК УчетнаяПолитикаНалоговыйУчет | ПО Периоды.Период >= УчетнаяПолитикаНалоговыйУчет.Период | И (УчетнаяПолитикаНалоговыйУчет.Организация = &ГоловнаяОрганизация) | | СГРУППИРОВАТЬ ПО | Периоды.МесяцОтчетногоПериода, | УчетнаяПолитикаНалоговыйУчет.Организация) КАК Периоды | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаНалоговыйУчет КАК УчетнаяПолитикаНалоговыйУчет | ПО Периоды.ПериодРегистра = УчетнаяПолитикаНалоговыйУчет.Период | И Периоды.Организация = УчетнаяПолитикаНалоговыйУчет.Организация | |ИНДЕКСИРОВАТЬ ПО | Периоды.МесяцОтчетногоПериода |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СУММА(РасчетыПоСтраховымВзносамОбороты.ПФРСтраховаяПриход) КАК ПФРСтраховаяПриход, | СУММА(РасчетыПоСтраховымВзносамОбороты.ПФРНакопительнаяПриход) КАК ПФРНакопительнаяПриход, | РасчетыПоСтраховымВзносамОбороты.ОтчетныйПериодПерсучетаПФР КАК ОтчетныйПериод |ПОМЕСТИТЬ ВТВсегоНачислено |ИЗ | РегистрНакопления.РасчетыПоСтраховымВзносам.Обороты( | , | &ДатаАктуальности, | , | ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.ВидыПлатежейВГосБюджет.Налог) | И Организация = &Организация | И (ОтчетныйПериодПерсучетаПФР МЕЖДУ &НачалоПериодаУплаты И &КонецОтчетногоПериода)) КАК РасчетыПоСтраховымВзносамОбороты | |СГРУППИРОВАТЬ ПО | РасчетыПоСтраховымВзносамОбороты.ОтчетныйПериодПерсучетаПФР | |ИНДЕКСИРОВАТЬ ПО | ОтчетныйПериод |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СУММА(РасчетыПоСтраховымВзносамОбороты.ПФРСтраховаяРасход) КАК ПФРСтраховаяРасход, | СУММА(РасчетыПоСтраховымВзносамОбороты.ПФРНакопительнаяРасход) КАК ПФРНакопительнаяРасход, | РасчетыПоСтраховымВзносамОбороты.ОтчетныйПериодПерсучетаПФР КАК ОтчетныйПериод, | ВЫБОР | КОГДА РасчетыПоСтраховымВзносамОбороты.Период >= РасчетыПоСтраховымВзносамОбороты.МесяцРасчетногоПериода | ТОГДА ВЫБОР | КОГДА РасчетыПоСтраховымВзносамОбороты.Период < ДАТАВРЕМЯ(2010, 7, 1, 0, 0, 0) | ТОГДА ДАТАВРЕМЯ(2010, 1, 1, 0, 0, 0) | КОГДА РасчетыПоСтраховымВзносамОбороты.Период < ДАТАВРЕМЯ(2011, 1, 1, 0, 0, 0) | ТОГДА ДАТАВРЕМЯ(2010, 7, 1, 0, 0, 0) | ИНАЧЕ НАЧАЛОПЕРИОДА(РасчетыПоСтраховымВзносамОбороты.Период, КВАРТАЛ) | КОНЕЦ | ИНАЧЕ РасчетыПоСтраховымВзносамОбороты.ОтчетныйПериодПерсучетаПФР | КОНЕЦ КАК ОтчетныйПериодФормирования |ПОМЕСТИТЬ ВТВсегоУплачено |ИЗ | РегистрНакопления.РасчетыПоСтраховымВзносам.Обороты( | , | &КонецПериодаУплаты, | Месяц, | ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.ВидыПлатежейВГосБюджет.Налог) | И ОтчетныйПериодПерсучетаПФР >= &ДатаЗаменыЕСН | И Организация = &Организация) КАК РасчетыПоСтраховымВзносамОбороты | |СГРУППИРОВАТЬ ПО | РасчетыПоСтраховымВзносамОбороты.ОтчетныйПериодПерсучетаПФР, | ВЫБОР | КОГДА РасчетыПоСтраховымВзносамОбороты.Период >= РасчетыПоСтраховымВзносамОбороты.МесяцРасчетногоПериода | ТОГДА ВЫБОР | КОГДА РасчетыПоСтраховымВзносамОбороты.Период < ДАТАВРЕМЯ(2010, 7, 1, 0, 0, 0) | ТОГДА ДАТАВРЕМЯ(2010, 1, 1, 0, 0, 0) | КОГДА РасчетыПоСтраховымВзносамОбороты.Период < ДАТАВРЕМЯ(2011, 1, 1, 0, 0, 0) | ТОГДА ДАТАВРЕМЯ(2010, 7, 1, 0, 0, 0) | ИНАЧЕ НАЧАЛОПЕРИОДА(РасчетыПоСтраховымВзносамОбороты.Период, КВАРТАЛ) | КОНЕЦ | ИНАЧЕ РасчетыПоСтраховымВзносамОбороты.ОтчетныйПериодПерсучетаПФР | КОНЕЦ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ИсчисленоПоЗЛ.ФизЛицо КАК ФизЛицо, | ИсчисленоПоЗЛ.ПФРНакопительнаяОборот КАК ПФРНакопительнаяОборот, | ИсчисленоПоЗЛ.ПФРСтраховаяОборот КАК ПФРСтраховаяОборот, | ИсчисленоПоЗЛ.ОтчетныйПериод КАК ОтчетныйПериод, | ИсчисленоПоЗЛ.МесяцОтчетногоПериода КАК МесяцОтчетногоПериода, | ВЫБОР | КОГДА Инвалиды.Физлицо ЕСТЬ НЕ NULL | ТОГДА ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОрганизацияИнвалидов) | ИНАЧЕ ВидыТарифныхСтавокОрганизаций.ВидТарифаСтраховыхВзносов | КОНЕЦ КАК ВидТарифаСтраховыхВзносов |ПОМЕСТИТЬ ВТИсчисленоПоЗЛпоВидамТарифа |ИЗ | ВТИсчисленоПоЗЛ КАК ИсчисленоПоЗЛ | ЛЕВОЕ СОЕДИНЕНИЕ ВТИнвалиды КАК Инвалиды | ПО ИсчисленоПоЗЛ.ФизЛицо = Инвалиды.Физлицо | И ИсчисленоПоЗЛ.МесяцОтчетногоПериода = Инвалиды.МесяцОтчетногоПериода | ЛЕВОЕ СОЕДИНЕНИЕ ВТВидыТарифныхСтавокОрганизаций КАК ВидыТарифныхСтавокОрганизаций | ПО ИсчисленоПоЗЛ.МесяцОтчетногоПериода = ВидыТарифныхСтавокОрганизаций.МесяцОтчетногоПериода | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ИсчисленоПоЗЛ.ФизЛицо, | ИсчисленоПоЗЛ.ПФРНакопительнаяЕНВДОборот, | ИсчисленоПоЗЛ.ПФРСтраховаяЕНВДОборот, | ИсчисленоПоЗЛ.ОтчетныйПериод, | ИсчисленоПоЗЛ.МесяцОтчетногоПериода, | ВЫБОР | КОГДА Инвалиды.Физлицо ЕСТЬ НЕ NULL | ТОГДА ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОрганизацияИнвалидов) | ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ЕНВД) | КОНЕЦ |ИЗ | ВТИсчисленоПоЗЛ КАК ИсчисленоПоЗЛ | ЛЕВОЕ СОЕДИНЕНИЕ ВТИнвалиды КАК Инвалиды | ПО ИсчисленоПоЗЛ.ФизЛицо = Инвалиды.Физлицо | И ИсчисленоПоЗЛ.МесяцОтчетногоПериода = Инвалиды.МесяцОтчетногоПериода | |ИНДЕКСИРОВАТЬ ПО | ФизЛицо |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВсегоУплачено.ОтчетныйПериодФормирования КАК ОтчетныйПериодФормирования, | ВсегоУплачено.ОтчетныйПериод КАК ОтчетныйПериод, | ВсегоНачислено.ПФРСтраховаяПриход, | ВсегоНачислено.ПФРНакопительнаяПриход, | ВсегоУплачено.ПФРСтраховаяРасход, | ВсегоУплачено.ПФРНакопительнаяРасход |ПОМЕСТИТЬ ВТНачисленоУплаченоПоПериодам |ИЗ | ВТВсегоУплачено КАК ВсегоУплачено | ЛЕВОЕ СОЕДИНЕНИЕ ВТВсегоНачислено КАК ВсегоНачислено | ПО ВсегоУплачено.ОтчетныйПериод = ВсегоНачислено.ОтчетныйПериод | |ИНДЕКСИРОВАТЬ ПО | ОтчетныйПериодФормирования, | ОтчетныйПериод |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | УплатаПоПериодам.ОтчетныйПериод, | УплатаПоПериодам.ОтчетныйПериодФормирования, | СУММА(ЕСТЬNULL(УплатаВПредыдущихПериодах.ПФРНакопительнаяРасход, 0)) КАК ПФРНакопительнаяРасход, | СУММА(ЕСТЬNULL(УплатаВПредыдущихПериодах.ПФРСтраховаяРасход, 0)) КАК ПФРСтраховаяРасход, | ВЫБОР | КОГДА ЕСТЬNULL(УплатаПоПериодам.ПФРНакопительнаяПриход, 0) = 0 | ТОГДА 0 | КОГДА (ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(УплатаВПредыдущихПериодах.ПФРНакопительнаяРасход, 0)) / ЕСТЬNULL(УплатаПоПериодам.ПФРНакопительнаяПриход, 0) КАК ЧИСЛО(15, 10))) > 1 | ТОГДА 1 | ИНАЧЕ ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(УплатаВПредыдущихПериодах.ПФРНакопительнаяРасход, 0)) / ЕСТЬNULL(УплатаПоПериодам.ПФРНакопительнаяПриход, 0) КАК ЧИСЛО(15, 10)) | КОНЕЦ КАК КоэффициентУплатыНакопительная, | ВЫБОР | КОГДА ЕСТЬNULL(УплатаПоПериодам.ПФРСтраховаяПриход, 0) = 0 | ТОГДА 0 | КОГДА (ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(УплатаВПредыдущихПериодах.ПФРСтраховаяРасход, 0)) / ЕСТЬNULL(УплатаПоПериодам.ПФРСтраховаяПриход, 0) КАК ЧИСЛО(15, 10))) > 1 | ТОГДА 1 | ИНАЧЕ ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(УплатаВПредыдущихПериодах.ПФРСтраховаяРасход, 0)) / ЕСТЬNULL(УплатаПоПериодам.ПФРСтраховаяПриход, 0) КАК ЧИСЛО(15, 10)) | КОНЕЦ КАК КоэффициентУплатыСтраховая |ПОМЕСТИТЬ ВТУплаченоРанее |ИЗ | ВТНачисленоУплаченоПоПериодам КАК УплатаПоПериодам | ЛЕВОЕ СОЕДИНЕНИЕ ВТНачисленоУплаченоПоПериодам КАК УплатаВПредыдущихПериодах | ПО УплатаПоПериодам.ОтчетныйПериод = УплатаВПредыдущихПериодах.ОтчетныйПериод | И УплатаПоПериодам.ОтчетныйПериодФормирования > УплатаВПредыдущихПериодах.ОтчетныйПериодФормирования | |СГРУППИРОВАТЬ ПО | УплатаПоПериодам.ПФРНакопительнаяПриход, | УплатаПоПериодам.ПФРСтраховаяПриход, | УплатаПоПериодам.ОтчетныйПериодФормирования, | УплатаПоПериодам.ОтчетныйПериод |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Периоды.ОтчетныйПериод КАК ОтчетныйПериод, | ВЫБОР | КОГДА ЕСТЬNULL(Периоды.ПФРНакопительнаяПриход, 0) = 0 | ТОГДА 0 | КОГДА (ВЫРАЗИТЬ(ЕСТЬNULL(Периоды.ПФРНакопительнаяРасход, 0) / (ВЫРАЗИТЬ(ЕСТЬNULL(Периоды.ПФРНакопительнаяПриход, 0) КАК ЧИСЛО(25, 10))) КАК ЧИСЛО(15, 10))) > 1 - БылоУплачено.КоэффициентУплатыНакопительная | ТОГДА 1 - БылоУплачено.КоэффициентУплатыНакопительная | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(Периоды.ПФРНакопительнаяРасход, 0) / (ВЫРАЗИТЬ(ЕСТЬNULL(Периоды.ПФРНакопительнаяПриход, 0) КАК ЧИСЛО(25, 10))) КАК ЧИСЛО(15, 10)) | КОНЕЦ КАК КоэффициентУплатыНакопительная, | ВЫБОР | КОГДА ЕСТЬNULL(Периоды.ПФРСтраховаяПриход, 0) = 0 | ТОГДА 0 | КОГДА (ВЫРАЗИТЬ(ЕСТЬNULL(Периоды.ПФРСтраховаяРасход, 0) / (ВЫРАЗИТЬ(ЕСТЬNULL(Периоды.ПФРСтраховаяПриход, 0) КАК ЧИСЛО(25, 10))) КАК ЧИСЛО(15, 10))) > 1 - БылоУплачено.КоэффициентУплатыСтраховая | ТОГДА 1 - БылоУплачено.КоэффициентУплатыСтраховая | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(Периоды.ПФРСтраховаяРасход, 0) / (ВЫРАЗИТЬ(ЕСТЬNULL(Периоды.ПФРСтраховаяПриход, 0) КАК ЧИСЛО(25, 10))) КАК ЧИСЛО(15, 10)) | КОНЕЦ КАК КоэффициентУплатыСтраховая |ПОМЕСТИТЬ ВТКоэффициентыУплаты |ИЗ | ВТНачисленоУплаченоПоПериодам КАК Периоды | ЛЕВОЕ СОЕДИНЕНИЕ ВТУплаченоРанее КАК БылоУплачено | ПО Периоды.ОтчетныйПериодФормирования = БылоУплачено.ОтчетныйПериодФормирования | И Периоды.ОтчетныйПериод = БылоУплачено.ОтчетныйПериод |ГДЕ | Периоды.ОтчетныйПериодФормирования = &ОтчетныйПериод |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | КоэффициентыУплаты.ОтчетныйПериод, | КоэффициентыУплаты.КоэффициентУплатыНакопительная, | КоэффициентыУплаты.КоэффициентУплатыСтраховая, | ИсчисленоПоЗЛ.ФизЛицо, | СоответствиеТарифаКатегории.КатегорияЗастрахованныхЛиц, | СУММА(ИсчисленоПоЗЛ.ПФРСтраховаяОборот) КАК ПФРСтраховаяОборот, | СУММА(ИсчисленоПоЗЛ.ПФРНакопительнаяОборот) КАК ПФРНакопительнаяОборот |ПОМЕСТИТЬ ВТРасчетУплаты |ИЗ | ВТКоэффициентыУплаты КАК КоэффициентыУплаты | ЛЕВОЕ СОЕДИНЕНИЕ ВТИсчисленоПоЗЛпоВидамТарифа КАК ИсчисленоПоЗЛ | ПО КоэффициентыУплаты.ОтчетныйПериод = ИсчисленоПоЗЛ.ОтчетныйПериод | ЛЕВОЕ СОЕДИНЕНИЕ ВТСоответствиеТарифаКатегории КАК СоответствиеТарифаКатегории | ПО (&ОтчетныйГод МЕЖДУ СоответствиеТарифаКатегории.ГодС И СоответствиеТарифаКатегории.ГодПо) | И (ИсчисленоПоЗЛ.ВидТарифаСтраховыхВзносов = СоответствиеТарифаКатегории.ВидТарифаСтраховыхВзносов) |ГДЕ | ИсчисленоПоЗЛ.ФизЛицо ЕСТЬ НЕ NULL | И (КоэффициентыУплаты.КоэффициентУплатыНакопительная <> 0 | ИЛИ КоэффициентыУплаты.КоэффициентУплатыСтраховая <> 0) | |СГРУППИРОВАТЬ ПО | ИсчисленоПоЗЛ.ФизЛицо, | СоответствиеТарифаКатегории.КатегорияЗастрахованныхЛиц, | КоэффициентыУплаты.ОтчетныйПериод, | КоэффициентыУплаты.КоэффициентУплатыНакопительная, | КоэффициентыУплаты.КоэффициентУплатыСтраховая |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ИсчисленоЗаПериодФормирования.ФизЛицо КАК ФизЛицо, | СоответствиеТарифаКатегории.КатегорияЗастрахованныхЛиц КАК КатегорияЗастрахованныхЛиц, | ИсчисленоЗаПериодФормирования.ПФРНакопительнаяОборот КАК НачисленоНакопительная, | ИсчисленоЗаПериодФормирования.ПФРСтраховаяОборот КАК НачисленоСтраховая, | 0 КАК УплаченоСтраховая, | 0 КАК УплаченоНакопительная, | ИсчисленоЗаПериодФормирования.ОтчетныйПериод КАК ОтчетныйПериод |ПОМЕСТИТЬ ВТРасчетСумм |ИЗ | ВТИсчисленоПоЗЛпоВидамТарифа КАК ИсчисленоЗаПериодФормирования | ЛЕВОЕ СОЕДИНЕНИЕ ВТСоответствиеТарифаКатегории КАК СоответствиеТарифаКатегории | ПО (&ОтчетныйГод МЕЖДУ СоответствиеТарифаКатегории.ГодС И СоответствиеТарифаКатегории.ГодПо) | И ИсчисленоЗаПериодФормирования.ВидТарифаСтраховыхВзносов = СоответствиеТарифаКатегории.ВидТарифаСтраховыхВзносов |ГДЕ | ИсчисленоЗаПериодФормирования.ОтчетныйПериод МЕЖДУ &ОтчетныйПериод И &КонецОтчетногоПериода | И (ИсчисленоЗаПериодФормирования.ПФРНакопительнаяОборот <> 0 | ИЛИ ИсчисленоЗаПериодФормирования.ПФРСтраховаяОборот <> 0) | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | РасчетУплаты.ФизЛицо, | РасчетУплаты.КатегорияЗастрахованныхЛиц, | 0, | 0, | РасчетУплаты.ПФРСтраховаяОборот * РасчетУплаты.КоэффициентУплатыСтраховая, | РасчетУплаты.ПФРНакопительнаяОборот * РасчетУплаты.КоэффициентУплатыНакопительная, | РасчетУплаты.ОтчетныйПериод |ИЗ | ВТРасчетУплаты КАК РасчетУплаты |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СуммыВзносов.ФизЛицо КАК ФизЛицо, | СуммыВзносов.КатегорияЗастрахованныхЛиц КАК КатегорияЗастрахованныхЛиц, | СУММА(СуммыВзносов.НачисленоНакопительная) КАК НачисленоНакопительная, | СУММА(СуммыВзносов.НачисленоСтраховая) КАК НачисленоСтраховая, | СУММА(СуммыВзносов.УплаченоСтраховая) КАК УплаченоСтраховая, | СУММА(СуммыВзносов.УплаченоНакопительная) КАК УплаченоНакопительная |ИЗ | ВТРасчетСумм КАК СуммыВзносов | |СГРУППИРОВАТЬ ПО | СуммыВзносов.ФизЛицо, | СуммыВзносов.КатегорияЗастрахованныхЛиц | |ИМЕЮЩИЕ | (СУММА(СуммыВзносов.НачисленоНакопительная) <> 0 | ИЛИ СУММА(СуммыВзносов.НачисленоСтраховая) <> 0 | ИЛИ СУММА(СуммыВзносов.УплаченоСтраховая) <> 0 | ИЛИ СУММА(СуммыВзносов.УплаченоНакопительная) <> 0) | |УПОРЯДОЧИТЬ ПО | ФизЛицо, | КатегорияЗастрахованныхЛиц"; Запрос.Текст = СтрЗаменить(Запрос.Текст,"РегистрСведений.УчетнаяПолитикаНалоговыйУчет", ЗаполнениеРегламентированнойОтчетностиПереопределяемый.ИмяУчетнойПолитики()); РезультатЗапроса = Запрос.Выполнить(); Если КомментироватьРасчет Тогда Запрос.Текст = "ВЫБРАТЬ | НачисленоУплачено.ОтчетныйПериод КАК ОтчетныйПериод, | НачисленоУплачено.ПФРСтраховаяПриход КАК Начислено, | НачисленоУплачено.ПФРСтраховаяРасход КАК Уплачено, | ВЫБОР | КОГДА НачисленоУплачено.ПФРСтраховаяРасход > НачисленоУплачено.ПФРСтраховаяПриход - ЕСТЬNULL(УплаченоРанее.ПФРСтраховаяРасход, 0) | ТОГДА НачисленоУплачено.ПФРСтраховаяПриход - ЕСТЬNULL(УплаченоРанее.ПФРСтраховаяРасход, 0) | ИНАЧЕ НачисленоУплачено.ПФРСтраховаяРасход | КОНЕЦ КАК УчтеноУплаты, | ЕСТЬNULL(КоэффициентыУплаты.КоэффициентУплатыСтраховая, 0) КАК КоэффициентУплаты |ИЗ | ВТНачисленоУплаченоПоПериодам КАК НачисленоУплачено | ЛЕВОЕ СОЕДИНЕНИЕ ВТУплаченоРанее КАК УплаченоРанее | ПО НачисленоУплачено.ОтчетныйПериод = УплаченоРанее.ОтчетныйПериод | И НачисленоУплачено.ОтчетныйПериодФормирования = УплаченоРанее.ОтчетныйПериодФормирования | ЛЕВОЕ СОЕДИНЕНИЕ ВТКоэффициентыУплаты КАК КоэффициентыУплаты | ПО НачисленоУплачено.ОтчетныйПериод = КоэффициентыУплаты.ОтчетныйПериод |ГДЕ | НачисленоУплачено.ОтчетныйПериодФормирования = &ОтчетныйПериод | И НачисленоУплачено.ОтчетныйПериод ЕСТЬ НЕ NULL |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | НачисленоУплачено.ОтчетныйПериод КАК ОтчетныйПериод, | НачисленоУплачено.ПФРНакопительнаяПриход КАК Начислено, | НачисленоУплачено.ПФРНакопительнаяРасход КАК Уплачено, | ВЫБОР | КОГДА НачисленоУплачено.ПФРНакопительнаяРасход > НачисленоУплачено.ПФРНакопительнаяПриход - ЕСТЬNULL(УплаченоРанее.ПФРНакопительнаяРасход, 0) | ТОГДА НачисленоУплачено.ПФРНакопительнаяПриход - ЕСТЬNULL(УплаченоРанее.ПФРНакопительнаяРасход, 0) | ИНАЧЕ НачисленоУплачено.ПФРНакопительнаяРасход | КОНЕЦ КАК УчтеноУплаты, | ЕСТЬNULL(КоэффициентыУплаты.КоэффициентУплатыНакопительная, 0) КАК КоэффициентУплаты |ИЗ | ВТНачисленоУплаченоПоПериодам КАК НачисленоУплачено | ЛЕВОЕ СОЕДИНЕНИЕ ВТУплаченоРанее КАК УплаченоРанее | ПО НачисленоУплачено.ОтчетныйПериод = УплаченоРанее.ОтчетныйПериод | И НачисленоУплачено.ОтчетныйПериодФормирования = УплаченоРанее.ОтчетныйПериодФормирования | ЛЕВОЕ СОЕДИНЕНИЕ ВТКоэффициентыУплаты КАК КоэффициентыУплаты | ПО НачисленоУплачено.ОтчетныйПериод = КоэффициентыУплаты.ОтчетныйПериод |ГДЕ | НачисленоУплачено.ОтчетныйПериодФормирования = &ОтчетныйПериод | И НачисленоУплачено.ОтчетныйПериод ЕСТЬ НЕ NULL |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Периоды.ОтчетныйПериод КАК Отчет |
|||
51
ptiz
01.09.11
✎
12:16
|
даже не всё пролезло
|
|||
52
Сергей-88
01.09.11
✎
12:17
|
о господи!!!!!!
|
|||
53
Сергей-88
01.09.11
✎
12:18
|
а зачем так пишут
ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)" ? |
|||
54
ptiz
01.09.11
✎
12:19
|
(53) Чтоб не париться с параметром.
|
|||
55
Сергей-88
01.09.11
✎
12:19
|
ptiz замена параметра?
|
|||
56
dmpl
01.09.11
✎
12:19
|
(52) Это еще не самый большой запрос для ЗУП'а. Бывает, по 200 кБ чистого текста.
|
|||
57
Сергей-88
01.09.11
✎
12:21
|
а для чего пишут так :
ЕСТЬNULL(УплаченоРанее.ПФРСтраховаяРасход, 0) ?? |
|||
58
Ёпрст
01.09.11
✎
12:23
|
(57) если такой записи нет вернуть 0
|
|||
59
Сергей-88
01.09.11
✎
12:32
|
спасибо!
|
|||
60
Ненавижу 1С
гуру
01.09.11
✎
12:33
|
(57) ты еще спроси чем пустая ссылка от неопределено отличается и что общего у них с NULL
|
|||
61
Jaffar
01.09.11
✎
12:33
|
"Запросы 1С для чайников" или "Все, что вы хотели знать о запросах 1С, но боялись спросить" :-)
|
|||
62
Упанишады
01.09.11
✎
12:37
|
Временные таблицы не только упрощают логику, но и упрощают отладку. Проверить по очереди каждую временную таблицу и затем конечный результат гораздо проще чем лопатить сразу всё.
|
|||
63
Упанишады
01.09.11
✎
12:38
|
Запросы в ЗУПе - это нам чтобы служба мёдом не казалась :-)
|
|||
64
Сергей-88
01.09.11
✎
12:50
|
за 5600 в месяц=) в Саратове
|
|||
65
badboychik
01.09.11
✎
12:51
|
и кто то же их лепит... интересно посмотреть на этих героев, писунов типовых конфиг
|
|||
66
Сергей-88
01.09.11
✎
12:52
|
badboychik они автоматически формрруются, машина.
|
|||
67
Нуф-Нуф
01.09.11
✎
12:57
|
сейчас политика партии 1с - использование временных таблиц а не вложенных запросов.
ибо последние куй отладишь |
|||
68
Jaffar
01.09.11
✎
13:01
|
(66) кто "они"? запросы или временные таблицы?
|
|||
69
badboychik
01.09.11
✎
13:17
|
(68) Конфигурации. Сразу целиком. :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |