Отчет КарточкаКлиента в Бухучете

1. Andzhej 30.03.07 02:21 Сейчас в теме
Нужно сделать отчет КарточкаКлиента в базе Бухучет. Вид диалога формы и печатная форма такая как и в отчете КарточкаКлиента в комплексной базе.
Насколько я понял надо сделать бухзапрос по счетам "36,377, 63" и если Константа.ВыделятьАвансы = Да, тогда еще до этих счетов добавить "681,371", по субконто "ВыбКонтрагент".

Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрРах= "681,681,371,36,377,63";
Иначе
СтрРах = "36,377,63";
КонецЕсли;
Ит.ВключатьСубсчета(1);
Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрРах, , ,3,"Проводка");
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
...
КонецЦикла;

Но как быть из расчетом валютных сумм? Ведь ВыполнитьЗапрос(<НачалоПериода>,<КонецПериода>,<Счет>,<КоррСчет>,<Валюта>,<ТипИтогов>,<Периодичность>,<ТипСуммы>)
где параметр <Валюта> - значение типа ''Справочник.Валюты''. Если параметр не указан итоги выдаются без учета валюты.
Т.е. по валюте итоги не будуть рассчитыватся или я неправильно понял? Мне нужно (см. печат. форму) и по валюте и по грн.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Andzhej 01.04.07 16:33 Сейчас в теме
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрСч= "681,681,371,36,377,63";
Иначе
СтрСч= "36,377,63";
КонецЕсли;
Ит.ВключатьСубсчета(1);
Если Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрСч, , ,3,"Проводка")=1 Тогда
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод()=1 Цикл
Ит.ВыбратьСчета();
Пока Ит.ПолучитьСчет()=1 Цикл

Ит.ВыбратьВалюты();
Пока Ит.ПолучитьВалюту()=1 Цикл
КонецЦикла;

КонецЦикла;
КонецЦикла;
КонецЕсли;
************************************
почему-то у выборку не попадает ни одна валюта: ВыбратьВалюты()=0, хотя ВыбратьСчета()=1 и в выборке есть счета "36,361,632", "632"-валютный.
Как сделать запрос так, чтоб в выборку валют попадала не одна валюта?
40. Andzhej 04.04.07 12:47 Сейчас в теме
надо же:
СтрРах="681";
Ит.ВключатьСубсчета(1);
...
************
Рах=681
Ит.ВыбратьВалюты()=0
Рах=6812
Ит.ВыбратьВалюты()=1
**********
работает
47. Andzhej 04.04.07 18:24 Сейчас в теме
Табл=СоздатьОбъект("ТаблицаЗначений");
Табл.НоваяКолонка("Документ");
Табл.НоваяКолонка("Валюта");
Табл.НоваяКолонка("СальдоПоч");
Табл.НоваяКолонка("СальдоКін");
Табл.НоваяКолонка("Збільш");
Табл.НоваяКолонка("Зменш");
Табл.НоваяКолонка("ЗбільшВал");
Табл.НоваяКолонка("ЗменшВал");
Табл.НоваяКолонка("СальдоКінВал");

Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ВыбранныйПланСчетов());
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 1);

Если ВидВзаим = 1 Тогда
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрРах= "681,371,36,377,63";
Иначе
СтрРах = "36,377,63";
КонецЕсли;
ИначеЕсли ВидВзаим = 2 Тогда
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрРах= "681,63";
Иначе
СтрРах = "63";
КонецЕсли;
ИначеЕсли ВидВзаим = 3 Тогда
СтрРах= "371,36,377";
КонецЕсли;

Ит.ВключатьСубсчета(1);
Если Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрРах, , ,3,"Проводка","СВ")=1 Тогда
Ит.ВыбратьСчета();
Пока Ит.ПолучитьСчет() = 1 Цикл
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
Рах = Ит.Счет;
Табл.НоваяСтрока();
Табл.Документ = Ит.Операция.Документ;
Если Рах.Валютный = 1 Тогда
Ит.ВыбратьВалюты();
Пока Ит.ПолучитьВалюту() = 1 Цикл
Табл.ЗбільшВал = Ит.ДО(2);
Табл.ЗменшВал = Ит.КО(2);
Табл.СальдоКінВал = Ит.СКД(2) - Ит.СКК(2);
Табл.Валюта = Ит.Валюта;
КонецЦикла;
Иначе
Табл.СальдоПоч = Ит.СНД() - Ит.СНК();
Табл.Збільш = Ит.ДО();
Табл.Зменш = Ит.КО();
Табл.СальдоКін = Ит.СКД() - Ит.СКК();
КонецЕсли;
сообщить(Рах);
Табл.ВыбратьСтроку();
КонецЦикла;
КонецЦикла;
КонецЕсли;
**********************
При формировании таблицы "Табл" при выборе нового счета из выборки (в выборке есть счета 3771,681,6812) 681 т.е. переход из 3771 в 681 счет, в колонке "Документ" вдруг меняется значения, хотя остальные значения в других колонках остаются теми самыми.

Сначала заполнилась эта таблица по счету 3771. Колонка "Документ" заполнилась значением "Операция 1..." (другие колонки заполнились итогами по счету 3771). В колонке "Документ" прописано значение "Операция 1..." 10 раз, так и должно быть.
Тепер когда счет=681, вдруг в колонке "Документ" все значения из "Операция 1..." поменялись на "Операция 2... ", хотя в других колонках значения не изменились + добавились итоги по счету 681 и его субсчету 6812 ("6812" - фигурирует в Операции 2 - 1 проводка в ним, 3771 в операции 1 - 10 проводок с ним).
Какая причина ??
Если разбить все группы счетов на их субсчета:

Если ВидВзаим = 1 Тогда
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрРах= "6811,6812,3711,3712,361,362,363,3771,3772,3773,3774,3775, 631,632,633";
Иначе
СтрРах = "361,362,363,3771,3772,3773,3774,3775, 631,632,633";
КонецЕсли;
ИначеЕсли ВидВзаим = 2 Тогда
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрРах= "6811,6812,631,632,633";
Иначе
СтрРах = "631,632,633";
КонецЕсли;
ИначеЕсли ВидВзаим = 3 Тогда
СтрРах= "3711,3712,361,362,363,3771,3772,3773,3774,3775";
КонецЕсли;

без метода Ит.ВключатьСубсчета(1) проблема остается в силе!!!
2. CheBurator 3121 30.03.07 04:01 Сейчас в теме
Совершенно аналогично.
0. Синтакс-помощник вам поможет... - там все написано...
1. В ВыполнитьЗапросе укажите Типы нужных вам сумм (после периодичности итогов: <ТипСуммы> - число или строка - тип рассчитываемых итогов. Может принимать следующие значения (в скобках указаны строковые синонимы):
1 (''C'', ''S'') рассчитывать суммы;
2 (''В'', ''C'') рассчитывать валютные суммы;
т.е. у вас будет типа ...."Проводка","СВ")
1. ВыбратьВалюты() и цикл По ПолучитьВалюту() - совершенно аналогично.
2. Когда обращаетесь к итогам - указывайте тип получаемой суммы
СНД("С");
СНД("В");
16. Andzhej 02.04.07 16:04 Сейчас в теме
Код:

Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ВыбранныйПланСчетов());
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрРах= "681,371,36,377,63";
Иначе
СтрРах = "36,377,63";
КонецЕсли;
Если Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрРах, , ,3,"Проводка","СВ")=1 Тогда
Ит.ВыбратьСчета();
Пока Ит.ПолучитьСчет() = 1 Цикл
Ит.ВыбратьПериоды(, ,1);
Пока Ит.ПолучитьПериод() = 1 Цикл
Рах = Ит.Счет;
Табл.НоваяСтрока();
Табл.Документ = Ит.Операция.Документ;
Если Рах.Валютный = 1 Тогда
Если Рах.Валютный = 1 Тогда
Табл.СальдоПоч = Ит.СНД(2) - Ит.СНК(2);
Табл.ЗбільшГрн = Ит.ДО(2);
Табл.ЗменшГрн = Ит.КО(2);
Иначе
Табл.ЗбільшВал = Ит.ДО(2);
Табл.ЗменшВал = Ит.КО(2);
Табл.КінВал = Ит.ДО(2) - Ит.КО(2);
КонецЕсли;
Табл.Валюта = Ит.Операция.Валюта;
КонецЕсли;
КонецЦикла;
КонецЦикла;

****************************************
выдает ошыбку:

Ит.ВыбратьПериоды();
{\\1CPROFI\E\BASI_1C\VEST\EXTFORMS\KARTKLIENT.ERT(126)}: Не выбран элемент вышестоящей группировки!

в Отладчике такая картина:
Ит.ВыбратьВалюты() = 0
Ит.ВыбратьСчета() = 1
Ит.ВыбратьПериоды() = Ошибка в выражении!

Что не так?
29. Andzhej 02.04.07 23:50 Сейчас в теме
Ворона Написал:
-------------------------------------------------------
> либо в самом деле так:
>
> Процедура Сформировать()
> БИ=СоздатьОбъект("БухгалтерскиеИтоги");
> БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты,В
> ыбКонтрагенты,1);
> БИ.ВыполнитьЗапрос(НачДата,КонДата,"131",,,3,"Пров
> одка","СВ");
> Би.ВыбратьСчета();
> Пока Би.ПолучитьСчет()=1 Цикл
> Сообщить("Счет:"+БИ.Счет);
> БИ.ВыбратьПериоды();
> Пока Би.ПолучитьПериод()=1 Цикл
> Сообщить("Перид:"+БИ.НачДата);
> Сообщить("Валюта:"+БИ.Операция.валюта);
> Сообщить("Сумма:"+БИ.Операция.ВалСумма);
> КонецЦикла;
> КонецЦикла;
> КонецПроцедуры
> _
>
> 33 секунды
*****************
*****************

Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ВыбранныйПланСчетов());
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрРах= "681,371,36,377,63";
Иначе
СтрРах = "36,377,63";
КонецЕсли;
Если Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрРах, , ,3,"Проводка","СВ")=1 Тогда
Ит.ВыбратьСчета();
Пока Ит.ПолучитьСчет() = 1 Цикл
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
Рах = Ит.Счет;
Табл.НоваяСтрока();
Табл.Документ = Ит.Операция.Документ;
Если Рах.Валютный = 1 Тогда
Если Рах.Валютный = 1 Тогда
Табл.СальдоПоч = Ит.СНД(2) - Ит.СНК(2);
Табл.ЗбільшГрн = Ит.ДО(2);
Табл.ЗменшГрн = Ит.КО(2);
Иначе
Табл.ЗбільшВал = Ит.ДО(2);
Табл.ЗменшВал = Ит.КО(2);
Табл.КінВал = Ит.ДО(2) - Ит.КО(2);
КонецЕсли;
Табл.Валюта = Ит.Операция.Валюта;
КонецЕсли;
КонецЦикла;
КонецЦикла;
*******************
Почему выдает ошибку?

Ит.ВыбратьПериоды();
{\\1CPROFI\E\BASI_1C\VEST\EXTFORMS\KARTKLIENT.ERT(126)}: Не выбран элемент вышестоящей группировки! -1С

в Отладчике такая картина:
Ит.ВыбратьВалюты() = 0
Ит.ВыбратьСчета() = 1
Ит.ВыбратьПериоды() = Ошибка в выражении!

Ведь Ит.ВыбратьСчета() = 1 вышестоящая группировка и там есть счета. Доходит до Ит.ВыбратьПериоды() и ошибка???

Это на работе.
32. Andzhej 03.04.07 18:04 Сейчас в теме
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ВыбранныйПланСчетов());
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 1);

Если ВидВзаим = 1 Тогда
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрРах= "681,371,36,377,63";
Иначе
СтрРах = "36,377,63";
КонецЕсли;
ИначеЕсли ВидВзаим = 2 Тогда
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрРах= "681,63";
Иначе
СтрРах = "63";
КонецЕсли;
ИначеЕсли ВидВзаим = 3 Тогда
СтрРах= "371,36,377";
КонецЕсли;



Если Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрРах, , ,3,"Проводка","СВ")=1 Тогда
Ит.ВыбратьСчета();
Пока Ит.ПолучитьСчет() = 1 Цикл
Рах = Ит.Счет;
Пока Ит.ПолучитьСубконто() = 1 Цикл
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
Ит.ВыбратьВалюты();
Пока Ит.ПолучитьВалюту() = 1 Цикл
Табл.НоваяСтрока();
Табл.Документ = Ит.Операция.Документ;
Если Рах.Валютный = 0 Тогда
Табл.СальдоПоч = Ит.СНД() - Ит.СНК();
Табл.ЗбільшГрн = Ит.ДО();
Табл.ЗменшГрн = Ит.КО();
Иначе
Табл.ЗбільшВал = Ит.ДО(2);
Табл.ЗменшВал = Ит.КО(2);
Табл.КінВал = Ит.ДО(2) - Ит.КО(2);
КонецЕсли;
Табл.Валюта = Ит.Валюта;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;
**************************
**************************
Не делает выборку по валютам ВыбратьВалюты()=0, хотя в выборке счетов есть счте "681"-валютный. Почему?
1С 7.7 релиз 7.70.025, БухУчет для Украины 7.70.265
38. Andzhej 04.04.07 12:41 Сейчас в теме
Итак:
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ВыбранныйПланСчетов());
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 1);
СтрРах="681";
Если Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрРах, , ,3,"Проводка","СВ")=1 Тогда
Ит.ВыбратьСчета();
Пока Ит.ПолучитьСчет() = 1 Цикл
Рах = Ит.Счет;
сообщить("Рах="+Рах);
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
Ит.ВыбратьВалюты();
сообщить("Ит.ВыбратьВалюты()="+ Ит.ВыбратьВалюты());
Пока Ит.ПолучитьВалюту() = 1 Цикл
Табл.НоваяСтрока();
Табл.Документ = Ит.Операция.Документ;
Если Рах.Валютный = 0 Тогда
Табл.СальдоПоч = Ит.СНД() - Ит.СНК();
Табл.ЗбільшГрн = Ит.ДО();
Табл.ЗменшГрн = Ит.КО();
Иначе
Табл.ЗбільшВал = Ит.ДО(2);
Табл.ЗменшВал = Ит.КО(2);
Табл.КінВал = Ит.ДО(2) - Ит.КО(2);
КонецЕсли;
Табл.Валюта = Ит.Валюта;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;
***********************
выводит сообщения:
Рах=681
Ит.ВыбратьВалюты()=0
4. Ворона 02.04.07 12:17 Сейчас в теме
выше ж есть:
Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрСч, , ,3,"Проводка","СВ")
5. poppy 02.04.07 13:06 Сейчас в теме
Mister-X, уточни свой вопрос.

Тебе нужно рассчитать валютные обороты по контрагенту за период в разрезе валют?
6. Andzhej 02.04.07 15:15 Сейчас в теме
poppy Написал:
-------------------------------------------------------
> Mister-X, уточни свой вопрос.
>
> Тебе нужно рассчитать валютные обороты по
> контрагенту за период в разрезе валют?
>
> ______________________________________
> Самая короткая дорога - та, которую знаешь.

И валютные и в грн. Все что есть в справочнике "Валюты".


7. Ворона 02.04.07 15:20 Сейчас в теме
обрати внимание на буквы "СВ"
__
8. Andzhej 02.04.07 15:20 Сейчас в теме
В чем ошибка:

Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрРах= "681,371,36,377,63";
Иначе
СтрРах = "36,377,63";
КонецЕсли;
Если Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрРах, , ,3,"Проводка",3)=1 Тогда

Ит.ВыбратьСчета();
Пока Ит.ПолучитьСчет() = 1 Цикл
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
Рах = Ит.Счет;
Табл.НоваяСтрока();
Табл.Документ = Ит.Операция.Документ;
Валюта = СоздатьОбъект("Справочник.Валюты");
ТекВалюта = Валюта.ТекущийЭлемент();
Валюта.ВыбратьЭлементы();
Ит.ВыбратьВалюты();
Ит.ПолучитьВалюту();
.....
****************************************
выдает ошыбку:
Ит.ВыбратьПериоды();
{\\1CPROFI\E\BASI_1C\VEST\EXTFORMS\KARTKLIENT.ERT(126)}: Не выбран элемент вышестоящей группировки!

в Отладчике такая картина:
Ит.ВыбратьВалюты() = 0
Ит.ВыбратьСчета() = 1
Ит.ВыбратьПериоды() = Ошибка в выражении!
9. poppy 02.04.07 15:29 Сейчас в теме
Mister-X Написал:
-------------------------------------------------------
> И валютные и в грн. Все что есть в справочнике "Валюты".
>

Еще вопрос. Если у контрагента были обороты с двумя валютами, но в справочнике пять валют, то сколько итогов ты хочешь получить?
А если у клиента были обороты только по невалютным счетам?
10. Ворона 02.04.07 15:32 Сейчас в теме
попробуй все же без строк:

Валюта = СоздатьОбъект("Справочник.Валюты");/
ТекВалюта = Валюта.ТекущийЭлемент();
Валюта.ВыбратьЭлементы();

а дальше все как положено:
выбрать/получить
_
11. Ворона 02.04.07 15:34 Сейчас в теме
либо в получитьвалюту-передай параметр Валюта
_
12. poppy 02.04.07 15:45 Сейчас в теме
Вообще мне не понятно зачем ты используешь цикл Ит.ВыбратьВалюты();
Ит.ПолучитьВалюту();?

Ведь запрос формируется по проводкам. И если проводка выбрана, то к валюте можно обратиться как Ит.Операция.Валюта
13. Andzhej 02.04.07 15:52 Сейчас в теме
poppy Написал:
-------------------------------------------------------
> Mister-X Написал:
> --------------------------------------------------
> -----
> > И валютные и в грн. Все что есть в
> справочнике "Валюты".
> >
>
> Еще вопрос. Если у контрагента были обороты с
> двумя валютами, но в справочнике пять валют, то
> сколько итогов ты хочешь получить?
> А если у клиента были обороты только по невалютным
> счетам?
>
>
> ______________________________________
> Самая короткая дорога - та, которую знаешь.
Только по тех валютах, в которых были у контрагента обороты.

14. Andzhej 02.04.07 15:57 Сейчас в теме
poppy Написал:
-------------------------------------------------------
> Вообще мне не понятно зачем ты используешь цикл
> Ит.ВыбратьВалюты();
> Ит.ПолучитьВалюту();?
>
> Ведь запрос формируется по проводкам. И если
> проводка выбрана, то к валюте можно обратиться как
> Ит.Операция.Валюта
>
> ______________________________________
> Самая короткая дорога - та, которую знаешь.

Попробую.
15. poppy 02.04.07 16:02 Сейчас в теме
Убери из списка счетов все счета-группы и добавь все субсчета в явном виде.

17. poppy 02.04.07 16:14 Сейчас в теме
Mister-X Написал:
-------------------------------------------------------
> в Отладчике такая картина:
> Ит.ВыбратьВалюты() = 0
> Ит.ВыбратьСчета() = 1
> Ит.ВыбратьПериоды() = Ошибка в выражении!
>
> Что не так?

Убери эти строки из табло отладчика и проверь заново.
18. Andzhej 02.04.07 17:24 Сейчас в теме
Если убрать єти строки из табло в отладчику, то тогда доходит до ПолучитьПериод() и пропускает этот цикл и так пару раз, если же эти строки не убирать, тогда
Ит.ВыбратьПериоды();
{\\1CPROFI\E\BASI_1C\VEST\EXTFORMS\KARTKLIENT.ERT(126)}: Не выбран элемент вышестоящей группировки!

Ит.ВыбратьПериоды() = Ошибка в выражении!
19. poppy 02.04.07 17:26 Сейчас в теме
20. Andzhej 02.04.07 17:33 Сейчас в теме
Что-то не так с кодом, код хоть правильно написан?
21. Andzhej 02.04.07 17:38 Сейчас в теме
22. Andzhej 02.04.07 17:42 Сейчас в теме
Здесь вид журнала проводок и сам отчет.
Прикрепленные файлы:
23. Andzhej 02.04.07 19:07 Сейчас в теме
и что никто не знает в чем причина?
24. Ворона 02.04.07 20:24 Сейчас в теме
из того что видно-ни одной проводки по валюте вообще нет!
возникает вопрос а был ли мальчик?
_
25. Ворона 02.04.07 20:38 Сейчас в теме
Процедура Сформировать()
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ВыбКонтрагенты,1);
БИ.ВыполнитьЗапрос(НачДата,КонДата,"131",,,3,"Месяц","СВ");
Би.ВыбратьСчета();
Пока Би.ПолучитьСчет()=1 Цикл
Сообщить("Счет:"+БИ.Счет);
БИ.ВыбратьПериоды();
Пока Би.ПолучитьПериод()=1 Цикл
Сообщить("Перид:"+БИ.НачДата);
БИ.ВыбратьВалюты();
Пока Би.ПолучитьВалюту()=1 Цикл
Сообщить("Валюта:"+БИ.валюта);
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
_
26. Ворона 02.04.07 20:42 Сейчас в теме
либо в самом деле так:

Процедура Сформировать()
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ВыбКонтрагенты,1);
БИ.ВыполнитьЗапрос(НачДата,КонДата,"131",,,3,"Проводка","СВ");
Би.ВыбратьСчета();
Пока Би.ПолучитьСчет()=1 Цикл
Сообщить("Счет:"+БИ.Счет);
БИ.ВыбратьПериоды();
Пока Би.ПолучитьПериод()=1 Цикл
Сообщить("Перид:"+БИ.НачДата);
Сообщить("Валюта:"+БИ.Операция.валюта);
Сообщить("Сумма:"+БИ.Операция.ВалСумма);
КонецЦикла;
КонецЦикла;
КонецПроцедуры
_

33 секунды
27. Ворона 02.04.07 20:43 Сейчас в теме
последующих вопросов по-моему быть не должно.....
_
28. Andzhej 02.04.07 23:47 Сейчас в теме
Дома пробую не выдает. Где собака зарыта???
30. poppy 03.04.07 00:49 Сейчас в теме
В отладчике напиши так: ;)

Ит.ВыбратьВалюты() =
Ит.ПолучитьВалюту() =
Ит.ВыбратьСчета() =
Ит.ПолучитьСчет() =
Ит.ВыбратьПериоды() =
Ит.ПолучитьПериод() =

Может все таки поймешь, почему ошибка возникает?
31. Andzhej 03.04.07 13:18 Сейчас в теме
Короче сделал так:
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 1);
Все, цикл пошел по периодам (проводком), причем отбирало по субконто Кт=ВыбКонтрагент; а субконто Дт вообще не учитывало, даже если оно =ВыбКонтрагент.
Далее поменал назад:
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
тепер отбирает и субконто Дт и Кт= ВыбКонтрагент.


Какой смысл несет памеметр ТипФильтра:
<ТипФильтра>
Необязательный параметр. Число — тип фильтра по субконто. Может принимать следующие значе­ния:
1 — разворачивать по данному субконто,
2 — отбирать по данному субконто,
3 — не учитывать это субконто вообще.

Что означает разворачивать или отбирать по субконто. Какая между этими понятиями разница?
33. CheBurator 3121 04.04.07 09:10 Сейчас в теме
Ужо бы денег немного предложил - и получил бы решение. И не просто решение а решение с пояснениями...
Уф...
34. Andzhej 04.04.07 11:09 Сейчас в теме
Сhe Burashka Написал:
-------------------------------------------------------
> Ужо бы денег немного предложил - и получил бы
> решение. И не просто решение а решение с
> пояснениями...
> Уф...
Ставлю пиво :))

35. Ворона 04.04.07 11:12 Сейчас в теме
>Ставлю пиво
и так каждый раз? ;)
_
36. Andzhej 04.04.07 12:04 Сейчас в теме
Ворона Написал:
-------------------------------------------------------
> >Ставлю пиво
> и так каждый раз?

Ты можеш посоветовать как сделать бухзапрос по конкретному субконто, чтоб можно было получить итоги ДО(), КО() и по валютной сумме, а то вишеописанный способ, дает возможность получить итоги ДО(), КО(), СНК(), СНД() только по невалютным счетам.



37. poppy 04.04.07 12:17 Сейчас в теме
Mister-X Написал:
-------------------------------------------------------
> а то вишеописанный способ, дает возможность получить
> итоги ДО(), КО(), СНК(), СНД() только по невалютным счетам.

Достаточно спорное утверждение.

Попробуй написать так:
СтрРах= "681";
перед ВыполнитьЗапрос. И расскажи нам что получится...
39. Ворона 04.04.07 12:42 Сейчас в теме
два варианта посоветовала...

у тебя порпущено перед "Пока Ит.ПолучитьСубконто() = 1 Цикл"
ит.выбратьсубконто()

я твой код запускала,так что все показывает ЕСЛИ ВСТАВИТЬ это строку
в нужное место ;)
_
41. CheBurator 3121 04.04.07 12:49 Сейчас в теме
Ну, наконец-то... а то я уже волноваться начал...
42. Andzhej 04.04.07 12:52 Сейчас в теме
Понял Ит.ВыбратьВалюты()=1, тогда когда в выборке счетов есть валютный счет!!!
Т.е.
Если Рах.Валютный = 1 Тогда
Ит.ВыбратьВалюты();
Пока Ит.ПолучитьВалюту() = 1 Цикл
....
43. poppy 04.04.07 13:15 Сейчас в теме
44. Andzhej 04.04.07 13:37 Сейчас в теме
Просто тут у меня сидит программистка из 5-ти летним стажем (против моих чуть >1 года) и она до сих пор не знает как методом "ВыбратьВалюты()"пользоватся. Говорит, нужно бухзапрос по каждой валюте из "Справочник.Валюты" делать, чтоб рассчитать ДО(), КО() ... по валютным и невалютным счетам !!!
45. Ворона 04.04.07 13:39 Сейчас в теме
2 Mister-X
ну зато теперь будешь веселиться ;)
_
46. Andzhej 04.04.07 15:56 Сейчас в теме
2 Ворона: ага. Когда идет выборка только по одному субконто "ит.выбратьсубконто()" и "Пока Ит.ПолучитьСубконто() = 1 Цикл" не надо - у меня так работает, в других случаях обязательно надо.
48. Ворона 04.04.07 19:45 Сейчас в теме
группировка по счету- родителю при выборе счетов
попробуй ВключатьСубсчета(-1),либо проверяй на группу при переборе и не добавляй
_
49. CheBurator 3121 04.04.07 20:46 Сейчас в теме
И заметь - такие "спецы" - ну очень крутые спецы... это я про 5-лентних стажеров...
50. poppy 04.04.07 21:22 Сейчас в теме
+1 Че!

Это скорее победа мужского разума над женским.

Но, про крутых спецов речи не было. А 5-летний стаж - это не показатель. Может она все это время "кому-то дискеты подавала"? ;)
51. CheBurator 3121 04.04.07 21:30 Сейчас в теме
Poppy, да я ж не против... даже и дискеты подавать 0 и то лучше, чем фото ныкать...
52. Andzhej 05.04.07 00:30 Сейчас в теме
Ворона Написал:
-------------------------------------------------------
> группировка по счету- родителю при выборе счетов
> попробуй ВключатьСубсчета(-1),либо проверяй на
> группу при переборе и не добавляй
> _
>
>
> У всего свое объяснение.У необъяснимого-самое
> простое!

Пробовал не работает. Все строки колонки "Документ" заполняются последней операцией, все другие колонки заполняются нормально.

53. poppy 05.04.07 01:16 Сейчас в теме
Такая строка кода тебе однозначно поможет:

Табл.Документ = Ит.Операция.Документ.ТекущийДокумент();
54. Andzhej 05.04.07 01:29 Сейчас в теме
poppy Написал:
-------------------------------------------------------
> Такая строка кода тебе однозначно поможет:
>
> Табл.Документ =
> Ит.Операция.Документ.ТекущийДокумент();

Т.е. тип "Ит.Операция.Документ" это строка, а не объект?

Да все ОК!!


55. Andzhej 05.04.07 01:54 Сейчас в теме
Понятно, может и тепер вместо Ит.Валюта писать Ит.Валюта.ТекущийЭлемент()?

А если эту ТЗ свернуть по колонкам "Документ" и "Валюта" и суммировать по итогам счетов, то ссылки на объекты теряются и эти объекты превращаются в строки?
56. poppy 05.04.07 18:35 Сейчас в теме
Mister-X Написал:
-------------------------------------------------------
> Т.е. тип "Ит.Операция.Документ" это строка, а не объект?

ИМХО нет. Скорее это ссылка на текщий документ бухгалтерских итогов, т.е. не на объект базы данных, но на ссылку на него.

57. poppy 05.04.07 18:46 Сейчас в теме
Mister-X Написал:
-------------------------------------------------------
> Понятно, может и тепер вместо Ит.Валюта писать Ит.Валюта.ТекущийЭлемент()?

Не знаю. Ты попробуй и доложи результаты нам...

> А если эту ТЗ свернуть по колонкам "Документ" и "Валюта" и суммировать по итогам счетов, то ссылки
> на объекты теряются и эти объекты превращаются в строки?

Не уверена. В свете предыдущего ответа, во всех строках мы имеем одну ссылку. По логике, таблица должна свернуться в одну строку (для каждого счета). Хотя логика часто не применима к работе платформы.

Кстати, попробуй после формирования таблицы обнулить бухгалтерские итоги. Что ты увидишь в таблице?

58. CheBurator 3121 06.04.07 01:15 Сейчас в теме
Зашел, почитал, посмеялся..
спасибо заположительные эмоции
59. Andzhej 06.04.07 13:03 Сейчас в теме
Надо писать:
Ит.Операция.Документ.ТекущийДокумент() и Ит.Валюта.ТекущийЭлемент().
И при сворачивании ТЗ, значения в колонке "Документ" и "Валюта" остаются объектами.

Спасибо всем. Тему можно закрыть.
60. O-Planet 6432 07.04.07 05:31 Сейчас в теме
Сижу с огромными глазами все это читаю... Не пора ли организовывать экстренный ПЛАТНЫЙ консилиум в помощь спецам-стажерам с пятилетним стажем, подающим надежды, дискеты и ныкающим свои фотки от общественности?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот