Имя: Пароль:
1C
1С v8
поделитесь соображениями по нетривиальной задаче
0 LivingStar
 
14.08.12
06:42
Есть справочник абоненты, у каждого абонента может быть несколько договоров, нежно отобрать абонентов договор которых находится в определенной папке и его дата окончания просрочена, то есть меньше текущей, либо у абонента вообще не заключены договора из этого нужного каталога....
1 Рэйв
 
14.08.12
06:44
>>нежно отобрать абонентов

Это пять!:-)
2 Светлый Гений
 
14.08.12
06:45
(0)договора в подчинении или в табличной части справочника абоненты?
3 Рэйв
 
14.08.12
06:46
Где
  (Договор в Иерархии(&НужноеПапко) И Договор.Дата<&ТекДата)
  Или НЕ Договор в Иерархии(&НужноеПапко)
4 LivingStar
 
14.08.12
06:48
(2) договора в подчинении у нех есть реквизит по которуму и определяется по родителю в том ли он каталоге или нет
5 LivingStar
 
14.08.12
06:49
а почему вот это условие не срабатывает? :

ГДЕ
   Договоры.УслугаНаселению.Родитель.Код = "000000027"
   И Договоры.ДатаОкончания < &ДатаОкончанияДоговора
   И Договоры.ДатаОкончания <> ДАТАВРЕМЯ(1, 1, 1)
   И ВТ_КонтактнаяИнформация.Город = &Город
   И ЗначенияСвойствОбъектовСрезПоследних.Свойство = &Район


в выборку попадают договора у которых Договоры.ДатаОкончания ПУСТО! это же задано в условии что бы не выбирать такие    
И Договоры.ДатаОкончания <> ДАТАВРЕМЯ(1, 1, 1)
6 Светлый Гений
 
14.08.12
06:49
(4) то есть этот реквизит - и есть его родитель?
7 LivingStar
 
14.08.12
06:51
(6) реквизит договора услуга, это справочник, где есть группы, по которым и определяется в той ли он группе или нет
8 Светлый Гений
 
14.08.12
06:51
(5) попробуй ДАТАВРЕМЯ(1,1,1,0,0,0)
9 Рэйв
 
14.08.12
06:51
(5)Чем (3) не угодило?
10 Светлый Гений
 
14.08.12
06:51
та да (3) точно не проканает
11 Рэйв
 
14.08.12
06:52
(10)Почему?
12 Рэйв
 
14.08.12
06:52
ВСе логично.По условиям (0)
13 LivingStar
 
14.08.12
06:53
(9) дело в том что выборка выбирает договора вроде правильно, но в выборку попадают абоненты у которых несколько нужных договоров, в выборке те которые просрочены, но так же у этих абонентов есть договора которые бессрочны, и эти абоненты не должны попасть в выборку!!!
14 Светлый Гений
 
14.08.12
06:53
По условиям (0) логично, а если добавить (7), то надо немного изменить :)
15 Рэйв
 
14.08.12
06:54
(14)Ну если для ТС все разжевывать и ложить в рот, то он еще лет 10 будет постить такие темы. Пусть сам хоть немного мозг включит
16 Светлый Гений
 
14.08.12
06:54
Как-то так:

Где
 (Договор.Услуга в Иерархии(&НужноеПапко) И Договор.ДатаОкончания<&ТекДата И Договоры.ДатаОкончания <> ДАТАВРЕМЯ(1, 1, 1,0,0,0)
)
 Или НЕ Договор.Услуга в Иерархии(&НужноеПапко)
17 LivingStar
 
14.08.12
06:55
(8) попробую, но как в запросе обрабатывать и не выводить абонента вообще, если у него есть просроченный договор и есть другой бессрочный...
18 Светлый Гений
 
14.08.12
06:55
(15) Так-то согласен, просто сегодня настроение хорошее )))
19 Megas
 
14.08.12
07:00
Мне вот стало интересно, что в задаче нетривиально =)
20 Светлый Гений
 
14.08.12
07:02
(19) это замануха )))
21 LivingStar
 
14.08.12
07:08
(16) это вообще не то что нужно!!!
22 Светлый Гений
 
14.08.12
07:11
(21)ну значит ты тогда что-то неправильно объясняешь
23 Живой Ископаемый
 
14.08.12
07:14
2(21) это то что нужно согласно (0)
24 LivingStar
 
14.08.12
07:16
должны отбираться абоненты у которых нет договора действующего или бессрочного
попадают в выборку договора отвечающие условиям, но имеющие действующие договора
25 Живой Ископаемый
 
14.08.12
07:17
отбирай
26 LivingStar
 
14.08.12
07:23
И Договоры.ДатаОкончания <> ДАТАВРЕМЯ(1, 1, 1,0,0,0) пропускает пустую дату в поле выборки
27 Светлый Гений
 
14.08.12
07:27
(26)может тогда еще попробовать ДАТАВРЕМЯ(1753,1,1,0,0,0)
28 Живой Ископаемый
 
14.08.12
07:34
2(26) не пропускает:
http://screencast.com/t/xN3DvsFvN5
зачем врал?
29 LivingStar
 
14.08.12
07:35
(28) осталось понять как в запросе реализовать последнее
что бы не попадали в выборку абоненты у которых есть договор отвечающий условиям
то есть попадающий в выборку, но есть и договор который попадает под условия
когда абонент не должен попадать в выборку
30 Живой Ископаемый
 
14.08.12
07:38
2(29) после твоего вранья с тобой больше никто не будет разговаривать
31 Светлый Гений
 
14.08.12
07:42
(29)видимо надо придумать еще какое-то условие, по которому абонент то попадает, то не попадает
32 LivingStar
 
14.08.12
07:43
(31) в выборку попадает в любом случае договора отвечающие условиям, но если у этого абонента есть договор действующий он не должен попадать, как это придумать не соображу
33 Живой Ископаемый
 
14.08.12
07:45
2(32) Значит нужно реализовать ПОДЗАПРОСОМ. это элементарнейшая задача.
ГДЕ ДОГОВОР НЕ В (<ТУТ ЗАПРОС, возвращающий действующие договора>)
34 LivingStar
 
14.08.12
07:46
(33) спасибо, приму к сведению!
35 Живой Ископаемый
 
14.08.12
07:51
2(34) кто ж тебе поверит теперь... конечно не примешь. будешь стучать в ствол как и прежде.
36 LivingStar
 
14.08.12
08:27
(33) как правильно построить условие, неполучается
Договоры.Ссылка НЕ В (ВТ_ДействующиеДоговора)
37 LivingStar
 
14.08.12
08:27
вот так принялось НЕ Договоры.Ссылка В (ВТ_ДействующиеДоговора.Ссылка), верно?
38 Strogg
 
14.08.12
08:33
(37) да сделай ты в конструкторе запрос, да текст его скопируй в основной))
39 LivingStar
 
14.08.12
08:34
(38) такой запрос получился, но он что то не выбирает ничего

ВЫБРАТЬ
   Абонент.Ссылка КАК Абонент,
   ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Индекс, "") = ""
           ТОГДА ""
       ИНАЧЕ КонтактнаяИнформация.Индекс + ", "
   КОНЕЦ + ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = ""
           ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.Сокращение, "")
       ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.Сокращение, "")
   КОНЕЦ + ". " + ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = ""
           ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "")
       ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") + ", " + ВЫБОР
               КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
                   ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения
               ИНАЧЕ ""
           КОНЕЦ
   КОНЕЦ + "." + ВЫБОР
       КОГДА КонтактнаяИнформация.Квартира = ""
           ТОГДА ВЫБОР
                   КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                       ТОГДА ВЫБОР
                               КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                                   ТОГДА ", д." + КонтактнаяИнформация.Дом
                               ИНАЧЕ ", д." + КонтактнаяИнформация.Дом + ", корп." + КонтактнаяИнформация.Корпус
                           КОНЕЦ
                   ИНАЧЕ ВЫБОР
                           КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                               ТОГДА КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом
                           ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп." + КонтактнаяИнформация.Корпус
                       КОНЕЦ
               КОНЕЦ
       ИНАЧЕ ВЫБОР
               КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                   ТОГДА ВЫБОР
                           КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                               ТОГДА ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                           ИНАЧЕ ", корп." + КонтактнаяИнформация.Корпус + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                       КОНЕЦ
               ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
           КОНЕЦ
   КОНЕЦ КАК Адрес,
   КонтактнаяИнформация.Улица КАК Улица,
   КонтактнаяИнформация.НомерДомаЧисло КАК НомерДомаЧисло,
   КонтактнаяИнформация.НомерКвартирыЧисло КАК НомерКвартирыЧисло,
   КонтактнаяИнформация.НомерПодъезда КАК НомерПодъезда,
   КонтактнаяИнформация.НомерКомнаты КАК НомерКомнаты,
   Абонент.Ссылка.ЛицевойСчет КАК ЛицевойСчет,
   КонтактнаяИнформация.Индекс,
   ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Индекс, "") = ""
           ТОГДА ""
       ИНАЧЕ КонтактнаяИнформация.Индекс + ", "
   КОНЕЦ + ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = ""
           ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.Сокращение, "")
       ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.Сокращение, "")
   КОНЕЦ + ". " + ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = ""
           ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "")
       ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") + ""
   КОНЕЦ КАК Адрес1,
   ВЫБОР
       КОГДА КонтактнаяИнформация.Квартира = ""
           ТОГДА ВЫБОР
                   КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                       ТОГДА ВЫБОР
                               КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
                                   ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом
                               ИНАЧЕ ""
                           КОНЕЦ
                   ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом
               КОНЕЦ
       ИНАЧЕ ВЫБОР
               КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                   ТОГДА ВЫБОР
                           КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
                               ТОГДА ВЫБОР
                                       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                                           ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                                       ИНАЧЕ КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп. " + КонтактнаяИнформация.Корпус + ", кв." + КонтактнаяИнформация.Квартира
                                   КОНЕЦ
                           ИНАЧЕ ""
                       КОНЕЦ
               ИНАЧЕ ВЫБОР
                       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                           ТОГДА КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                       ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп. " + КонтактнаяИнформация.Корпус + ", кв." + КонтактнаяИнформация.Квартира
                   КОНЕЦ
           КОНЕЦ
   КОНЕЦ + ", кв." + КонтактнаяИнформация.Квартира КАК Адрес2,
   ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
           ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения
       ИНАЧЕ ""
   КОНЕЦ КАК Адрес3,
   КонтактнаяИнформация.Город,
   КонтактнаяИнформация.Город.НаименованиеБезСокращения,
   КонтактнаяИнформация.Город.Сокращение,
   КонтактнаяИнформация.НаселенныйПункт.Ссылка,
   КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения,
   КонтактнаяИнформация.НаселенныйПункт.Сокращение,
   КонтактнаяИнформация.Улица.Сокращение,
   КонтактнаяИнформация.Улица.НаименованиеБезСокращения
ПОМЕСТИТЬ ВТ_КонтактнаяИнформация
ИЗ
   Справочник.Абоненты КАК Абонент
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       ПО Абонент.Ссылка = КонтактнаяИнформация.Объект
           И (КонтактнаяИнформация.ТипКонтактнойИнформации = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
           И (КонтактнаяИнформация.ВидКонтактнойИнформации = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресАбонента))

СГРУППИРОВАТЬ ПО
   КонтактнаяИнформация.Улица,
   КонтактнаяИнформация.НомерДомаЧисло,
   КонтактнаяИнформация.НомерКвартирыЧисло,
   КонтактнаяИнформация.НомерПодъезда,
   КонтактнаяИнформация.НомерКомнаты,
   Абонент.Ссылка,
   Абонент.Ссылка.ЛицевойСчет,
   КонтактнаяИнформация.Индекс,
   ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
           ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения
       ИНАЧЕ ""
   КОНЕЦ,
   КонтактнаяИнформация.Город,
   КонтактнаяИнформация.Город.НаименованиеБезСокращения,
   КонтактнаяИнформация.Город.Сокращение,
   КонтактнаяИнформация.НаселенныйПункт.Ссылка,
   КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения,
   КонтактнаяИнформация.НаселенныйПункт.Сокращение,
   КонтактнаяИнформация.Улица.Сокращение,
   КонтактнаяИнформация.Улица.НаименованиеБезСокращения,
   ВЫБОР
       КОГДА КонтактнаяИнформация.Квартира = ""
           ТОГДА ВЫБОР
                   КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                       ТОГДА ВЫБОР
                               КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
                                   ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом
                               ИНАЧЕ ""
                           КОНЕЦ
                   ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом
               КОНЕЦ
       ИНАЧЕ ВЫБОР
               КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                   ТОГДА ВЫБОР
                           КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
                               ТОГДА ВЫБОР
                                       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                                           ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                                       ИНАЧЕ КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп. " + КонтактнаяИнформация.Корпус + ", кв." + КонтактнаяИнформация.Квартира
                                   КОНЕЦ
                           ИНАЧЕ ""
                       КОНЕЦ
               ИНАЧЕ ВЫБОР
                       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                           ТОГДА КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                       ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп. " + КонтактнаяИнформация.Корпус + ", кв." + КонтактнаяИнформация.Квартира
                   КОНЕЦ
           КОНЕЦ
   КОНЕЦ + ", кв." + КонтактнаяИнформация.Квартира,
   ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Индекс, "") = ""
           ТОГДА ""
       ИНАЧЕ КонтактнаяИнформация.Индекс + ", "
   КОНЕЦ + ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = ""
           ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.Сокращение, "")
       ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.Сокращение, "")
   КОНЕЦ + ". " + ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = ""
           ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "")
       ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") + ", " + ВЫБОР
               КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
                   ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения
               ИНАЧЕ ""
           КОНЕЦ
   КОНЕЦ + "." + ВЫБОР
       КОГДА КонтактнаяИнформация.Квартира = ""
           ТОГДА ВЫБОР
                   КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                       ТОГДА ВЫБОР
                               КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                                   ТОГДА ", д." + КонтактнаяИнформация.Дом
                               ИНАЧЕ ", д." + КонтактнаяИнформация.Дом + ", корп." + КонтактнаяИнформация.Корпус
                           КОНЕЦ
                   ИНАЧЕ ВЫБОР
                           КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                               ТОГДА КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом
                           ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп." + КонтактнаяИнформация.Корпус
                       КОНЕЦ
               КОНЕЦ
       ИНАЧЕ ВЫБОР
               КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                   ТОГДА ВЫБОР
                           КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                               ТОГДА ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                           ИНАЧЕ ", корп." + КонтактнаяИнформация.Корпус + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                       КОНЕЦ
               ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
           КОНЕЦ
   КОНЕЦ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Договоры.Владелец,
   Договоры.Ссылка,
   Договоры.ДатаОкончания,
   Договоры.УслугаНаселению,
   Договоры.УслугаНаселению.Родитель
ПОМЕСТИТЬ ВТ_ДействующиеДоговора
ИЗ
   Справочник.Договоры КАК Договоры
ГДЕ
   Договоры.УслугаНаселению В ИЕРАРХИИ(&ВДГО)
   И (Договоры.ДатаОкончания > &ДатаОкончанияДоговора
           ИЛИ Договоры.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Абоненты.Ссылка КАК Абонент,
   ВТ_КонтактнаяИнформация.Город,
   Договоры.Ссылка КАК Договор,
   Договоры.УслугаНаселению,
   Договоры.УслугаНаселению.Родитель,
   Договоры.ДатаОкончания,
   ВТ_ДействующиеДоговора.Ссылка
ИЗ
   ВТ_ДействующиеДоговора КАК ВТ_ДействующиеДоговора
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Абоненты КАК Абоненты
           ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КонтактнаяИнформация КАК ВТ_КонтактнаяИнформация
           ПО Абоненты.Ссылка = ВТ_КонтактнаяИнформация.Абонент
           ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры КАК Договоры
           ПО Абоненты.Ссылка = Договоры.Владелец
       ПО ВТ_ДействующиеДоговора.Владелец = Абоненты.Ссылка
ГДЕ
   НЕ Договоры.Ссылка В (ВТ_ДействующиеДоговора.Ссылка)
   И Договоры.УслугаНаселению В ИЕРАРХИИ(&ВДГО)
   И Договоры.ДатаОкончания < &ДатаОкончанияДоговора
   И ВТ_КонтактнаяИнформация.Город = &Город
40 LivingStar
 
14.08.12
08:41
(39) в запросе правильно задал выборку по наименованию города, до все же он не фильтрует выборку по действующим договорам (
41 LivingStar
 
14.08.12
10:56
подскажите почему же из таблицы что фильтрует выборку, все же попадают записи в выборку?

НЕ Договоры.Ссылка В (ВТ_ДействующиеДоговора.Ссылка)


ВЫБРАТЬ
   Абонент.Ссылка КАК Абонент,
   ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Индекс, "") = ""
           ТОГДА ""
       ИНАЧЕ КонтактнаяИнформация.Индекс + ", "
   КОНЕЦ + ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = ""
           ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.Сокращение, "")
       ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.Сокращение, "")
   КОНЕЦ + ". " + ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = ""
           ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "")
       ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") + ", " + ВЫБОР
               КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
                   ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения
               ИНАЧЕ ""
           КОНЕЦ
   КОНЕЦ + "." + ВЫБОР
       КОГДА КонтактнаяИнформация.Квартира = ""
           ТОГДА ВЫБОР
                   КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                       ТОГДА ВЫБОР
                               КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                                   ТОГДА ", д." + КонтактнаяИнформация.Дом
                               ИНАЧЕ ", д." + КонтактнаяИнформация.Дом + ", корп." + КонтактнаяИнформация.Корпус
                           КОНЕЦ
                   ИНАЧЕ ВЫБОР
                           КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                               ТОГДА КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом
                           ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп." + КонтактнаяИнформация.Корпус
                       КОНЕЦ
               КОНЕЦ
       ИНАЧЕ ВЫБОР
               КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                   ТОГДА ВЫБОР
                           КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                               ТОГДА ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                           ИНАЧЕ ", корп." + КонтактнаяИнформация.Корпус + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                       КОНЕЦ
               ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
           КОНЕЦ
   КОНЕЦ КАК Адрес,
   КонтактнаяИнформация.Улица КАК Улица,
   КонтактнаяИнформация.НомерДомаЧисло КАК НомерДомаЧисло,
   КонтактнаяИнформация.НомерКвартирыЧисло КАК НомерКвартирыЧисло,
   КонтактнаяИнформация.НомерПодъезда КАК НомерПодъезда,
   КонтактнаяИнформация.НомерКомнаты КАК НомерКомнаты,
   Абонент.Ссылка.ЛицевойСчет КАК ЛицевойСчет,
   КонтактнаяИнформация.Индекс,
   ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Индекс, "") = ""
           ТОГДА ""
       ИНАЧЕ КонтактнаяИнформация.Индекс + ", "
   КОНЕЦ + ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = ""
           ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.Сокращение, "")
       ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.Сокращение, "")
   КОНЕЦ + ". " + ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = ""
           ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "")
       ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") + ""
   КОНЕЦ КАК Адрес1,
   ВЫБОР
       КОГДА КонтактнаяИнформация.Квартира = ""
           ТОГДА ВЫБОР
                   КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                       ТОГДА ВЫБОР
                               КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
                                   ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом
                               ИНАЧЕ ""
                           КОНЕЦ
                   ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом
               КОНЕЦ
       ИНАЧЕ ВЫБОР
               КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                   ТОГДА ВЫБОР
                           КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
                               ТОГДА ВЫБОР
                                       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                                           ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                                       ИНАЧЕ КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп. " + КонтактнаяИнформация.Корпус + ", кв." + КонтактнаяИнформация.Квартира
                                   КОНЕЦ
                           ИНАЧЕ ""
                       КОНЕЦ
               ИНАЧЕ ВЫБОР
                       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                           ТОГДА КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                       ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп. " + КонтактнаяИнформация.Корпус + ", кв." + КонтактнаяИнформация.Квартира
                   КОНЕЦ
           КОНЕЦ
   КОНЕЦ + ", кв." + КонтактнаяИнформация.Квартира КАК Адрес2,
   ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
           ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения
       ИНАЧЕ ""
   КОНЕЦ КАК Адрес3,
   КонтактнаяИнформация.Город,
   КонтактнаяИнформация.Город.НаименованиеБезСокращения,
   КонтактнаяИнформация.Город.Сокращение,
   КонтактнаяИнформация.НаселенныйПункт.Ссылка,
   КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения,
   КонтактнаяИнформация.НаселенныйПункт.Сокращение,
   КонтактнаяИнформация.Улица.Сокращение,
   КонтактнаяИнформация.Улица.НаименованиеБезСокращения
ПОМЕСТИТЬ ВТ_КонтактнаяИнформация
ИЗ
   Справочник.Абоненты КАК Абонент
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       ПО Абонент.Ссылка = КонтактнаяИнформация.Объект
           И (КонтактнаяИнформация.ТипКонтактнойИнформации = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
           И (КонтактнаяИнформация.ВидКонтактнойИнформации = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресАбонента))

СГРУППИРОВАТЬ ПО
   КонтактнаяИнформация.Улица,
   КонтактнаяИнформация.НомерДомаЧисло,
   КонтактнаяИнформация.НомерКвартирыЧисло,
   КонтактнаяИнформация.НомерПодъезда,
   КонтактнаяИнформация.НомерКомнаты,
   Абонент.Ссылка,
   Абонент.Ссылка.ЛицевойСчет,
   КонтактнаяИнформация.Индекс,
   ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
           ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения
       ИНАЧЕ ""
   КОНЕЦ,
   КонтактнаяИнформация.Город,
   КонтактнаяИнформация.Город.НаименованиеБезСокращения,
   КонтактнаяИнформация.Город.Сокращение,
   КонтактнаяИнформация.НаселенныйПункт.Ссылка,
   КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения,
   КонтактнаяИнформация.НаселенныйПункт.Сокращение,
   КонтактнаяИнформация.Улица.Сокращение,
   КонтактнаяИнформация.Улица.НаименованиеБезСокращения,
   ВЫБОР
       КОГДА КонтактнаяИнформация.Квартира = ""
           ТОГДА ВЫБОР
                   КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                       ТОГДА ВЫБОР
                               КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
                                   ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом
                               ИНАЧЕ ""
                           КОНЕЦ
                   ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом
               КОНЕЦ
       ИНАЧЕ ВЫБОР
               КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                   ТОГДА ВЫБОР
                           КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
                               ТОГДА ВЫБОР
                                       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                                           ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                                       ИНАЧЕ КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп. " + КонтактнаяИнформация.Корпус + ", кв." + КонтактнаяИнформация.Квартира
                                   КОНЕЦ
                           ИНАЧЕ ""
                       КОНЕЦ
               ИНАЧЕ ВЫБОР
                       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                           ТОГДА КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                       ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп. " + КонтактнаяИнформация.Корпус + ", кв." + КонтактнаяИнформация.Квартира
                   КОНЕЦ
           КОНЕЦ
   КОНЕЦ + ", кв." + КонтактнаяИнформация.Квартира,
   ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Индекс, "") = ""
           ТОГДА ""
       ИНАЧЕ КонтактнаяИнформация.Индекс + ", "
   КОНЕЦ + ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = ""
           ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.Сокращение, "")
       ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.Сокращение, "")
   КОНЕЦ + ". " + ВЫБОР
       КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = ""
           ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "")
       ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") + ", " + ВЫБОР
               КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> ""
                   ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения
               ИНАЧЕ ""
           КОНЕЦ
   КОНЕЦ + "." + ВЫБОР
       КОГДА КонтактнаяИнформация.Квартира = ""
           ТОГДА ВЫБОР
                   КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                       ТОГДА ВЫБОР
                               КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                                   ТОГДА ", д." + КонтактнаяИнформация.Дом
                               ИНАЧЕ ", д." + КонтактнаяИнформация.Дом + ", корп." + КонтактнаяИнформация.Корпус
                           КОНЕЦ
                   ИНАЧЕ ВЫБОР
                           КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                               ТОГДА КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом
                           ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп." + КонтактнаяИнформация.Корпус
                       КОНЕЦ
               КОНЕЦ
       ИНАЧЕ ВЫБОР
               КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = ""
                   ТОГДА ВЫБОР
                           КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = ""
                               ТОГДА ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                           ИНАЧЕ ", корп." + КонтактнаяИнформация.Корпус + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
                       КОНЕЦ
               ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира
           КОНЕЦ
   КОНЕЦ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Договоры.Владелец,
   Договоры.Ссылка,
   Договоры.ДатаОкончания,
   Договоры.УслугаНаселению,
   Договоры.УслугаНаселению.Родитель,
   Договоры.Подразделение
ПОМЕСТИТЬ ВТ_ДействующиеДоговора
ИЗ
   Справочник.Договоры КАК Договоры
ГДЕ
   Договоры.УслугаНаселению В ИЕРАРХИИ(&ВДГО)
   И (Договоры.ДатаОкончания > &ДатаОкончанияДоговора
           ИЛИ Договоры.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
   И Договоры.Подразделение = &Подразделение
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   "Незаключен договор на ВДГО"      КАК НетВДГО,
   Абоненты.Ссылка                   КАК Абонент,
   ВТ_КонтактнаяИнформация.Город     КАК Город,
   Договоры.Ссылка                   КАК Договор,
   Договоры.УслугаНаселению          КАК УслугаНаселению,
   Договоры.УслугаНаселению.Родитель КАК УслугаНаселениюРодитель,
   Договоры.ДатаОкончания            КАК ДатаОкончанияДоговора
ИЗ
   ВТ_ДействующиеДоговора КАК ВТ_ДействующиеДоговора
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Абоненты КАК Абоненты
           ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КонтактнаяИнформация КАК ВТ_КонтактнаяИнформация
           ПО Абоненты.Ссылка = ВТ_КонтактнаяИнформация.Абонент
           ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры КАК Договоры
           ПО Абоненты.Ссылка = Договоры.Владелец
       ПО ВТ_ДействующиеДоговора.Владелец = Абоненты.Ссылка
ГДЕ
   НЕ Договоры.Ссылка В (ВТ_ДействующиеДоговора.Ссылка)
   И Договоры.УслугаНаселению В ИЕРАРХИИ(&ВДГО)
   И Договоры.ДатаОкончания < &ДатаОкончанияДоговора
   И ВТ_КонтактнаяИнформация.Город.Наименование = &Город
   И Договоры.Подразделение = &Подразделение

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   "Незаключен договор на ВДГО"      КАК НетВДГО,
   ПодЗапрос.Ссылка                  КАК Абонент,
   ВТ_КонтактнаяИнформация.Город        КАК Город,
   Договоры.Ссылка                   КАК Договор,
   Договоры.УслугаНаселению          КАК УслугаНаселению,
   Договоры.УслугаНаселению.Родитель КАК УслугаНаселениюРодитель,
   Договоры.ДатаОкончания            КАК ДатаОкончанияДоговора
ИЗ
   (ВЫБРАТЬ
       Абоненты.Ссылка КАК Ссылка,
       МАКСИМУМ(ВЫБОР
               КОГДА Договоры.Ссылка ЕСТЬ NULL
                   ТОГДА 0
               ИНАЧЕ 1
           КОНЕЦ) КАК КолДоговоров
   ИЗ
       Справочник.Абоненты КАК Абоненты
           ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры КАК Договоры
           ПО Абоненты.Ссылка = Договоры.Владелец
               И (Договоры.УслугаНаселению.ВидРаботы = ЗНАЧЕНИЕ(Перечисление.ВидыРабот.ТехническоеОбслуживание))
               И (Договоры.ДатаОкончания >= &ДатаОкончанияДоговора
                   ИЛИ Договоры.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1))
               И (Договоры.УслугаНаселению.ОсновнойПоставщик <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка))
   ГДЕ
       Абоненты.ДатаЗакрытия = ДАТАВРЕМЯ(1, 1, 1)
       И Абоненты.ЛицевойСчет <> ""
   
   СГРУППИРОВАТЬ ПО
       Абоненты.Ссылка) КАК ПодЗапрос
       ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КонтактнаяИнформация КАК ВТ_КонтактнаяИнформация
       ПО ПодЗапрос.Ссылка = ВТ_КонтактнаяИнформация.Абонент
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры КАК Договоры
       ПО ПодЗапрос.Ссылка = Договоры.Ссылка
ГДЕ
   ПодЗапрос.КолДоговоров = 0
42 Bell
 
15.08.12
01:03
(0)Оборотно сальдовая ведомость + фильтр по дате договоров при переходе на конкретный счет. У меня любой бухгалтер делает такие выборки (без программирования)