Имя: Пароль:
1C
1C 7.7
v7: запрос не выбирает период
0 alex_reglament
 
12.12.11
15:22
привет все помогите пожалуйста с запросом
мне нужно док получить из запроса но он не получает
Процедура Сформировать()
   спрБанка = СоздатьОбъект("Справочник.БанковскиеСчета");
   Если Счет_62 = 1 Тогда
       
       Счет_62_ = СчетПоКоду("62");
   Иначе
       Счет_62_ = "";
   КонецЕсли;
   Если Счет_76 = 1 Тогда
       Счет_76_ = СчетПоКоду("76");
   Иначе
       Счет_76_ = "";
   КонецЕсли;
   счет = Счет_62_; //+ Счет_76_;
   //*******************************************
   Таб = СоздатьОбъект("Таблица");
   Таб.ВывестиСекцию("Шапка");
   Ит_1 = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит_1.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
   Ит_1.ВыполнитьЗапрос(НачМесяца(Дата_),КонМесяца(Дата_),СчетПоКоду("62"),,,,"Проводка");
   Ит_1.ВыбратьПериоды();
   Пока Ит_1.ПолучитьПериод() > 0 Цикл    
       Ит_1.ВыбратьСубконто();
       Пока Ит_1.ПолучитьСубконто() = 1 Цикл
       РачетныйСчет = "";
       СуммаОбщая   = "";
       СуммаПросроченная = "";
       Если Ит_1.СКД() <> 0 Тогда    
           спрБанка.ИспользоватьВладельца(Ит_1.Субконто().ТекущийЭлемент());
           Контрагент            = Ит_1.Субконто();
           УНП                   = Ит_1.Субконто().УНН;
           спрБанка.ВыбратьЭлементы();
           Пока спрБанка.ПолучитьЭлемент() = 1 Цикл
               Если Число(спрБанка.Код) = 1 Тогда
                   РачетныйСчет          = спрБанка.Наименование + ": р/с №" + СокрЛП(спрБанка.НомерСчета);
               Иначе
                   РачетныйСчет = "";
               КонецЕсли;
           КонецЦикла;
           СуммаОбщая            = Ит_1.СКД();
           СуммаПросроченная     =  Ит_1.Операция.ДатаОперации;
           Таб.ВывестиСекцию("Строка");
       КонецЕсли;
   КонецЦикла;
КонецЦикла;
   Таб.ПараметрыСтраницы(2, , , , , , , , , 1);
   Таб.Опции(0, 0, 6, 13, "дебиторская задолжность");
   Таб.ТолькоПросмотр(1);
   Таб.Показать("дебиторская задолжность");
КонецПроцедуры
1 alex_reglament
 
12.12.11
15:23
Ит_1.ВыполнитьЗапрос(НачМесяца(Дата_),КонМесяца(Дата_),СчетПоКоду("62"),,,,"месяц");

если делать так то  заполняется все кроме  СуммаПросроченная     =  Ит_1.Операция.ДатаОперации;
почему
2 1Сергей
 
12.12.11
15:26
ВыбратьСчета()
3 alex_reglament
 
12.12.11
15:30
это что в место периода?
4 vinogradъ
 
12.12.11
15:33
(1) какая операция должна быть при периодичности "месяц"?
5 alex_reglament
 
12.12.11
15:36
Процедура Сформировать()
   спрБанка = СоздатьОбъект("Справочник.БанковскиеСчета");
   Если Счет_62 = 1 Тогда
       
       Счет_62_ = СчетПоКоду("62");
   Иначе
       Счет_62_ = "";
   КонецЕсли;
   Если Счет_76 = 1 Тогда
       Счет_76_ = СчетПоКоду("76");
   Иначе
       Счет_76_ = "";
   КонецЕсли;
   счет = Счет_62_; //+ Счет_76_;
   //*******************************************
   Таб = СоздатьОбъект("Таблица");
   Таб.ВывестиСекцию("Шапка");
   Ит_1 = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит_1.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
   Ит_1.ВыполнитьЗапрос(НачМесяца(Дата_),КонМесяца(Дата_),СчетПоКоду("62"),,,,"Проводка");
   Ит_1.ВыбратьСчета();
   Пока Ит_1.ПолучитьСчет() > 0 Цикл    
       Ит_1.ВыбратьСубконто();
       Пока Ит_1.ПолучитьСубконто() = 1 Цикл
       РачетныйСчет = "";
       СуммаОбщая   = "";
       СуммаПросроченная = "";
       Если Ит_1.СКД() <> 0 Тогда    
           спрБанка.ИспользоватьВладельца(Ит_1.Субконто().ТекущийЭлемент());
           Контрагент            = Ит_1.Субконто();
           УНП                   = Ит_1.Субконто().УНН;
           спрБанка.ВыбратьЭлементы();
           Пока спрБанка.ПолучитьЭлемент() = 1 Цикл
               Если Число(спрБанка.Код) = 1 Тогда
                   РачетныйСчет          = спрБанка.Наименование + ": р/с №" + СокрЛП(спрБанка.НомерСчета);
               Иначе
                   РачетныйСчет = "";
               КонецЕсли;
           КонецЦикла;
           СуммаОбщая            = Ит_1.СКД();
           СуммаПросроченная     =  Ит_1.Операция.Документ.Вид();
           Таб.ВывестиСекцию("Строка");
       КонецЕсли;
   КонецЦикла;
КонецЦикла;
   Таб.ПараметрыСтраницы(2, , , , , , , , , 1);
   Таб.Опции(0, 0, 6, 13, "дебиторская задолжность");
   Таб.ТолькоПросмотр(1);
   Таб.Показать("дебиторская задолжность");
КонецПроцедуры
6 alex_reglament
 
12.12.11
15:36
так колонка пустая
7 1Сергей
 
12.12.11
15:36
(5) не вместо, а ещё цикл добавь
8 alex_reglament
 
12.12.11
15:37
(4) мне вообще нужно документ получить а из него уже реквизит что на форме дока лежит
9 alex_reglament
 
12.12.11
15:38
а с переодичностью месяц проводка документ я просто пробовал и не чего не получается
10 alex_reglament
 
12.12.11
15:38
так ит_1.ВыбратьПериод(); в отладчике = 0
цикл перд ним ставить?
11 1Сергей
 
12.12.11
15:40
(10) тебе надо по всем контрагентам вместе или перебрать их нужно?
12 alex_reglament
 
12.12.11
15:42
по всем
13 alex_reglament
 
12.12.11
15:42
только два счета 76 и 62
14 alex_reglament
 
12.12.11
15:44
блин ну что ж такое то ни как не получается
15 1Сергей
 
12.12.11
15:44
(12) тогда убери вот это:

//Ит_1.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
16 alex_reglament
 
12.12.11
15:46
а следом и цикл
Ит_1.ВыбратьСубконто();
       Пока Ит_1.ПолучитьСубконто() = 1 Цикл
правильно?
17 1Сергей
 
12.12.11
15:48
(16) а, стоп. не заметил этого цикла
18 alex_reglament
 
12.12.11
15:48
а как же я получу контрагента?
19 1Сергей
 
12.12.11
15:49
(16) ну, закомментируй, попробуй. Странно, что он у тебя периоды не выбирает
20 1Сергей
 
12.12.11
15:50
(18) тэкс. значит всё-таки надо не по всем
21 alex_reglament
 
12.12.11
15:54
в том то и дело что странно
22 alex_reglament
 
12.12.11
15:55
после коментирования ругается на контрагента
23 1Сергей
 
12.12.11
15:55
может тебе надо не счета перебирать, а корсчета?
24 alex_reglament
 
12.12.11
15:55
спрБанка.ИспользоватьВладельца(Ит_1.Субконто().ТекущийЭлемент());
           Контрагент            = Ит_1.Субконто();
           УНП                   = Ит_1.Субконто().УНН;
           спрБанка.ВыбратьЭлементы();
           Пока спрБанка.ПолучитьЭлемент() = 1 Цикл
               Если Число(спрБанка.Код) = 1 Тогда
                   РачетныйСчет          = спрБанка.Наименование + ": р/с №" + СокрЛП(спрБанка.НомерСчета);
               Иначе
                   РачетныйСчет = "";
               КонецЕсли;
           КонецЦикла;
25 1Сергей
 
12.12.11
15:55
(22) а периоды вбирает?
26 1Сергей
 
12.12.11
15:55
выбирает?
27 alex_reglament
 
12.12.11
16:01
нет!
28 alex_reglament
 
12.12.11
16:01
так мой код правильный?
29 alex_reglament
 
12.12.11
16:04
он вообще период выбирать отказывается

Процедура Сформировать()
   спрБанка = СоздатьОбъект("Справочник.БанковскиеСчета");
   Если Счет_62 = 1 Тогда
       
       Счет_62_ = СчетПоКоду("62");
   Иначе
       Счет_62_ = "";
   КонецЕсли;
   Если Счет_76 = 1 Тогда
       Счет_76_ = СчетПоКоду("76");
   Иначе
       Счет_76_ = "";
   КонецЕсли;
   счет = Счет_62_; //+ Счет_76_;
   //*******************************************
   Таб = СоздатьОбъект("Таблица");
   Таб.ВывестиСекцию("Шапка");
   Ит_1 = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит_1.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
   Ит_1.ВыполнитьЗапрос(НачМесяца(Дата_),КонМесяца(Дата_),СчетПоКоду("62"),,,,"Проводка");
   //Ит_1.ВыбратьСчета();
   //Пока Ит_1.ПолучитьСчет() > 0 Цикл
       Ит_1.ВыбратьПериоды();
       Пока Ит_1.ПолучитьПериод() > 0 Цикл
       //Ит_1.ВыбратьСубконто();
       //Пока Ит_1.ПолучитьСубконто() = 1 Цикл
       РачетныйСчет = "";
       СуммаОбщая   = "";
       СуммаПросроченная = "";
       Если Ит_1.СКД() <> 0 Тогда    
       //    спрБанка.ИспользоватьВладельца(Ит_1.Субконто().ТекущийЭлемент());
       //    Контрагент            = Ит_1.Субконто();
       //    УНП                   = Ит_1.Субконто().УНН;
       //    спрБанка.ВыбратьЭлементы();
       //    Пока спрБанка.ПолучитьЭлемент() = 1 Цикл
       //        Если Число(спрБанка.Код) = 1 Тогда
       //            РачетныйСчет          = спрБанка.Наименование + ": р/с №" + СокрЛП(спрБанка.НомерСчета);
       //        Иначе
       //            РачетныйСчет = "";
       //        КонецЕсли;
       //    КонецЦикла;
           СуммаОбщая            = Ит_1.СКД();
           СуммаПросроченная     =  Ит_1.Операция.Документ.Вид();
           Таб.ВывестиСекцию("Строка");
   КонецЕсли;
   КонецЦикла;
//КонецЦикла;
//КонецЦикла;
   Таб.ПараметрыСтраницы(2, , , , , , , , , 1);
   Таб.Опции(0, 0, 6, 13, "дебиторская задолжность");
   Таб.ТолькоПросмотр(1);
   Таб.Показать("дебиторская задолжность");
КонецПроцедуры
30 alex_reglament
 
12.12.11
16:07
(29) таблица пустая! Ит_1.ВыбратьПериоды() = 0
31 alex_reglament
 
12.12.11
16:07
что делать?
32 2S
 
12.12.11
16:09
что за фантаст код?
 Если Счет_62 = 1 Тогда
       
       Счет_62_ = СчетПоКоду("62");
   Иначе
       Счет_62_ = "";
   КонецЕсли;
   Если Счет_76 = 1 Тогда
       Счет_76_ = СчетПоКоду("76");
   Иначе
       Счет_76_ = "";
   КонецЕсли;
   счет = Счет_62_; //+ Счет_76_;
33 2S
 
12.12.11
16:09
включатьсубсчета где?
34 alex_reglament
 
12.12.11
16:10
//Если Счет_62 = 1 Тогда
       
    //   Счет_62_ = СчетПоКоду("62");
 //  Иначе
   //    Счет_62_ = "";
 //  КонецЕсли;
 //  Если Счет_76 = 1 Тогда
   //    Счет_76_ = СчетПоКоду("76");
 //  Иначе
   //    Счет_76_ = "";
  // КонецЕсли;
  // счет = Счет_62_; //+ Счет_76_;
35 alex_reglament
 
12.12.11
16:10
это что то изменит
36 1Сергей
 
12.12.11
16:10
(35) если 62 - это группа, то да
37 2S
 
12.12.11
16:10
как связяно СКД и период "Операция"
ЖКК в помощь
38 alex_reglament
 
12.12.11
16:15
мне нужно получить документ а не связовать СКД с Операцией
39 2S
 
12.12.11
16:17
БИ.Операция.Документ.ТекущийДокумент()
если не забыл еще )
40 alex_reglament
 
12.12.11
16:18
Таб = СоздатьОбъект("Таблица");
   Таб.ВывестиСекцию("Шапка");
   Ит_1 = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит_1.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
   Ит_1.ВыполнитьЗапрос(НачМесяца(Дата_),КонМесяца(Дата_),СчетПоКоду("62"),,,,"Проводка");
   //Ит_1.ВыбратьСчета();
   //Пока Ит_1.ПолучитьСчет() > 0 Цикл
       Ит_1.ВыбратьПериоды();
       Пока Ит_1.ПолучитьПериод() > 0 Цикл
       //Ит_1.ВыбратьСубконто();
       //Пока Ит_1.ПолучитьСубконто() = 1 Цикл
       РачетныйСчет = "";
       СуммаОбщая   = "";
       СуммаПросроченная = "";
       Если Ит_1.СКД() <> 0 Тогда    
       //    спрБанка.ИспользоватьВладельца(Ит_1.Субконто().ТекущийЭлемент());
       //    Контрагент            = Ит_1.Субконто();
       //    УНП                   = Ит_1.Субконто().УНН;
       //    спрБанка.ВыбратьЭлементы();
       //    Пока спрБанка.ПолучитьЭлемент() = 1 Цикл
       //        Если Число(спрБанка.Код) = 1 Тогда
       //            РачетныйСчет          = спрБанка.Наименование + ": р/с №" + СокрЛП(спрБанка.НомерСчета);
       //        Иначе
       //            РачетныйСчет = "";
       //        КонецЕсли;
       //    КонецЦикла;
           СуммаОбщая            = Ит_1.СКД();
           СуммаПросроченная     =  Ит_1.Операция.Документ.ТекущийДокумент().Вид();
           Таб.ВывестиСекцию("Строка");
   КонецЕсли;
   КонецЦикла;
//КонецЦикла;
//КонецЦикла;
   Таб.ПараметрыСтраницы(2, , , , , , , , , 1);
   Таб.Опции(0, 0, 6, 13, "дебиторская задолжность");
   Таб.ТолькоПросмотр(1);
   Таб.Показать("дебиторская задолжность");
КонецПроцедуры




таблица пустая   Ит_1.ВыбратьПериоды() =0
41 alex_reglament
 
12.12.11
16:29
что ни кто не поможет?
42 alex_reglament
 
12.12.11
16:31
Ит_1.Операция.Документ.ТекущийДокумент() //пустое значение
43 2S
 
12.12.11
16:33
вот Вы мне объясните, для чего после выборки по виду "Операция" необходимо получить значение СКД()?
44 alex_reglament
 
12.12.11
16:33
аук люди не бросайте меня одного
45 alex_reglament
 
12.12.11
16:34
вот задание что мне нужно было сделать

Отчет по дебеторской задолжности
Должн онализировать задолжность по 62 и 76  счетам на дату
реквизиты формы
1.    Наименование субконто 1
2.    Унп субконто1. унн
3.    Банковские ревизиты (основ расчет счет , наименование, кодбанка) найти по контрагенту
4.    Сумма задолжности общая (с итогом по колонке) СКД
5.    Сумма задолжности просроч(датадок + дней для требов) из накладной
46 alex_reglament
 
12.12.11
16:36
а где у меня выборка по виду операция?
47 alex_reglament
 
12.12.11
16:38
да и на сколько у меня оброзования хватает  я думаю что если б СКД мешало то оно было бы равно 0 а колонка которая у меня пустая  заполнялась бы данными а вот почему запрос не хочет отдать мне документ на это образования у меня не хватает что бы понять
48 alex_reglament
 
12.12.11
16:39
блин меня акоро забанят помогите мне пожалуйста
49 2S
 
12.12.11
16:42
что за конфигурация?
Я повторю свой вопрос - Как Вы хотите получить СКД() по операции?!
Поймите - это не аналитика БИ!
50 alex_reglament
 
12.12.11
16:43
конфигурация =  sway
Я повторю свой вопрос - Как Вы хотите получить СКД() по операции?!
Поймите - это не аналитика БИ!
//я вас не понимаю
51 2S
 
12.12.11
16:43
5.    Сумма задолжности просроч(датадок + дней для требов) из накладной
Как это реализовано в Вашей конфигурации - документ - это субконто?

Сейчас все начнут советовать, я в принципе поддержу - "Переходите на 8-ку"
52 2S
 
12.12.11
16:44
+(51) как узнать, что оплата прошла или не прошла именно по данному документу?
53 alex_reglament
 
12.12.11
16:44
вот на 8 -ке у меня проблем нет!! а на 7 есть
54 alex_reglament
 
12.12.11
16:45
да именно по скд!
55 alex_reglament
 
12.12.11
16:45
или если док проведен!
56 2S
 
12.12.11
16:45
та млять!
счет 62 имеет какие субконто?
57 alex_reglament
 
12.12.11
16:46
СчетПоКоду("62") = Расчеты с покупателями и заказчиками
СчетПоКоду("76") = Расчеты с разными дебиторами и кредиторами
58 alex_reglament
 
12.12.11
16:46
одно Контрагенты
59 2S
 
12.12.11
16:47
еще немного и начну зарабатывать больше 8-шников )
60 alex_reglament
 
12.12.11
16:47
давай
61 alex_reglament
 
12.12.11
16:48
счета и есть факт оплаты!
62 2S
 
12.12.11
16:48
и?
Итоги формируются только по данной аналитике. Повторю, как вы хотите получить итоги по документам? Может у вас какой-то регистр прикручен для отслеживания оплаты по документам? я ж не знаю...
63 alex_reglament
 
12.12.11
16:49
да  Сумма задолжности просроч по из дока а  Сумма задолжности общая СКД!
64 alex_reglament
 
12.12.11
16:50
регистров нет были бы зделал сам у меня с БИ проблемы а с регистрами нет
65 2S
 
12.12.11
16:53
ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("Контрагент");
   ТЗ.НоваяКолонка("ДолгОбщий","Число");
   ТЗ.НоваяКолонка("ДолгПросроченный","Число");
   
   Ит_1 = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит_1.ИспользоватьСубконто(ВидыСубконто.Контрагенты);  
   Ит_1.ВключатьСубсчета(0);
   Ит_1.ВыполнитьЗапрос(НачМесяца(Дата_),КонМесяца(Дата_),"62",,,,"Операция");
   Ит_1.ВыбратьСубконто(ВидыСубконто.Контрагенты);
   Пока Ит_1.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл  
       СуммаДолгаОбщая = Ит_1.СКД() - Ит_1.СКК();
       Если СуммаДолгаОбщая = 0 Тогда
           Продолжить;
       КонецЕсли;
       ТЗ.НоваяСтрока();
       ТЗ.Контрагент = Ит_1.Субконто(1);
       ТЗ.ДолгОбщий = СуммаДолгаОбщая;
       
       СуммаДолгаПросроченная = 0;
       Ит_1.ВыбратьПериоды();
       Пока Ит_1.ПолучитьПериод() = 1 Цикл  
           Сообщить(ТЗ.Контрагент);
           Сообщить(Ит_1.Операция.Документ.ТекущийДокумент());
           Сообщить(Ит_1.СКД());
       КонецЦикла;    
   КонецЦикла;    

Посмотрите данный код.
Вы получите СКД после каждой операции, только ОПЯТЬ! повторю вопрос - как определить оплату/не оплату по документу?!
66 alex_reglament
 
12.12.11
16:54
значит так сночало  запрос получает наименование контрагента затем его унн затем расчетный счет контрагента затем скд затем  получает из текущего дока реквизиты датадок и ДнейТребования затем если ДатаДок + ДнейТребования < КонМесяца(Дата_) тогда сумма из дока
67 alex_reglament
 
12.12.11
16:55
зачем мне ее определять факт данных на счету 62 и 76 и есть оплата!
68 2S
 
12.12.11
16:56
Зарубите на носу - с такой аналитикой на счете 62 это невозможно
69 2S
 
12.12.11
16:57
заведите вторую аналитику "Документ" и ведите партионный учет по документам. Тогда Ващи возможности учета увеличаться.
70 alex_reglament
 
12.12.11
16:58
(68) почему
71 alex_reglament
 
12.12.11
16:59
+(65) попробовал Ит_1.ВыбратьПериоды() =0
72 2S
 
12.12.11
16:59
скажу как 8-ку - нет измерения "Документ" или регистратора
73 2S
 
12.12.11
17:00
(71) за указанный период есть документы движения по контрагентам?
74 alex_reglament
 
12.12.11
17:09
ладно всем спосибо нашел выход буду анализировать другой счет у которого есть несколько субконто и второе из низ док
75 alex_reglament
 
12.12.11
17:12
(73) если б небыло то и ветки небыло
76 rider
 
12.12.11
22:01
может так выбратьПериоды(,,,1)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший