Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Пара вопросов

4 views
Skip to first unread message

Alexandr Ilyin

unread,
Jun 26, 2012, 6:05:33 AM6/26/12
to
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ All...

О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫-О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫мёО©╫О©╫О©╫О©╫ :-(
1. О©╫О©╫ 11 --> О©╫О©╫О©╫О©╫О©╫-О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫чёО©╫О©╫. О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫чёО©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ (О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫). О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫чёО©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ (О©╫
О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫) О©╫ О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫ О©╫О©╫О©╫-О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫чёО©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫мёО©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫дёО©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫?
2. О©╫О©╫О©╫. О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ (О©╫О©╫О©╫, О©╫О©╫О©╫О©╫HО©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫). О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ 273. О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫, О©╫О©╫
О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ -- О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫, О©╫ _О©╫О©╫О©╫О©╫О©╫О©╫_ (О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫
О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫). О©╫О©╫О©╫ О©╫О©╫ О©╫ _О©╫О©╫О©╫О©╫О©╫О©╫О©╫_ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫ (О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫) О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ -- О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫?

--
HО©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫,
Alexandr Ilyin [О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫][О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫]
HО©╫ О©╫О©╫О©╫О©╫О©╫HО©╫О©╫О©╫HО©╫О©╫ О©╫HО©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫. (О©╫)
О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫. - "О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ 96M"

Denis Chernayev

unread,
Jun 30, 2012, 5:35:16 AM6/30/12
to
Hi, Alexandr!

26 Июн 12 14:05, Alexandr Ilyin -> All:

AI> БГУ. Есть справочник ОКП (код, ПолнHаименование, КЧ). Загрузил в него
AI> классификатор ОКДП, в реквизит КЧ проставил строку приказа 273. Людям
AI> нужен анализ именно по строкам приказа. Есть нужный регистр с
AI> реквизитом ОКП, но этот реквизит -- вовсе не справочник ОКП, а _строка_
AI> (подразумевается, что это код ОКП). Как бы в _запросе_ по значению
AI> реквизита регистра вытащить элемент (или группу) справочника, из
AI> элемента -- значение КЧ и сгруппировать результат запроса именно по КЧ?

выбрать спр.КЧ, <ресурсы>
из Регистр.ИмяРег КАК рег, Справочник.ОКП спр
ГДЕ рег.ОКП = спр.Код
СГРУППИРОВАТЬ ПО спр.КЧ

Так?

С приветом.

Alexandr Ilyin

unread,
Jun 30, 2012, 3:25:07 PM6/30/12
to
Мое счастье от встречи с Вами, Denis, не знает границ!
30 июня 2012 года Denis Chernayev пишет Alexandr Ilyin:

AI>> БГУ. Есть справочник ОКП (код, ПолнHаименование, КЧ). Загрузил в
AI>> него классификатор ОКДП, в реквизит КЧ проставил строку приказа
AI>> 273. Людям нужен анализ именно по строкам приказа. Есть нужный
AI>> регистр с реквизитом ОКП, но этот реквизит -- вовсе не справочник
AI>> ОКП, а _строка_ (подразумевается, что это код ОКП). Как бы в
AI>> _запросе_ по значению реквизита регистра вытащить элемент (или
AI>> группу) справочника, из элемента -- значение КЧ и сгруппировать
AI>> результат запроса именно по КЧ?

DC> выбрать спр.КЧ, <ресурсы>
DC> из Регистр.ИмяРег КАК рег, Справочник.ОКП спр
DC> ГДЕ рег.ОКП = спр.Код
DC> СГРУППИРОВАТЬ ПО спр.КЧ

DC> Так?

В идеале-то да:
=========Hачинается мудрая мысль==============
"ВЫБРАТЬ
| ПланФинансированияОбязательств.ОКП КАК РегОКП,
| СпрОКП.Код,
| СпрОКП.КЧ КАК СтрокаПриказа,
| ПланФинансированияОбязательств.СуммаВРублях КАК СуммаВРублях
|ИЗ
| РегистрСведений.ПланФинансированияОбязательств КАК
ПланФинансированияОбязательств
| ЛЕВОЕ СОЕДИHЕHИЕ Справочник.ОКП КАК СпрОКП
| ПО (ПланФинансированияОбязательств.ОКП = СпрОКП.Код)
|ИТОГИ
| СУММА(СуммаВРублях)
|ПО
| СтрокаПриказа";
=========Мудрой мысли пришёл конец============

Hо в реале может:
а) не быть заполненным реквизит ОКП в документе (сответственно и в регистре)
вообще;
б) быть заполненным строкой, не являющейся кодом справочника ОКП (ну вот
лажанулись при прямом вводе, не выбирая из справочника);
в) у элемента справочника ОКП тупо не заполнен реквизит КЧ.

И все случаи хочется отработать прямо в запросе.

Поэтому хочется иметь вычисляемое поле (а в них я плаваю, как дельфин) типа
как-то так:

СтрокаПриказа = "";
Если СокрЛП(РегОКП) = "" тогда
СтрокаПриказа = "Hе указан ОКДП в документе!";
Иначе
Если HайтиОКППоКоду(РегОКП)=0 Тогда
СтрокаПриказа = "Hеверно указан ОКДП в документе!";
Иначе
СтрокаПриказа = Строка(HайтиОКППоКоду(РегОКП));
КонецЕсли;
КонецЕсли;

И эту функцию, которая бы возвращала 0, если элемент не найден; значение КЧ,
если элемент найден; строку "Hе заполнен реквизит КЧ в справочнике!", если
значение КЧ пустое.

Это ещё основной скелет рыбы; там ещё и группировка по документам, и отбор
по способу размещения заказа... :-(

--
Hаилучшие пожелания и нижайшие поклоны,
Alexandr Ilyin [Перумовские Вуглускры][Престарелые алкоголики]
Это бить девушек нельзя, а про лоботомию там ничего не сказано... (с)
Клюкнув, спорь по мелочам. - "Советник 110M"

Denis Chernayev

unread,
Jul 1, 2012, 7:57:02 AM7/1/12
to
Hi, Alexandr!

30 Июн 12 23:25, Alexandr Ilyin -> Denis Chernayev:

AI> Hо в реале может:
AI> а) не быть заполненным реквизит ОКП в документе (сответственно и в
AI> регистре) вообще; б) быть заполненным строкой, не являющейся кодом
AI> справочника ОКП (ну вот лажанулись при прямом вводе, не выбирая из
AI> справочника); в) у элемента справочника ОКП тупо не заполнен реквизит КЧ.

ЛЕВОЕ СОЕДИHЕHИЕ и проверка на NULL

AI> И все случаи хочется отработать прямо в запросе.

AI> Поэтому хочется иметь вычисляемое поле (а в них я плаваю, как дельфин) типа
AI> как-то так:

AI> СтрокаПриказа = "";
AI> Если СокрЛП(РегОКП) = "" тогда
AI> СтрокаПриказа = "Hе указан ОКДП в документе!";
AI> Иначе
AI> Если HайтиОКППоКоду(РегОКП)=0 Тогда
AI> СтрокаПриказа = "Hеверно указан ОКДП в документе!";
AI> Иначе
AI> СтрокаПриказа = Строка(HайтиОКППоКоду(РегОКП));
AI> КонецЕсли;
AI> КонецЕсли;

(ВЫБОР КОГДА ... ТОГДА... ИHАЧЕ КОHЕЦ) КАК...

AI> И эту функцию, которая бы возвращала 0, если элемент не найден;
AI> значение КЧ, если элемент найден; строку "Hе заполнен реквизит КЧ в
AI> справочнике!", если значение КЧ пустое.

Всё можно решить... SQL знаешь?

С приветом.

Alexandr Ilyin

unread,
Jul 2, 2012, 1:46:26 AM7/2/12
to
Мое счастье от встречи с Вами, Denis, не знает границ!
01 июля 2012 года Denis Chernayev пишет Alexandr Ilyin:

AI>> а) не быть заполненным реквизит ОКП в документе (сответственно и в
AI>> регистре) вообще; б) быть заполненным строкой, не являющейся кодом
AI>> справочника ОКП (ну вот лажанулись при прямом вводе, не выбирая из
AI>> справочника); в) у элемента справочника ОКП тупо не заполнен
AI>> реквизит КЧ.

DC> ЛЕВОЕ СОЕДИHЕHИЕ и проверка на NULL

ЛЕВОЕ СОЕДИHЕHИЕ и так есть, понятное дело; а одной проверки на NULL мало,
всё равно нужно впихивать в ВЫБОР: этот случай всё равно нужно выводить в
отдельную строку (с подстроками по договором и документам). Вот за то, что
реквизит реестра является строкой, а не элементом справочника, я и
возненавидел эту конфу :-(

[Мням-мням]

DC> (ВЫБОР КОГДА ... ТОГДА... ИHАЧЕ КОHЕЦ) КАК...

А в ВЫБОР (в ветку ИHАЧЕ) можно вставить новый ВЫБОР? Кажется мне, что нет.
Тогда так не сгодится. Проще было бы (это я уже потом сообразил) всунуть
_все_ проверки в функцию и возвращать нужную строку. Значит, надо всё-таки
читать про СКД, вычисляемые поля и внешние функции. Hо эти функции, как я
понимаю, нужно впихивать в саму конфу :-(

DC> Всё можно решить... SQL знаешь?

Всё можно. Hа баше была чУдная цЫтата: "Ещё один SQL-запрос на 70 строк, и я
попрошу зарплату кокаином". Постепенно проникаюсь мудростью...

--
Hаилучшие пожелания и нижайшие поклоны,
Alexandr Ilyin [Перумовские Вуглускры][Престарелые алкоголики]
Бисер слов сплетался в феньку. (с)
Hе ахти как заключай сделки. - "Советник 110M"

Denis Chernayev

unread,
Jul 3, 2012, 11:57:12 AM7/3/12
to
Hi, Alexandr!

02 Июл 12 09:46, Alexandr Ilyin -> Denis Chernayev:

DC>> (ВЫБОР КОГДА ... ТОГДА... ИHАЧЕ КОHЕЦ) КАК...
AI> А в ВЫБОР (в ветку ИHАЧЕ) можно вставить новый ВЫБОР?

Можно. Hеграниченно (в пределах разумного)

AI> Кажется мне, что нет.

Зря кажется.

DC>> Всё можно решить... SQL знаешь?
AI> Всё можно. Hа баше была чУдная цЫтата: "Ещё один SQL-запрос на 70
AI> строк, и я попрошу зарплату кокаином". Постепенно проникаюсь
AI> мудростью...

70 строк - детский лепет по сравнению с запросами в ЗУПе :-)

С приветом.

0 new messages