![]() |
|
ОСВ | ☑ | ||
---|---|---|---|---|
0
Начинающий_13
06.11.14
✎
12:18
|
Здравствуйте
В нетиповую перенес ОСВ. Имею план счетов с 4 субконто. НУ ВР ПР Контроль не имею в плане счетов Все набыры данных СКД при 4 субконто открываются и ошибок не дают. Отчет сам работает правильно если не устанавливать настройки ГРУППИРОВКА и РАЗВЕРНУТОЕ САЛЬДО. При установке флага группировки по счету выдает следующую ошибку Размберем группировка (с развернутым салтдо тоже самое) {Отчет.ОборотноСальдоваяВедомость.МодульМенеджера(320)}: Ошибка при вызове конструктора (ИсточникДоступныхНастроекКомпоновкиДанных) КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Схема)); по причине: Ошибка получения информации набора данных по причине: Ошибка в запросе набора данных по причине: {(1, 1)}: Ожидается выражение "ВЫБРАТЬ" <<?>>ет, Нашел ее в модуле Менеджера в процедуре ПередКомпоновкойМакета Там собирается запрос НЕПРАВИЛЬНО ет, ?????????????????????????? ОстаткиИОбороты.Субконто1 КАК Субконто1, ОстаткиИОбороты.Субконто2 КАК Субконто2, ОстаткиИОбороты.Субконто3 КАК Субконто3, Null КАК Субконто4, ????????????????????????????????? ОстаткиИОбороты.Валюта КАК Валюта, ОстаткиИОбороты.СуммаНачальныйОстатокДт КАК БУНачальныйОстатокДт, ОстаткиИОбороты.СуммаНачальныйОстатокКт КАК БУНачальныйОстатокКт, ОстаткиИОбороты.СуммаОборотДт КАК БУОборотДт, ОстаткиИОбороты.СуммаОборотКт КАК БУОборотКт, ОстаткиИОбороты.СуммаКонечныйОстатокДт КАК БУКонечныйОстатокДт, ОстаткиИОбороты.СуммаКонечныйОстатокКт КАК БУКонечныйОстатокКт, 1 КАК Показатель, ОстаткиИОбороты.ВалютнаяСуммаНачальныйОстатокДт КАК ВалютнаяСуммаНачальныйОстатокДт, ОстаткиИОбороты.ВалютнаяСуммаНачальныйОстатокКт КАК ВалютнаяСуммаНачальныйОстатокКт, ОстаткиИОбороты.ВалютнаяСуммаОборотДт КАК ВалютнаяСуммаОборотДт, ОстаткиИОбороты.ВалютнаяСуммаОборотКт КАК ВалютнаяСуммаОборотКт, ОстаткиИОбороты.ВалютнаяСуммаКонечныйОстатокДт КАК ВалютнаяСуммаКонечныйОстатокДт, ОстаткиИОбороты.ВалютнаяСуммаКонечныйОстатокКт КАК ВалютнаяСуммаКонечныйОстатокКт, ПРЕДСТАВЛЕНИЕССЫЛКИ(ОстаткиИОбороты.Субконто1) КАК Субконто1Представление, ПРЕДСТАВЛЕНИЕССЫЛКИ(ОстаткиИОбороты.Субконто2) КАК Субконто2Представление, ПРЕДСТАВЛЕНИЕССЫЛКИ(ОстаткиИОбороты.Субконто3) КАК Субконто3Представление, "" КАК Субконто4Представление ????????????????????????????????????? {ВЫБРАТЬ Субконто1Представление, Субконто2Представление, Субконто3Представление, Субконто4Представление} ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты( {(&НачалоПериода)}, {(&КонецПериода)}, , , Счет В ИЕРАРХИИ (&СчетДетализации) И (НЕ Счет.Забалансовый ИЛИ &ВыводитьЗабалансовыеСчета), &СубконтоДетализации, ) КАК ОстаткиИОбороты ОБЪЕДИНИТЬ ВСЕ Подскажите где смотреть Сама процедура модуля // ДУМАТЬ ДЛЯ ГРУППИРОВКИ ЗДЕСЬ ОШИБКА НаборДанных.Запрос = Лев(НаборДанных.Запрос, СтрДлина(НаборДанных.Запрос) - 16); Процедура ПередКомпоновкойМакета(ПараметрыОтчета, Схема, КомпоновщикНастроек) Экспорт // Очищаем структуру отчета, для того чтобы сформировать ее по установленным настройкам КомпоновщикНастроек.Настройки.Структура.Очистить(); КомпоновщикНастроек.Настройки.Выбор.Элементы.Очистить(); МА_БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(КомпоновщикНастроек.Настройки.Выбор, "Счет"); // Основой структуры отчета будет таблица Структура = КомпоновщикНастроек.Настройки.Структура.Добавить(Тип("ТаблицаКомпоновкиДанных")); Структура.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); // Далее добавляем колонки в таблицу // Если нужно добавляем отдельную колонку для показателей (БУ,НУ,ПР,ВР и т.д.) КоличествоПоказателей = МА_БухгалтерскиеОтчетыВызовСервера.КоличествоПоказателей(ПараметрыОтчета); Если КоличествоПоказателей > 1 Тогда Колонка = Структура.Колонки.Добавить(); Колонка.Имя = "Показатели"; ГруппаПоказатели = Колонка.Выбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных")); ГруппаПоказатели.Заголовок = МА_БухгалтерскиеОтчеты.ЗаголовокГруппыПоказателей(); ГруппаПоказатели.Использование = Истина; ГруппаПоказатели.Расположение = РасположениеПоляКомпоновкиДанных.Вертикально; Для Каждого ИмяПоказателя Из ПараметрыОтчета.НаборПоказателей Цикл Если ПараметрыОтчета["Показатель" + ИмяПоказателя] Тогда МА_БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаПоказатели, "Показатели." + ИмяПоказателя); КонецЕсли; КонецЦикла; КонецЕсли; // Для начального сальдо, оборотов и конечного сальдо, создадим по отдельной колонке // в каждой колонке будет 2 ячейки дебет и кредит // Колонка Начальное сальдо Колонка = Структура.Колонки.Добавить(); Колонка.Имя = "СальдоНаНачалоПериода"; ГруппаСальдоНаНачало = Колонка.Выбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных")); ГруппаСальдоНаНачало.Заголовок = "Сальдо на начало периода"; ГруппаСальдоНаНачало.Использование = Истина; ГруппаСальдоНаНачалоДт = ГруппаСальдоНаНачало.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных")); ГруппаСальдоНаНачалоДт.Заголовок = "Дебет"; ГруппаСальдоНаНачалоДт.Использование = Истина; ГруппаСальдоНаНачалоДт.Расположение = РасположениеПоляКомпоновкиДанных.Вертикально; ГруппаСальдоНаНачалоКт = ГруппаСальдоНаНачало.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных")); ГруппаСальдоНаНачалоКт.Заголовок = "Кредит"; ГруппаСальдоНаНачалоКт.Использование = Истина; ГруппаСальдоНаНачалоКт.Расположение = РасположениеПоляКомпоновкиДанных.Вертикально; // Колонка Обороты Колонка = Структура.Колонки.Добавить(); Колонка.Имя = "ОборотыЗаПериод"; ГруппаОбороты = Колонка.Выбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных")); ГруппаОбороты.Заголовок = "Обороты за период"; ГруппаОбороты.Использование = Истина; ГруппаОборотыДт = ГруппаОбороты.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных")); ГруппаОборотыДт.Заголовок = "Дебет"; ГруппаОборотыДт.Использование = Истина; ГруппаОборотыДт.Расположение = РасположениеПоляКомпоновкиДанных.Вертикально; ГруппаОборотыКт = ГруппаОбороты.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных")); ГруппаОборотыКт.Заголовок = "Кредит"; ГруппаОборотыКт.Использование = Истина; ГруппаОборотыКт.Расположение = РасположениеПоляКомпоновкиДанных.Вертикально; // Колонка Конечное сальдо Колонка = Структура.Колонки.Добавить(); Колонка.Имя = "СальдоНаКонецПериода"; ГруппаСальдоНаКонец = Колонка.Выбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных")); ГруппаСальдоНаКонец.Заголовок = "Сальдо на конец периода"; ГруппаСальдоНаКонец.Использование = Истина; ГруппаСальдоНаКонецДт = ГруппаСальдоНаКонец.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных")); ГруппаСальдоНаКонецДт.Заголовок = "Дебет"; ГруппаСальдоНаКонецДт.Использование = Истина; ГруппаСальдоНаКонецДт.Расположение = РасположениеПоляКомпоновкиДанных.Вертикально; ГруппаСальдоНаКонецКт = ГруппаСальдоНаКонец.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных")); ГруппаСальдоНаКонецКт.Заголовок = "Кредит"; ГруппаСальдоНаКонецКт.Использование = Истина; ГруппаСальдоНаКонецКт.Расположение = РасположениеПоляКомпоновкиДанных.Вертикально; // Заполняем созданные колонки показателями Для Каждого ИмяПоказателя Из ПараметрыОтчета.НаборПоказателей Цикл Если ПараметрыОтчета["Показатель" + ИмяПоказателя] Тогда МА_БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаСальдоНаНачалоДт, "СальдоНаНачалоПериода." + ИмяПоказателя + "НачальныйОстатокДт"); МА_БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаСальдоНаНачалоКт, "СальдоНаНачалоПериода." + ИмяПоказателя + "НачальныйОстатокКт"); МА_БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаОборотыДт, "ОборотыЗаПериод." + ИмяПоказателя + "ОборотДт"); МА_БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаОборотыКт, "ОборотыЗаПериод." + ИмяПоказателя + "ОборотКт"); МА_БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаСальдоНаКонецДт, "СальдоНаКонецПериода." + ИмяПоказателя + "КонечныйОстатокДт"); МА_БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаСальдоНаКонецКт, "СальдоНаКонецПериода." + ИмяПоказателя + "КонечныйОстатокКт"); КонецЕсли; КонецЦикла; // Получаем схему компоновки - эталон Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); // Доработка схемы - развернутое сальдо НаборДанных = Схема.НаборыДанных.НаборДанныхОбъединение.Элементы.ПоСубконтоРазвернутое; // Набор "ПоСубконтоРазвернутое" ТекстЗапроса = НаборДанных.Запрос; НаборДанных.Запрос = ""; ТекстЗапросПоСубконтоРазвернутое = МА_БухгалтерскиеОтчетыВызовСервера.ПолучитьТекстПоМаркерам(ТекстЗапроса, "//Начало ЗапросПоСубконто РазвернутоеСальдо", "//Конец ЗапросПоСубконто РазвернутоеСальдо"); ТекстУсловиеСчетаПоСубконтоРазвернутое = МА_БухгалтерскиеОтчетыВызовСервера.ПолучитьТекстПоМаркерам(ТекстЗапроса, "//Начало УсловиеСчета РазвернутоеСальдо" , "//Конец УсловиеСчета РазвернутоеСальдо"); ТекстСубконтоПоСубконтоРазвернутое = МА_БухгалтерскиеОтчетыВызовСервера.ПолучитьТекстПоМаркерам(ТекстЗапроса, "//Начало Субконто РазвернутоеСальдо" , "//Конец Субконто РазвернутоеСальдо"); ВыводитьРазвернутоеСальдо = Ложь; ТекстУсловие = "Ложь ИЛИ "; СписокВсехСчетовРазвернутоеСальдо = Новый СписокЗначений; Для Каждого СтрокаТаблицы Из ПараметрыОтчета.РазвернутоеСальдо Цикл Если СтрокаТаблицы.Использование И ЗначениеЗаполнено(СтрокаТаблицы.Счет) Тогда СписокВсехСчетовРазвернутоеСальдо.Добавить(СтрокаТаблицы.Счет); КонецЕсли; КонецЦикла; Для Каждого СтрокаТаблицы Из ПараметрыОтчета.РазвернутоеСальдо Цикл СубконтоРазвернутоеСальдо = Новый СписокЗначений; Если СтрокаТаблицы.Использование И ЗначениеЗаполнено(СтрокаТаблицы.Счет) Тогда ВыводитьРазвернутоеСальдо = Истина; ДанныеСчета = МА_БухгалтерскийУчетВызовСервераПовтИсп.ПолучитьСвойстваСчета(СтрокаТаблицы.Счет); СписокВидовСубконто = Новый СписокЗначений; КоличествоСубконто = СтрДлина(СтрокаТаблицы.ПоСубконто) / 2; Для Индекс = 1 По КоличествоСубконто Цикл СписокВидовСубконто.Добавить(ДанныеСчета["ВидСубконто" + Сред(СтрокаТаблицы.ПоСубконто, Индекс*2, 1)], ДанныеСчета["ВидСубконто" + Сред(СтрокаТаблицы.ПоСубконто, Индекс*2, 1) + "Наименование"], ?(Сред(СтрокаТаблицы.ПоСубконто, Индекс * 2 - 1, 1) = "+", Истина, Ложь)); КонецЦикла; Для Каждого СтрокаТаблицыСубконто Из СписокВидовСубконто Цикл Если СтрокаТаблицыСубконто.Пометка Тогда СубконтоРазвернутоеСальдо.Добавить(СтрокаТаблицыСубконто.Значение); КонецЕсли; КонецЦикла; Индекс = ПараметрыОтчета.РазвернутоеСальдо.Индекс(СтрокаТаблицы) + 1; ТекстУсловие = ТекстУсловие + "Счет = &СчетРазвернутоеСальдо" + Индекс + " ИЛИ "; // Формируем текст параметра УсловиеСчета запроса детализации по субконто ТекстДляПодстановкиУсловиеСчетаПоСубконтоРазвернутое = "Счет В ИЕРАРХИИ (&СчетРазвернутоеСальдо" + Индекс + ") | И Счет НЕ В (&СчетаИсключенныеИзЗапросаПоСчетамРазвернутое" + Индекс + ") | И ((НЕ Счет.Забалансовый) | ИЛИ &ВыводитьЗабалансовыеСчета)"; // Формируем текст параметра Субконто запроса по субконто развернутое ТекстДляПодстановкиСубконтоПоСубконтоРазвернутое = "&СубконтоРазвернутый" + Индекс; // Установка параметра СчетРазвернутоеСальдо МА_БухгалтерскиеОтчетыВызовСервера.СкопироватьПараметрСхемыКомпоновкиДанных(Схема, "СчетРазвернутоеСальдо" + Индекс, "СчетРазвернутоеСальдо", СтрокаТаблицы.Счет); СчетаИсключенныеИзЗапросаПоСчетамРазвернутое = СписокВсехСчетовРазвернутоеСальдо.Скопировать(); СчетаИсключенныеИзЗапросаПоСчетамРазвернутое.Удалить(СчетаИсключенныеИзЗапросаПоСчетамРазвернутое.НайтиПоЗначению(СтрокаТаблицы.Счет)); // Установка параметра СчетаИсключенныеИзЗапросаПоСчетамРазвернутое МА_БухгалтерскиеОтчетыВызовСервера.СкопироватьПараметрСхемыКомпоновкиДанных(Схема, "СчетаИсключенныеИзЗапросаПоСчетамРазвернутое" + Индекс, "СчетаИсключенныеИзЗапросаПоСчетамРазвернутое", СчетаИсключенныеИзЗапросаПоСчетамРазвернутое); // Установка параметра "СубконтоДетализацииРазвернутый МА_БухгалтерскиеОтчетыВызовСервера.СкопироватьПараметрСхемыКомпоновкиДанных(Схема, "СубконтоРазвернутый" + Индекс, "СубконтоРазвернутый", СубконтоРазвернутоеСальдо); // Формируем текст запроса для счета детализации ТекстДляПодстановкиЗапросПоСубконтоРазвернутое = ТекстЗапросПоСубконтоРазвернутое; ТекстДляПодстановкиЗапросПоСубконтоРазвернутое = СтрЗаменить(ТекстДляПодстановкиЗапросПоСубконтоРазвернутое, ТекстУсловиеСчетаПоСубконтоРазвернутое, ТекстДляПодстановкиУсловиеСчетаПоСубконтоРазвернутое); ТекстДляПодстановкиЗапросПоСубконтоРазвернутое = СтрЗаменить(ТекстДляПодстановкиЗапросПоСубконтоРазвернутое, ТекстСубконтоПоСубконтоРазвернутое, ТекстДляПодстановкиСубконтоПоСубконтоРазвернутое); Для Индекс = 1 По СубконтоРазвернутоеСальдо.Количество() Цикл ТекстДляПодстановкиЗапросПоСубконтоРазвернутое = СтрЗаменить(ТекстДляПодстановкиЗапросПоСубконтоРазвернутое, "//Null КАК Субконто" + Индекс, "ОстаткиИОбороты.Субконто" + Индекс + " КАК Субконто" + Индекс); КонецЦикла; // Доработка запроса набора данных НаборДанных.Запрос = НаборДанных.Запрос + ТекстДляПодстановкиЗапросПоСубконтоРазвернутое; НаборДанных.Запрос = НаборДанных.Запрос + " ОБЪЕДИНИТЬ ВСЕ "; КонецЕсли; КонецЦикла; // ДУМАТЬ ДЛЯ РАЗВЕРНУТОЕ САЛЬДО НаборДанных.Запрос = Лев(НаборДанных.Запрос, СтрДлина(НаборДанных.Запрос) - 16); МассивПоказателей = Новый Массив; МассивПоказателей.Добавить("БУ"); //МассивПоказателей.Добавить("НУ"); //МассивПоказателей.Добавить("ПР"); //МассивПоказателей.Добавить("ВР"); Если ВыводитьРазвернутоеСальдо Тогда ТекстУсловие = Лев(ТекстУсловие, СтрДлина(ТекстУсловие) - 4); Для Каждого ИмяПоказателя Из МассивПоказателей Цикл ПолеИтога = Схема.ПоляИтога.Найти("СальдоНаНачалоПериода." + ИмяПоказателя + "НачальныйОстатокДт"); ПолеИтога.Выражение = "Выбор Когда " + ТекстУсловие + " Тогда Сумма(СальдоНаНачалоПериода." + ИмяПоказателя + "НачальныйРазвернутыйОстатокДт) Иначе Сумма(СальдоНаНачалоПериода." + ИмяПоказателя + "НачальныйОстатокДт) Конец"; ПолеИтога = Схема.ПоляИтога.Найти("СальдоНаНачалоПериода." + ИмяПоказателя + "НачальныйОстатокКт"); ПолеИтога.Выражение = "Выбор Когда " + ТекстУсловие + " Тогда Сумма(СальдоНаНачалоПериода." + ИмяПоказателя + "НачальныйРазвернутыйОстатокКт) Иначе Сумма(СальдоНаНачалоПериода." + ИмяПоказателя + "НачальныйОстатокКт) Конец"; ПолеИтога = Схема.ПоляИтога.Найти("СальдоНаКонецПериода." + ИмяПоказателя + "КонечныйОстатокДт"); ПолеИтога.Выражение = "Выбор Когда " + ТекстУсловие + " Тогда Сумма(СальдоНаКонецПериода." + ИмяПоказателя + "КонечныйРазвернутыйОстатокДт) Иначе Сумма(СальдоНаКонецПериода." + ИмяПоказателя + "КонечныйОстатокДт) Конец"; ПолеИтога = Схема.ПоляИтога.Найти("СальдоНаКонецПериода." + ИмяПоказателя + "КонечныйОстатокКт"); ПолеИтога.Выражение = "Выбор Когда " + ТекстУсловие + " Тогда Сумма(СальдоНаКонецПериода." + ИмяПоказателя + "КонечныйРазвернутыйОстатокКт) Иначе Сумма(СальдоНаКонецПериода." + ИмяПоказателя + "КонечныйОстатокКт) Конец"; КонецЦикла; КонецЕсли; НаборДанных = Схема.НаборыДанных.НаборДанныхОбъединение.Элементы.ПоСубконто; // Набор "ПоСубконто" ТекстЗапроса = НаборДанных.Запрос; НаборДанных.Запрос = ""; ТекстЗапросДетализацииПоСубконто = МА_БухгалтерскиеОтчетыВызовСервера.ПолучитьТекстПоМаркерам(ТекстЗапроса, "//Начало ЗапросПоСубконто Детализация", "//Конец ЗапросПоСубконто Детализация"); ТекстУсловиеСчетаДетализацииПоСубконто = МА_БухгалтерскиеОтчетыВызовСервера.ПолучитьТекстПоМаркерам(ТекстЗапроса, "//Начало УсловиеСчета Детализация", "//Конец УсловиеСчета Детализация"); ТекстСубконтоДетализацииПоСубконто = МА_БухгалтерскиеОтчетыВызовСервера.ПолучитьТекстПоМаркерам(ТекстЗапроса, "//Начало Субконто Детализация", "//Конец Субконто Детализация"); СчетаИсключенныеИзЗапросаПоСчетам = Новый СписокЗначений; // Доработка для детализации ЕстьДетализацияПоСубконто = Ложь; НужноКорректироватьзапросСКД = Ложь; Для Каждого СтрокаТаблицы Из ПараметрыОтчета.Группировка Цикл СубконтоДетализации = Новый СписокЗначений; Если СтрокаТаблицы.Использование И ЗначениеЗаполнено(СтрокаТаблицы.Счет) Тогда ДанныеСчета = МА_БухгалтерскийУчетВызовСервераПовтИсп.ПолучитьСвойстваСчета(СтрокаТаблицы.Счет); СписокВидовСубконто = Новый СписокЗначений; КоличествоСубконто = СтрДлина(СтрокаТаблицы.ПоСубконто) / 2; Для Индекс = 1 По КоличествоСубконто Цикл СписокВидовСубконто.Добавить(ДанныеСчета["ВидСубконто" + Сред(СтрокаТаблицы.ПоСубконто, Индекс*2, 1)], ДанныеСчета["ВидСубконто" + Сред(СтрокаТаблицы.ПоСубконто, Индекс*2, 1) + "Наименование"], ?(Сред(СтрокаТаблицы.ПоСубконто, Индекс * 2 - 1, 1) = "+", Истина, Ложь)); КонецЦикла; Для Каждого СтрокаТаблицыСубконто Из СписокВидовСубконто Цикл Если СтрокаТаблицыСубконто.Пометка Тогда СубконтоДетализации.Добавить(СтрокаТаблицыСубконто.Значение); КонецЕсли; КонецЦикла; КонецЕсли; Если СубконтоДетализации.Количество() > 0 Тогда ЕстьДетализацияПоСубконто = Истина; СчетаИсключенныеИзЗапросаПоСчетам.Добавить(СтрокаТаблицы.Счет); Индекс = ПараметрыОтчета.Группировка.Индекс(СтрокаТаблицы) + 1; // Формируем текст параметра УсловиеСчета запроса детализации по субконто ТекстДляПодстановкиУсловиеСчетаДетализацииПоСубконто = "Счет В ИЕРАРХИИ (&СчетДетализации" + Индекс + ") | И ((НЕ Счет.Забалансовый) | ИЛИ &ВыводитьЗабалансовыеСчета)"; // Формируем текст параметра Субконто запроса детализации по субконто ТекстДляПодстановкиСубконтоДетализацииПоСубконто = "&СубконтоДетализации" + Индекс; // Формируем текст запроса для счета детализации ТекстДляПодстановкиЗапросДетализацииПоСубконто = СтрЗаменить(ТекстЗапросДетализацииПоСубконто, ТекстУсловиеСчетаДетализацииПоСубконто, ТекстДляПодстановкиУсловиеСчетаДетализацииПоСубконто); ТекстДляПодстановкиЗапросДетализацииПоСубконто = СтрЗаменить(ТекстДляПодстановкиЗапросДетализацииПоСубконто, ТекстСубконтоДетализацииПоСубконто, ТекстДляПодстановкиСубконтоДетализацииПоСубконто); // Доработка текста запроса СКД // Для первого запроса секция "{Выбрать..." должна быть Если НужноКорректироватьзапросСКД Тогда ТекстЗапросаСКД = "{ВЫБРАТЬ Субконто1Представление, Субконто2Представление, Субконто3Представление, Субконто4Представление}"; ТекстДляПодстановкиЗапросДетализацииПоСубконто = СтрЗаменить(ТекстДляПодстановкиЗапросДетализацииПоСубконто, ТекстЗапросаСКД, ""); Иначе // для последующих запросов секцию "{Выбрать..." нужно убирать НужноКорректироватьзапросСКД = Истина; КонецЕсли; // Корректировка текста запроса в зависимости от количества указанных видов субконто Если Индекс > 1 Тогда Для ИндексПсевдонима = 1 По 4 Цикл ТекстДляПодстановкиЗапросДетализацииПоСубконто = СтрЗаменить(ТекстДляПодстановкиЗапросДетализацииПоСубконто, " КАК Субконто" + ИндексПсевдонима + "Представление", ""); ТекстДляПодстановкиЗапросДетализацииПоСубконто = СтрЗаменить(ТекстДляПодстановкиЗапросДетализацииПоСубконто, " КАК Субконто" + ИндексПсевдонима, ""); КонецЦикла; КонецЕсли; Для ИндексСубконто = СубконтоДетализации.Количество() + 1 По 4 Цикл ТекстДляПодстановкиЗапросДетализацииПоСубконто = СтрЗаменить(ТекстДляПодстановкиЗапросДетализацииПоСубконто, "ОстаткиИОбороты.Субконто" + ИндексСубконто , "Null"); КонецЦикла; ТекстДляПодстановкиЗапросДетализацииПоСубконто = СтрЗаменить(ТекстДляПодстановкиЗапросДетализацииПоСубконто, "ПРЕДСТАВЛЕНИЕССЫЛКИ(Null)" , """"""); // Добавление и установка значения параметра СчетДетализации{Индекс} МА_БухгалтерскиеОтчетыВызовСервера.СкопироватьПараметрСхемыКомпоновкиДанных(Схема, "СчетДетализации" + Индекс, "СчетДетализации", СтрокаТаблицы.Счет); // Добавление и установка значения параметра СубконтоДетализации{Индекс} МА_БухгалтерскиеОтчетыВызовСервера.СкопироватьПараметрСхемыКомпоновкиДанных(Схема, "СубконтоДетализации" + Индекс, "СубконтоДетализации", СубконтоДетализации); // Доработка запроса набора данных НаборДанных.Запрос = НаборДанных.Запрос + ТекстДляПодстановкиЗапросДетализацииПоСубконто; НаборДанных.Запрос = НаборДанных.Запрос + " ОБЪЕДИНИТЬ ВСЕ "; КонецЕсли; КонецЦикла; // ДУМАТЬ ДЛЯ ГРУППИРОВКИ НаборДанных.Запрос = Лев(НаборДанных.Запрос, СтрДлина(НаборДанных.Запрос) - 16); Если Не ЕстьДетализацияПоСубконто Тогда Схема.НаборыДанных.НаборДанныхОбъединение.Элементы.Удалить(Схема.НаборыДанных.НаборДанныхОбъединение.Элементы.ПоСубконто); КонецЕсли; Если Не ВыводитьРазвернутоеСальдо Тогда Схема.НаборыДанных.НаборДанныхОбъединение.Элементы.Удалить(Схема.НаборыДанных.НаборДанныхОбъединение.Элементы.ПоСубконтоРазвернутое); КонецЕсли; МА_БухгалтерскиеОтчеты.УстановитьМинимальнуюШиринуПоказателей(Схема, ПолучитьНаборПоказателей()); КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Схема)); Для Каждого Параметр Из КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы Цикл Параметр.Использование = Истина; КонецЦикла; МА_БухгалтерскиеОтчетыКлиентСервер.УстановитьПараметр(КомпоновщикНастроек, "СчетаИсключенныеИзЗапросаПоСчетам", СчетаИсключенныеИзЗапросаПоСчетам); &nbs |
|||
1
Начинающий_13
06.11.14
✎
12:21
|
НЕ корректно отобразилась процедура
|
|||
2
guevara74
06.11.14
✎
12:25
|
Вопрос немного не по теме- а зачем 4 субконто?
|
|||
3
Начинающий_13
06.11.14
✎
12:26
|
Там быза пишется по 7.7 персии близка по структуре к ней
|
|||
4
Начинающий_13
06.11.14
✎
12:27
|
4 субконто на 20-- счетах и 90
|
|||
5
чувак
06.11.14
✎
12:31
|
"Там быза пишется по 7.7 персии"
Ты случайно не под градусом? |
|||
6
Начинающий_13
06.11.14
✎
12:32
|
Не придирайся
|
|||
7
Eugene_life
06.11.14
✎
12:34
|
(0) Может, тебе в нетиповую не переносить отчет ОСВ, а написать свой? там по смыслу несложно - начальный остаток, оборот, конечный остаток. Типовую ОСВ ты не прицепишь так просто к самописке
|
|||
8
Начинающий_13
06.11.14
✎
12:36
|
Я перенес все 12 из БП 3. 36 . 11 Работают безупречно Все ошибки и проблемы исправил там осталась одна КУДА идти не пойму вроде пересмотрел все.
|
|||
9
Начинающий_13
06.11.14
✎
12:37
|
Зато все очень красиво и пристойно
|
|||
10
Начинающий_13
06.11.14
✎
13:14
|
Нашел
В параметрах отчета ПараметрыОтчета.Вставить("Группировка" , Отчет.Группировка.Выгрузить()); Табличная часть Группировка ПоСубконто длина стоит 6, надо 8 Тоже для развернутого сальдо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |