Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выполнить Запрос
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
mavrik
Нужно исключить два счёта.Как передать Счета в СписокСчетов?Подскажите новичку,Зарание благодарен
СписокСчетов = СоздатьОбъект("СписокЗначений");
Ит = СоздатьОбъект("БухгалтерскиеИтоги");      
Ит.ИспользоватьСубконто(ВидыСубконто.РахункиБанк,, 1);
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"31.1",СписокСчетов,, 2, "Месяц", "С");
MATEVI
Цитата из СП
Цитата
<КоррСчет> - необязательный параметр. Значение типа ''Счет'' - корреспондирующий счет, в корреспонденции с которым будут отбираться итоги счета, указанного в параметре <Счет>. Задается значением типа ''Счет'' или объектом типа ''СписокЗначений'', содержащим значения типа ''Счет'', либо строкой содержащей список кодов счетов, разделенных символом '','' или '';''. Если параметр не указан, будут отбираться итоги в корреспонденции со всеми счетами.
mavrik
Я делаю по такому принципу не выходит,Выводит по всем Корр.Счетам
СписокСчетов = СоздатьОбъект("СписокЗначений");
Счет = СоздатьОбъект("Счет");
Счет.ВыбратьСчета();
Пока Счет.ПолучитьСчет() = 1 Цикл
        Если (Счет.Код = "50.1") ИЛИ (Счет.Код = "60.1") Тогда
            Продолжить;
        КонецЕсли;
СписокСчетов.ДобавитьЗначение(Счет.Код);

А если так тогда работает
СписокСчетов = СоздатьОбъект("СписокЗначений");
Счет = СоздатьОбъект("Счет");
Счет.ВыбратьСчета();
Пока Счет.ПолучитьСчет() = 1 Цикл
    Если Счет.ЭтоГруппа() = 1 Тогда    
        Если (Счет.Код = "50") ИЛИ (Счет.Код = "60") Тогда
            Продолжить;
        КонецЕсли;
    КонецЕсли;
СписокСчетов.ДобавитьЗначение(Счет.Код);
mister-x
Цитата
или объектом типа ''СписокЗначений'', содержащим значения типа ''Счет''

куріть СчетПоКоду, а у вас Код - це значення типу стрічка
MATEVI
Это вообще лишнее. Можно просто
Ит.ВключатьСубсчета(, 1); // а если поставить -1 написано в сп
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"31.1","50,60",, 2, "Месяц", "С");


Но если очееь хочется список значений то в типовой к примеру
глСчетаОстатковВВалюте = СоздатьОбъект("СписокЗначений");
глСчетаОстатковВВалюте.ИзСтрокиСРазделителями("302,312,314,332,334,3512");
alex040269
Цитата(mavrik @ 04.09.12, 12:15) необходимо зарегистрироваться для просмотра ссылки
Я делаю по такому принципу не выходит,Выводит по всем Корр.Счетам
СписокСчетов = СоздатьОбъект("СписокЗначений");
Счет = СоздатьОбъект("Счет");
Счет.ВыбратьСчета();
Пока Счет.ПолучитьСчет() = 1 Цикл
        Если (Счет.Код = "50.1") ИЛИ (Счет.Код = "60.1") Тогда
            Продолжить;
        КонецЕсли;
СписокСчетов.ДобавитьЗначение(Счет.Код);

А если так тогда работает
СписокСчетов = СоздатьОбъект("СписокЗначений");
Счет = СоздатьОбъект("Счет");
Счет.ВыбратьСчета();
Пока Счет.ПолучитьСчет() = 1 Цикл
    Если Счет.ЭтоГруппа() = 1 Тогда    
        Если (Счет.Код = "50") ИЛИ (Счет.Код = "60") Тогда
            Продолжить;
        КонецЕсли;
    КонецЕсли;
СписокСчетов.ДобавитьЗначение(Счет.Код);


Похоже на то, что в первом коде никогда не выполняется условие
 Если (Счет.Код = "50.1") ИЛИ (Счет.Код = "60.1") Тогда

то есть код счета <> "50.1" или "60.1" нужно искать пути
Счет = СчетПоКоду("50.1")
или
 Счет.Код = "501"


перед условием вставьте код
Сообщить(Счет.Код)
mavrik
Мне нужно "50.1" и "60.1" исключить,а остальные записать. Пробовал таким методом непомогает,Через сообщить,счета есть в СпискеЗначений кроме "50.1" и "60.1" а запрос перебор идет по всем счетам
ТекСчет = Счет.Код
СписокСчетов.ДобавитьЗначение(СчетПоКоду(Счет));

Если таким методом список значений пуст
ТекСчет = Счет.ТекущийСчет();
СписокСчетов.ДобавитьЗначение(ТекСчет);
mavrik
Заметил такое если перебрать не все счета то Итог выводит правильный,но 50.1 не исключает,в чем проблема подскажите,как я уже не пробовал,и в перемену записывал через точку,и через точку запетою,не помогает, и
СписокСчетов.ДобавитьЗначение(СчетПоКоду(Счет.Код));
,подскажите второй день мучаюсь
СписокСчетов = СоздатьОбъект("СписокЗначений");
Счет = СоздатьОбъект("Счет");
Счет.ВыбратьСчета();
к=0;
Пока Счет.ПолучитьСчет() = 1 Цикл     
    ТекСчет = СчетПоКоду(Счет.Код);
    Если СчетПоКоду("50.1")=ТекСчет Тогда
        Продолжить;
    КонецЕсли;
    СписокСчетов.ДобавитьЗначение(Счет.Код);
    к=к+1;
    Если к=220 Тогда
        Прервать;
    КонецЕсли;
КонецЦикла;
mavrik
Всем спасибо за помощь
Vofka
mavrik, и?
mavrik
Только не могу понять почуму несрабатывал
Ит.ВключатьСубсчета(0,-1);

Если Счет.ЭтоГруппа() = 1 Тогда  
      Продолжить;
КонецЕсли;
alex040269
Может нужно еще исключить счета группы?
В запросе есть 50 и 60 и соответственно попадают и 50.1 и 60.1
mavrik
Цитата(alex040269 @ 05.09.12, 12:08) необходимо зарегистрироваться для просмотра ссылки
Может нужно еще исключить счета группы?
В запросе есть 50 и 60 и соответственно попадают и 50.1 и 60.1

Да я уже так и сделал,пасиба
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.