Имя: Пароль:
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 строки есть еще одно условие выборки договоров.
ещё туда добавь условие выбора по списку
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn