Имя: Пароль:
1C
1C 7.7
v7: Бух 77. Объект Операция. Как сделать отбор посписку субконто?
0 LNS
 
26.02.12
17:38
Здравствуйте. Для объекта Операция применяю метод:
Опер.ИспользоватьСубконто(ВидыСубконто.Договоры, СписокДоговоров);

где СписокДоговоров - это список значений.
в результате выборка пустая.
Что не так делаю?
1 Попытка1С
 
26.02.12
17:50
Весь код покажи.
2 LNS
 
26.02.12
17:56
Опер = СоздатьОбъект("Операция");
   Опер.ИспользоватьСубконто(ВидыСубконто.Контрагенты, Контрагент);
   РазмерСпискаДоговоров = СписокДоговоров.РазмерСписка();
   Если РазмерСпискаДоговоров>0 Тогда  
       Опер.ИспользоватьСубконто(ВидыСубконто.Договоры, СписокДоговоров);
   Иначе    
       Если ПустоеЗначение(Договор) = 0 Тогда
           Если Договор.ЭтоГруппа() = 0 Тогда
               Опер.ИспользоватьСубконто(ВидыСубконто.Договоры, Договор);
           Иначе
               //Опер.ИспользоватьСубконто(ВидыСубконто.Договоры,);
           КонецЕсли;
       КонецЕсли;  
   КонецЕсли;

   Опер.ВыбратьОперацииСПроводками(НачДата, КонДата, Фильтр);
   Пока Опер.ПолучитьПроводку() = 1 Цикл


СписокДоговоров выведен на форму отчета АктСверки в Бух77
3 GreyK
 
26.02.12
18:17
(2) Чистов тебя-бы "Убил, зарезал и закопал", за использование операций,а не бухитогов. А я-бы посоветовал смотреть в отладчике.
4 LNS
 
26.02.12
18:19
Да это код из типового отчета  "Акт сверки" из Бух77. Попросили сделать в отчете отбор по списку договоров. Наверно придется в отладчике
5 Хряк
 
26.02.12
18:33
зачем так много если
и один договор пихай в список, упрощай код
а код рабочий
6 Cthulhu
 
26.02.12
19:42
Список сделай только из элементов (чтобы не содержал групп) - и попробуй.
7 LNS
 
26.02.12
19:45
(6) А как список сделать только из элементов?
8 ДенисЧ
 
26.02.12
19:45
А что, запросы ныне некошерны?
9 LNS
 
26.02.12
19:47
(8) Я не хочу сильно вторгаться в типовой код, а он сделан на Операциях
10 ДенисЧ
 
26.02.12
19:50
(9) тогда сам иппись, а то мне раввины не позволяют советовать некошерные методы...
11 BlackSeaCat
 
26.02.12
20:17
(9) Я бы обошел эту проблему так: если выбран список договоров (больше одного), то задал бы использование вида субконто Договоры без отбора, а в каждой операции проверял вхождение договора в список.

Код писать не буду.
12 LNS
 
26.02.12
20:22
(11) Идея понятна.
У далось обойти проблему вот каким способом:
В приведенном выше коде есть переменная Договор. Это реквизит формы. Если этот реквизит заполнен, то выборка пуста. Если я его очищаю:

Если РазмерСпискаДоговоров>0 Тогда
       Договор = "";
       Опер.ИспользоватьСубконто(ВидыСубконто.Договоры, СписокДоговоров);
   Иначе    
       Если ПустоеЗначение(Договор) = 0 Тогда
           Если Договор.ЭтоГруппа() = 0 Тогда
               Опер.ИспользоватьСубконто(ВидыСубконто.Договоры, Договор);
           Иначе
               //Опер.ИспользоватьСубконто(ВидыСубконто.Договоры,);
           КонецЕсли;
       КонецЕсли;  
   КонецЕсли;

То все работает. Только не понимаю почему
13 Креатив
 
26.02.12
20:27
(0)Вот здесь я переделывал акт сверки для УСН. http://zalil.ru/32781377
Код близкий.
14 Хряк
 
26.02.12
22:05
гы-гы, никакой реакции на мои комменты
позиция страуса
15 Cthulhu
 
27.02.12
02:21
(7): ммм... на такой вопрос даже... кхм... пригласите специалиста, да.
16 Хряк
 
27.02.12
09:58
код который ты привел находится в районе 260 стр.
но... ниже в районе 525 строки есть еще одно условие выборки договоров.
ещё туда добавь условие выбора по списку