Нужно сделать отчет КарточкаКлиента в базе Бухучет. Вид диалога формы и печатная форма такая как и в отчете КарточкаКлиента в комплексной базе.
Насколько я понял надо сделать бухзапрос по счетам "36,377, 63" и если Константа.ВыделятьАвансы = Да, тогда еще до этих счетов добавить "681,371", по субконто "ВыбКонтрагент".
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрРах= "681,681,371,36,377,63";
Иначе
СтрРах = "36,377,63";
КонецЕсли;
Ит.ВключатьСубсчета(1);
Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрРах, , ,3,"Проводка");
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
...
КонецЦикла;
Но как быть из расчетом валютных сумм? Ведь ВыполнитьЗапрос(<НачалоПериода>,<КонецПериода>,<Счет>,<КоррСчет>,<Валюта>,<ТипИтогов>,<Периодичность>,<ТипСуммы>)
где параметр <Валюта> - значение типа ''Справочник.Валюты''. Если параметр не указан итоги выдаются без учета валюты.
Т.е. по валюте итоги не будуть рассчитыватся или я неправильно понял? Мне нужно (см. печат. форму) и по валюте и по грн.
Насколько я понял надо сделать бухзапрос по счетам "36,377, 63" и если Константа.ВыделятьАвансы = Да, тогда еще до этих счетов добавить "681,371", по субконто "ВыбКонтрагент".
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрРах= "681,681,371,36,377,63";
Иначе
СтрРах = "36,377,63";
КонецЕсли;
Ит.ВключатьСубсчета(1);
Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрРах, , ,3,"Проводка");
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
...
КонецЦикла;
Но как быть из расчетом валютных сумм? Ведь ВыполнитьЗапрос(<НачалоПериода>,<КонецПериода>,<Счет>,<КоррСчет>,<Валюта>,<ТипИтогов>,<Периодичность>,<ТипСуммы>)
где параметр <Валюта> - значение типа ''Справочник.Валюты''. Если параметр не указан итоги выдаются без учета валюты.
Т.е. по валюте итоги не будуть рассчитыватся или я неправильно понял? Мне нужно (см. печат. форму) и по валюте и по грн.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрСч= "681,681,371,36,377,63";
Иначе
СтрСч= "36,377,63";
КонецЕсли;
Ит.ВключатьСубсчета(1);
Если Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрСч, , ,3,"Проводка")=1 Тогда
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод()=1 Цикл
Ит.ВыбратьСчета();
Пока Ит.ПолучитьСчет()=1 Цикл
Ит.ВыбратьВалюты();
Пока Ит.ПолучитьВалюту()=1 Цикл
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;
************************************
почему-то у выборку не попадает ни одна валюта: ВыбратьВалюты()=0, хотя ВыбратьСчета()=1 и в выборке есть счета "36,361,632", "632"-валютный.
Как сделать запрос так, чтоб в выборку валют попадала не одна валюта?
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
Если Константа.ВыделятьАвансы = Перечисление.ДаНет.Да Тогда
СтрСч= "681,681,371,36,377,63";
Иначе
СтрСч= "36,377,63";
КонецЕсли;
Ит.ВключатьСубсчета(1);
Если Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрСч, , ,3,"Проводка")=1 Тогда
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод()=1 Цикл
Ит.ВыбратьСчета();
Пока Ит.ПолучитьСчет()=1 Цикл
Ит.ВыбратьВалюты();
Пока Ит.ПолучитьВалюту()=1 Цикл
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;
************************************
почему-то у выборку не попадает ни одна валюта: ВыбратьВалюты()=0, хотя ВыбратьСчета()=1 и в выборке есть счета "36,361,632", "632"-валютный.
Как сделать запрос так, чтоб в выборку валют попадала не одна валюта?
Табл=СоздатьОбъект("ТаблицаЗначений");
Табл.НоваяКолонка("Документ");
Табл.НоваяКолонка("Валюта");
Табл.НоваяКолонка("СальдоПоч");
Табл.НоваяКолонка("СальдоКін");
Табл.НоваяКолонка("Збільш");
Табл.НоваяКолонка("Зменш");
Табл.НоваяКолонка("ЗбільшВал");
Табл.НоваяКолонка("ЗменшВал");
Табл.НоваяКолонка("СальдоКінВал");
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ВыбранныйПланСчетов());
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 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) проблема остается в силе!!!
Табл.НоваяКолонка("Документ");
Табл.НоваяКолонка("Валюта");
Табл.НоваяКолонка("СальдоПоч");
Табл.НоваяКолонка("СальдоКін");
Табл.НоваяКолонка("Збільш");
Табл.НоваяКолонка("Зменш");
Табл.НоваяКолонка("ЗбільшВал");
Табл.НоваяКолонка("ЗменшВал");
Табл.НоваяКолонка("СальдоКінВал");
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ВыбранныйПланСчетов());
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 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) проблема остается в силе!!!
Совершенно аналогично.
0. Синтакс-помощник вам поможет... - там все написано...
1. В ВыполнитьЗапросе укажите Типы нужных вам сумм (после периодичности итогов: <ТипСуммы> - число или строка - тип рассчитываемых итогов. Может принимать следующие значения (в скобках указаны строковые синонимы):
1 (''C'', ''S'') рассчитывать суммы;
2 (''В'', ''C'') рассчитывать валютные суммы;
т.е. у вас будет типа ...."Проводка","СВ")
1. ВыбратьВалюты() и цикл По ПолучитьВалюту() - совершенно аналогично.
2. Когда обращаетесь к итогам - указывайте тип получаемой суммы
СНД("С");
СНД("В");
0. Синтакс-помощник вам поможет... - там все написано...
1. В ВыполнитьЗапросе укажите Типы нужных вам сумм (после периодичности итогов: <ТипСуммы> - число или строка - тип рассчитываемых итогов. Может принимать следующие значения (в скобках указаны строковые синонимы):
1 (''C'', ''S'') рассчитывать суммы;
2 (''В'', ''C'') рассчитывать валютные суммы;
т.е. у вас будет типа ...."Проводка","СВ")
1. ВыбратьВалюты() и цикл По ПолучитьВалюту() - совершенно аналогично.
2. Когда обращаетесь к итогам - указывайте тип получаемой суммы
СНД("С");
СНД("В");
Код:
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ВыбранныйПланСчетов());
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 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
Ит.ВыбратьПериоды() = Ошибка в выражении!
Что не так?
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ВыбранныйПланСчетов());
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 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
Ит.ВыбратьПериоды() = Ошибка в выражении!
Что не так?
Ворона Написал:
-------------------------------------------------------
> либо в самом деле так:
>
> Процедура Сформировать()
> БИ=СоздатьОбъект("БухгалтерскиеИтоги");
> БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты,В
> ыбКонтрагенты,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 вышестоящая группировка и там есть счета. Доходит до Ит.ВыбратьПериоды() и ошибка???
Это на работе.
-------------------------------------------------------
> либо в самом деле так:
>
> Процедура Сформировать()
> БИ=СоздатьОбъект("БухгалтерскиеИтоги");
> БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты,В
> ыбКонтрагенты,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 вышестоящая группировка и там есть счета. Доходит до Ит.ВыбратьПериоды() и ошибка???
Это на работе.
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ВыбранныйПланСчетов());
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 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
Ит.ИспользоватьПланСчетов(ВыбранныйПланСчетов());
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 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
Итак:
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ВыбранныйПланСчетов());
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 1);
СтрРах="681";
Если Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрРах, , ,3,"Проводка","СВ")=1 Тогда
Ит.ВыбратьСчета();
Пока Ит.ПолучитьСчет() = 1 Цикл
Рах = Ит.Счет;
сообщить("Рах="+Рах);
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
Ит.ВыбратьВалюты();
сообщить("Ит.ВыбратьВалюты()="+ Ит.ВыбратьВалюты());
Пока Ит.ПолучитьВалюту() = 1 Цикл
Табл.НоваяСтрока();
Табл.Документ = Ит.Операция.Документ;
Если Рах.Валютный = 0 Тогда
Табл.СальдоПоч = Ит.СНД() - Ит.СНК();
Табл.ЗбільшГрн = Ит.ДО();
Табл.ЗменшГрн = Ит.КО();
Иначе
Табл.ЗбільшВал = Ит.ДО(2);
Табл.ЗменшВал = Ит.КО(2);
Табл.КінВал = Ит.ДО(2) - Ит.КО(2);
КонецЕсли;
Табл.Валюта = Ит.Валюта;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;
***********************
выводит сообщения:
Рах=681
Ит.ВыбратьВалюты()=0
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ВыбранныйПланСчетов());
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 1);
СтрРах="681";
Если Ит.ВыполнитьЗапрос(Дата1,Дата2,СтрРах, , ,3,"Проводка","СВ")=1 Тогда
Ит.ВыбратьСчета();
Пока Ит.ПолучитьСчет() = 1 Цикл
Рах = Ит.Счет;
сообщить("Рах="+Рах);
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
Ит.ВыбратьВалюты();
сообщить("Ит.ВыбратьВалюты()="+ Ит.ВыбратьВалюты());
Пока Ит.ПолучитьВалюту() = 1 Цикл
Табл.НоваяСтрока();
Табл.Документ = Ит.Операция.Документ;
Если Рах.Валютный = 0 Тогда
Табл.СальдоПоч = Ит.СНД() - Ит.СНК();
Табл.ЗбільшГрн = Ит.ДО();
Табл.ЗменшГрн = Ит.КО();
Иначе
Табл.ЗбільшВал = Ит.ДО(2);
Табл.ЗменшВал = Ит.КО(2);
Табл.КінВал = Ит.ДО(2) - Ит.КО(2);
КонецЕсли;
Табл.Валюта = Ит.Валюта;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;
***********************
выводит сообщения:
Рах=681
Ит.ВыбратьВалюты()=0
poppy Написал:
-------------------------------------------------------
> Mister-X, уточни свой вопрос.
>
> Тебе нужно рассчитать валютные обороты по
> контрагенту за период в разрезе валют?
>
> ______________________________________
> Самая короткая дорога - та, которую знаешь.
И валютные и в грн. Все что есть в справочнике "Валюты".
-------------------------------------------------------
> Mister-X, уточни свой вопрос.
>
> Тебе нужно рассчитать валютные обороты по
> контрагенту за период в разрезе валют?
>
> ______________________________________
> Самая короткая дорога - та, которую знаешь.
И валютные и в грн. Все что есть в справочнике "Валюты".
В чем ошибка:
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 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
Ит.ВыбратьПериоды() = Ошибка в выражении!
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 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
Ит.ВыбратьПериоды() = Ошибка в выражении!
Mister-X Написал:
-------------------------------------------------------
> И валютные и в грн. Все что есть в справочнике "Валюты".
>
Еще вопрос. Если у контрагента были обороты с двумя валютами, но в справочнике пять валют, то сколько итогов ты хочешь получить?
А если у клиента были обороты только по невалютным счетам?
-------------------------------------------------------
> И валютные и в грн. Все что есть в справочнике "Валюты".
>
Еще вопрос. Если у контрагента были обороты с двумя валютами, но в справочнике пять валют, то сколько итогов ты хочешь получить?
А если у клиента были обороты только по невалютным счетам?
poppy Написал:
-------------------------------------------------------
> Mister-X Написал:
> --------------------------------------------------
> -----
> > И валютные и в грн. Все что есть в
> справочнике "Валюты".
> >
>
> Еще вопрос. Если у контрагента были обороты с
> двумя валютами, но в справочнике пять валют, то
> сколько итогов ты хочешь получить?
> А если у клиента были обороты только по невалютным
> счетам?
>
>
> ______________________________________
> Самая короткая дорога - та, которую знаешь.
Только по тех валютах, в которых были у контрагента обороты.
-------------------------------------------------------
> Mister-X Написал:
> --------------------------------------------------
> -----
> > И валютные и в грн. Все что есть в
> справочнике "Валюты".
> >
>
> Еще вопрос. Если у контрагента были обороты с
> двумя валютами, но в справочнике пять валют, то
> сколько итогов ты хочешь получить?
> А если у клиента были обороты только по невалютным
> счетам?
>
>
> ______________________________________
> Самая короткая дорога - та, которую знаешь.
Только по тех валютах, в которых были у контрагента обороты.
poppy Написал:
-------------------------------------------------------
> Вообще мне не понятно зачем ты используешь цикл
> Ит.ВыбратьВалюты();
> Ит.ПолучитьВалюту();?
>
> Ведь запрос формируется по проводкам. И если
> проводка выбрана, то к валюте можно обратиться как
> Ит.Операция.Валюта
>
> ______________________________________
> Самая короткая дорога - та, которую знаешь.
Попробую.
-------------------------------------------------------
> Вообще мне не понятно зачем ты используешь цикл
> Ит.ВыбратьВалюты();
> Ит.ПолучитьВалюту();?
>
> Ведь запрос формируется по проводкам. И если
> проводка выбрана, то к валюте можно обратиться как
> Ит.Операция.Валюта
>
> ______________________________________
> Самая короткая дорога - та, которую знаешь.
Попробую.
Mister-X Написал:
-------------------------------------------------------
> в Отладчике такая картина:
> Ит.ВыбратьВалюты() = 0
> Ит.ВыбратьСчета() = 1
> Ит.ВыбратьПериоды() = Ошибка в выражении!
>
> Что не так?
Убери эти строки из табло отладчика и проверь заново.
-------------------------------------------------------
> в Отладчике такая картина:
> Ит.ВыбратьВалюты() = 0
> Ит.ВыбратьСчета() = 1
> Ит.ВыбратьПериоды() = Ошибка в выражении!
>
> Что не так?
Убери эти строки из табло отладчика и проверь заново.
Если убрать єти строки из табло в отладчику, то тогда доходит до ПолучитьПериод() и пропускает этот цикл и так пару раз, если же эти строки не убирать, тогда
Ит.ВыбратьПериоды();
{\\1CPROFI\E\BASI_1C\VEST\EXTFORMS\KARTKLIENT.ERT(126)}: Не выбран элемент вышестоящей группировки!
Ит.ВыбратьПериоды() = Ошибка в выражении!
Ит.ВыбратьПериоды();
{\\1CPROFI\E\BASI_1C\VEST\EXTFORMS\KARTKLIENT.ERT(126)}: Не выбран элемент вышестоящей группировки!
Ит.ВыбратьПериоды() = Ошибка в выражении!
Процедура Сформировать()
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ВыбКонтрагенты,1);
БИ.ВыполнитьЗапрос(НачДата,КонДата,"131",,,3,"Месяц","СВ");
Би.ВыбратьСчета();
Пока Би.ПолучитьСчет()=1 Цикл
Сообщить("Счет:"+БИ.Счет);
БИ.ВыбратьПериоды();
Пока Би.ПолучитьПериод()=1 Цикл
Сообщить("Перид:"+БИ.НачДата);
БИ.ВыбратьВалюты();
Пока Би.ПолучитьВалюту()=1 Цикл
Сообщить("Валюта:"+БИ.валюта);
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
_
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ВыбКонтрагенты,1);
БИ.ВыполнитьЗапрос(НачДата,КонДата,"131",,,3,"Месяц","СВ");
Би.ВыбратьСчета();
Пока Би.ПолучитьСчет()=1 Цикл
Сообщить("Счет:"+БИ.Счет);
БИ.ВыбратьПериоды();
Пока Би.ПолучитьПериод()=1 Цикл
Сообщить("Перид:"+БИ.НачДата);
БИ.ВыбратьВалюты();
Пока Би.ПолучитьВалюту()=1 Цикл
Сообщить("Валюта:"+БИ.валюта);
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
_
либо в самом деле так:
Процедура Сформировать()
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ВыбКонтрагенты,1);
БИ.ВыполнитьЗапрос(НачДата,КонДата,"131",,,3,"Проводка","СВ");
Би.ВыбратьСчета();
Пока Би.ПолучитьСчет()=1 Цикл
Сообщить("Счет:"+БИ.Счет);
БИ.ВыбратьПериоды();
Пока Би.ПолучитьПериод()=1 Цикл
Сообщить("Перид:"+БИ.НачДата);
Сообщить("Валюта:"+БИ.Операция.валюта);
Сообщить("Сумма:"+БИ.Операция.ВалСумма);
КонецЦикла;
КонецЦикла;
КонецПроцедуры
_
33 секунды
Процедура Сформировать()
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ВыбКонтрагенты,1);
БИ.ВыполнитьЗапрос(НачДата,КонДата,"131",,,3,"Проводка","СВ");
Би.ВыбратьСчета();
Пока Би.ПолучитьСчет()=1 Цикл
Сообщить("Счет:"+БИ.Счет);
БИ.ВыбратьПериоды();
Пока Би.ПолучитьПериод()=1 Цикл
Сообщить("Перид:"+БИ.НачДата);
Сообщить("Валюта:"+БИ.Операция.валюта);
Сообщить("Сумма:"+БИ.Операция.ВалСумма);
КонецЦикла;
КонецЦикла;
КонецПроцедуры
_
33 секунды
Короче сделал так:
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 1);
Все, цикл пошел по периодам (проводком), причем отбирало по субконто Кт=ВыбКонтрагент; а субконто Дт вообще не учитывало, даже если оно =ВыбКонтрагент.
Далее поменал назад:
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
тепер отбирает и субконто Дт и Кт= ВыбКонтрагент.
Какой смысл несет памеметр ТипФильтра:
<ТипФильтра>
Необязательный параметр. Число — тип фильтра по субконто. Может принимать следующие значения:
1 — разворачивать по данному субконто,
2 — отбирать по данному субконто,
3 — не учитывать это субконто вообще.
Что означает разворачивать или отбирать по субконто. Какая между этими понятиями разница?
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 1);
Все, цикл пошел по периодам (проводком), причем отбирало по субконто Кт=ВыбКонтрагент; а субконто Дт вообще не учитывало, даже если оно =ВыбКонтрагент.
Далее поменал назад:
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты, ВыбКонтрагент, 2);
тепер отбирает и субконто Дт и Кт= ВыбКонтрагент.
Какой смысл несет памеметр ТипФильтра:
<ТипФильтра>
Необязательный параметр. Число — тип фильтра по субконто. Может принимать следующие значения:
1 — разворачивать по данному субконто,
2 — отбирать по данному субконто,
3 — не учитывать это субконто вообще.
Что означает разворачивать или отбирать по субконто. Какая между этими понятиями разница?
Ворона Написал:
-------------------------------------------------------
> >Ставлю пиво
> и так каждый раз?
Ты можеш посоветовать как сделать бухзапрос по конкретному субконто, чтоб можно было получить итоги ДО(), КО() и по валютной сумме, а то вишеописанный способ, дает возможность получить итоги ДО(), КО(), СНК(), СНД() только по невалютным счетам.
-------------------------------------------------------
> >Ставлю пиво
> и так каждый раз?
Ты можеш посоветовать как сделать бухзапрос по конкретному субконто, чтоб можно было получить итоги ДО(), КО() и по валютной сумме, а то вишеописанный способ, дает возможность получить итоги ДО(), КО(), СНК(), СНД() только по невалютным счетам.
Mister-X Написал:
-------------------------------------------------------
> а то вишеописанный способ, дает возможность получить
> итоги ДО(), КО(), СНК(), СНД() только по невалютным счетам.
Достаточно спорное утверждение.
Попробуй написать так:
СтрРах= "681";
перед ВыполнитьЗапрос. И расскажи нам что получится...
-------------------------------------------------------
> а то вишеописанный способ, дает возможность получить
> итоги ДО(), КО(), СНК(), СНД() только по невалютным счетам.
Достаточно спорное утверждение.
Попробуй написать так:
СтрРах= "681";
перед ВыполнитьЗапрос. И расскажи нам что получится...
Просто тут у меня сидит программистка из 5-ти летним стажем (против моих чуть >1 года) и она до сих пор не знает как методом "ВыбратьВалюты()"пользоватся. Говорит, нужно бухзапрос по каждой валюте из "Справочник.Валюты" делать, чтоб рассчитать ДО(), КО() ... по валютным и невалютным счетам !!!
Ворона Написал:
-------------------------------------------------------
> группировка по счету- родителю при выборе счетов
> попробуй ВключатьСубсчета(-1),либо проверяй на
> группу при переборе и не добавляй
> _
>
>
> У всего свое объяснение.У необъяснимого-самое
> простое!
Пробовал не работает. Все строки колонки "Документ" заполняются последней операцией, все другие колонки заполняются нормально.
-------------------------------------------------------
> группировка по счету- родителю при выборе счетов
> попробуй ВключатьСубсчета(-1),либо проверяй на
> группу при переборе и не добавляй
> _
>
>
> У всего свое объяснение.У необъяснимого-самое
> простое!
Пробовал не работает. Все строки колонки "Документ" заполняются последней операцией, все другие колонки заполняются нормально.
poppy Написал:
-------------------------------------------------------
> Такая строка кода тебе однозначно поможет:
>
> Табл.Документ =
> Ит.Операция.Документ.ТекущийДокумент();
Т.е. тип "Ит.Операция.Документ" это строка, а не объект?
Да все ОК!!
-------------------------------------------------------
> Такая строка кода тебе однозначно поможет:
>
> Табл.Документ =
> Ит.Операция.Документ.ТекущийДокумент();
Т.е. тип "Ит.Операция.Документ" это строка, а не объект?
Да все ОК!!
Понятно, может и тепер вместо Ит.Валюта писать Ит.Валюта.ТекущийЭлемент()?
А если эту ТЗ свернуть по колонкам "Документ" и "Валюта" и суммировать по итогам счетов, то ссылки на объекты теряются и эти объекты превращаются в строки?
А если эту ТЗ свернуть по колонкам "Документ" и "Валюта" и суммировать по итогам счетов, то ссылки на объекты теряются и эти объекты превращаются в строки?
Mister-X Написал:
-------------------------------------------------------
> Т.е. тип "Ит.Операция.Документ" это строка, а не объект?
ИМХО нет. Скорее это ссылка на текщий документ бухгалтерских итогов, т.е. не на объект базы данных, но на ссылку на него.
-------------------------------------------------------
> Т.е. тип "Ит.Операция.Документ" это строка, а не объект?
ИМХО нет. Скорее это ссылка на текщий документ бухгалтерских итогов, т.е. не на объект базы данных, но на ссылку на него.
Mister-X Написал:
-------------------------------------------------------
> Понятно, может и тепер вместо Ит.Валюта писать Ит.Валюта.ТекущийЭлемент()?
Не знаю. Ты попробуй и доложи результаты нам...
> А если эту ТЗ свернуть по колонкам "Документ" и "Валюта" и суммировать по итогам счетов, то ссылки
> на объекты теряются и эти объекты превращаются в строки?
Не уверена. В свете предыдущего ответа, во всех строках мы имеем одну ссылку. По логике, таблица должна свернуться в одну строку (для каждого счета). Хотя логика часто не применима к работе платформы.
Кстати, попробуй после формирования таблицы обнулить бухгалтерские итоги. Что ты увидишь в таблице?
-------------------------------------------------------
> Понятно, может и тепер вместо Ит.Валюта писать Ит.Валюта.ТекущийЭлемент()?
Не знаю. Ты попробуй и доложи результаты нам...
> А если эту ТЗ свернуть по колонкам "Документ" и "Валюта" и суммировать по итогам счетов, то ссылки
> на объекты теряются и эти объекты превращаются в строки?
Не уверена. В свете предыдущего ответа, во всех строках мы имеем одну ссылку. По логике, таблица должна свернуться в одну строку (для каждого счета). Хотя логика часто не применима к работе платформы.
Кстати, попробуй после формирования таблицы обнулить бухгалтерские итоги. Что ты увидишь в таблице?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот